Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
AccAOI
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit e66fc94e
由
LN
编写于
2024-10-27 13:11:19 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
aoi界面调整
1 个父辈
82021319
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
2528 行增加
和
64 行删除
AccAOI/AOIResourceCulture.cs
AccAOI/FrmAoiSetting.Designer.cs
AccAOI/FrmAoiSetting.cs
AccAOI/FrmBase.cs
AccAOI/Properties/en-US.resource
AccAOI/Properties/zh-CN.resource
AccAOI/nback/FrmAoiSettingN.Designer.cs
AccAOI/nback/FrmAoiSettingN.cs
AccAOI/nback/FrmAoiSettingN.resx
AccAOI/AOIResourceCulture.cs
查看文件 @
e66fc94
...
@@ -165,6 +165,31 @@ namespace AccAOI
...
@@ -165,6 +165,31 @@ namespace AccAOI
}
}
else
else
{
{
//判断有没有
//FrmAoiSetting_btnUpdateName_Text
try
{
string
formName
=
" FrmAoiSetting"
;
if
(!
id
.
StartsWith
(
formName
))
{
string
[]
arrays
=
id
.
Split
(
'_'
);
if
(
arrays
.
Length
==
3
)
{
string
newId
=
formName
+
"_"
+
arrays
[
1
]
+
"_"
+
arrays
[
2
];
if
(
ResourceMap
[
CurrLanguage
].
ContainsKey
(
newId
.
Trim
()))
{
strCurLanguage
=
ResourceMap
[
CurrLanguage
][
id
];
return
strCurLanguage
;
}
}
}
}
catch
(
Exception
ex
)
{
Console
.
WriteLine
(
$
"id={id} error :"
+
ex
.
ToString
());
}
NoIdLog
(
id
,
defaultStr
);
NoIdLog
(
id
,
defaultStr
);
}
}
}
}
...
@@ -215,10 +240,10 @@ namespace AccAOI
...
@@ -215,10 +240,10 @@ namespace AccAOI
}
}
private
static
string
spiltStr
=
"_"
;
private
static
string
spiltStr
=
"_"
;
private
static
string
Text
=
"Text"
;
private
static
string
Text
=
"Text"
;
public
static
string
GetIdStr
(
string
class
Name
,
string
controlName
,
string
propertyName
)
//
public static string GetIdStr(string className, string controlName, string propertyName)
{
//
{
return
class
Name
+
spiltStr
+
controlName
+
spiltStr
+
propertyName
;
//
return className + spiltStr + controlName + spiltStr + propertyName;
}
//
}
public
static
string
GetIdStr
(
string
class
Name
,
string
propertyName
)
public
static
string
GetIdStr
(
string
class
Name
,
string
propertyName
)
{
{
return
class
Name
+
spiltStr
+
propertyName
;
return
class
Name
+
spiltStr
+
propertyName
;
...
...
AccAOI/FrmAoiSetting.Designer.cs
查看文件 @
e66fc94
...
@@ -55,8 +55,16 @@ namespace AccAOI
...
@@ -55,8 +55,16 @@ namespace AccAOI
this
.
btnCopy
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnCopy
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnPCBRect
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnPCBRect
=
new
Asa
.
Theme
.
FlatButton
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
groupBox1
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupBox2
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupImage
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupBox4
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
panTest
.
SuspendLayout
();
this
.
panTest
.
SuspendLayout
();
this
.
panel1
.
SuspendLayout
();
this
.
panel1
.
SuspendLayout
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox2
.
SuspendLayout
();
this
.
groupImage
.
SuspendLayout
();
this
.
groupBox4
.
SuspendLayout
();
this
.
SuspendLayout
();
this
.
SuspendLayout
();
//
//
// aoiList
// aoiList
...
@@ -65,10 +73,10 @@ namespace AccAOI
...
@@ -65,10 +73,10 @@ namespace AccAOI
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
aoiList
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
aoiList
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
aoiList
.
Inside
=
false
;
this
.
aoiList
.
Inside
=
false
;
this
.
aoiList
.
Location
=
new
System
.
Drawing
.
Point
(
249
,
210
);
this
.
aoiList
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
128
);
this
.
aoiList
.
Name
=
"aoiList"
;
this
.
aoiList
.
Name
=
"aoiList"
;
this
.
aoiList
.
SelectedIndex
=
-
1
;
this
.
aoiList
.
SelectedIndex
=
-
1
;
this
.
aoiList
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
405
);
this
.
aoiList
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
636
);
this
.
aoiList
.
TabIndex
=
2
;
this
.
aoiList
.
TabIndex
=
2
;
this
.
aoiList
.
SelectedIndexChanged
+=
new
Asa
.
Theme
.
Event
.
SelectedIndexChanged
(
this
.
aoiList_IndexChanged
);
this
.
aoiList
.
SelectedIndexChanged
+=
new
Asa
.
Theme
.
Event
.
SelectedIndexChanged
(
this
.
aoiList_IndexChanged
);
//
//
...
@@ -106,7 +114,7 @@ namespace AccAOI
...
@@ -106,7 +114,7 @@ namespace AccAOI
this
.
btnNewAoi
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnNewAoi
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnNewAoi
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnNewAoi
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnNewAoi
.
Inside
=
false
;
this
.
btnNewAoi
.
Inside
=
false
;
this
.
btnNewAoi
.
Location
=
new
System
.
Drawing
.
Point
(
249
,
102
);
this
.
btnNewAoi
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
20
);
this
.
btnNewAoi
.
Name
=
"btnNewAoi"
;
this
.
btnNewAoi
.
Name
=
"btnNewAoi"
;
this
.
btnNewAoi
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
30
);
this
.
btnNewAoi
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
30
);
this
.
btnNewAoi
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnNewAoi
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
...
@@ -120,9 +128,9 @@ namespace AccAOI
...
@@ -120,9 +128,9 @@ namespace AccAOI
this
.
btnOpenImage
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenImage
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenImage
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnOpenImage
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnOpenImage
.
Inside
=
false
;
this
.
btnOpenImage
.
Inside
=
false
;
this
.
btnOpenImage
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
138
);
this
.
btnOpenImage
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
66
);
this
.
btnOpenImage
.
Name
=
"btnOpenImage"
;
this
.
btnOpenImage
.
Name
=
"btnOpenImage"
;
this
.
btnOpenImage
.
Size
=
new
System
.
Drawing
.
Size
(
236
,
30
);
this
.
btnOpenImage
.
Size
=
new
System
.
Drawing
.
Size
(
180
,
30
);
this
.
btnOpenImage
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnOpenImage
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnOpenImage
.
TabIndex
=
10
;
this
.
btnOpenImage
.
TabIndex
=
10
;
this
.
btnOpenImage
.
Text
=
"选择基准图片"
;
this
.
btnOpenImage
.
Text
=
"选择基准图片"
;
...
@@ -134,9 +142,9 @@ namespace AccAOI
...
@@ -134,9 +142,9 @@ namespace AccAOI
this
.
btnGetCameraImg
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnGetCameraImg
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnGetCameraImg
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnGetCameraImg
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnGetCameraImg
.
Inside
=
false
;
this
.
btnGetCameraImg
.
Inside
=
false
;
this
.
btnGetCameraImg
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
102
);
this
.
btnGetCameraImg
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
30
);
this
.
btnGetCameraImg
.
Name
=
"btnGetCameraImg"
;
this
.
btnGetCameraImg
.
Name
=
"btnGetCameraImg"
;
this
.
btnGetCameraImg
.
Size
=
new
System
.
Drawing
.
Size
(
236
,
30
);
this
.
btnGetCameraImg
.
Size
=
new
System
.
Drawing
.
Size
(
180
,
30
);
this
.
btnGetCameraImg
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnGetCameraImg
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnGetCameraImg
.
TabIndex
=
13
;
this
.
btnGetCameraImg
.
TabIndex
=
13
;
this
.
btnGetCameraImg
.
Text
=
"获取基准图片"
;
this
.
btnGetCameraImg
.
Text
=
"获取基准图片"
;
...
@@ -147,9 +155,9 @@ namespace AccAOI
...
@@ -147,9 +155,9 @@ namespace AccAOI
this
.
panAoi
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
this
.
panAoi
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
panAoi
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
panAoi
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
panAoi
.
Location
=
new
System
.
Drawing
.
Point
(
411
,
33
);
this
.
panAoi
.
Location
=
new
System
.
Drawing
.
Point
(
164
,
20
);
this
.
panAoi
.
Name
=
"panAoi"
;
this
.
panAoi
.
Name
=
"panAoi"
;
this
.
panAoi
.
Size
=
new
System
.
Drawing
.
Size
(
3
17
,
582
);
this
.
panAoi
.
Size
=
new
System
.
Drawing
.
Size
(
3
24
,
747
);
this
.
panAoi
.
TabIndex
=
15
;
this
.
panAoi
.
TabIndex
=
15
;
//
//
// btnExcute
// btnExcute
...
@@ -158,9 +166,9 @@ namespace AccAOI
...
@@ -158,9 +166,9 @@ namespace AccAOI
this
.
btnExcute
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnExcute
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnExcute
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnExcute
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnExcute
.
Inside
=
false
;
this
.
btnExcute
.
Inside
=
false
;
this
.
btnExcute
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
327
);
this
.
btnExcute
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
92
);
this
.
btnExcute
.
Name
=
"btnExcute"
;
this
.
btnExcute
.
Name
=
"btnExcute"
;
this
.
btnExcute
.
Size
=
new
System
.
Drawing
.
Size
(
237
,
5
0
);
this
.
btnExcute
.
Size
=
new
System
.
Drawing
.
Size
(
180
,
3
0
);
this
.
btnExcute
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnExcute
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnExcute
.
TabIndex
=
16
;
this
.
btnExcute
.
TabIndex
=
16
;
this
.
btnExcute
.
Text
=
"执行"
;
this
.
btnExcute
.
Text
=
"执行"
;
...
@@ -172,7 +180,7 @@ namespace AccAOI
...
@@ -172,7 +180,7 @@ namespace AccAOI
this
.
btnDel
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnDel
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnDel
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnDel
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnDel
.
Inside
=
false
;
this
.
btnDel
.
Inside
=
false
;
this
.
btnDel
.
Location
=
new
System
.
Drawing
.
Point
(
330
,
174
);
this
.
btnDel
.
Location
=
new
System
.
Drawing
.
Point
(
86
,
92
);
this
.
btnDel
.
Name
=
"btnDel"
;
this
.
btnDel
.
Name
=
"btnDel"
;
this
.
btnDel
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
30
);
this
.
btnDel
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
30
);
this
.
btnDel
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnDel
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
...
@@ -182,13 +190,14 @@ namespace AccAOI
...
@@ -182,13 +190,14 @@ namespace AccAOI
//
//
// btnImageChange
// btnImageChange
//
//
this
.
btnImageChange
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
btnImageChange
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnImageChange
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnImageChange
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnImageChange
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnImageChange
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnImageChange
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnImageChange
.
Inside
=
false
;
this
.
btnImageChange
.
Inside
=
false
;
this
.
btnImageChange
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
271
);
this
.
btnImageChange
.
Location
=
new
System
.
Drawing
.
Point
(
490
,
13
);
this
.
btnImageChange
.
Name
=
"btnImageChange"
;
this
.
btnImageChange
.
Name
=
"btnImageChange"
;
this
.
btnImageChange
.
Size
=
new
System
.
Drawing
.
Size
(
2
37
,
5
0
);
this
.
btnImageChange
.
Size
=
new
System
.
Drawing
.
Size
(
2
01
,
3
0
);
this
.
btnImageChange
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnImageChange
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnImageChange
.
TabIndex
=
18
;
this
.
btnImageChange
.
TabIndex
=
18
;
this
.
btnImageChange
.
Text
=
"切换为测试图片"
;
this
.
btnImageChange
.
Text
=
"切换为测试图片"
;
...
@@ -200,9 +209,9 @@ namespace AccAOI
...
@@ -200,9 +209,9 @@ namespace AccAOI
this
.
flatButton1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
flatButton1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
flatButton1
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
flatButton1
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
flatButton1
.
Inside
=
false
;
this
.
flatButton1
.
Inside
=
false
;
this
.
flatButton1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
174
);
this
.
flatButton1
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
20
);
this
.
flatButton1
.
Name
=
"flatButton1"
;
this
.
flatButton1
.
Name
=
"flatButton1"
;
this
.
flatButton1
.
Size
=
new
System
.
Drawing
.
Size
(
237
,
30
);
this
.
flatButton1
.
Size
=
new
System
.
Drawing
.
Size
(
180
,
30
);
this
.
flatButton1
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
flatButton1
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
flatButton1
.
TabIndex
=
20
;
this
.
flatButton1
.
TabIndex
=
20
;
this
.
flatButton1
.
Text
=
"获取测试图片"
;
this
.
flatButton1
.
Text
=
"获取测试图片"
;
...
@@ -214,9 +223,9 @@ namespace AccAOI
...
@@ -214,9 +223,9 @@ namespace AccAOI
this
.
flatButton2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
flatButton2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
flatButton2
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
flatButton2
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
flatButton2
.
Inside
=
false
;
this
.
flatButton2
.
Inside
=
false
;
this
.
flatButton2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
210
);
this
.
flatButton2
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
56
);
this
.
flatButton2
.
Name
=
"flatButton2"
;
this
.
flatButton2
.
Name
=
"flatButton2"
;
this
.
flatButton2
.
Size
=
new
System
.
Drawing
.
Size
(
237
,
30
);
this
.
flatButton2
.
Size
=
new
System
.
Drawing
.
Size
(
180
,
30
);
this
.
flatButton2
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
flatButton2
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
flatButton2
.
TabIndex
=
19
;
this
.
flatButton2
.
TabIndex
=
19
;
this
.
flatButton2
.
Text
=
"选择测试图片"
;
this
.
flatButton2
.
Text
=
"选择测试图片"
;
...
@@ -227,12 +236,13 @@ namespace AccAOI
...
@@ -227,12 +236,13 @@ namespace AccAOI
this
.
lblCurrImage
.
AutoSize
=
true
;
this
.
lblCurrImage
.
AutoSize
=
true
;
this
.
lblCurrImage
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
12F
,
System
.
Drawing
.
FontStyle
.
Bold
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblCurrImage
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
12F
,
System
.
Drawing
.
FontStyle
.
Bold
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblCurrImage
.
ForeColor
=
System
.
Drawing
.
Color
.
LawnGreen
;
this
.
lblCurrImage
.
ForeColor
=
System
.
Drawing
.
Color
.
LawnGreen
;
this
.
lblCurrImage
.
Location
=
new
System
.
Drawing
.
Point
(
734
,
33
);
this
.
lblCurrImage
.
Location
=
new
System
.
Drawing
.
Point
(
19
,
21
);
this
.
lblCurrImage
.
Name
=
"lblCurrImage"
;
this
.
lblCurrImage
.
Name
=
"lblCurrImage"
;
this
.
lblCurrImage
.
Size
=
new
System
.
Drawing
.
Size
(
74
,
22
);
this
.
lblCurrImage
.
Size
=
new
System
.
Drawing
.
Size
(
74
,
22
);
this
.
lblCurrImage
.
TabIndex
=
22
;
this
.
lblCurrImage
.
TabIndex
=
22
;
this
.
lblCurrImage
.
Text
=
"基准图:"
;
this
.
lblCurrImage
.
Text
=
"基准图:"
;
this
.
lblCurrImage
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleCenter
;
this
.
lblCurrImage
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleCenter
;
this
.
lblCurrImage
.
Visible
=
false
;
this
.
lblCurrImage
.
Click
+=
new
System
.
EventHandler
(
this
.
lblCurrImage_Click
);
this
.
lblCurrImage
.
Click
+=
new
System
.
EventHandler
(
this
.
lblCurrImage_Click
);
//
//
// btnUpdateName
// btnUpdateName
...
@@ -241,7 +251,7 @@ namespace AccAOI
...
@@ -241,7 +251,7 @@ namespace AccAOI
this
.
btnUpdateName
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnUpdateName
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnUpdateName
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnUpdateName
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnUpdateName
.
Inside
=
false
;
this
.
btnUpdateName
.
Inside
=
false
;
this
.
btnUpdateName
.
Location
=
new
System
.
Drawing
.
Point
(
249
,
174
);
this
.
btnUpdateName
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
92
);
this
.
btnUpdateName
.
Name
=
"btnUpdateName"
;
this
.
btnUpdateName
.
Name
=
"btnUpdateName"
;
this
.
btnUpdateName
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
30
);
this
.
btnUpdateName
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
30
);
this
.
btnUpdateName
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnUpdateName
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
...
@@ -252,7 +262,7 @@ namespace AccAOI
...
@@ -252,7 +262,7 @@ namespace AccAOI
// panTest
// panTest
//
//
this
.
panTest
.
Controls
.
Add
(
this
.
testImageBox1
);
this
.
panTest
.
Controls
.
Add
(
this
.
testImageBox1
);
this
.
panTest
.
Location
=
new
System
.
Drawing
.
Point
(
738
,
58
);
this
.
panTest
.
Location
=
new
System
.
Drawing
.
Point
(
23
,
46
);
this
.
panTest
.
Name
=
"panTest"
;
this
.
panTest
.
Name
=
"panTest"
;
this
.
panTest
.
Size
=
new
System
.
Drawing
.
Size
(
448
,
446
);
this
.
panTest
.
Size
=
new
System
.
Drawing
.
Size
(
448
,
446
);
this
.
panTest
.
TabIndex
=
25
;
this
.
panTest
.
TabIndex
=
25
;
...
@@ -278,9 +288,10 @@ namespace AccAOI
...
@@ -278,9 +288,10 @@ namespace AccAOI
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
panel1
.
AutoScroll
=
true
;
this
.
panel1
.
AutoScroll
=
true
;
this
.
panel1
.
Controls
.
Add
(
this
.
lblTestResult
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblTestResult
);
this
.
panel1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
394
);
this
.
panel1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
panel1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
340
);
this
.
panel1
.
Name
=
"panel1"
;
this
.
panel1
.
Name
=
"panel1"
;
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
236
,
221
);
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
197
,
502
);
this
.
panel1
.
TabIndex
=
22
;
this
.
panel1
.
TabIndex
=
22
;
//
//
// lblTestResult
// lblTestResult
...
@@ -303,11 +314,11 @@ namespace AccAOI
...
@@ -303,11 +314,11 @@ namespace AccAOI
this
.
imageBox1
.
DragHandleSize
=
9
;
this
.
imageBox1
.
DragHandleSize
=
9
;
this
.
imageBox1
.
GridColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
imageBox1
.
GridColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
imageBox1
.
GridColorAlternate
=
System
.
Drawing
.
Color
.
Black
;
this
.
imageBox1
.
GridColorAlternate
=
System
.
Drawing
.
Color
.
Black
;
this
.
imageBox1
.
Location
=
new
System
.
Drawing
.
Point
(
738
,
58
);
this
.
imageBox1
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
46
);
this
.
imageBox1
.
Name
=
"imageBox1"
;
this
.
imageBox1
.
Name
=
"imageBox1"
;
this
.
imageBox1
.
SelectionColor
=
System
.
Drawing
.
Color
.
Yellow
;
this
.
imageBox1
.
SelectionColor
=
System
.
Drawing
.
Color
.
Yellow
;
this
.
imageBox1
.
SelectionMode
=
Acc
.
ImageBox
.
ImageBoxSelectionMode
.
Rectangle
;
this
.
imageBox1
.
SelectionMode
=
Acc
.
ImageBox
.
ImageBoxSelectionMode
.
Rectangle
;
this
.
imageBox1
.
Size
=
new
System
.
Drawing
.
Size
(
560
,
5
57
);
this
.
imageBox1
.
Size
=
new
System
.
Drawing
.
Size
(
690
,
7
57
);
this
.
imageBox1
.
TabIndex
=
4
;
this
.
imageBox1
.
TabIndex
=
4
;
this
.
imageBox1
.
SelectionRegionChanged
+=
new
System
.
EventHandler
(
this
.
imageBox1_SelectionRegionChanged
);
this
.
imageBox1
.
SelectionRegionChanged
+=
new
System
.
EventHandler
(
this
.
imageBox1_SelectionRegionChanged
);
this
.
imageBox1
.
DoubleClick
+=
new
System
.
EventHandler
(
this
.
imageBox1_DoubleClick
);
this
.
imageBox1
.
DoubleClick
+=
new
System
.
EventHandler
(
this
.
imageBox1_DoubleClick
);
...
@@ -318,7 +329,7 @@ namespace AccAOI
...
@@ -318,7 +329,7 @@ namespace AccAOI
this
.
btnCopy
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCopy
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCopy
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnCopy
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnCopy
.
Inside
=
false
;
this
.
btnCopy
.
Inside
=
false
;
this
.
btnCopy
.
Location
=
new
System
.
Drawing
.
Point
(
249
,
138
);
this
.
btnCopy
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
56
);
this
.
btnCopy
.
Name
=
"btnCopy"
;
this
.
btnCopy
.
Name
=
"btnCopy"
;
this
.
btnCopy
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
30
);
this
.
btnCopy
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
30
);
this
.
btnCopy
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnCopy
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
...
@@ -328,13 +339,14 @@ namespace AccAOI
...
@@ -328,13 +339,14 @@ namespace AccAOI
//
//
// btnPCBRect
// btnPCBRect
//
//
this
.
btnPCBRect
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
btnPCBRect
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnPCBRect
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnPCBRect
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnPCBRect
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnPCBRect
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnPCBRect
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnPCBRect
.
Inside
=
false
;
this
.
btnPCBRect
.
Inside
=
false
;
this
.
btnPCBRect
.
Location
=
new
System
.
Drawing
.
Point
(
2
49
,
3
3
);
this
.
btnPCBRect
.
Location
=
new
System
.
Drawing
.
Point
(
2
83
,
1
3
);
this
.
btnPCBRect
.
Name
=
"btnPCBRect"
;
this
.
btnPCBRect
.
Name
=
"btnPCBRect"
;
this
.
btnPCBRect
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
30
);
this
.
btnPCBRect
.
Size
=
new
System
.
Drawing
.
Size
(
201
,
30
);
this
.
btnPCBRect
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnPCBRect
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnPCBRect
.
TabIndex
=
27
;
this
.
btnPCBRect
.
TabIndex
=
27
;
this
.
btnPCBRect
.
Text
=
"设置基准PCB范围"
;
this
.
btnPCBRect
.
Text
=
"设置基准PCB范围"
;
...
@@ -343,37 +355,90 @@ namespace AccAOI
...
@@ -343,37 +355,90 @@ namespace AccAOI
// label1
// label1
//
//
this
.
label1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
label1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
206
,
588
);
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
206
,
815
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
23
);
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
23
);
this
.
label1
.
TabIndex
=
23
;
this
.
label1
.
TabIndex
=
23
;
this
.
label1
.
Text
=
"label1"
;
this
.
label1
.
Text
=
"label1"
;
this
.
label1
.
Click
+=
new
System
.
EventHandler
(
this
.
label1_Click
);
this
.
label1
.
Click
+=
new
System
.
EventHandler
(
this
.
label1_Click
);
//
//
// groupBox1
//
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnGetCameraImg
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnOpenImage
);
this
.
groupBox1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox1
.
ForeColor
=
System
.
Drawing
.
Color
.
White
;
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
69
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
197
,
116
);
this
.
groupBox1
.
TabIndex
=
28
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"基准图片"
;
//
// groupBox2
//
this
.
groupBox2
.
Controls
.
Add
(
this
.
flatButton1
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
flatButton2
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
btnExcute
);
this
.
groupBox2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox2
.
ForeColor
=
System
.
Drawing
.
Color
.
White
;
this
.
groupBox2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
191
);
this
.
groupBox2
.
Name
=
"groupBox2"
;
this
.
groupBox2
.
Size
=
new
System
.
Drawing
.
Size
(
197
,
143
);
this
.
groupBox2
.
TabIndex
=
0
;
this
.
groupBox2
.
TabStop
=
false
;
this
.
groupBox2
.
Text
=
"测试图片"
;
//
// groupImage
//
this
.
groupImage
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupImage
.
Controls
.
Add
(
this
.
lblCurrImage
);
this
.
groupImage
.
Controls
.
Add
(
this
.
panTest
);
this
.
groupImage
.
Controls
.
Add
(
this
.
imageBox1
);
this
.
groupImage
.
Controls
.
Add
(
this
.
btnPCBRect
);
this
.
groupImage
.
Controls
.
Add
(
this
.
btnImageChange
);
this
.
groupImage
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupImage
.
ForeColor
=
System
.
Drawing
.
Color
.
White
;
this
.
groupImage
.
Location
=
new
System
.
Drawing
.
Point
(
707
,
33
);
this
.
groupImage
.
Name
=
"groupImage"
;
this
.
groupImage
.
Size
=
new
System
.
Drawing
.
Size
(
697
,
809
);
this
.
groupImage
.
TabIndex
=
14
;
this
.
groupImage
.
TabStop
=
false
;
this
.
groupImage
.
Text
=
"基准图"
;
//
// groupBox4
//
this
.
groupBox4
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnNewAoi
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
aoiList
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnDel
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdateName
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnCopy
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
panAoi
);
this
.
groupBox4
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox4
.
ForeColor
=
System
.
Drawing
.
Color
.
White
;
this
.
groupBox4
.
Location
=
new
System
.
Drawing
.
Point
(
209
,
69
);
this
.
groupBox4
.
Name
=
"groupBox4"
;
this
.
groupBox4
.
Size
=
new
System
.
Drawing
.
Size
(
492
,
773
);
this
.
groupBox4
.
TabIndex
=
22
;
this
.
groupBox4
.
TabStop
=
false
;
this
.
groupBox4
.
Text
=
"ROI 参数"
;
//
// FrmAoiSetting
// FrmAoiSetting
//
//
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
None
;
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
None
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1307
,
624
);
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1413
,
851
);
this
.
Controls
.
Add
(
this
.
groupBox4
);
this
.
Controls
.
Add
(
this
.
groupImage
);
this
.
Controls
.
Add
(
this
.
groupBox2
);
this
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
Controls
.
Add
(
this
.
label1
);
this
.
Controls
.
Add
(
this
.
label1
);
this
.
Controls
.
Add
(
this
.
btnPCBRect
);
this
.
Controls
.
Add
(
this
.
panel1
);
this
.
Controls
.
Add
(
this
.
panel1
);
this
.
Controls
.
Add
(
this
.
btnCopy
);
this
.
Controls
.
Add
(
this
.
panTest
);
this
.
Controls
.
Add
(
this
.
btnUpdateName
);
this
.
Controls
.
Add
(
this
.
lblCurrImage
);
this
.
Controls
.
Add
(
this
.
flatButton1
);
this
.
Controls
.
Add
(
this
.
flatButton2
);
this
.
Controls
.
Add
(
this
.
btnImageChange
);
this
.
Controls
.
Add
(
this
.
btnDel
);
this
.
Controls
.
Add
(
this
.
btnExcute
);
this
.
Controls
.
Add
(
this
.
panAoi
);
this
.
Controls
.
Add
(
this
.
btnGetCameraImg
);
this
.
Controls
.
Add
(
this
.
btnOpenImage
);
this
.
Controls
.
Add
(
this
.
btnNewAoi
);
this
.
Controls
.
Add
(
this
.
btnSavePro
);
this
.
Controls
.
Add
(
this
.
btnSavePro
);
this
.
Controls
.
Add
(
this
.
btnOpenPro
);
this
.
Controls
.
Add
(
this
.
btnOpenPro
);
this
.
Controls
.
Add
(
this
.
imageBox1
);
this
.
Controls
.
Add
(
this
.
aoiList
);
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
Maximized
=
true
;
this
.
Maximized
=
true
;
this
.
Name
=
"FrmAoiSetting"
;
this
.
Name
=
"FrmAoiSetting"
;
...
@@ -383,8 +448,12 @@ namespace AccAOI
...
@@ -383,8 +448,12 @@ namespace AccAOI
this
.
panTest
.
ResumeLayout
(
false
);
this
.
panTest
.
ResumeLayout
(
false
);
this
.
panel1
.
ResumeLayout
(
false
);
this
.
panel1
.
ResumeLayout
(
false
);
this
.
panel1
.
PerformLayout
();
this
.
panel1
.
PerformLayout
();
this
.
groupBox1
.
ResumeLayout
(
false
);
this
.
groupBox2
.
ResumeLayout
(
false
);
this
.
groupImage
.
ResumeLayout
(
false
);
this
.
groupImage
.
PerformLayout
();
this
.
groupBox4
.
ResumeLayout
(
false
);
this
.
ResumeLayout
(
false
);
this
.
ResumeLayout
(
false
);
this
.
PerformLayout
();
}
}
...
@@ -412,5 +481,9 @@ namespace AccAOI
...
@@ -412,5 +481,9 @@ namespace AccAOI
private
Asa
.
Theme
.
FlatButton
btnCopy
;
private
Asa
.
Theme
.
FlatButton
btnCopy
;
private
Asa
.
Theme
.
FlatButton
btnPCBRect
;
private
Asa
.
Theme
.
FlatButton
btnPCBRect
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox2
;
private
System
.
Windows
.
Forms
.
GroupBox
groupImage
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox4
;
}
}
}
}
\ No newline at end of file
\ No newline at end of file
AccAOI/FrmAoiSetting.cs
查看文件 @
e66fc94
...
@@ -423,7 +423,7 @@ namespace AccAOI
...
@@ -423,7 +423,7 @@ namespace AccAOI
//AoiMethod methodInfo = ControlUtil.GetMethod(text);
//AoiMethod methodInfo = ControlUtil.GetMethod(text);
AoiMethod
methodInfo
=
new
AoiEyemTemplateMethod
();
AoiMethod
methodInfo
=
new
AoiEyemTemplateMethod
();
string
text
=
AOIResourceCulture
.
GetValue
(
"模版匹配"
);
string
text
=
AOIResourceCulture
.
GetValue
(
"模版匹配"
);
string
defaultName
=
Project
.
methodMap
.
Values
.
Count
.
ToString
().
PadLeft
(
2
,
'0'
)
+
"_"
+
text
;
string
defaultName
=
(
Project
.
methodMap
.
Values
.
Count
+
1
)
.
ToString
().
PadLeft
(
2
,
'0'
)
+
"_"
+
text
;
FrmMethodName
frmName
=
new
FrmMethodName
(
defaultName
,
new
List
<
string
>(
Project
.
methodMap
.
Keys
));
FrmMethodName
frmName
=
new
FrmMethodName
(
defaultName
,
new
List
<
string
>(
Project
.
methodMap
.
Keys
));
frmName
.
Text
=
AOIResourceCulture
.
GetValue
(
"请输入新【{0}】名称"
,
text
);
frmName
.
Text
=
AOIResourceCulture
.
GetValue
(
"请输入新【{0}】名称"
,
text
);
DialogResult
result
=
frmName
.
ShowDialog
();
DialogResult
result
=
frmName
.
ShowDialog
();
...
@@ -670,6 +670,7 @@ namespace AccAOI
...
@@ -670,6 +670,7 @@ namespace AccAOI
btnImageChange
.
Text
=
AOIResourceCulture
.
GetValue
(
"显示测试图片"
);
btnImageChange
.
Text
=
AOIResourceCulture
.
GetValue
(
"显示测试图片"
);
lblCurrImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"基准图:"
);
lblCurrImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"基准图:"
);
lblCurrImage
.
ForeColor
=
Color
.
LawnGreen
;
lblCurrImage
.
ForeColor
=
Color
.
LawnGreen
;
groupImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"基准图:"
);
imageBox1
.
Image
=
BaseImg
;
imageBox1
.
Image
=
BaseImg
;
}
}
else
else
...
@@ -678,6 +679,7 @@ namespace AccAOI
...
@@ -678,6 +679,7 @@ namespace AccAOI
imageBox1
.
Visible
=
false
;
imageBox1
.
Visible
=
false
;
btnImageChange
.
Text
=
AOIResourceCulture
.
GetValue
(
"显示基准图片"
);
btnImageChange
.
Text
=
AOIResourceCulture
.
GetValue
(
"显示基准图片"
);
lblCurrImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"测试/效果图:"
);
lblCurrImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"测试/效果图:"
);
groupImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"测试/效果图:"
);
lblCurrImage
.
ForeColor
=
Color
.
DodgerBlue
;
lblCurrImage
.
ForeColor
=
Color
.
DodgerBlue
;
}
}
}
}
...
@@ -891,7 +893,7 @@ namespace AccAOI
...
@@ -891,7 +893,7 @@ namespace AccAOI
AoiMethod
OldMethod
=
aoiControl
.
GetAoiInfo
();
AoiMethod
OldMethod
=
aoiControl
.
GetAoiInfo
();
AoiMethod
methodInfo
=
OldMethod
.
GetClone
();
AoiMethod
methodInfo
=
OldMethod
.
GetClone
();
string
text
=
ControlUtil
.
GetMethodType
(
methodInfo
);
string
text
=
ControlUtil
.
GetMethodType
(
methodInfo
);
string
defaultName
=
Project
.
methodMap
.
Values
.
Count
.
ToString
().
PadLeft
(
2
,
'0'
)
+
"_"
+
text
;
string
defaultName
=
(
Project
.
methodMap
.
Values
.
Count
+
1
)
.
ToString
().
PadLeft
(
2
,
'0'
)
+
"_"
+
text
;
FrmMethodName
frmName
=
new
FrmMethodName
(
defaultName
,
new
List
<
string
>(
Project
.
methodMap
.
Keys
));
FrmMethodName
frmName
=
new
FrmMethodName
(
defaultName
,
new
List
<
string
>(
Project
.
methodMap
.
Keys
));
frmName
.
Text
=
AOIResourceCulture
.
GetValue
(
"请输入新【{0}】名称"
,
text
);
frmName
.
Text
=
AOIResourceCulture
.
GetValue
(
"请输入新【{0}】名称"
,
text
);
DialogResult
result
=
frmName
.
ShowDialog
();
DialogResult
result
=
frmName
.
ShowDialog
();
...
...
AccAOI/FrmBase.cs
查看文件 @
e66fc94
...
@@ -45,7 +45,7 @@ namespace AccAOI
...
@@ -45,7 +45,7 @@ namespace AccAOI
private
void
ConProcess
(
System
.
Windows
.
Forms
.
Control
con
,
string
class
Name
)
private
void
ConProcess
(
System
.
Windows
.
Forms
.
Control
con
,
string
class
Name
)
{
{
if
(
con
is
FlatLabel
||
con
is
FlatButton
||
con
is
Label
||
con
is
Button
)
if
(
con
is
FlatLabel
||
con
is
FlatButton
||
con
is
Label
||
con
is
Button
)
{
{
string
newStr
=
AOIResourceCulture
.
GetString
(
AOIResourceCulture
.
GetTextIdStr
(
class
Name
,
con
.
Name
),
con
.
Text
);
string
newStr
=
AOIResourceCulture
.
GetString
(
AOIResourceCulture
.
GetTextIdStr
(
class
Name
,
con
.
Name
),
con
.
Text
);
con
.
Text
=
newStr
;
con
.
Text
=
newStr
;
...
@@ -60,6 +60,18 @@ namespace AccAOI
...
@@ -60,6 +60,18 @@ namespace AccAOI
ConProcess
(
pancon
,
class
Name
);
ConProcess
(
pancon
,
class
Name
);
}
}
}
}
else
if
(
con
is
FlatPanel
||
con
is
GroupBox
)
{
string
newStr
=
AOIResourceCulture
.
GetString
(
AOIResourceCulture
.
GetTextIdStr
(
class
Name
,
con
.
Name
),
con
.
Text
);
GroupBox
pan
=
(
GroupBox
)
con
;
foreach
(
System
.
Windows
.
Forms
.
Control
pancon
in
pan
.
Controls
)
{
ConProcess
(
pancon
,
class
Name
);
}
string
newGroupStr
=
AOIResourceCulture
.
GetString
(
AOIResourceCulture
.
GetTextIdStr
(
class
Name
,
con
.
Name
),
con
.
Text
);
con
.
Text
=
newGroupStr
;
con
.
Tag
=
newStr
;
}
}
}
public
virtual
void
LanguagePro
()
public
virtual
void
LanguagePro
()
...
...
AccAOI/Properties/en-US.resource
查看文件 @
e66fc94
FrmAoiSetting_Text=AOI
FrmAoiSetting_Text=AOI
FrmAoiSetting_btnUpdateName_Text=Rename
FrmAoiSetting_btnUpdateName_Text=Rename
FrmAoiSetting_lblCurrImage_Text=Standard Image:
FrmAoiSetting_lblCurrImage_Text=Standard Image:
FrmAoiSetting_flatButton1_Text=
Get test image
FrmAoiSetting_flatButton1_Text=
Capture
FrmAoiSetting_flatButton2_Text=
Select test image
FrmAoiSetting_flatButton2_Text=
Upload
FrmAoiSetting_btnImageChange_Text=Switch to test Image
FrmAoiSetting_btnImageChange_Text=Switch to test Image
FrmAoiSetting_btnDel_Text=Delete
FrmAoiSetting_btnDel_Text=Delete
FrmAoiSetting_btnCopy_Text=Copy
FrmAoiSetting_btnCopy_Text=Copy
FrmAoiSetting_btnExcute_Text=
Execute
FrmAoiSetting_btnExcute_Text=
Start
FrmAoiSetting_btnGetCameraImg_Text=
Get standard Image
FrmAoiSetting_btnGetCameraImg_Text=
Capture
FrmAoiSetting_flatLabel1_Text=Cameras:
FrmAoiSetting_flatLabel1_Text=Cameras:
FrmAoiSetting_btnOpenImage_Text=
Select reference picture
FrmAoiSetting_btnOpenImage_Text=
Upload
FrmAoiSetting_btnNewAoi_Text=New
FrmAoiSetting_btnNewAoi_Text=New
FrmAoiSetting_btnSavePro_Text=Save project
FrmAoiSetting_btnSavePro_Text=Save project
FrmAoiSetting_btnOpenPro_Text=Open project
FrmAoiSetting_btnOpenPro_Text=Open project
...
@@ -82,7 +82,7 @@ AoiColorMatchControl_btnClearArea_Text=Clear
...
@@ -82,7 +82,7 @@ AoiColorMatchControl_btnClearArea_Text=Clear
AoiColorMatchControl_btnImgType_Text=Original
AoiColorMatchControl_btnImgType_Text=Original
AoiColorMatchControl_btnSetArea_Text=Ellipse
AoiColorMatchControl_btnSetArea_Text=Ellipse
AoiColorMatchControl_panAreaImage_Text=Regional Image
AoiColorMatchControl_panAreaImage_Text=Regional Image
FrmAoiSetting_btnPCBRect_Text=
Set PCB Criteria Rang
e
FrmAoiSetting_btnPCBRect_Text=
Range Defin
e
AioEyemMarkControl_btnTest_Text=Apply
AioEyemMarkControl_btnTest_Text=Apply
AioEyemMarkControl_flatLabel3_Text=Similarity:
AioEyemMarkControl_flatLabel3_Text=Similarity:
AioEyemMarkControl_flatLabel2_Text=Mark area x
AioEyemMarkControl_flatLabel2_Text=Mark area x
...
@@ -117,10 +117,10 @@ Mark区域无效=Mark area is invalid.
...
@@ -117,10 +117,10 @@ Mark区域无效=Mark area is invalid.
FrmMethodName_btnOk_Text=OK
FrmMethodName_btnOk_Text=OK
FrmMethodName_btnCancel_Text=Cancel
FrmMethodName_btnCancel_Text=Cancel
请输入新【{0}】名称=Please enter a new [{0}] name.
请输入新【{0}】名称=Please enter a new [{0}] name.
显示基准图片=
Display Standard Imag
e
显示基准图片=
Tempelat
e
测试/效果图:=
Testing/Rendering Image
:
测试/效果图:=
Verify
:
显示测试图片=
Switch To Test Image
显示测试图片=
Verify
基准图:=
Standard Image
:
基准图:=
Tempelate
:
原图=Original
原图=Original
区域图像 - 效果图=Area Image - Renderings
区域图像 - 效果图=Area Image - Renderings
区域设置 - 椭圆=Locale - Ellipse
区域设置 - 椭圆=Locale - Ellipse
...
@@ -146,3 +146,10 @@ FrmMethodName_btnCancel_Text=Cancel
...
@@ -146,3 +146,10 @@ FrmMethodName_btnCancel_Text=Cancel
模版匹配=Template Matching
模版匹配=Template Matching
保存基准图=Save Standard Image
保存基准图=Save Standard Image
保存测试图=Save Test Image
保存测试图=Save Test Image
图像校准点1=图像校准点1
模板匹配1=模板匹配1
FrmAoiSetting_groupBox4_Text=Range of interest
FrmAoiSetting_groupImage_Text=Tempelate
FrmAoiSetting_groupBox2_Text=Verify
FrmAoiSetting_groupBox1_Text=Tempelate
FrmAoiSetting_label1_Text=label1
\ No newline at end of file
\ No newline at end of file
AccAOI/Properties/zh-CN.resource
查看文件 @
e66fc94
...
@@ -146,4 +146,11 @@ FrmMethodName_btnCancel_Text=取消
...
@@ -146,4 +146,11 @@ FrmMethodName_btnCancel_Text=取消
模版匹配=模版匹配
模版匹配=模版匹配
保存基准图=保存基准图
保存基准图=保存基准图
保存测试图=保存测试图
保存测试图=保存测试图
图像校准点1=图像校准点1
模板匹配1=模板匹配1
FrmAoiSetting_groupBox4_Text=ROI 参数
FrmAoiSetting_groupImage_Text=基准图
FrmAoiSetting_groupBox2_Text=测试图片
FrmAoiSetting_groupBox1_Text=基准图片
FrmAoiSetting_label1_Text=label1
AccAOI/nback/FrmAoiSettingN.Designer.cs
0 → 100644
查看文件 @
e66fc94
using
Acc.ImageBox
;
namespace
AccAOI
{
partial
class
FrmAoiSetting
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
System
.
ComponentModel
.
ComponentResourceManager
resources
=
new
System
.
ComponentModel
.
ComponentResourceManager
(
typeof
(
FrmAoiSetting
));
this
.
aoiList
=
new
Asa
.
Theme
.
FlatList
();
this
.
btnOpenPro
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnSavePro
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnNewAoi
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnOpenImage
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnGetCameraImg
=
new
Asa
.
Theme
.
FlatButton
();
this
.
panAoi
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
btnExcute
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnDel
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnImageChange
=
new
Asa
.
Theme
.
FlatButton
();
this
.
flatButton1
=
new
Asa
.
Theme
.
FlatButton
();
this
.
flatButton2
=
new
Asa
.
Theme
.
FlatButton
();
this
.
lblCurrImage
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnUpdateName
=
new
Asa
.
Theme
.
FlatButton
();
this
.
panTest
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
testImageBox1
=
new
Acc
.
ImageBox
.
AccImageBox
();
this
.
panel1
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
lblTestResult
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
imageBox1
=
new
Acc
.
ImageBox
.
AccImageBox
();
this
.
btnCopy
=
new
Asa
.
Theme
.
FlatButton
();
this
.
btnPCBRect
=
new
Asa
.
Theme
.
FlatButton
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
groupBox1
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupBox2
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupBox3
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupImage
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
panTest
.
SuspendLayout
();
this
.
panel1
.
SuspendLayout
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox2
.
SuspendLayout
();
this
.
groupBox3
.
SuspendLayout
();
this
.
groupImage
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// aoiList
//
this
.
aoiList
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
aoiList
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
aoiList
.
Inside
=
false
;
this
.
aoiList
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
97
);
this
.
aoiList
.
Name
=
"aoiList"
;
this
.
aoiList
.
SelectedIndex
=
-
1
;
this
.
aoiList
.
Size
=
new
System
.
Drawing
.
Size
(
283
,
516
);
this
.
aoiList
.
TabIndex
=
2
;
this
.
aoiList
.
SelectedIndexChanged
+=
new
Asa
.
Theme
.
Event
.
SelectedIndexChanged
(
this
.
aoiList_IndexChanged
);
//
// btnOpenPro
//
this
.
btnOpenPro
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnOpenPro
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenPro
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnOpenPro
.
Inside
=
false
;
this
.
btnOpenPro
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
20
);
this
.
btnOpenPro
.
Name
=
"btnOpenPro"
;
this
.
btnOpenPro
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnOpenPro
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnOpenPro
.
TabIndex
=
6
;
this
.
btnOpenPro
.
Text
=
"打开项目"
;
this
.
btnOpenPro
.
Click
+=
new
System
.
EventHandler
(
this
.
btnOpenPro_Click
);
//
// btnSavePro
//
this
.
btnSavePro
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnSavePro
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnSavePro
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnSavePro
.
Inside
=
false
;
this
.
btnSavePro
.
Location
=
new
System
.
Drawing
.
Point
(
147
,
20
);
this
.
btnSavePro
.
Name
=
"btnSavePro"
;
this
.
btnSavePro
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnSavePro
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnSavePro
.
TabIndex
=
7
;
this
.
btnSavePro
.
Text
=
"保存项目"
;
this
.
btnSavePro
.
Click
+=
new
System
.
EventHandler
(
this
.
btnSavePro_Click
);
//
// btnNewAoi
//
this
.
btnNewAoi
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnNewAoi
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnNewAoi
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnNewAoi
.
Inside
=
false
;
this
.
btnNewAoi
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
20
);
this
.
btnNewAoi
.
Name
=
"btnNewAoi"
;
this
.
btnNewAoi
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnNewAoi
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnNewAoi
.
TabIndex
=
8
;
this
.
btnNewAoi
.
Text
=
"新增模版"
;
this
.
btnNewAoi
.
Click
+=
new
System
.
EventHandler
(
this
.
btnNewAoi_Click
);
//
// btnOpenImage
//
this
.
btnOpenImage
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnOpenImage
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenImage
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnOpenImage
.
Inside
=
false
;
this
.
btnOpenImage
.
Location
=
new
System
.
Drawing
.
Point
(
573
,
20
);
this
.
btnOpenImage
.
Name
=
"btnOpenImage"
;
this
.
btnOpenImage
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnOpenImage
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnOpenImage
.
TabIndex
=
10
;
this
.
btnOpenImage
.
Text
=
"选择基准图片"
;
this
.
btnOpenImage
.
Click
+=
new
System
.
EventHandler
(
this
.
btnOpenImage_Click
);
//
// btnGetCameraImg
//
this
.
btnGetCameraImg
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnGetCameraImg
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnGetCameraImg
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnGetCameraImg
.
Inside
=
false
;
this
.
btnGetCameraImg
.
Location
=
new
System
.
Drawing
.
Point
(
431
,
20
);
this
.
btnGetCameraImg
.
Name
=
"btnGetCameraImg"
;
this
.
btnGetCameraImg
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnGetCameraImg
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnGetCameraImg
.
TabIndex
=
13
;
this
.
btnGetCameraImg
.
Text
=
"获取基准图片"
;
this
.
btnGetCameraImg
.
Click
+=
new
System
.
EventHandler
(
this
.
btnGetCameraImg_Click
);
//
// panAoi
//
this
.
panAoi
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
panAoi
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
panAoi
.
Location
=
new
System
.
Drawing
.
Point
(
319
,
15
);
this
.
panAoi
.
Name
=
"panAoi"
;
this
.
panAoi
.
Size
=
new
System
.
Drawing
.
Size
(
388
,
598
);
this
.
panAoi
.
TabIndex
=
15
;
this
.
panAoi
.
Paint
+=
new
System
.
Windows
.
Forms
.
PaintEventHandler
(
this
.
panAoi_Paint
);
//
// btnExcute
//
this
.
btnExcute
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnExcute
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnExcute
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnExcute
.
Inside
=
false
;
this
.
btnExcute
.
Location
=
new
System
.
Drawing
.
Point
(
545
,
20
);
this
.
btnExcute
.
Name
=
"btnExcute"
;
this
.
btnExcute
.
Size
=
new
System
.
Drawing
.
Size
(
161
,
30
);
this
.
btnExcute
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnExcute
.
TabIndex
=
16
;
this
.
btnExcute
.
Text
=
"执行测试"
;
this
.
btnExcute
.
Click
+=
new
System
.
EventHandler
(
this
.
btnExcute_Click
);
//
// btnDel
//
this
.
btnDel
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnDel
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnDel
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnDel
.
Inside
=
false
;
this
.
btnDel
.
Location
=
new
System
.
Drawing
.
Point
(
147
,
56
);
this
.
btnDel
.
Name
=
"btnDel"
;
this
.
btnDel
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnDel
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnDel
.
TabIndex
=
17
;
this
.
btnDel
.
Text
=
"删除"
;
this
.
btnDel
.
Click
+=
new
System
.
EventHandler
(
this
.
btnDel_Click
);
//
// btnImageChange
//
this
.
btnImageChange
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnImageChange
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnImageChange
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnImageChange
.
Inside
=
false
;
this
.
btnImageChange
.
Location
=
new
System
.
Drawing
.
Point
(
365
,
20
);
this
.
btnImageChange
.
Name
=
"btnImageChange"
;
this
.
btnImageChange
.
Size
=
new
System
.
Drawing
.
Size
(
161
,
30
);
this
.
btnImageChange
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnImageChange
.
TabIndex
=
18
;
this
.
btnImageChange
.
Text
=
"切换为测试图片"
;
this
.
btnImageChange
.
Click
+=
new
System
.
EventHandler
(
this
.
btnImageChange_Click
);
//
// flatButton1
//
this
.
flatButton1
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
flatButton1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
flatButton1
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
flatButton1
.
Inside
=
false
;
this
.
flatButton1
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
20
);
this
.
flatButton1
.
Name
=
"flatButton1"
;
this
.
flatButton1
.
Size
=
new
System
.
Drawing
.
Size
(
161
,
30
);
this
.
flatButton1
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
flatButton1
.
TabIndex
=
20
;
this
.
flatButton1
.
Text
=
"获取测试图片"
;
this
.
flatButton1
.
Click
+=
new
System
.
EventHandler
(
this
.
flatButton1_Click
);
//
// flatButton2
//
this
.
flatButton2
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
flatButton2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
flatButton2
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
flatButton2
.
Inside
=
false
;
this
.
flatButton2
.
Location
=
new
System
.
Drawing
.
Point
(
185
,
20
);
this
.
flatButton2
.
Name
=
"flatButton2"
;
this
.
flatButton2
.
Size
=
new
System
.
Drawing
.
Size
(
161
,
30
);
this
.
flatButton2
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
flatButton2
.
TabIndex
=
19
;
this
.
flatButton2
.
Text
=
"选择测试图片"
;
this
.
flatButton2
.
Click
+=
new
System
.
EventHandler
(
this
.
flatButton2_Click
);
//
// lblCurrImage
//
this
.
lblCurrImage
.
AutoSize
=
true
;
this
.
lblCurrImage
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
12F
,
System
.
Drawing
.
FontStyle
.
Bold
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblCurrImage
.
ForeColor
=
System
.
Drawing
.
Color
.
LawnGreen
;
this
.
lblCurrImage
.
Location
=
new
System
.
Drawing
.
Point
(
484
,
0
);
this
.
lblCurrImage
.
Name
=
"lblCurrImage"
;
this
.
lblCurrImage
.
Size
=
new
System
.
Drawing
.
Size
(
74
,
22
);
this
.
lblCurrImage
.
TabIndex
=
22
;
this
.
lblCurrImage
.
Text
=
"基准图:"
;
this
.
lblCurrImage
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleCenter
;
this
.
lblCurrImage
.
Visible
=
false
;
this
.
lblCurrImage
.
Click
+=
new
System
.
EventHandler
(
this
.
lblCurrImage_Click
);
//
// btnUpdateName
//
this
.
btnUpdateName
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnUpdateName
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnUpdateName
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnUpdateName
.
Inside
=
false
;
this
.
btnUpdateName
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
56
);
this
.
btnUpdateName
.
Name
=
"btnUpdateName"
;
this
.
btnUpdateName
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnUpdateName
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnUpdateName
.
TabIndex
=
23
;
this
.
btnUpdateName
.
Text
=
"修改"
;
this
.
btnUpdateName
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdateName_Click
);
//
// panTest
//
this
.
panTest
.
Controls
.
Add
(
this
.
testImageBox1
);
this
.
panTest
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
42
);
this
.
panTest
.
Name
=
"panTest"
;
this
.
panTest
.
Size
=
new
System
.
Drawing
.
Size
(
552
,
403
);
this
.
panTest
.
TabIndex
=
25
;
//
// testImageBox1
//
this
.
testImageBox1
.
AllowDoubleClick
=
true
;
this
.
testImageBox1
.
BackColor
=
System
.
Drawing
.
Color
.
Silver
;
this
.
testImageBox1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
testImageBox1
.
DragHandleSize
=
9
;
this
.
testImageBox1
.
GridColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
testImageBox1
.
GridColorAlternate
=
System
.
Drawing
.
Color
.
Black
;
this
.
testImageBox1
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
testImageBox1
.
Name
=
"testImageBox1"
;
this
.
testImageBox1
.
SelectionColor
=
System
.
Drawing
.
Color
.
Blue
;
this
.
testImageBox1
.
Size
=
new
System
.
Drawing
.
Size
(
552
,
403
);
this
.
testImageBox1
.
TabIndex
=
21
;
this
.
testImageBox1
.
DoubleClick
+=
new
System
.
EventHandler
(
this
.
testImageBox1_DoubleClick
);
//
// panel1
//
this
.
panel1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
panel1
.
AutoScroll
=
true
;
this
.
panel1
.
Controls
.
Add
(
this
.
lblTestResult
);
this
.
panel1
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
56
);
this
.
panel1
.
Name
=
"panel1"
;
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
312
,
19
);
this
.
panel1
.
TabIndex
=
22
;
this
.
panel1
.
Visible
=
false
;
//
// lblTestResult
//
this
.
lblTestResult
.
AutoSize
=
true
;
this
.
lblTestResult
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblTestResult
.
ForeColor
=
System
.
Drawing
.
Color
.
White
;
this
.
lblTestResult
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
5
);
this
.
lblTestResult
.
Name
=
"lblTestResult"
;
this
.
lblTestResult
.
Size
=
new
System
.
Drawing
.
Size
(
43
,
17
);
this
.
lblTestResult
.
TabIndex
=
22
;
this
.
lblTestResult
.
Text
=
"Result"
;
//
// imageBox1
//
this
.
imageBox1
.
AllowDoubleClick
=
true
;
this
.
imageBox1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
imageBox1
.
BorderStyle
=
System
.
Windows
.
Forms
.
BorderStyle
.
None
;
this
.
imageBox1
.
DragHandleSize
=
9
;
this
.
imageBox1
.
GridColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
imageBox1
.
GridColorAlternate
=
System
.
Drawing
.
Color
.
Black
;
this
.
imageBox1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
20
);
this
.
imageBox1
.
Name
=
"imageBox1"
;
this
.
imageBox1
.
SelectionColor
=
System
.
Drawing
.
Color
.
Yellow
;
this
.
imageBox1
.
SelectionMode
=
Acc
.
ImageBox
.
ImageBoxSelectionMode
.
Rectangle
;
this
.
imageBox1
.
Size
=
new
System
.
Drawing
.
Size
(
552
,
756
);
this
.
imageBox1
.
TabIndex
=
4
;
this
.
imageBox1
.
SelectionRegionChanged
+=
new
System
.
EventHandler
(
this
.
imageBox1_SelectionRegionChanged
);
this
.
imageBox1
.
DoubleClick
+=
new
System
.
EventHandler
(
this
.
imageBox1_DoubleClick
);
//
// btnCopy
//
this
.
btnCopy
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnCopy
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCopy
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnCopy
.
Inside
=
false
;
this
.
btnCopy
.
Location
=
new
System
.
Drawing
.
Point
(
147
,
20
);
this
.
btnCopy
.
Name
=
"btnCopy"
;
this
.
btnCopy
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnCopy
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnCopy
.
TabIndex
=
26
;
this
.
btnCopy
.
Text
=
"复制模版"
;
this
.
btnCopy
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCopy_Click
);
//
// btnPCBRect
//
this
.
btnPCBRect
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnPCBRect
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnPCBRect
.
ImageSize
=
new
System
.
Drawing
.
Size
(
0
,
0
);
this
.
btnPCBRect
.
Inside
=
false
;
this
.
btnPCBRect
.
Location
=
new
System
.
Drawing
.
Point
(
289
,
20
);
this
.
btnPCBRect
.
Name
=
"btnPCBRect"
;
this
.
btnPCBRect
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
30
);
this
.
btnPCBRect
.
StateColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))),
((
int
)(((
byte
)(
30
)))));
this
.
btnPCBRect
.
TabIndex
=
27
;
this
.
btnPCBRect
.
Text
=
"设置基准PCB范围"
;
this
.
btnPCBRect
.
Click
+=
new
System
.
EventHandler
(
this
.
btnPCBRect_Click
);
//
// label1
//
this
.
label1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
206
,
788
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
23
);
this
.
label1
.
TabIndex
=
23
;
this
.
label1
.
Text
=
"label1"
;
this
.
label1
.
Click
+=
new
System
.
EventHandler
(
this
.
label1_Click
);
//
// groupBox1
//
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnOpenPro
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnSavePro
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnPCBRect
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnGetCameraImg
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnOpenImage
);
this
.
groupBox1
.
ForeColor
=
System
.
Drawing
.
Color
.
White
;
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
9
,
33
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
719
,
65
);
this
.
groupBox1
.
TabIndex
=
28
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"程序信息"
;
//
// groupBox2
//
this
.
groupBox2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupBox2
.
Controls
.
Add
(
this
.
flatButton1
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
panel1
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
flatButton2
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
btnImageChange
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
btnExcute
);
this
.
groupBox2
.
ForeColor
=
System
.
Drawing
.
Color
.
White
;
this
.
groupBox2
.
Location
=
new
System
.
Drawing
.
Point
(
9
,
733
);
this
.
groupBox2
.
Name
=
"groupBox2"
;
this
.
groupBox2
.
Size
=
new
System
.
Drawing
.
Size
(
719
,
81
);
this
.
groupBox2
.
TabIndex
=
29
;
this
.
groupBox2
.
TabStop
=
false
;
this
.
groupBox2
.
Text
=
"测试信息"
;
//
// groupBox3
//
this
.
groupBox3
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupBox3
.
Controls
.
Add
(
this
.
panAoi
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
aoiList
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
btnNewAoi
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
btnDel
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
btnCopy
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
btnUpdateName
);
this
.
groupBox3
.
ForeColor
=
System
.
Drawing
.
Color
.
White
;
this
.
groupBox3
.
Location
=
new
System
.
Drawing
.
Point
(
9
,
104
);
this
.
groupBox3
.
Name
=
"groupBox3"
;
this
.
groupBox3
.
Size
=
new
System
.
Drawing
.
Size
(
719
,
624
);
this
.
groupBox3
.
TabIndex
=
29
;
this
.
groupBox3
.
TabStop
=
false
;
this
.
groupBox3
.
Text
=
"模板列表"
;
//
// groupImage
//
this
.
groupImage
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupImage
.
Controls
.
Add
(
this
.
lblCurrImage
);
this
.
groupImage
.
Controls
.
Add
(
this
.
imageBox1
);
this
.
groupImage
.
Controls
.
Add
(
this
.
panTest
);
this
.
groupImage
.
ForeColor
=
System
.
Drawing
.
Color
.
LawnGreen
;
this
.
groupImage
.
Location
=
new
System
.
Drawing
.
Point
(
734
,
33
);
this
.
groupImage
.
Name
=
"groupImage"
;
this
.
groupImage
.
Size
=
new
System
.
Drawing
.
Size
(
564
,
782
);
this
.
groupImage
.
TabIndex
=
22
;
this
.
groupImage
.
TabStop
=
false
;
this
.
groupImage
.
Text
=
"基准图"
;
//
// FrmAoiSetting
//
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
None
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1307
,
824
);
this
.
Controls
.
Add
(
this
.
groupImage
);
this
.
Controls
.
Add
(
this
.
groupBox2
);
this
.
Controls
.
Add
(
this
.
groupBox3
);
this
.
Controls
.
Add
(
this
.
label1
);
this
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
Maximized
=
true
;
this
.
Name
=
"FrmAoiSetting"
;
this
.
Text
=
"AOI"
;
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmAoiSetting_Load
);
this
.
Shown
+=
new
System
.
EventHandler
(
this
.
FrmAoiSetting_Shown
);
this
.
panTest
.
ResumeLayout
(
false
);
this
.
panel1
.
ResumeLayout
(
false
);
this
.
panel1
.
PerformLayout
();
this
.
groupBox1
.
ResumeLayout
(
false
);
this
.
groupBox2
.
ResumeLayout
(
false
);
this
.
groupBox3
.
ResumeLayout
(
false
);
this
.
groupImage
.
ResumeLayout
(
false
);
this
.
groupImage
.
PerformLayout
();
this
.
ResumeLayout
(
false
);
}
#
endregion
private
Asa
.
Theme
.
FlatList
aoiList
;
private
AccImageBox
imageBox1
;
private
Asa
.
Theme
.
FlatButton
btnOpenPro
;
private
Asa
.
Theme
.
FlatButton
btnSavePro
;
private
Asa
.
Theme
.
FlatButton
btnNewAoi
;
private
Asa
.
Theme
.
FlatButton
btnOpenImage
;
private
Asa
.
Theme
.
FlatButton
btnGetCameraImg
;
private
System
.
Windows
.
Forms
.
Panel
panAoi
;
private
Asa
.
Theme
.
FlatButton
btnExcute
;
private
Asa
.
Theme
.
FlatButton
btnDel
;
private
Asa
.
Theme
.
FlatButton
btnImageChange
;
private
Asa
.
Theme
.
FlatButton
flatButton1
;
private
Asa
.
Theme
.
FlatButton
flatButton2
;
private
AccImageBox
testImageBox1
;
private
System
.
Windows
.
Forms
.
Label
lblCurrImage
;
private
Asa
.
Theme
.
FlatButton
btnUpdateName
;
private
System
.
Windows
.
Forms
.
Panel
panTest
;
private
System
.
Windows
.
Forms
.
Label
lblTestResult
;
private
System
.
Windows
.
Forms
.
Panel
panel1
;
private
Asa
.
Theme
.
FlatButton
btnCopy
;
private
Asa
.
Theme
.
FlatButton
btnPCBRect
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox2
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox3
;
private
System
.
Windows
.
Forms
.
GroupBox
groupImage
;
}
}
\ No newline at end of file
\ No newline at end of file
AccAOI/nback/FrmAoiSettingN.cs
0 → 100644
查看文件 @
e66fc94
using
AccAOI.camera
;
using
AOI
;
using
OpenCvSharp.XFeatures2D
;
using
OpenCvSharp
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Drawing.Drawing2D
;
using
System.Drawing.Imaging
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
using
OpenCvSharp.Extensions
;
using
Acc.ImageBox
;
namespace
AccAOI
{
public
partial
class
FrmAoiSetting
:
FrmBase
{
private
control
.
ABaseControl
aoiControl
=
null
;
/// <summary>
/// 原始剪裁基准图
/// </summary>
public
static
Image
BaseImg
=
null
;
/// <summary>
/// 原始基准大图
/// </summary>
public
static
Image
OrgBaseImg
=
null
;
public
static
Eyemlib
.
EyemImage
EyemBaseImg
=
new
Eyemlib
.
EyemImage
();
public
static
Image
TestImage
=
null
;
public
static
Image
OrgTestImage
=
null
;
public
Eyemlib
.
EyemImage
EyemTestImage
=
new
Eyemlib
.
EyemImage
();
public
static
AoiProject
Project
=
null
;
private
bool
CanSel
=
true
;
private
string
DefaultPath
=
""
;
private
string
currProjectFileName
=
""
;
public
FrmAoiSetting
()
{
InitializeComponent
();
this
.
WindowState
=
FormWindowState
.
Maximized
;
}
public
FrmAoiSetting
(
string
programPath
,
Image
image
=
null
,
string
defaultPath
=
""
)
{
InitializeComponent
();
this
.
Width
=
Screen
.
PrimaryScreen
.
WorkingArea
.
Width
;
this
.
Height
=
Screen
.
PrimaryScreen
.
WorkingArea
.
Height
;
this
.
WindowState
=
FormWindowState
.
Maximized
;
CloseCurrAoi
();
if
(
aoiList
!=
null
)
aoiList
.
ItemClear
();
Project
=
null
;
if
(
TestImage
!=
null
)
{
TestImage
.
Dispose
();
TestImage
=
null
;
}
if
(
OrgTestImage
!=
null
)
{
OrgTestImage
.
Dispose
();
OrgTestImage
=
null
;
}
if
(
BaseImg
!=
null
)
{
BaseImg
.
Dispose
();
BaseImg
=
null
;
}
if
(
OrgBaseImg
!=
null
)
{
OrgBaseImg
.
Dispose
();
OrgBaseImg
=
null
;
}
if
(
testImageBox1
.
Image
!=
null
)
{
testImageBox1
.
Image
.
Dispose
();
testImageBox1
.
Image
=
null
;
}
if
(
this
.
imageBox1
.
Image
!=
null
)
{
this
.
imageBox1
.
Image
.
Dispose
();
this
.
imageBox1
.
Image
=
null
;
}
if
(!
programPath
.
Equals
(
""
))
{
// BaseImg = image;
// Project = new AoiProject(image);
string
result
=
""
;
Project
=
AoiProject
.
Load
(
programPath
,
out
result
);
if
(!
result
.
Equals
(
""
))
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"加载项目{0}失败:"
,
programPath
)
+
"\r\n"
+
result
);
}
else
{
currProjectFileName
=
programPath
;
}
}
if
(
image
!=
null
)
{
if
(
Project
!=
null
)
{
Project
.
standardImage
=
image
;
}
}
DefaultPath
=
defaultPath
;
groupImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"基准图:"
);
groupImage
.
ForeColor
=
Color
.
LawnGreen
;
}
public
string
CurrentCamera
=
""
;
private
void
FrmAoiSetting_Load
(
object
sender
,
EventArgs
e
)
{
if
(
string
.
IsNullOrEmpty
(
CurrentCamera
))
{
foreach
(
string
str
in
CameraManager
.
hikNameList
)
{
CurrentCamera
=
str
;
}
}
if
(
Project
!=
null
)
{
ShowPorject
();
}
}
private
void
btnOpenImage_Click
(
object
sender
,
EventArgs
e
)
{
System
.
Windows
.
Forms
.
OpenFileDialog
openDialog
=
new
System
.
Windows
.
Forms
.
OpenFileDialog
();
openDialog
.
Title
=
AOIResourceCulture
.
GetValue
(
"打开本地图片"
);
openDialog
.
Filter
=
"All Supported Images (*.bmp;*.dib;*.rle;*.gif;*.jpg;*.png)|*.bmp;*.dib;*.rle;*.gif;*.jpg;*.png|Bitmaps (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|Graphics Interchange Format (*.gif)|*.gif|Joint Photographic Experts (*.jpg)|*.jpg|Portable Network Graphics (*.png)|*.png|All Files (*.*)|*.*"
;
openDialog
.
DefaultExt
=
"png"
;
//openDialog.DefaultExt = "png";
System
.
Windows
.
Forms
.
DialogResult
result
=
openDialog
.
ShowDialog
();
if
(
result
==
System
.
Windows
.
Forms
.
DialogResult
.
Cancel
)
{
return
;
}
string
fileName
=
openDialog
.
FileName
;
//读取图片内容
//Image file = Image.FromFile(fileName);
// BaseImg = (Image)Image.FromFile(fileName).Clone();
//file.Dispose();
//BaseImg =Eyemlib.DeepClone(new Bitmap(fileName));
var
b
=
new
Bitmap
(
fileName
);
OrgBaseImg
=
Eyemlib
.
DeepClone
(
b
);
b
.
Dispose
();
if
(
Project
!=
null
)
Project
.
OrgImage
=
OrgBaseImg
;
BaseImg
=
ProcessBaseImage
((
Bitmap
)
OrgBaseImg
);
//(BaseImg, EyemBaseImg) = Eyemlib.ExtractPCB((Bitmap)OrgBaseImg);
if
(
Project
!=
null
)
{
Project
.
standardImage
=
BaseImg
;
}
imageBox1
.
Image
=
BaseImg
;
if
(
imageBox1
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
private
void
btnGetCameraImg_Click
(
object
sender
,
EventArgs
e
)
{
try
{
string
camera
=
CurrentCamera
;
if
(
camera
.
Equals
(
""
))
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"没有找到相机"
));
return
;
}
//将图片保存到本地重新加载
// string filePath = Application.StartupPath + @"\aimage\" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + DateTime.Now.Millisecond.ToString().PadLeft(3, '0') ;
string
filePath
=
Application
.
StartupPath
+
@"\aimage\"
;
string
fileName
=
@"base.bmp"
;
using
(
Bitmap
img
=
CameraManager
.
GetCamerImage
(
camera
))
{
if
(
img
!=
null
)
{
string
path
=
Path
.
GetFullPath
(
filePath
);
if
(!
Directory
.
Exists
(
path
))
{
Directory
.
CreateDirectory
(
path
);
}
img
.
Save
(
filePath
+
fileName
,
ImageFormat
.
Bmp
);
}
else
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"获取图片失败"
));
return
;
}
}
GC
.
Collect
();
//Image file = (Image)Image.FromFile(filePath + fileName);
//BaseImg = new Bitmap(file);
//file.Dispose();
var
b
=
new
Bitmap
(
filePath
+
fileName
);
OrgBaseImg
=
Eyemlib
.
DeepClone
(
b
);
b
.
Dispose
();
if
(
Project
!=
null
)
Project
.
OrgImage
=
OrgBaseImg
;
BaseImg
=
ProcessBaseImage
((
Bitmap
)
OrgBaseImg
);
// BaseImg = (Image)Image.FromFile(filePath+ file).Clone();
//读取图片内容
//BaseImg = (Image)img.Clone();
if
(
Project
!=
null
)
{
Project
.
standardImage
=
BaseImg
;
}
imageBox1
.
Image
=
BaseImg
;
if
(
imageBox1
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
catch
(
Exception
ex
)
{
Console
.
WriteLine
(
"btnGetCameraImg_Click Error:"
+
ex
.
ToString
());
MyMessage
.
Show
(
ex
.
ToString
());
}
}
public
Bitmap
ProcessBaseImage
(
Bitmap
orgimage
)
{
var
markroi
=
Project
?.
BaseROI
;
if
(
markroi
==
null
||
markroi
.
RoiPath
==
null
||
markroi
.
RoiPath
.
GetBounds
()==
RectangleF
.
Empty
)
{
return
Eyemlib
.
DeepClone
(
orgimage
);
}
else
{
BaseImg
=
AoiProject
.
CropBitmap
(
orgimage
,
markroi
.
RoiPath
.
GetBounds
());
return
(
Bitmap
)
BaseImg
;
}
}
public
Bitmap
ProcessTestImage
(
Bitmap
targetimage
)
{
var
markroi
=
Project
?.
BaseROI
;
if
(
markroi
==
null
||
markroi
.
RoiPath
==
null
||
markroi
.
RoiPath
.
GetBounds
()
==
RectangleF
.
Empty
)
{
return
Eyemlib
.
DeepClone
(
targetimage
);
}
else
{
RectangleF
rectangleF
=
markroi
.
RoiPath
.
GetBounds
();
var
result
=
AoiProject
.
SURF_MatchTemplate
((
Bitmap
)
OrgBaseImg
,
targetimage
,
rectangleF
,
out
Bitmap
matchBitmap
);
//var (BaseImg, EyemBaseImg, result) = Eyemlib.ExtractPCB(orgimage, markroi.RoiPath.GetBounds());
if
(!
result
)
{
MessageBox
.
Show
(
AOIResourceCulture
.
GetValue
(
"在框选区域内没有找到PCB"
));
return
null
;
}
return
matchBitmap
;
}
}
private
void
btnOpenPro_Click
(
object
sender
,
EventArgs
e
)
{
if
(
Project
!=
null
)
{
DialogResult
dialResult
=
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"是否打开新项目?"
),
AOIResourceCulture
.
GetValue
(
"提示"
),
MessageBoxButtons
.
YesNo
,
MessageBoxIcon
.
Question
);
if
(
dialResult
.
Equals
(
DialogResult
.
Yes
))
{
CloseCurrAoi
();
aoiList
.
ItemClear
();
Project
=
null
;
if
(
TestImage
!=
null
)
{
TestImage
.
Dispose
();
TestImage
=
null
;
}
if
(
OrgTestImage
!=
null
)
{
OrgTestImage
.
Dispose
();
OrgTestImage
=
null
;
}
if
(
BaseImg
!=
null
)
{
BaseImg
.
Dispose
();
BaseImg
=
null
;
}
if
(
OrgBaseImg
!=
null
)
{
OrgBaseImg
.
Dispose
();
OrgBaseImg
=
null
;
}
if
(
testImageBox1
.
Image
!=
null
)
{
testImageBox1
.
Image
.
Dispose
();
testImageBox1
.
Image
=
null
;
}
if
(
this
.
imageBox1
.
Image
!=
null
)
{
this
.
imageBox1
.
Image
.
Dispose
();
this
.
imageBox1
.
Image
=
null
;
}
GC
.
Collect
();
}
else
{
return
;
}
}
System
.
Windows
.
Forms
.
OpenFileDialog
openDialog
=
new
System
.
Windows
.
Forms
.
OpenFileDialog
();
openDialog
.
Title
=
AOIResourceCulture
.
GetValue
(
"打开项目"
);
openDialog
.
Filter
=
"(*.data)|*.data|(*.*)|*.*"
;
//openDialog.RestoreDirectory = true;
if
(
String
.
IsNullOrEmpty
(
DefaultPath
))
{
Directory
.
CreateDirectory
(
"config\\AOIConfig"
);
openDialog
.
InitialDirectory
=
Path
.
Combine
(
Application
.
StartupPath
,
"config\\AOIConfig"
);
}
else
if
(!
String
.
IsNullOrEmpty
(
DefaultPath
))
{
Directory
.
CreateDirectory
(
DefaultPath
);
openDialog
.
InitialDirectory
=
DefaultPath
;
}
//openDialog.DefaultExt = "png";
System
.
Windows
.
Forms
.
DialogResult
result
=
openDialog
.
ShowDialog
();
if
(
result
==
System
.
Windows
.
Forms
.
DialogResult
.
Cancel
)
{
return
;
}
string
fileName
=
openDialog
.
FileName
;
// Project = new AoiProject(BaseImg);
string
msg
=
""
;
Project
=
AoiProject
.
Load
(
fileName
,
out
msg
);
if
(!
msg
.
Equals
(
""
))
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"加载项目{0}失败:"
,
fileName
)
+
"\r\n"
+
msg
);
}
else
{
currProjectFileName
=
fileName
;
}
ShowPorject
();
}
private
void
btnSavePro_Click
(
object
sender
,
EventArgs
e
)
{
if
(
Project
==
null
)
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"没有项目可保存"
));
return
;
}
SaveCurrAoi
();
System
.
Windows
.
Forms
.
SaveFileDialog
saveFileDialog
=
new
System
.
Windows
.
Forms
.
SaveFileDialog
();
saveFileDialog
.
Title
=
AOIResourceCulture
.
GetValue
(
"保存项目"
);
saveFileDialog
.
Filter
=
"(*.data)|*.data|(*.*)|*.*"
;
//saveFileDialog.FileOk += (CancelEventHandler)delegate(object s, CancelEventArgs c) {
// //if (Path.GetFullPath(saveFileDialog.FileName) !=
// //Path.GetFullPath(Path.Combine(Application.StartupPath, "config\\AOIConfig")))
// // c.Cancel= true;
//};
//saveFileDialog.RestoreDirectory = true;
if
(!
String
.
IsNullOrEmpty
(
currProjectFileName
))
{
saveFileDialog
.
InitialDirectory
=
Path
.
GetFullPath
(
currProjectFileName
);
saveFileDialog
.
FileName
=
Path
.
GetFileName
(
currProjectFileName
);
}
else
if
(!
String
.
IsNullOrEmpty
(
DefaultPath
))
{
saveFileDialog
.
InitialDirectory
=
DefaultPath
;
}
else
{
Directory
.
CreateDirectory
(
"config\\AOIConfig"
);
saveFileDialog
.
InitialDirectory
=
Path
.
Combine
(
Application
.
StartupPath
,
"config\\AOIConfig"
);
}
//openDialog.DefaultExt = "png";
System
.
Windows
.
Forms
.
DialogResult
result
=
saveFileDialog
.
ShowDialog
();
if
(
result
==
System
.
Windows
.
Forms
.
DialogResult
.
Cancel
)
{
return
;
}
string
fileName
=
saveFileDialog
.
FileName
;
Project
.
Save
(
fileName
);
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"保存成功"
));
}
private
void
SaveFileDialog_FileOk
(
object
sender
,
CancelEventArgs
e
)
{
throw
new
NotImplementedException
();
}
private
void
btnNewAoi_Click
(
object
sender
,
EventArgs
e
)
{
if
(
BaseImg
==
null
)
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"请先选择基准图片"
));
return
;
}
if
(
Project
==
null
)
{
Project
=
new
AoiProject
(
BaseImg
,
OrgBaseImg
);
}
if
(
Project
.
BaseROI
.
RoiPath
==
null
||
Project
.
BaseROI
.
RoiPath
.
GetBounds
()
==
RectangleF
.
Empty
)
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"设置基准PCB范围"
));
return
;
}
//if (comType.Text.Equals(""))
//{
// MyMessage.Show("请选择类型");
// comType.Focus();
// return;
//}
//string text = comType.Text;
//AoiMethod methodInfo = ControlUtil.GetMethod(text);
AoiMethod
methodInfo
=
new
AoiEyemTemplateMethod
();
string
text
=
AOIResourceCulture
.
GetValue
(
"模版匹配"
);
string
defaultName
=
Project
.
methodMap
.
Values
.
Count
.
ToString
().
PadLeft
(
2
,
'0'
)
+
"_"
+
text
;
FrmMethodName
frmName
=
new
FrmMethodName
(
defaultName
,
new
List
<
string
>(
Project
.
methodMap
.
Keys
));
frmName
.
Text
=
AOIResourceCulture
.
GetValue
(
"请输入新【{0}】名称"
,
text
);
DialogResult
result
=
frmName
.
ShowDialog
();
if
(
result
.
Equals
(
DialogResult
.
OK
))
{
methodInfo
.
MethodName
=
frmName
.
MethodName
;
}
else
{
return
;
}
CloseCurrAoi
();
// methodInfo.MethodName = Project.methodMap.Values.Count.ToString().PadLeft(2, '0') + "_" + text;
Project
.
methodMap
.
Add
(
methodInfo
.
MethodName
,
methodInfo
);
ShowAoi
(
methodInfo
);
aoiList
.
ItemAdd
(
methodInfo
.
MethodName
);
aoiList
.
SelectedIndex
=
Project
.
methodMap
.
Count
-
1
;
if
(
imageBox1
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
private
void
ShowAoi
(
AoiMethod
method
)
{
CanSel
=
false
;
imageBox1
.
SelectNone
();
imageBox1
.
Image
=
BaseImg
;
CanSel
=
true
;
if
(
aoiControl
==
null
)
{
aoiControl
=
ControlUtil
.
GetControl
(
method
);
}
this
.
aoiControl
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
aoiControl
.
FormBorderStyle
=
FormBorderStyle
.
None
;
aoiControl
.
StartPosition
=
FormStartPosition
.
CenterParent
;
aoiControl
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
aoiControl
.
BImageBox
=
this
.
imageBox1
;
aoiControl
.
AoiInfo
=
method
;
aoiControl
.
Size
=
panAoi
.
Size
;
aoiControl
.
TitleName
=
method
.
MethodName
;
aoiControl
.
TopLevel
=
false
;
aoiControl
.
Parent
=
panAoi
;
if
(
method
.
RoiPath
!=
null
)
{
currPath
=
method
.
RoiPath
;
imageBox1
.
SelectionRegion
=
method
.
RoiPath
;
//Image threshImage = CutImage(imageBox1.Image, currPath);
//cutImage = threshImage;
aoiControl
.
SetCurrPath
(
currPath
,
true
);
}
aoiControl
.
Show
();
aoiControl
.
ShowAoiInfo
();
}
private
void
SaveCurrAoi
()
{
if
(
aoiControl
!=
null
&&
aoiControl
.
Visible
)
{
AoiMethod
method
=
aoiControl
.
GetAoiInfo
();
if
(
method
is
AoiEyemMarkMethod
)
return
;
//更新
if
(
Project
.
methodMap
.
ContainsKey
(
method
.
MethodName
))
{
Project
.
methodMap
[
method
.
MethodName
]
=
method
;
}
}
}
private
void
CloseCurrAoi
()
{
SaveCurrAoi
();
if
(
aoiControl
!=
null
)
{
if
(
aoiControl
.
Visible
)
{
aoiControl
.
Close
();
}
aoiControl
.
Dispose
();
aoiControl
=
null
;
}
}
public
void
ShowPorject
()
{
if
(
Project
!=
null
)
{
CloseCurrAoi
();
aoiList
.
ItemClear
();
BaseImg
=
Project
.
standardImage
;
OrgBaseImg
=
Project
.
OrgImage
;
imageBox1
.
Image
=
Project
.
standardImage
;
imageBox1
.
SelectionRegion
=
new
GraphicsPath
();
if
(
Project
.
methodMap
.
Count
>
0
)
{
int
index
=
0
;
foreach
(
string
key
in
Project
.
methodMap
.
Keys
)
{
aoiList
.
ItemAdd
(
key
);
if
(
index
.
Equals
(
0
))
{
aoiList
.
SelectedIndex
=
index
;
ShowAoi
(
Project
.
methodMap
[
key
]);
}
index
++;
}
}
if
(
imageBox1
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
}
private
void
aoiList_IndexChanged
(
object
sender
)
{
// int index = aoiList.SelectedIndex;
if
(
aoiList
.
SelectedIndex
>=
0
&&
(
Project
!=
null
))
{
string
text
=
aoiList
.
Text
;
// List<AoiMethod> methods = new List<AoiMethod>(Project.methodMap.Values);
if
(
Project
.
methodMap
.
ContainsKey
(
text
))
{
AoiMethod
method
=
Project
.
methodMap
[
text
];
if
(
aoiControl
!=
null
&&
aoiControl
.
TitleName
.
Equals
(
method
.
MethodName
))
{
return
;
}
else
{
CloseCurrAoi
();
ShowAoi
(
method
);
}
}
if
(
imageBox1
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
}
private
Image
cutImage
=
null
;
private
GraphicsPath
currPath
=
null
;
private
void
imageBox1_SelectionRegionChanged
(
object
sender
,
EventArgs
e
)
{
try
{
if
(!
CanSel
)
{
return
;
}
if
(
imageBox1
.
Image
==
null
||
BaseImg
==
null
||
aoiControl
==
null
)
{
return
;
}
currPath
=
imageBox1
.
SelectionRegion
;
aoiControl
.
SetCurrPath
(
currPath
);
}
catch
(
Exception
ex
)
{
}
}
private
void
btnExcute_Click
(
object
sender
,
EventArgs
e
)
{
SaveCurrAoi
();
CanSel
=
false
;
if
(
BaseImg
==
null
)
{
return
;
}
if
(
Project
==
null
)
{
return
;
}
if
(
TestImage
==
null
)
{
//MyMessage.Show("请选择测试图片");
return
;
}
lblTestResult
.
Text
=
""
;
Image
outImage
=
null
;
List
<
ResultBean
>
result
=
Project
.
CheckAll
(
TestImage
,
out
outImage
);
if
(
outImage
!=
null
)
{
if
(!
this
.
panTest
.
Visible
)
{
btnImageChange_Click
(
null
,
null
);
}
this
.
testImageBox1
.
SelectNone
();
this
.
testImageBox1
.
Image
=
outImage
;
}
if
(
result
==
null
)
{
lblTestResult
.
Text
=
"Result: null"
;
}
else
{
lblTestResult
.
Text
=
ControlUtil
.
GetResultsStr
(
result
);
}
GC
.
Collect
();
CanSel
=
true
;
}
private
void
btnDel_Click
(
object
sender
,
EventArgs
e
)
{
if
(
BaseImg
==
null
)
{
return
;
}
if
(
Project
==
null
)
{
return
;
}
if
(
this
.
aoiControl
!=
null
&&
!
string
.
IsNullOrEmpty
(
aoiControl
.
AoiInfo
.
MethodName
))
{
DialogResult
result
=
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"确定删除{0} ?"
,
aoiControl
.
TitleName
),
AOIResourceCulture
.
GetValue
(
"提示"
),
MessageBoxButtons
.
OKCancel
,
aoiControl
.
AoiInfo
.
MethodName
);
if
(
result
.
Equals
(
DialogResult
.
OK
))
{
if
(
Project
.
methodMap
.
ContainsKey
(
aoiControl
.
AoiInfo
.
MethodName
))
{
Project
.
methodMap
.
Remove
(
aoiControl
.
AoiInfo
.
MethodName
);
ShowPorject
();
}
}
}
}
private
void
btnImageChange_Click
(
object
sender
,
EventArgs
e
)
{
if
(
panTest
.
Visible
)
{
panTest
.
Visible
=
false
;
imageBox1
.
Visible
=
true
;
btnImageChange
.
Text
=
AOIResourceCulture
.
GetValue
(
"显示测试图片"
);
lblCurrImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"基准图:"
);
lblCurrImage
.
ForeColor
=
Color
.
LawnGreen
;
groupImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"基准图:"
);
groupImage
.
ForeColor
=
Color
.
LawnGreen
;
imageBox1
.
Image
=
BaseImg
;
}
else
{
panTest
.
Visible
=
true
;
imageBox1
.
Visible
=
false
;
btnImageChange
.
Text
=
AOIResourceCulture
.
GetValue
(
"显示基准图片"
);
lblCurrImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"测试/效果图:"
);
lblCurrImage
.
ForeColor
=
Color
.
DodgerBlue
;
groupImage
.
Text
=
AOIResourceCulture
.
GetValue
(
"测试/效果图:"
);
groupImage
.
ForeColor
=
Color
.
DodgerBlue
;
}
}
private
void
flatButton2_Click
(
object
sender
,
EventArgs
e
)
{
System
.
Windows
.
Forms
.
OpenFileDialog
openDialog
=
new
System
.
Windows
.
Forms
.
OpenFileDialog
();
openDialog
.
Title
=
AOIResourceCulture
.
GetValue
(
"打开本地图片"
);
openDialog
.
Filter
=
"All Supported Images (*.bmp;*.dib;*.rle;*.gif;*.jpg;*.png)|*.bmp;*.dib;*.rle;*.gif;*.jpg;*.png|Bitmaps (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|Graphics Interchange Format (*.gif)|*.gif|Joint Photographic Experts (*.jpg)|*.jpg|Portable Network Graphics (*.png)|*.png|All Files (*.*)|*.*"
;
openDialog
.
DefaultExt
=
"png"
;
//openDialog.DefaultExt = "png";
System
.
Windows
.
Forms
.
DialogResult
result
=
openDialog
.
ShowDialog
();
if
(
result
==
System
.
Windows
.
Forms
.
DialogResult
.
Cancel
)
{
return
;
}
string
fileName
=
openDialog
.
FileName
;
//读取图片内容
//Image file = (Image)Image.FromFile(fileName);
//TestImage = new Bitmap(file);
//file.Dispose();
var
b
=
new
Bitmap
(
fileName
);
OrgTestImage
=
Eyemlib
.
DeepClone
(
b
);
TestImage
=
ProcessTestImage
(
b
);
b
.
Dispose
();
testImageBox1
.
Image
=
TestImage
;
lblTestResult
.
Text
=
""
;
if
(
panTest
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
private
void
FrmAoiSetting_Shown
(
object
sender
,
EventArgs
e
)
{
panTest
.
Size
=
imageBox1
.
Size
;
panTest
.
Location
=
imageBox1
.
Location
;
panTest
.
Visible
=
false
;
}
private
void
flatButton1_Click
(
object
sender
,
EventArgs
e
)
{
string
camera
=
CurrentCamera
;
if
(
camera
.
Equals
(
""
))
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"没有找到相机"
));
return
;
}
string
filePath
=
Application
.
StartupPath
+
@"\aimage\"
;
Directory
.
CreateDirectory
(
filePath
);
string
fileName
=
@"\test.bmp"
;
using
(
Bitmap
img
=
CameraManager
.
GetCamerImage
(
camera
))
{
if
(
img
!=
null
)
{
string
path
=
Path
.
GetFullPath
(
filePath
);
if
(!
Directory
.
Exists
(
path
))
{
Directory
.
CreateDirectory
(
path
);
}
img
.
Save
(
filePath
+
fileName
,
ImageFormat
.
Bmp
);
}
else
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"获取图片失败"
));
return
;
}
}
GC
.
Collect
();
//Image file = (Image)Image.FromFile(filePath + fileName);
//TestImage = new Bitmap(file);
//file.Dispose();
var
bmp
=
new
Bitmap
(
filePath
+
fileName
);
OrgTestImage
=
Eyemlib
.
DeepClone
(
bmp
);
TestImage
=
ProcessTestImage
(
Eyemlib
.
DeepClone
(
bmp
));
bmp
.
Dispose
();
//读取图片内容
testImageBox1
.
Image
=
TestImage
;
lblTestResult
.
Text
=
""
;
if
(
panTest
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
private
void
btnUpdateName_Click
(
object
sender
,
EventArgs
e
)
{
// int index = aoiList.SelectedIndex;
if
(
aoiList
.
SelectedIndex
>=
0
&&
(
Project
!=
null
)&&(
aoiControl
!=
null
))
{
string
oldName
=
aoiList
.
Text
;
if
(
Project
.
methodMap
.
ContainsKey
(
oldName
))
{
// AoiMethod method = methods[index];
// string oldName = methods[index].MethodName;
List
<
string
>
allName
=
new
List
<
string
>(
Project
.
methodMap
.
Keys
);
allName
.
Remove
(
oldName
);
FrmMethodName
frmName
=
new
FrmMethodName
(
oldName
,
allName
);
frmName
.
Text
=
AOIResourceCulture
.
GetValue
(
"请输入修改后的名称"
);
DialogResult
result
=
frmName
.
ShowDialog
();
if
(
result
.
Equals
(
DialogResult
.
OK
))
{
string
newName
=
frmName
.
MethodName
;
if
(
newName
.
Equals
(
oldName
))
{
return
;
}
Project
.
methodMap
[
oldName
].
MethodName
=
newName
;
List
<
AoiMethod
>
methods
=
new
List
<
AoiMethod
>(
Project
.
methodMap
.
Values
);
//Project.methodMap.Remove(oldName);
//Project.methodMap.Add(newName, method);
Project
.
methodMap
.
Clear
();
aoiList
.
ItemClear
();
foreach
(
AoiMethod
m
in
methods
)
{
Project
.
methodMap
.
Add
(
m
.
MethodName
,
m
);
aoiList
.
ItemAdd
(
m
.
MethodName
);
}
aoiControl
.
TitleName
=
newName
;
}
else
{
return
;
}
}
if
(
imageBox1
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
}
private
void
lblCurrImage_Click
(
object
sender
,
EventArgs
e
)
{
try
{
Image
needSaveImage
=
null
;
if
(
panTest
.
Visible
)
{
needSaveImage
=
testImageBox1
.
Image
;
}
else
{
needSaveImage
=
imageBox1
.
Image
;
}
if
(
needSaveImage
!=
null
)
{
System
.
Windows
.
Forms
.
SaveFileDialog
saveFileDialog
=
new
System
.
Windows
.
Forms
.
SaveFileDialog
();
saveFileDialog
.
Title
=
AOIResourceCulture
.
GetValue
(
"保存项目"
);
saveFileDialog
.
Filter
=
"(*.bmp)|*.bmp"
;
System
.
Windows
.
Forms
.
DialogResult
result
=
saveFileDialog
.
ShowDialog
();
if
(
result
==
System
.
Windows
.
Forms
.
DialogResult
.
Cancel
)
{
return
;
}
string
fileName
=
saveFileDialog
.
FileName
;
needSaveImage
.
Save
(
fileName
,
ImageFormat
.
Bmp
);
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"保存成功"
));
}
}
catch
(
Exception
ex
)
{
MessageBox
.
Show
(
ex
.
ToString
());
}
}
private
void
btnLan_Click
(
object
sender
,
EventArgs
e
)
{
if
(
AOIResourceCulture
.
CurrLanguage
.
Equals
(
AOIResourceCulture
.
China
))
{
AOIResourceCulture
.
SetCurrentCulture
(
AOIResourceCulture
.
English
);
}
else
{
AOIResourceCulture
.
SetCurrentCulture
(
AOIResourceCulture
.
China
);
}
LanguageProcess
();
LanguagePro
();
if
(
aoiControl
!=
null
)
{
aoiControl
.
LanguageProcess
();
aoiControl
.
LanguagePro
();
}
}
public
override
void
LanguagePro
()
{
if
(
AOIResourceCulture
.
CurrLanguage
.
Equals
(
AOIResourceCulture
.
China
))
{
//btnLan.Text = AOIResourceCulture.GetValue("英文");
}
else
{
//btnLan.Text = AOIResourceCulture.GetValue("中文");
}
}
private
void
btnCopy_Click
(
object
sender
,
EventArgs
e
)
{
if
(
aoiControl
!=
null
&&
aoiControl
.
Visible
)
{
//保存原来的
AoiMethod
OldMethod
=
aoiControl
.
GetAoiInfo
();
AoiMethod
methodInfo
=
OldMethod
.
GetClone
();
string
text
=
ControlUtil
.
GetMethodType
(
methodInfo
);
string
defaultName
=
Project
.
methodMap
.
Values
.
Count
.
ToString
().
PadLeft
(
2
,
'0'
)
+
"_"
+
text
;
FrmMethodName
frmName
=
new
FrmMethodName
(
defaultName
,
new
List
<
string
>(
Project
.
methodMap
.
Keys
));
frmName
.
Text
=
AOIResourceCulture
.
GetValue
(
"请输入新【{0}】名称"
,
text
);
DialogResult
result
=
frmName
.
ShowDialog
();
if
(
result
.
Equals
(
DialogResult
.
OK
))
{
methodInfo
.
MethodName
=
frmName
.
MethodName
;
}
else
{
return
;
}
CloseCurrAoi
();
Project
.
methodMap
.
Add
(
methodInfo
.
MethodName
,
methodInfo
);
ShowAoi
(
methodInfo
);
aoiList
.
ItemAdd
(
methodInfo
.
MethodName
);
aoiList
.
SelectedIndex
=
Project
.
methodMap
.
Count
-
1
;
if
(
imageBox1
.
Visible
.
Equals
(
false
))
{
btnImageChange_Click
(
null
,
null
);
}
}
}
private
void
flatButton3_Click
(
object
sender
,
EventArgs
e
)
{
ConfigHelper
.
AdvanceConfigForm
a
=
new
ConfigHelper
.
AdvanceConfigForm
();
a
.
ShowDialog
();
}
//static AoiMethod BaseROI = new AoiEyemMarkMethod();
private
void
btnPCBRect_Click
(
object
sender
,
EventArgs
e
)
{
if
(
BaseImg
==
null
)
{
MyMessage
.
Show
(
AOIResourceCulture
.
GetValue
(
"请先选择基准图片"
));
return
;
}
if
(
Project
==
null
)
{
Project
=
new
AoiProject
(
BaseImg
,
OrgBaseImg
);
}
if
(
aoiControl
!=
null
&&
aoiControl
.
TitleName
.
Equals
(
Project
.
BaseROI
.
MethodName
))
{
return
;
}
else
{
CloseCurrAoi
();
ShowAoi
(
Project
?.
BaseROI
);
}
//if (imageBox1.Visible.Equals(false))
{
panTest
.
Visible
=
true
;
btnImageChange_Click
(
null
,
null
);
imageBox1
.
Image
=
OrgBaseImg
;
}
}
private
void
label1_Click
(
object
sender
,
EventArgs
e
)
{
ConfigHelper
.
AdvanceConfigForm
.
ShowEditDialog
(
this
);
}
private
void
testImageBox1_DoubleClick
(
object
sender
,
EventArgs
e
)
{
SaveImg
(
testImageBox1
,
"保存测试图"
,
"test"
);
}
private
void
imageBox1_DoubleClick
(
object
sender
,
EventArgs
e
)
{
SaveImg
(
imageBox1
,
"保存基准图"
,
"standard"
);
}
private
void
SaveImg
(
ImageBox
box
,
string
tittle
,
string
defName
)
{
if
(
box
.
Image
!=
null
)
{
try
{
System
.
Windows
.
Forms
.
SaveFileDialog
saveFileDialog
=
new
System
.
Windows
.
Forms
.
SaveFileDialog
();
saveFileDialog
.
Title
=
AOIResourceCulture
.
GetValue
(
"tittle"
);
saveFileDialog
.
Filter
=
"(*.bmp)|*.bmp|(*.*)|*.*"
;
if
(!
String
.
IsNullOrEmpty
(
DefaultPath
))
{
saveFileDialog
.
InitialDirectory
=
DefaultPath
;
}
saveFileDialog
.
FileName
=
defName
;
//openDialog.DefaultExt = "png";
System
.
Windows
.
Forms
.
DialogResult
result
=
saveFileDialog
.
ShowDialog
();
if
(
result
==
System
.
Windows
.
Forms
.
DialogResult
.
Cancel
)
{
return
;
}
string
fileName
=
saveFileDialog
.
FileName
;
Image
image
=
Eyemlib
.
DeepClone
(
box
.
Image
);
image
.
Save
(
fileName
);
}
catch
(
Exception
ex
)
{
MessageBox
.
Show
(
ex
.
ToString
());
}
}
}
private
void
panAoi_Paint
(
object
sender
,
PaintEventArgs
e
)
{
}
}
}
AccAOI/nback/FrmAoiSettingN.resx
0 → 100644
查看文件 @
e66fc94
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAa2AAAAEAIACopgAAFgAAACgAAABrAAAAwAAAAAEAIAAAAAAAgKAAAAAAAAAAAAAAAAAAAAAA
AAApKSn/Kioq/yoqKv8qKir/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ywsLP8sLCz/LCws/yws
LP8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8qKir/Kioq/ykpKf8pKSn/KCgo/ygoKP8oKCj/KCgo/ycn
J/8mJib/JiYm/yYmJv8lJSX/JSUl/yUlJf8kJCT/JCQk/yMjI/8jIyP/IyMj/yMjI/8jIyP/IyMj/yIi
Iv8iIiL/IiIi/yIiIv8hISH/ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/ISEh/yEhIf8hISH/ISEh/yEh
If8hISH/ISEh/yIiIv8hISH/ISEh/yIiIv8iIiL/IiIi/yIiIv8iIiL/IiIi/yIiIv8jIyP/IyMj/yQk
JP8kJCT/JCQk/yUlJf8lJSX/JSUl/yYmJv8mJib/JiYm/ycnJ/8nJyf/KCgo/ygoKP8oKCj/KSkp/ykp
Kf8pKSn/KSkp/yoqKv8pKSn/KSkp/ykpKf8qKir/Kioq/ykpKf8pKSn/KSkp/ykpKf8qKir/KSkp/ygo
KP8oKCj/KCgo/ykpKf8qKir/Kioq/ysrK/8qKir/Kysr/ysrK/8rKyv/LCws/ywsLP8sLCz/Kysr/yws
LP8sLCz/LCws/y0tLf8sLCz/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/Kysr/ysrK/8rKyv/Kysr/yoq
Kv8qKir/Kioq/yoqKv8pKSn/KSkp/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ycnJ/8nJyf/Jycn/ycn
J/8nJyf/Jycn/ycnJ/8nJyf/JiYm/ycnJ/8mJib/JiYm/yYmJv8mJib/JiYm/yYmJv8mJib/JiYm/yYm
Jv8mJib/JiYm/yYmJv8mJib/JiYm/yYmJv8mJib/JiYm/yYmJv8mJib/JiYm/yYmJv8mJib/Jycn/ycn
J/8nJyf/Jycn/ycnJ/8nJyf/KCgo/ygoKP8oKCj/KCgo/ykpKf8pKSn/KSkp/ykpKf8qKir/Kioq/yoq
Kv8qKir/Kysr/yoqKv8qKir/Kysr/yoqKv8qKir/Kysr/yoqKv8qKir/Kioq/ykpKf8pKSn/Kioq/yoq
Kv8pKSn/KSkp/ygoKP8oKCj/KSkp/yoqKv8qKir/Kysr/ysrK/8rKyv/Kysr/ywsLP8sLCz/LCws/yws
LP8tLS3/LS0t/y0tLf8tLS3/Li4u/y4uLv8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y0t
Lf8tLS3/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/LCws/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr
K/8rKyv/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8pKSn/KSkp/ykpKf8pKSn/KSkp/ykp
Kf8pKSn/KSkp/ykpKf8pKSn/Kioq/yoqKv8qKir/Kioq/yoqKv8pKSn/KSkp/yoqKv8qKir/Kioq/yoq
Kv8qKir/Kioq/yoqKv8qKir/Kioq/yoqKv8qKir/Kysr/ysrK/8qKir/Kysr/ysrK/8rKyv/Kysr/ysr
K/8rKyv/LCws/ysrK/8rKyv/LCws/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/Kioq/yoq
Kv8qKir/Kioq/yoqKv8pKSn/KCgo/ykpKf8qKir/Kioq/ysrK/8rKyv/Kysr/ywsLP8sLCz/LCws/y0t
Lf8tLS3/LS0t/y0tLf8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y8vL/8vLy//Ly8v/y8v
L/8uLi7/Ly8v/y8vL/8uLi7/Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8v
L/8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4u
Lv8uLi7/Li4u/y4uLv8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/Li4u/y4uLv8tLS3/LS0t/y0t
Lf8tLS3/Li4u/y4uLv8tLS3/LS0t/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/y4uLv8tLS3/LS0t/y0t
Lf8tLS3/LS0t/y0tLf8tLS3/Li4u/y0tLf8tLS3/LCws/ywsLP8sLCz/LCws/ywsLP8sLCz/Kysr/ysr
K/8rKyv/Kysr/yoqKv8qKir/Kioq/ykpKf8pKSn/KSkp/yoqKv8rKyv/Kysr/ywsLP8rKyv/LCws/yws
LP8tLS3/LS0t/y4uLv8tLS3/Li4u/y4uLv8vLy//Li4u/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8v
L/8vLy//MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zEx
Mf8xMTH/MTEx/zExMf8uLi7/Kioq/yYmJv8kJCT/IiIi/yIiIv8hISH/IyMj/yUlJf8nJyf/KCgo/ysr
K/8uLi7/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAwMP8wMDD/MDAw/zAw
MP8wMDD/MDAw/zAwMP8vLy//Ly8v/zAwMP8wMDD/Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8v
L/8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8tLS3/Li4u/y0tLf8tLS3/LS0t/y0tLf8tLS3/LS0t/yws
LP8rKyv/LCws/ysrK/8rKyv/Kysr/ysrK/8qKir/KSkp/yoqKv8pKSn/Kioq/ysrK/8sLCz/LCws/yws
LP8sLCz/LS0t/y0tLf8uLi7/LS0t/y4uLv8uLi7/Li4u/y8vL/8uLi7/Ly8v/y8vL/8wMDD/MDAw/zAw
MP8wMDD/MDAw/zAwMP8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MjIy/zIyMv8yMjL/MjIy/zIy
Mv8xMTH/Kioq/yMjI/8dHR3/GRkZ/xoaGv8eHh7/ISEh/yQkJP8kJCT/JSUl/yMjI/8hISH/HR0d/xkZ
Gf8UFBT/ERER/w8PD/8QEBD/FRUV/x4eHv8kJCT/LS0t/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIy
Mv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8wMDD/MDAw/zAw
MP8wMDD/MDAw/zAwMP8vLy//Ly8v/y8vL/8vLy//Li4u/y4uLv8uLi7/Ly8v/y4uLv8uLi7/LS0t/y0t
Lf8tLS3/LS0t/ywsLP8sLCz/Kysr/ywsLP8rKyv/Kysr/yoqKv8qKir/Kioq/yoqKv8qKir/Kysr/yws
LP8sLCz/LCws/ywsLP8sLCz/LS0t/y0tLf8uLi7/Li4u/y8vL/8uLi7/Ly8v/y8vL/8vLy//MDAw/zAw
MP8xMTH/MTEx/zExMf8xMTH/MTEx/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zMzM/8zMzP/MzMz/zIy
Mv8oKCj/Hx8f/xsbG/8iIiL/LCws/zQ0NP87Ozv/QUFB/0VFRf9HR0f/SEhI/0lJSf9ISEj/R0dH/0VF
Rf9CQkL/Pj4+/zg4OP8wMDD/Jycn/x0dHf8VFRX/Dw8P/w8PD/8RERH/GBgY/yEhIf8uLi7/NDQ0/zQ0
NP80NDT/MzMz/zQ0NP80NDT/MzMz/zMzM/8zMzP/MjIy/zMzM/8yMjL/MjIy/zIyMv8yMjL/MjIy/zIy
Mv8xMTH/MTEx/zExMf8xMTH/MDAw/zAwMP8wMDD/MDAw/y8vL/8vLy//Ly8v/y8vL/8uLi7/Li4u/y4u
Lv8uLi7/Li4u/y0tLf8sLCz/LS0t/ywsLP8sLCz/LCws/ywsLP8rKyv/Kioq/yoqKv8qKir/KSkp/ysr
K/8sLCz/LCws/ywsLP8sLCz/LCws/y0tLf8uLi7/Li4u/y4uLv8vLy//Li4u/y8vL/8vLy//Ly8v/y8v
L/8wMDD/MTEx/zExMf8xMTH/MTEx/zExMf8yMjL/MjIy/zIyMv8zMzP/MzMz/zMzM/8zMzP/NDQ0/y8v
L/8iIiL/Gxsb/yUlJf8zMzP/QEBA/0lJSf9OTk7/U1NT/1RUVP9WVlb/VlZW/1VVVf9VVVX/VFRU/1NT
U/9SUlL/UVFR/1BQUP9OTk7/TU1N/0pKSv9FRUX/Pz8//zY2Nv8pKSn/HBwc/xEREf8PDw//ExMT/xUV
Ff8aGhr/KCgo/zQ0NP81NTX/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/MzMz/zMzM/8zMzP/MzMz/zMz
M/8zMzP/MzMz/zMzM/8yMjL/MjIy/zIyMv8xMTH/MTEx/zAwMP8wMDD/MDAw/y8vL/8wMDD/Ly8v/y8v
L/8uLi7/Ly8v/y4uLv8uLi7/Li4u/y0tLf8tLS3/LCws/ywsLP8sLCz/LCws/ysrK/8qKir/Kysr/yoq
Kv8qKir/Kysr/ywsLP8sLCz/LS0t/ywsLP8tLS3/Li4u/y4uLv8uLi7/Ly8v/y8vL/8vLy//Ly8v/zAw
MP8vLy//MDAw/zAwMP8xMTH/MTEx/zExMf8yMjL/MjIy/zIyMv8yMjL/MzMz/zMzM/80NDT/MzMz/y8v
L/8gICD/Hh4e/y8vL/8/Pz//S0tL/1NTU/9XV1f/WVlZ/1paWv9ZWVn/WFhY/1dXV/9WVlb/VFRU/1NT
U/9RUVH/UFBQ/09PT/9OTk7/TU1N/0xMTP9MTEz/TExM/0tLS/9KSkr/SEhI/0NDQ/87Ozv/Li4u/x0d
Hf8RERH/Dw8P/xcXF/8YGBj/FBQU/xsbG/8mJib/Kysr/zMzM/81NTX/NTU1/zU1Nf81NTX/NDQ0/zQ0
NP8zMzP/NDQ0/zQ0NP8zMzP/MjIy/zIyMv8yMjL/MjIy/zExMf8xMTH/MDAw/zExMf8wMDD/MDAw/zAw
MP8wMDD/Ly8v/y8vL/8vLy//Li4u/y4uLv8uLi7/LS0t/y0tLf8sLCz/LS0t/ywsLP8sLCz/LCws/ysr
K/8qKir/Kioq/yoqKv8rKyv/LCws/ywsLP8tLS3/LS0t/y0tLf8uLi7/Li4u/y4uLv8uLi7/Ly8v/y8v
L/8wMDD/Ly8v/zAwMP8wMDD/MTEx/zExMf8xMTH/MTEx/zIyMv8yMjL/MjIy/zIyMv8zMzP/MzMz/zAw
MP8hISH/Hx8f/zIyMv9ERET/UVFR/1hYWP9bW1v/XFxc/1tbW/9aWlr/WVlZ/1dXV/9WVlb/VVVV/1RU
VP9SUlL/UFBQ/09PT/9NTU3/S0tL/0lJSf9HR0f/RkZG/0VFRf9FRUX/RUVF/0ZGRv9HR0f/R0dH/0dH
R/9DQ0P/Ozs7/ywsLP8aGhr/Dw8P/xISEv8dHR3/GBgY/xoaGv8uLi7/KSkp/yYnJv8qKin/NDMy/zY2
Nv82Nzb/NTY1/zQ1NP80NDP/NDQz/zMzM/8zMzP/MzMz/zIyMv8yMjL/MjIy/zExMf8xMTH/MTEx/zAw
MP8wMDD/MDAw/zAwMP8vLy//Ly8v/y8vL/8uLi7/Li4u/y4uLv8uLi7/LS0t/y0tLf8sLCz/LCws/yws
LP8sLCz/LCws/ysrK/8qKir/Kioq/ywsLP8sLCz/LS0t/y0tLf8tLS3/Li4u/y4uLv8uLi7/Ly8v/y4u
Lv8vLy//MDAw/zAwMP8wMDD/MDAw/zAwMP8xMTH/MjIy/zIyMv8yMjL/MjIy/zIyMv8zMzP/MzMz/zMz
M/8mJib/HR0d/zAwMP9ERET/UlJS/1paWv9dXV3/Xl5e/11dXf9cXFz/W1tb/1paWv9aWlr/WFhY/1ZW
Vv9TU1P/UFBQ/05OTv9NTU3/TExM/01NTf9OTk7/Tk5O/0xMTP9ISEj/RERE/0FBQf8/Pz//Pj4+/z4+
Pv9AQED/QkJC/0NDQ/9ERET/QEBA/zU1Nf8jIyP/EhIS/w8PD/8dHR3/HR0d/xYWFv8xMTH/RkdF/z09
Ov8wLyr/LSsm/zMxLf86ODT/Ojg0/zY3Nf80NTT/NDQ0/zMzM/8zMzP/MzMz/zMzM/8yMjL/MjIy/zEx
Mf8xMTH/MTEx/zAwMP8wMDD/MDAw/zAwMP8vLy//Ly8v/y8vL/8vLy//Li4u/y4uLv8uLi7/LS0t/y0t
Lf8tLS3/LS0t/ywsLP8rKyv/Kysr/yoqKv8rKyv/LCws/y0tLf8tLS3/Li4u/y4uLv8uLi7/Li4u/y8v
L/8uLi7/Ly8v/y8vL/8wMDD/MDAw/zAwMP8wMDD/MTEx/zExMf8yMjL/MjIy/zIyMv8yMjL/MzMz/zMz
M/8wMDD/Hh4e/ycnJ/8/Pz//UVFR/1paWv9eXl7/X19f/15eXv9dXV3/XV1d/1tbW/9UVFT/R0dH/zg4
OP8sLCz/IyMj/x0dHf8ZGRn/FxcX/xcXF/8YGBj/Ghoa/x8fH/8nJyf/MTEx/z09Pf9GRkb/SUlJ/0RE
RP8+Pj7/OTk5/zg4OP86Ojr/Ozs7/z8/P/9BQUH/QUFB/zo6Ov8qKir/FRUV/w4ODv8bGxv/ISIg/xoa
Gf8rKif/UlJL/1NTSv9STkP/Q0A0/zQyJv8wLiX/Ojcy/zg3Nv83NjX/NTQz/zM0M/8zNDP/MzMz/zMz
M/8yMjL/MjIy/zExMf8xMTH/MTEx/zExMf8wMDD/MDAw/y8vL/8vLy//Ly8v/y4uLv8vLy//Li4u/y4u
Lv8tLS3/Li4u/y0tLf8tLS3/LCws/ywsLP8rKyv/Kysr/ysrK/8sLCz/LCws/y0tLf8uLi7/LS0t/y4u
Lv8uLi7/Ly8v/y8vL/8vLy//MDAw/zAwMP8wMDD/MTEx/zExMf8xMTH/MjIy/zIyMv8yMjL/MzMz/zMz
M/80NDT/Kioq/x0dHf80NDT/S0tL/1hYWP9eXl7/YGBg/19fX/9fX1//XV1d/1RUVP9AQED/KSkp/xoa
Gv8TExP/ERER/xAQEP8RERH/EBAQ/xEREf8RERH/EhIS/xEREf8QEBD/EBAQ/xEREf8RERH/EhIS/xkZ
Gf8mJib/ODg4/0RERP9CQkL/Ojo6/zQ0NP80NDT/NjY2/zk5Of89PT3/QEBA/zw8PP8tLS3/FxcX/w0N
Df8aGxr/JiYk/yAfHP8wLiP/fnVM/2pkTf9nYk3/YltH/1FJOf8zLiH/KCYe/zIyLP83ODP/NTY0/zQ0
M/8zNDP/MzMz/zMzM/8yMjL/MjIy/zIyMv8xMTH/MTEx/zExMf8wMDD/MDAw/zAwMP8vLy//Ly8v/y8v
L/8vLy//Li4u/y0tLf8uLi7/LS0t/ywsLP8tLS3/LCws/ysrK/8rKyv/Kysr/y0tLf8tLS3/Li4u/y4u
Lv8uLi7/Ly8v/y8vL/8vLy//MDAw/zAwMP8wMDD/MDAw/zExMf8xMTH/MTEx/zIyMv8yMjL/MzMz/zMz
M/8zMzP/MzMz/yQkJP8jIyP/Pj4+/1JSUv9cXFz/YGBg/2FhYf9gYGD/XV1d/05OTv8xMTH/Ghoa/xER
Ef8RERH/ExMT/xoaGv8lJSX/Li4u/zc3N/88PDz/Pj4+/z4+Pv88PDz/Nzc3/zAwMP8nJyf/HR0d/xUV
Ff8RERH/ERER/xEREf8TExP/HR0d/zIyMv9BQUH/PT09/zMzM/8vLy//MDAw/zQ0NP85OTn/PT09/zw8
PP8uLi7/FxcX/w0ODP8eHx3/Lism/y4pH/9USSP/0bZM/6SRTf97cUv/cmpM/2dgRv9NSDb/Kycc/yMg
Gv8wLyv/NDU0/zQ1M/8zNDP/MzMz/zMzM/8yMjL/MjIy/zIyMv8yMjL/MTEx/zExMf8xMTH/MDAw/zAw
MP8vLy//Ly8v/y8vL/8vLy//Li4u/y4uLv8tLS3/LS0t/y0tLf8tLS3/Kysr/ysrK/8rKyv/LS0t/y4u
Lv8tLS3/Li4u/y8vL/8vLy//Ly8v/y8vL/8wMDD/MDAw/zExMf8wMDD/MTEx/zIyMv8xMTH/MjIy/zMz
M/8zMzP/MzMz/zMzM/8gICD/KCgo/0VFRf9XV1f/X19f/2FhYf9hYWH/X19f/05OTv8tLS3/FRUV/xAQ
EP8UFBT/JCQk/zk5Of9KSkr/UVFR/05OTv9ISEj/QkJC/z09Pf86Ojr/Nzc3/zc3N/86Ojr/PDw8/0BA
QP9DQ0P/QEBA/zMzM/8iIiL/FRUV/xEREf8QEBD/ExMT/x8fH/83Nzf/Pj4+/zMzM/8rKyv/LCws/zAw
MP82Njb/Ozs7/zo6Ov8rKyv/FRYU/w8QDv8oJiH/ODMp/zo3Iv9qWiX/8c5H/+TCSP+nkEj/hHVJ/3hs
Sf9kW0T/QTos/yAcFP8gHxz/MDEv/zQ0M/80NDP/MzMz/zIyMv8yMjL/MjIy/zExMf8yMjL/MTEx/zAw
MP8xMTH/MDAw/y8vL/8vLy//Ly8v/y4uLv8vLy//Li4u/y4uLv8uLi7/LS0t/ywsLP8sLCz/LCws/yws
LP8tLS3/Li4u/y0tLf8uLi7/Ly8v/y8vL/8vLy//Ly8v/zAwMP8wMDD/MTEx/zAwMP8xMTH/MjIy/zIy
Mv8yMjL/MzMz/zMzM/8yMjL/Hh4e/y0tLf9JSUn/Wlpa/2FhYf9iYmL/YWFh/1ZWVv80NDT/FhYW/xAQ
EP8aGhr/NTU1/05OTv9TU1P/SkpK/z4+Pv82Njb/MDAw/y4uLv8sLCz/Kioq/ykpKf8nJyf/JSUl/yIi
Iv8hISH/ICAg/yMjI/8pKSn/NDQ0/z4+Pv86Ojr/JiYm/xYWFv8RERH/ERER/xcXF/8sLCz/PDw8/zEx
Mf8pKSn/KSkp/y0tLf80NDT/Ojo6/zg4OP8nJyf/ExMT/xUTDv80MSf/Qz4o/01DIP+LdCT/+tA8//zR
QP/VtkH/mING/391Sf9xZkv/U008/ygmHP8YGBL/JSQi/zY0M/80NDT/MzMz/zMzM/8yMjL/MjIy/zEx
Mf8xMTH/MDAw/zAwMP8wMDD/Ly8v/zAwMP8vLy//Li4u/y8vL/8vLy//Li4u/y4uLv8tLS3/LCws/y0t
Lf8sLCz/LCws/y0tLf8uLi7/Li4u/y8vL/8vLy//Ly8v/y8vL/8vLy//MDAw/zAwMP8xMTH/MTEx/zIy
Mv8yMjL/MjIy/zIyMv8zMzP/MjIy/x8fH/8vLy//TExM/1xcXP9hYWH/YmJi/19fX/9FRUX/HR0d/xAQ
EP8bGxv/PDw8/1VVVf9RUVH/QkJC/zk5Of81NTX/Nzc3/zw8PP9CQkL/RkZG/0dHR/9GRkb/RERE/0ND
Q/9BQUH/Pj4+/zY2Nv8sLCz/IyMj/xwcHP8aGhr/Hh4e/ykpKf85OTn/NjY2/yAgIP8TExP/ERER/xQU
FP8lJSX/Ojo6/y8vL/8lJSX/JiYm/ysrK/8zMzP/ODg4/zQ0NP8gICD/FRIP/x4bE/9CPCv/UkUn/15P
Gv+piBb/9scn//7PNf/yyzr/uZ0+/4p5R/93bkv/YllJ/zUxJ/8bGRP/GxkX/zAwL/80MzP/MzMz/zMz
M/8yMjL/MTEx/zExMf8xMTH/MTEx/zExMf8wMDD/MDAw/y8vL/8vLy//Li4u/y4uLv8uLi7/Li4u/y4u
Lv8tLS3/LCws/ywsLP8sLCz/LS0t/y4uLv8uLi7/Ly8v/y4uLv8vLy//MDAw/zAwMP8wMDD/MTEx/zEx
Mf8yMjL/MjIy/zIyMv8yMjL/MzMz/zMzM/8fHx//Li4u/0xMTP9cXFz/YmJi/2JiYv9aWlr/MzMz/xMT
E/8VFRX/NjY2/1VVVf9RUVH/QkJC/zw8PP89PT3/RkZG/01NTf9GRkb/ODg4/ysrK/8hISH/Gxsb/xkZ
Gf8YGBj/GRkZ/xsbG/8fHx//Jycn/zExMf85OTn/ODg4/ykpKf8cHBz/FxcX/xoaGv8pKSn/ODg4/ygo
KP8VFRX/EhIS/xMTE/8kJCT/OTk5/ysrK/8iIiL/JCQk/yoqKv8zMzP/ODg4/y8vL/8aGBf/FRMN/y4p
Hf9KQin/XE4f/3NaFf/Hnwz/67sV//3MLf/8zzb/07I8/5N/Rf98cUv/aWFK/z87Lf8eHBb/FxUU/ysp
KP8zMzP/MzMz/zMzM/8yMjL/MjIy/zExMf8xMTH/MTEx/zAwMP8wMDD/MDAw/y8vL/8vLy//Li4u/y4u
Lv8uLi7/LS0t/y0tLf8sLCz/LS0t/ywsLP8uLi7/Li4u/y8vL/8vLy//Ly8v/y8vL/8vLy//MDAw/zAw
MP8xMTH/MjIy/zIyMv8yMjL/MzMz/zMzM/8zMzP/ISEh/ywsLP9LS0v/XFxc/2JiYv9jY2P/U1NT/yUl
Jf8RERH/JCQk/09PT/9WVlb/RkZG/z8/P/9FRUX/UFBQ/0dHR/8wMDD/Gxsb/xUVFf8VFRX/FhYW/xkZ
Gf8cHBz/Hh4e/x4eHv8eHh7/HBwc/xoaGv8ZGRn/GBgY/xkZGf8fHx//Ly8v/zc3N/8nJyf/GBgY/xUV
Ff8eHh7/MzMz/ywsLP8XFxf/EhIS/xQUFP8nJyf/NjY2/yUlJf8fHx//IyMj/yoqKv80NDT/NjY2/yUk
JP8TExD/FxQM/z85J/9TSCT/Z1YX/5V2Df/ntgj/6bcL//vKIv/9zjD/48A4/5uHQv9/ckv/a2NN/0RA
NP8gHhn/FRQT/yMiIf80MzP/MzMz/zMzM/8yMjL/MjIy/zExMf8xMTH/MDAw/zAwMP8vLy//MDAw/y8v
L/8vLy//Li4u/y4uLv8uLi7/LS0t/y0tLf8sLCz/LCws/y4uLv8vLy//Li4u/y8vL/8vLy//Ly8v/zAw
MP8wMDD/MTEx/zExMf8xMTH/MjIy/zIyMv8zMzP/NDQ0/yUlJf8nJyf/SEhI/1tbW/9iYmL/YmJi/05O
Tv8eHh7/ExMT/zY2Nv9ZWVn/T09P/0NDQ/9HR0f/U1NT/0JCQv8hISH/FBQU/xUVFf8bGxv/JiYm/zMz
M/8+Pj7/RERE/0VFRf9ERET/RERE/0NDQ/9BQUH/PDw8/zQ0NP8qKir/ISEh/xwcHP8aGhr/Hh4e/y4u
Lv8xMTH/Gxsb/xQUFP8ZGRn/Ly8v/ysrK/8WFhb/EhIS/xYWFv8tLS3/Ly8v/x8fH/8eHh7/IyMj/y0t
Lf81NTX/Ly8v/xgYF/8UEQ7/KCMZ/0lCJ/9eUB//dl8Q/82kDv/0vgn/7LgI//nGHP/+zC7/78Y3/6KM
QP9+c0n/bGVN/0hENv8iIBr/FxUU/x4dHf8zMzP/MzMz/zMzM/8yMjL/MTEx/zExMf8xMTH/MTEx/zAw
MP8vLy//Ly8v/y8vL/8uLi7/Ly8v/y4uLv8uLi7/LS0t/ywsLP8tLS3/Ly8v/y8vL/8uLi7/Ly8v/zAw
MP8wMDD/MDAw/zExMf8xMTH/MTEx/zIyMv8yMjL/MjIy/zMzM/8rKyv/IiIi/0NDQ/9aWlr/YmJi/2Ji
Yv9LS0v/Ghoa/xcXF/9FRUX/Wlpa/0pKSv9HR0f/U1NT/0hISP8hISH/FBQU/xcXF/8mJib/PDw8/0lJ
Sf9BQUL/MjEy/yMjI/8aGhr/FBQV/xISE/8SEhP/ExMV/xgXGf8fHyD/Kyor/zg4OP88PTz/MzMz/yYm
Jv8dHR3/HBwc/yMjI/8yMjL/HR0d/xMTE/8YGBj/Ly8v/yYmJv8VFRX/ExMT/xwcHP8zMzP/JCQk/xwc
HP8eHh7/JSUl/zExMf80NDT/ISEh/xERD/8VEw3/Pzkp/1RJJf9rWBn/lHYN//bFFP/3wgv/7rwI//fF
GP/+ziv/8sg3/6aOPv98cUr/bGRP/0ZCN/8iHxv/FhYU/xwcG/8zMzL/MjIy/zIyMv8yMjL/MTEx/zEx
Mf8xMTH/MDAw/zAwMP8wMDD/Ly8v/y4uLv8uLi7/Ly8v/y4uLv8uLi7/LS0t/y0tLf8uLi7/Li4u/y8v
L/8vLy//Ly8v/zAwMP8wMDD/MTEx/zIyMv8yMjL/MjIy/zIyMv8zMzP/MTEx/x0dHf88PDz/VlZW/2Fh
Yf9iYmL/TExM/xkZGf8aGhr/Tk5O/1hYWP9KSkr/TU1N/1RUVP8uLi7/FBQU/xgYGP8rKyv/RkZG/0RE
RP8qKir/FRUV/w4ND/8MCw3/DAsO/wwLD/8MChD/DQsQ/w0LEf8NChL/DQoS/wwKEP8MChD/Dg0R/xcW
GP8qKir/OTk5/zExMf8jIyP/HR0d/yEhIf8wMDD/Gxsb/xISEv8aGhr/Ly8v/x4eHv8UFBT/FRUV/ygo
KP8tLS3/HBwc/xoaGv8gICD/Kysr/zQ0NP8rKyr/ExQS/w8PDP8qKB7/SEMq/2FSIP95ZBP/2K0a//zH
FP/6xAz/8r4K//jEFv/+zSr/9Mo1/6GMPf97cUj/a2JO/0I9M/8iIBv/FRYU/xscG/8zMzP/MjIy/zIy
Mv8yMjL/MTEx/zAwMP8xMTH/MDAw/y8vL/8vLy//Ly8v/y8vL/8uLi7/Li4u/y4uLv8tLS3/LCws/y4u
Lv8uLi7/Ly8v/zAwMP8wMDD/MDAw/zExMf8xMTH/MTEx/zIyMv8zMzP/MzMz/zQ0NP8gICD/MjIy/1FR
Uf9fX1//YmJi/1BQUP8cHBz/HBwc/1JSUv9XV1f/S0tL/1RUVP9KSkr/Gxsb/xUVFf8lJSX/RkZG/0JC
Qv8hISH/Dw8P/wwLDP8MCxD/DgwS/xANF/8VEBn/GBIf/xoTI/8cFCb/HBQm/xwTJ/8aESX/GA8j/xUN
Hf8QCxn/DgoU/w0KE/8VFBn/LS0u/zU0Nf8nJij/Hx8f/yIiIv8uLi7/FhYW/xISEv8iIiL/Kysr/xgY
GP8UFBT/HBwc/zExMf8fHx//GBgY/xwcHP8lJSX/MTEx/zExMP8YGBj/Dw8O/xoYE/9BPSz/V0wo/29d
G/+mhxT//cof//7HEv/6xAv/9L4J//jEFv/+zSf/8MY2/5uEPf94bUn/Z19N/zg1Lf8iIR3/ExMT/x4e
Hv8yMjL/MjIy/zIyMv8yMjL/MTEx/zExMf8wMDD/MDAw/zAwMP8vLy//Li4u/y4uLv8uLi7/Li4u/y4u
Lv8tLS3/Li4u/y8vL/8vLy//Ly8v/zAwMP8xMTH/MTEx/zExMf8yMjL/MjIy/zIyMv8zMzP/KSkp/ycn
J/9JSUn/XV1d/2JiYv9WVlb/ISEh/xoaGv9SUlL/WFhY/01NTf9YWFj/PT09/xUVFf8ZGRn/Ojo6/0lJ
SP8jJCP/Dw8P/wwLDf8NDBD/EQ8V/xcTHv8fGSn/JyA0/y8kP/81KEj/OCpM/zkpUv85KFP/NyVS/zMh
Tv8uHkf/Jxk9/x4UMf8ZECj/Ew0g/w4JFv8QDRT/IyIl/zIxM/8nJyf/Hx8f/yUlJf8nJyf/ERER/xQU
FP8rKyv/Hx8f/xUVFf8XFxf/Kysr/yUlJf8XFxf/GRkZ/yAgIP8tLS3/MzMz/x8fH/8PEA//EA4K/zg2
K/9QRy3/Zlcj/4VpFf/tvRr//skY//3HDv/7xQn/9L8I//nFFf/+zSr/6sE0/497P/91akj/YlpL/y8r
I/8iIB7/EhIS/yMjI/8yMjL/MjIy/zIyMv8xMTH/MDAw/zAwMP8wMDD/Ly8v/y8vL/8vLy//Li4u/y8v
L/8uLi7/Li4u/y0tLf8uLi7/Ly8v/y8vL/8wMDD/MTEx/zAwMP8xMTH/MTEx/zIyMv8yMjL/MzMz/zIy
Mv8dHR3/Pz8//1hYWP9hYWH/XFxc/yoqKv8WFhb/Tk5O/1lZWf9PT0//Wlpa/zQ0NP8UFBT/ICAg/0lJ
Sf83Nzf/ExMT/wwMDf8NCxD/FA8Y/x4XJP8qIjT/NyxG/0I1Vv9JOGL/Szhq/0s1cP9KMnP/Ry5y/0Ur
cv9DKHL/QCVu/z4ia/87ImP/Nx5Z/y4aS/8jFDr/GxAq/xQLHv8PChb/IR8l/y8vMP8lJSX/ICAg/ysr
K/8YGBj/ERER/yAgIP8oKCj/GBgY/xYWFv8lJSX/Kioq/xcXF/8XFxf/HR0d/ykpKf8yMjL/JCQk/xAQ
Ef8NDgv/Kykg/0lDLv9eUSf/d2Ia/8ifDf/8xxP//skR//7HCv/8wwn/9L4I//rHGv/9zCz/2LM1/4Ny
P/9vZUn/VVFC/ygmH/8fHhz/EBAQ/yoqKv8zMzP/MjIy/zIyMv8xMTH/MTEx/zAwMP8wMDD/Ly8v/y8v
L/8uLi7/Ly8v/y4uLv8tLS3/Li4u/y8vL/8wMDD/Ly8v/zAwMP8xMTH/MTEx/zExMf8yMjL/MzMz/zIy
Mv8zMzP/IyMj/zAwMP9QUFD/X19f/19fX/85OTn/FBQU/0ZGRv9cXFz/UlJS/1tbW/8xMTH/FBQU/ykp
Kf9NTU3/JiYm/w4OD/8NCxD/EQ8W/xwYI/8tJTf/PjNP/0s8Yv9RQG7/UTt5/040ff9NKYn/UR+f/1IZ
rf9TErf/VA69/1QMv/9SDbr/TQ6v/0gRm/8/FIH/OBds/zIZXP8qFUn/HxA2/xUMI/8QChr/JSMr/ysq
Lv8jIiP/JCQl/yMjI/8RERH/GBgY/ysrK/8bGxv/FhYW/yAgIP8tLS3/FxcX/xUVFf8aGhr/JSUl/zEx
Mf8oKCj/ERER/w0ODP8dHRj/Qj4v/1ZLKv9rWhr/pIEN//S+Cf/9xxD//scN//7HB//6xAb/9L4J//zJ
Hf/9zCr/u500/3lsQv9nYUr/Qj81/yYmIP8ZGhn/EhIR/zAwMP8yMjL/MjIy/zIyMv8xMTH/MDAw/zAw
MP8vLy//MDAw/y8vL/8uLi7/Ly8v/y4uLv8uLi7/Ly8v/zAwMP8wMDD/MTEx/zAwMP8xMTH/MTEx/zIy
Mv8yMjL/MzMz/y8vL/8fHx//RERE/1tbW/9hYWH/S0tL/xUVFf83Nzf/X19f/1NTU/9bW1v/MzMz/xMT
E/8tLS3/S0tL/x0dHf8NDQ7/DgwS/xYTHf8oIjL/PTNL/05AY/9WQ3T/Vj97/1Iwif9WIan/VRS9/1MN
xf9YD83/XhLb/2YW6/9rGPL/axj0/2oW9v9rE/P/Zg7u/2IK5P9WCcb/Qw2R/zMSZv8tFFD/IQ86/xYK
Jv8WECD/Kigu/yYlJ/8jIiT/KCgo/xISEv8TExP/Kioq/x4eHv8XFxf/Hx8f/y4uLv8YGBj/FBQU/xgY
GP8jIyP/MDAw/ysrK/8TExP/DQ0N/xQTEf89Oi//TkYs/19SH/99Yg//2q4G//jCB//9xw7//scL//3G
B//3wQb/9L8N//3LIv/2yS//loE3/3JlRv9gW0r/Ly0l/yYmJP8VFhT/Ghoa/zMzM/8yMjL/MjIy/zEx
Mf8wMDD/MTEx/zAwMP8vLy//Ly8v/y4uLv8vLy//Li4u/y0tLf8vLy//MDAw/zAwMP8xMTH/MTEx/zEx
Mf8xMTH/MjIy/zIyMv8zMzP/ISEh/zIyMv9SUlL/X19f/1lZWf8jIyP/JCQk/15eXv9VVVX/W1tb/zw8
PP8TExP/LCws/0pKSv8ZGRn/DQ0O/xAOE/8dGCX/Mys//0o/W/9XRnL/WUN+/1U2if9YIbP/VA/C/1EQ
vv9gGNv/biP1/3In/P90J/3/cyX8/3Ei/v9vHv3/bRr9/24Y/f9sFP3/bBH9/2wO+v9mC/D/UgnB/zYO
b/8qEFD/IA83/xQLIv8jHyn/KCcq/yQkJf8pKSn/FRUV/xEREf8nJyf/IiIi/xkZGf8fHx//Li4u/xkZ
Gf8UFBT/FxcX/yEhIf8wMDD/LCws/xMTE/8NDQ3/Dw0N/zg1MP9EQC//U0cm/2JQD/+Ydwr/6bcE//rD
Cf/+yAz//sUI//zFBP/1vgX/98MR//7KJv/ftjH/fW46/2lhSP9RTED/JyUi/yEhIP8QEBD/JiYm/zIy
Mv8xMTH/MTEx/zExMf8wMDD/MDAw/y8vL/8vLy//Ly8v/y4uLv8vLy//Li4u/y8vL/8wMDD/MDAw/zAw
MP8xMTH/MjIy/zIyMv8yMjL/MzMz/y8vL/8gICD/RUVF/1tbW/9fX1//Ozs7/xYWFv9TU1P/Wlpa/1lZ
Wf9KSkr/FBQU/ygoKP9MTEz/GRkZ/w0MDv8RDxX/IR0o/zozSP9SRGj/XEh7/1k/hP9ZKKn/VxLE/04P
tv9kHd//cyr5/3cw/f92Lv7/dSr+/3Qm/v9xIf7/bxz+/24X/f9sEv7/aw79/2kM/P9qC/z/agv8/2kM
+P9pDfP/XAjX/zYMbv8nDkn/Gg0s/x4WKP8pJi3/JiUn/ygoKP8WFhb/EBAQ/ycnJ/8kJCT/Gxsb/yEh
If8tLS3/GBgY/xMTE/8WFhb/ISEh/zAwMP8sLCz/ExMT/w0NDf8MCgr/MzEu/z88Mf9IQSn/UEMV/3tn
Gv+zjAn/87wF//3GC//+xgr//cYF//rDBP/zvQb//Mgb//zLJ/+ukDX/b2VA/2JbSf82Myz/KSon/xkZ
Gf8RERH/MTEx/zIyMv8xMTH/MTEx/zAwMP8wMDD/MDAw/y8vL/8vLy//Li4u/y8vL/8uLi7/Ly8v/zAw
MP8wMDD/MTEx/zExMf8xMTH/MjIy/zMzM/8zMzP/IyMj/zExMf9SUlL/Xl5e/1NTU/8ZGRn/Ojo6/19f
X/9YWFj/WFhY/xkZGf8gICD/Tk5O/xwdHP8NDQ7/EQ8V/yQgLf9BOU7/WEpu/15Kf/9aPIz/Wx+//00O
tP9ZF83/cyv3/3cz/v94M/3/dzD+/3Qs/v9xJv7/byD+/20Z/P9qEvv/aAz7/2UG+/9lA/n/ZQP5/2YE
9v9mBPb/Zgf1/2gK9P9pC/L/WQrL/ysNVf8gDTn/HhIq/ygkMP8nJin/KSkp/xUVFf8RERH/KCgo/yUl
Jf8dHR3/JCQk/y0tLf8WFhb/ExMT/xYWFv8hISH/MTEx/ysrK/8TExP/Dg4O/wkICP8xMC//PToz/0E7
Lv9ANxj/cF8o/4twF//UpQb/+MAF//7HCv/9xgf//cUD//i/BP/2wA3//cki/+q/Lf9+bjX/Z19C/1FP
RP8mJiH/JiYl/xMTEv8eHh7/MjIy/zExMf8xMTH/MTEx/zAwMP8wMDD/Ly8v/y8vL/8vLy//Ly8v/y4u
Lv8wMDD/MDAw/zAwMP8xMTH/MjIy/zIyMv8yMjL/MzMz/zIyMv8eHh7/QkJC/1lZWf9eXl7/MzMz/x4e
Hv9dXV3/WVlZ/15eXv8oKCj/GBgY/0tLS/8lJSX/DQ0O/xEOFf8kIC3/QjpR/1tLcv9fSoT/WzmW/1sX
yf9KEKv/ZSLj/3g0+/97N/7/eTX+/3gw/v91LP7/ciT8/2wc+v9pE/f/Zgr0/2EF8P9fAur/XQDl/10A
5v9eAef/YAHl/2EC5/9kAur/ZgTs/2gG7v9oCO3/QgmO/yINPf8hEy//KSQx/ykoK/8pKSn/ERER/xMT
E/8sLCz/JSUl/yAgIP8oKCj/Kioq/xQUFP8SEhL/FhYW/yMjI/8yMjL/KCgo/xISEv8ODg7/BwcH/zAw
MP85OTX/Ozgw/zQvHP9cTyn/iHQv/5p5C//suAT/+8QI//7GCf/+xQX/+8MC//S8BP/8xhb//Mkk/7SV
Lv9vYjz/YVlJ/zUyKv8sLSv/HB0c/w8PD/8vLy//MjIy/zExMf8xMTH/MDAw/zAwMP8wMDD/Ly8v/y4u
Lv8vLy//Ly8v/zAwMP8xMTH/MDAw/zExMf8xMTH/MjIy/zMzM/8zMzP/Jycn/ysrK/9OTk7/XV1d/1FR
Uf8ZGRn/RUVF/15eXv9cXFz/Q0ND/xMTE/89PT3/NTU0/w8PD/8QDxH/Ih8o/0I7Tf9bTnH/YUuF/1w5
mv9WFsf/TBGt/24o7/96Ofz/ezn+/3s2/v95Mv7/dCz8/3Ai+v9rFvT/ZAzr/1YH1P9aEcj/WxfB/04K
tP9PAcT/XQLi/18E5f9gBeH/XwLa/1cDyf9eA9b/ZALj/2YD6f9XB8D/Igw9/yYYNf8uJzb/LSov/yYm
Jv8PDw//GRkZ/y8vL/8mJib/JCQk/y4uLv8kJCT/EhIS/xISEv8XFxf/JSUl/zQ0NP8jIyP/ERER/w0N
Df8ICAj/MTEx/zg5N/83NjP/LSof/05GL/95ajn/iXEg/8SZBP/0vgX//sYL//7FCP/9xQP/98AB//W/
Cf/9yh//6b0p/3loM/9kXEL/UEs//yknIv8nKCb/FBQU/xwcHP8yMjL/MTEx/zExMf8wMDD/MTEx/zAw
MP8wMDD/Ly8v/y8vL/8vLy//MDAw/zExMf8xMTH/MTEx/zExMf8yMjL/MzMz/zQ0NP8fHx//OTk5/1VV
Vf9dXV3/NTU1/yEhIf9gYGD/W1tb/11dXf8ZGRn/Jycn/0hISP8TExP/Dw0R/x4aJP89N0r/W01v/2JO
hP9ePJr/WhXJ/0sTq/9xK/P/ezv+/3w7/v97Of7/eTP+/3Mq/P9tHvb/ZBHo/1AJwP86A5L/Th2e/1wo
rP9IEJr/SwO3/10D3P9gB9//Xwbe/1gD0/9NDan/TSCO/04iiv9UDrP/YALb/1wF0v8iDjr/LyI7/zIr
Ov8xLjP/HBwc/w8PD/8mJib/MTEx/ygoKP8pKSn/MjIy/xsbG/8RERH/ExMT/xkZGf8qKir/NTU1/x4e
Hv8RERH/CwsL/wkJCf80NDT/OTo4/zU2NP8oJiD/R0Qz/25jP/+CcjT/lXUM/+i1A//8xQf//sYJ//7F
A//7wgD/9LwC//3GF//9yCL/pYgt/2leOf9dVkb/Lywm/y8vLv8dHR3/Dw8P/y8vL/8xMTH/MTEx/zEx
Mf8xMTH/MDAw/y8vL/8vLy//Li4u/y4uLv8wMDD/MDAw/zExMf8yMjL/MjIy/zMzM/8zMzP/MDAw/yAg
IP9GRkb/Wlpa/1VVVf8cHBz/RERE/2BgYP9fX1//Nzc3/xYWFv9MTEz/ICAg/w4ODv8XFRv/NzFA/1dL
aP9jUIH/X0GU/1sayv9HEqf/cS3u/349/P9+Pf7/ezv+/3k0/v9xKvn/ahvw/1oO0/8/C5T/LgNx/0IZ
gv9cM53/RBiJ/0cDqP9dBdr/YAnd/14F3f9UA8b/SxeQ/0soev9JK3T/Si1v/0subf9RFaD/RgmO/yoc
P/84L0P/NjI8/y0rMP8QEBD/FxcX/zQ0NP8xMTH/Kysr/zAwMP8uLi7/FBQU/xEREf8TExP/HR0d/zAw
MP8zMzP/GBgY/xAQEP8JCQn/Dg4O/zc3N/85Ojj/NTY0/yQiH/9IQzv/Zl5F/3drOf+Ich7/xZoF//e/
BP/+xgv//cUF//7EAf/4vwH/98IK//3IH//XrSj/bmIx/2BYQ/9CPzX/LCsq/ycnJ/8TExP/Hx8f/zIy
Mv8yMjL/MTEx/zAwMP8wMDD/MDAw/y8vL/8uLi7/Li4u/zAwMP8wMDD/MTEx/zExMf8yMjL/MzMz/zMz
M/8nJyf/LCws/09PT/9cXFz/QEBA/xwcHP9eXl7/XV1d/1paWv8WFhb/MzMz/zs7Ov8QEBD/EhEU/ywo
NP9QR1//Y1F//2FIjP9iIcj/RxCi/2oo6f99Pv3/fUD9/389/v95N/7/civ5/2kZ7v9TEr//PhOC/ycF
Yv8wDmP/XDuO/0okhP89BJH/XAbW/2EL3f9fCNv/UwTC/0cbiP9KLHH/RzBn/0czX/9HNF3/RjVd/zMj
R/8rHD3/OzJF/z84Rv83NTv/GBcZ/xAQEP8tLS3/Ojo6/zIyMv8xMTH/Nzc3/yEhIf8RERH/ERER/xUV
Ff8jIyP/NjY2/ysrK/8VFRX/EBAQ/wYGBv8XFxf/Ojo5/zo7OP82NjX/IR8a/0NAMf9hW0r/bWNB/4dz
MP+dewr/7rkD//3FCf/+xgf//sQB//vBAP/1vQL//sgY//jGIv+Ebyz/Y1k7/1NQQv8oKCP/Ly8u/xoa
Gv8RERH/MjIy/zExMf8xMTH/MDAw/zExMf8wMDD/MDAw/y8vL/8uLi7/MDAw/zExMf8yMjL/MTEx/zMz
M/8yMjL/MzMz/yAgIP84ODj/VFRU/1lZWf8nJyf/ODg4/2JiYv9gYGD/ODg4/xgYGP9NTU3/Ghoa/w8O
EP8fHCT/RD1R/2BTdv9kToj/YjC4/0wPrv9fIdL/fD78/39B/v99P/7/fDn+/3Yu+/9oHOv/VRe5/0Uf
gv8pCVz/HgJI/1E1ev9WOIX/NAl1/1YFzf9gC9//YAne/1UEyf9IG4j/Ry1t/0cyYv9GN1n/RDpT/0E4
Tf8qITX/LSQ5/0E6Sv9EQEz/PzxE/yAfI/8ODg7/JSUl/0BAQP87Ozv/NTU1/zk5Of8xMTH/FBQU/xAQ
EP8SEhL/GRkZ/y0tLf86Ojr/ISEh/xMTE/8NDQ3/BAQE/yUmJP87PDn/PTw4/zg2M/8fHRX/QDkd/1lW
R/9nYEX/fW42/4lwFf/XqQT/+sIF//7GCf/+xAT//MIA//W8AP/7xRH//Mce/62NJ/9nWjT/W1VD/y0s
Jv8yMzD/IiIj/xAQEP8nJyf/MjIy/zIyMv8xMTH/MTEx/zAwMP8wMDD/Ly8v/y4uLv8wMDD/MTEx/zEx
Mf8yMjL/MzMz/zIyMv8yMjL/HR0d/0FBQf9XV1f/T09P/xkZGf9VVVX/X19f/19fX/8YGBj/NDQ0/zg4
OP8QDxH/FRMZ/zYxPv9YTmr/ZVKF/2NAoP9XFcX/Thez/3s5+v9/Qv3/f0H+/3s9/v92Mvz/ax3v/1cd
uf9OLoz/MRVe/xsEPf8yHFL/YEaF/zwabP9IA67/YQrf/2IM4P9cBdX/RxOU/0oscf9HM2L/RjhW/0U8
Tv81MDz/Ix8o/zc0O/9JRU7/TUlR/0RCSP8iIST/Dg0P/yMjI/9ERET/Q0ND/zw8PP89PT3/Ozs7/xwc
HP8QEBD/ERER/xUVFf8iIiL/Nzc3/zMzM/8aGhr/ERER/wsLC/8FBQX/MzMy/z09Ov8/Pjr/NzYu/zIs
E/82LQ7/SUY7/2FcSf9zaDz/hnEm/7iQBv/1vgP//sYK//7FBf/9wwH/9r4A//jACf/+xxr/1Koh/2pc
L/9aVT7/Ozox/zAwLf8rKyv/FRUV/xoaGv8yMjL/MjIy/zExMf8xMTH/MDAw/zAwMP8vLy//Ly8v/zAw
MP8xMTH/MTEx/zIyMv8zMzP/MzMz/ywsLP8kJCT/SUlJ/1lZWf89PT3/IyMj/2JiYv9gYGD/RkZG/xUV
Ff9NTU3/Gxsb/xAPE/8kISn/TERY/2RUfP9kTIz/YSXJ/0cQov9uLuv/gEP+/4BD/v9+QP7/eDf7/20k
8v9YGMH/Xjqb/0Ambv8fCz//FAMw/1I/cf9UOXv/NAV3/10I2v9jD+L/Xwre/04Isv9KJ3v/SDJl/0Y3
WP8+Nkn/JyIs/ywrL/9GRUj/U1JU/1NSVP9EREb/HR0f/w8OEP8mJib/SUlJ/0tLS/9ERET/Q0ND/0ND
Q/8mJib/ERER/xAQEP8TExP/Gxsb/zAwMP8+Pj7/JiYm/xUVFf8PDw//BgYG/xEREf89PDv/Pz85/0M/
OP82Myn/U0MN/yojCP8zMSf/W1hI/21kQP+EcjL/nHsJ/+25A//8xQj//sYG//3DAP/2vwD/9L0C//7H
F//xvyD/c2Io/1tUOf9MSD7/Kygl/zExMf8bGxv/Dw8P/zExMf8xMTH/MTEx/zAwMP8wMDD/MDAw/y8v
L/8uLi7/MDAw/zExMf8xMTH/MjIy/zIyMv8zMzP/JiYm/y0tLf9OTk7/V1dX/yoqKv86Ojr/YmJi/2Nj
Y/8mJib/KCgo/0JCQv8RERL/FRMZ/zczQP9cUm7/ZlKG/2Q+qP9QELz/Vh7B/349/f+BRP7/gEP+/3w9
/v9zLfb/XRbV/1gwmv9VO4L/LxxO/xMEKf8kFjn/YE1//zsfZv9IA67/Yw7j/2MP5f9aBtL/SByH/0kv
bf9FNFv/MCU7/ygkL/9CQET/VVRV/1tbW/9WV1b/Ozs7/xQVFP8REBH/MTAx/1FRUf9SUlL/TExM/0pK
Sv9JSUn/Ly8v/xMTE/8PDw//ERER/xcXF/8oKCj/Pj4+/zU1Nf8cHBz/ExMT/wwMDP8EAwP/JyYm/0A+
PP9FQTv/RUE2/zEwIP94Xwr/KSMQ/yIgFv9UUET/Z19E/3xvNv+McRD/4rAD//nEBv/+xgf//sMB//jA
AP/zuwD//cYQ//rFGf+KdCT/XVQz/1RPQv8pJiP/NTU1/yIiIv8PDw//KCgo/zExMf8xMTH/MDAw/zAw
MP8vLy//MDAw/y8vL/8wMDD/MjIy/zExMf8yMjL/MjIy/zMzM/8hISH/NTU1/1JSUv9SUlL/HR0d/1FR
Uf9hYWH/W1tb/xQUFP9DQ0P/JiYm/w8PEf8hHib/SkRX/2RWev9lTo3/YiXL/0QRof9xMvD/gET+/4FF
/v+AQf7/ejb7/2ge6f9JG5n/XUGO/0k0av8hFDX/DQId/0E0VP9bSHv/LQtj/1oI1f9mEuf/YQ3i/04I
sv9JLHX/OSRW/ysfO/8/OUf/VVNY/2BfYP9gYGD/UFBQ/ygoKP8ODg7/Ghoa/0JCQv9bW1v/WVlZ/1RU
VP9RUVH/Tk5O/zMzM/8UFBT/Dw8P/xAQEP8VFRX/IiIi/zs7O/9AQED/JSUl/xcXF/8PDw//BwcH/wsK
Cf89Ozr/Q0E7/0lEOv9HQTP/Ni4V/5N4C/8xLB7/GRcN/0ZEOf9iXEX/dWo6/4lvGv/OoAT/98EG//7G
CP/+xAH/+cAA//S7AP/7xAz/+8QX/6WIH/9gVC7/V1BA/ywqJf82Nzb/KSkp/xISEv8eHh7/MTEx/zEx
Mf8wMDD/MTEx/y8vL/8wMDD/Ly8v/zExMf8yMjL/MTEx/zIyMv8yMjL/MzMz/x4eHv87Ozv/U1NT/0lJ
Sf8dHR3/X19f/2JiYv9FRUX/FxcX/01NTf8WFhb/ExIU/zIuOP9aUGj/ZlaD/2dCpP9TE8H/VBy+/35A
/f+BRf7/gUX+/34//v90KvX/VRe9/0Ulf/9dR4P/PS5U/xYNIv8NBBr/WEtr/006bP81A3//Yg/h/2kV
6P9eCtz/QRKE/zEbVv88LVH/U0te/2FeZv9lZWX/XV1d/zs7O/8UFBT/EBAQ/y4uLv9WVlb/Y2Nj/2Bg
YP9bW1v/WVlZ/1NTU/8zMzP/ExMT/w8PD/8QEBD/FBQU/x8fH/83Nzf/R0dH/y8vL/8cHBz/ExMT/wsL
C/8DAwP/JSUl/0NBPf9GRDv/TEg5/0U/Kv9fTBD/h2wL/zg0J/8XFQv/NzYs/15ZRf9xZT7/h3Aj/7yR
BP/2vwT//sUJ//7EA//6wQD/87sA//nCCP/7xRb/wJsc/2JVK/9VUD3/MjAp/zY1Nf8vLy//FxcX/xQU
FP8yMjL/MjIy/zExMf8xMTH/MDAw/zAwMP8vLy//MTEx/zIyMv8yMjL/MzMz/zIyMv8zMzP/HR0d/0BA
QP9VVVX/PT09/ykpKf9jY2P/Y2Nj/y0tLf8oKCj/QEBA/xEREf8aGB//Qz1N/2NWdv9mUYv/Zi7H/0cR
of9tLOj/gUX9/4FF/v+AQ///eTn7/2oe5P9III//Ry5z/1pIdf8zKEH/DwgW/xYOH/9iVnL/OihW/0EF
nv9nF+T/Yxje/0ANkP86IF7/UEBp/2FXbv9nYm7/Y2Jl/0lJSf8dHR3/Dg4O/yAgIP9LS0v/Z2dn/2lp
af9lZWX/YWFh/2BgYP9UVFT/LS0t/xISEv8PDw//EBAQ/xQUFP8fHx//NjY2/0pKSv85OTn/ISEh/xYW
Fv8ODg7/BQUF/w0NDf8+Pz7/RUM+/01IPP9QSjb/QDcd/5x7CP9pUxD/OjYp/xoXDf8rKSL/W1RE/2xi
P/+EcCn/rIYG//S7BP/+xQn//sQD//rBAP/zvAD/9r8F//rFFP/Spxr/ZVUl/1VOOP86OC//MjEw/zMz
M/8bGxv/Dg4O/zExMf8yMjL/MTEx/zExMf8wMDD/MDAw/y8vL/8xMTH/MTEx/zIyMv8zMzP/MzMz/zEx
Mf8fHx//Q0ND/1RUVP8xMTH/ODg4/2NjY/9jY2P/Gxsb/z09Pf8rKyv/EQ8T/yUiK/9QSl3/ZlZ//2VL
k/9fHNH/SRWo/3s7+v+ARf7/gEf+/39C/v91L/X/WRrE/0krfv9KNW7/VEhn/ygjM/8JBRD/Ih0r/2JY
cf8rHEH/UQi5/1QZt/82Gmj/SDNq/11Md/9nXHj/Z2Fx/1VTWf8qKir/Dw8P/xgYGP8/Pz//ZmZm/3Bw
cP9ubm7/ampq/2hoaP9kZGT/Tk5O/yQkJP8QEBD/Dw8P/xAQEP8UFBT/Hx8f/zg4OP9NTU3/Pz8//yUl
Jf8aGhr/EBAQ/wgICP8FBAT/MjAw/0REQf9JRz3/U0w8/1JIMP9YRhL/tI8H/0U4E/85NCj/HhoU/yIf
Hf9TUEP/Z18//4JvLf+ifQj/8LsC//3ECv/9xQP/+sEA//S9AP/1vAT/+8US/9+yGP9oViL/Vk02/0I/
Nf8vLSv/NjY2/yAgIP8ODg7/Kysr/zExMf8xMTH/MTEx/zAwMP8vLy//Ly8v/zExMf8yMjL/MjIy/zMz
M/8zMzP/Li4u/yIiIv9GRkb/U1NT/ycnJ/9HR0f/Y2Nj/1lZWf8UFBT/S0tL/x0dHf8TERb/Mi07/1pR
av9nVYP/aEKt/1ESu/9aIMb/gEH+/4BH/v+BR/7/fT7+/2wk7v9YKKf/Qihv/007av9QRl//Ih8q/wYF
C/8sKTP/YVpq/yEVNP81EGv/OSZW/1VFbv9kV3n/amB4/2Baaf84NT3/ExIV/xMTE/80NDT/YWFh/3R0
dP90dHT/cXFx/29vb/9tbW3/YmJi/z4+Pv8ZGRn/Dw8P/w8PD/8RERH/FRUV/yIiIv88PDz/UVFR/0RE
RP8qKir/HR0d/xMTE/8KCgr/BAQE/x8fHv9HRUT/SEZA/1FMPv9ZTzr/TD8i/554Dv+cdhr/MCYX/zgv
Kf8hHBv/HBkY/05MP/9mXUD/gm4w/5p4CP/ruQL//cQL//7GBP/6wQD/9L0A//O7Av/7xBH/6boT/2lY
Hv9UTDL/RkM4/ywpKP84ODj/JSUl/w8PD/8kJCT/MjIy/zExMf8wMDD/MDAw/y8vL/8vLy//MTEx/zIy
Mv8yMjL/MzMz/zMzM/8rKyv/JSUl/0hISP9RUVH/IiIi/1NTU/9kZGT/S0tL/xcXF/9MTEz/FxYY/xYU
G/8/Okj/YVZ1/2ZSiP9oNMH/RhCl/2ot5P+BRf7/gkb//4JF/v96Ovn/ZBza/1g1lf87JGP/TkBk/05H
V/8fHST/BQMI/zIwNf9UUVz/Ix0t/0I6UP9cU27/Z193/2Vfcf9JRVL/HBkj/xAPE/8pKSn/WVlZ/3R0
dP95eXn/dnZ2/3R0dP90dHT/b29v/1VVVf8qKir/EhIS/w4ODv8PDw//EhIS/xgYGP8oKCj/Q0ND/1ZW
Vv9GRkb/LS0t/x8fH/8UFBT/DAwM/wQEBP8SExH/Q0RC/0hGQv9PS0H/W1JA/1hNM/9pUBj/wJUM/3pS
Nf81IC3/Mykt/yIdIf8YFRb/SkY8/2JbPv+AbS//lHYJ/+23Av/9xAr//cYE//rBAf/1vQD/87sC//vD
Ef/vvBP/a1kb/1VLL/9JRjn/KSgl/zk5Of8pKSn/EhIS/x8fH/8yMjL/MTEx/zAwMP8wMDD/MDAw/y8v
L/8xMTH/MTEx/zIyMv8zMzP/MzMz/ykpKf8nJyf/SUlJ/05OTv8fHx//W1tb/2RkZP89PT3/ICAg/0ZG
Rv8UExX/HBog/0lDVf9jV3r/ZU+N/2Ql0f9GE6H/djb2/4FF/v+DRv7/gUT+/3Yz9/9XGb//XD+Q/zcj
Vv9NQV3/TUlS/x4dIP8EAwT/IiIj/yopLP9LSVD/Yl5o/2hjcP9bV2L/Lisz/xAOFP8cGx7/SkpL/3Jy
cf97e3v/enp6/3h4eP94eHj/dXV1/2VlZf87Ozv/GBgY/w8PD/8PDw//EBAQ/xMTE/8dHR3/MTEx/01N
Tf9bW1v/RkZG/y8vL/8iIiL/FRUV/w0NDf8FBQX/CwwL/z9BP/9JSET/T0pB/1lSQ/9hUz7/V0Il/7CG
Ff+yjAf/ay10/zUaOv8wIjP/Ixso/xcTGf9HRDr/YVo+/39sL/+UdQn/7bcD//3ECv/9xgT/+8IB//S8
AP/yuwH//MIQ//K+EP9sWhr/VEot/0lGOf8oJiT/Ozs7/ywsLP8TExP/Ghoa/zIyMv8xMTH/MDAw/zAw
MP8vLy//Ly8v/zExMf8yMjL/MjIy/zMzM/8zMzP/Jycn/ykpKf9JSUn/S0tL/yAgIP9fX1//ZGRk/zIy
Mv8rKyv/PDw8/xMTFP8kIij/Uktf/2VXfv9jS5T/YBvV/0oWqv98Pfz/gUX+/4NH/v9/Qv7/cyzy/1Mh
qv9bP4n/NSRR/0o/V/9PTFP/Hx8g/wkJCf8oKCj/UE9R/2NiZf9kY2j/SEdL/xgXHP8TERX/NjU4/2dn
aP97e3v/fHx8/3p6ev96enr/enp6/29vb/9LS0v/ISEh/xAQEP8ODg7/Dw8P/xISEv8XFxf/JSUl/z4+
Pv9aWlr/XFxc/0RERP8vLy//IiIi/xUVFf8MDAz/BgYG/woKCv89Pj3/SktG/01LQ/9ZUkP/ZFhC/1tM
L/+Nahr/w5MR/5hvPP95MLT/PhdZ/y0eOf8iGiz/FxEa/0dCO/9gWT3/fmst/5d1Cv/ttwP//cQK//3G
BP/7wgH/8r0A//C6Av/5ww//8b0R/2xZGP9TSSr/SUY5/yclJP87Ozv/Li4u/xUVFf8XFxf/MjIy/zEx
Mf8wMDD/MDAw/y8vL/8vLy//MTEx/zExMf8yMjL/MzMz/zMzM/8nJyf/KSkp/0lJSf9JSUn/IiIi/2Fh
Yf9lZWX/Kioq/zY2Nv8xMTH/ExIU/ysoMP9XUGb/ZVWC/2ZIof9YFMv/URu4/39B/v+CRv7/g0f+/35A
/f9uJuv/USea/1k/hP82J0//QztO/1JPVf8jIiP/Jygn/1BQUP9iYmH/X2Bf/zU0Nf8QEBD/Hx8f/1NT
U/92dnb/fHx8/3t7e/97e3v/fHx8/3d3d/9ZWVn/Kysr/xISEv8ODg7/Dw8P/xAQEP8UFBT/Hh4e/zIy
Mv9PT0//ZGRk/1paWv9AQED/Ly8v/yEhIf8TExP/DAwM/wUFBf8KCgr/PT4+/01NSv9OTEP/WFRE/2Vb
RP9mVTX/dVYc/8KSHf+zjgf/hEWM/4I7yv9FE3T/LRtA/yIXL/8ZEh3/SEM7/2BYPP98aiz/m3kJ/+25
Av/9xQn//sUD//nBAP/yvAD/8LoB//nCDv/tuQ//aVYX/1FHKv9IRTj/JyUj/zw8PP8wMDD/FRUV/xQU
FP8yMjL/MTEx/zAwMP8wMDD/Ly8v/y8vL/8xMTH/MjIy/zIyMv8zMzP/MzMz/yYmJv8qKir/SEhI/0ZG
Rv8kJCT/Y2Nj/2RkZP8jIyP/PT09/yoqKv8UFBX/MS04/1xTbP9lU4T/aUOx/1EQvf9ZIcj/gEP+/4JG
//+DR///fT/8/2oi4/9MKI3/Vj99/zsuUP83MkL/SUhN/ycmJ/9NTU3/X19f/1hYWP8oKCj/EBAQ/zIy
Mv9nZ2f/enp6/3t7e/96enr/fHx8/3p6ev9mZmb/ODg4/xYWFv8PDw//Dw8P/xAQEP8TExP/Ghoa/yoq
Kv9GRkb/YWFh/2dnZ/9SUlL/Ozs7/y0tLf8eHh7/ERER/wsLC/8FBQX/DQ0N/0NDQ/9PT0z/UE1G/1pV
Rv9mXkX/alw5/2ZQHf+/jhz/uYod/5BdO/96Ka3/fzTW/0cVgv8tF0f/IhMx/x0VIv9LRDz/YVg5/3xp
J/+jgAb/8bsD//7FCP/+xQL/+MEA//G8AP/xuwL/+MEN/+S0Dv9lUxj/UEYq/0ZDN/8pJyT/PT09/zEx
Mf8WFhb/ExMT/zIyMv8xMTH/MDAw/zAwMP8vLy//Ly8v/zExMf8yMjL/MjIy/zMzM/8zMzP/Jycn/ykp
Kf9HR0f/RUVF/yYmJv9jY2P/ZGRk/x4eHv9CQkL/JiYm/xUUFv83Mz//XlVw/2NRhf9qPrr/Sg+0/2Il
1f+AQ/7/gkb//4JH/v98Pfz/ZB/b/0gogf9UP3n/QzZX/ygjMP8nJin/R0dH/1tbW/9VVVX/IiIi/xQU
FP9CQkL/cHBw/3l5ef95eXn/enp6/3x8fP9xcXH/SEhI/x4eHv8QEBD/Dw8P/xAQEP8SEhL/FxcX/yUl
Jf89PT3/XFxc/21tbf9iYmL/SUlJ/zc3N/8pKSn/Ghoa/w8PD/8JCQn/BQUE/xUVFP9LTEz/UVBO/1JP
Sf9bVUr/aWFJ/25iO/9lUR3/to0Y/8SUGf+kci//fjON/3MesP91JNz/RRaG/ywVS/8eES//IRol/05G
Pf9kWTj/fGgh/7CJBP/1vgP//sUI//7EAv/4wAD/8LsA//C7A//2wA3/2KwL/2NQF/9PRSr/Qj80/yop
J/89PT3/MTEx/xYWFv8SEhL/MjIy/zExMf8wMDD/MDAw/zAwMP8vLy//MTEx/zExMf8yMjL/MzMz/zMz
M/8nJyf/KCgo/0ZGRv9DQ0P/Jycn/2RkZP9jY2P/Gxsb/0VFRf8kJCT/FhUY/zw3RP9fVnH/Y1GG/2o5
wP9HD67/Zyfd/4BD/v+CRv7/gUj+/3w7+/9fHdL/PiBz/1ZCeP9NQV//HBgl/z4+P/9XV1f/VFRU/yMj
I/8WFhb/S0tL/3Jycv93d3f/d3d3/3l5ef94eHj/XV1d/ysrK/8SEhL/Dw8P/w8PD/8RERH/FhYW/yEh
If82Njb/VVVV/25ubv9sbGz/VVVV/0BAQP8yMjL/IyMj/xUVFf8NDQ3/CAgI/wYGBv8jJCL/VFVT/1JS
T/9VUUr/XllK/2pkSf9xZj3/ZVMd/7SME//PnRT/tIYc/4pUaf96KbD/aRW4/24V4P89Enf/KhRJ/xoO
K/8nISn/UEg8/2hcNP99Zxj/wZYD//jABf/+xQj//cMB//e/AP/vugD/8b0F//S/DP/KoAz/XU0Y/0tE
LP87Oi//LCwq/z09Pf8xMTH/FhYW/xISEv8yMjL/MTEx/zAwMP8wMDD/Ly8v/y8vL/8xMTH/MjIy/zIy
Mv8zMzP/MzMz/ykpKf8mJib/RUVF/0NDQ/8nJyf/Y2Nj/2JiYv8aGhr/RkZG/yIiIv8YFxn/PzpH/2BW
c/9iUIX/ajbG/0kQqv9pKuT/gEP+/4JG/v+BSP7/ezr6/1wby/8yFWf/VUR2/zsxTf8yLjr/UFBR/1NT
U/8oKCj/FRUV/0tLS/9wcHD/dHR0/3R0dP93d3f/bm5u/0NDQ/8aGhr/Dw8P/w8PD/8QEBD/FBQU/x0d
Hf8xMTH/Tk5O/2tra/9zc3P/YGBg/0hISP85OTn/Kysr/xsbG/8QEBD/CgoK/wYGBv8LDAv/Ozw6/1pb
Wv9VU0//VlZM/2NdT/9vaE3/dGo+/2lXHP+0kBD/1acM/8OVD/+EYCT/dEtq/3koxP9kD8H/Zgvf/zEM
Yf8pFEX/Gg0n/y8pLv9TSzj/bF8w/4BnEf/VpQT/+8MG//7FBv/7wwH/9b4B/+26AP/yvQj/8b0K/7aQ
Dv9YShr/SkQv/zMxKP8yMTD/Pj4+/zAwMP8WFhb/ExMT/zIyMv8xMTH/MDAw/zAwMP8wMDD/Ly8v/zEx
Mf8yMjL/MjIy/zIyMv8zMzP/Kysr/yMjI/9CQkL/RERE/yYmJv9jY2P/YmJi/xoaGv9HR0f/ISEh/xgX
Gv9APEn/YVd0/2FPhf9pNMf/SRCq/2os5f+AQ/7/gkb+/4FI/v97Ovr/WxvH/y0RX/9FNGb/KiE8/0dE
T/9SUlP/MjIy/xMTE/9FRUX/bGxs/3Fxcf9xcXH/c3Nz/2FhYf8uLi7/EhIS/w8PD/8QEBD/ExMT/xkZ
Gf8pKSn/RUVF/2ZmZv92dnb/aWlp/1BQUP8/Pz//MjIy/yIiIv8TExP/DQ0N/wgICP8GBgb/HR0d/1RU
U/9aW1n/VlRQ/11ZUP9oYlD/d21P/3lrP/9uWhn/vJcQ/9ysCv/Jnwf/mncY/1M5LP9hQGL/dCjO/2UI
z/9bBsv/KwxR/yYSP/8aDiT/OjMz/1hNNf9wYiv/jW4K/+ayAv/9xAf//sUF//rCAP/zvQD/7bkA//O+
Cf/xvAj/mHsR/1JGGv9IRTP/Kykg/zg3Nv89PT3/Ly8v/xUVFf8VFRX/MjIy/zExMf8wMDD/MDAw/y8v
L/8vLy//MTEx/zExMf8yMjL/MzMz/zMzM/8uLi7/ICAg/0BAQP9FRUX/JSUl/2JiYv9iYmL/Gxsb/0dH
R/8jIyP/GRcc/0E8S/9hV3T/YU2H/2k0x/9JD6v/aivm/35D/v+ARv7/gUj9/3w8+v9aHMf/KhBd/ykW
SP89Mk3/TkpW/z8/QP8TExP/OTk5/2dnZ/9tbW3/bm5u/29vb/9WVlb/ISEh/w8PD/8PDw//ERER/xUV
Ff8hISH/Ojo6/1xcXP91dXX/cHBw/1dXV/9ERET/Nzc3/ycnJ/8YGBj/Dw8P/woKCv8GBgb/Dg4O/0A/
P/9kYWL/W1lX/1tYUv9iX1T/cWlT/3xyUP94bDj/dV0X/8ugEv/dsQf/0aQE/6WDDP9xWzT/SzM1/1I2
Xv9tJ8z/YwTX/0kGpf8nD0r/IA81/yAVI/9DPDf/XVIx/3VjIv+lfwf/8bwD//7GCP/9xAP/+cEA//G7
AP/ruQD/8r4M/++7CP98ZBD/TkMd/0tFNv8iIBv/Ozs6/z09Pf8sLCz/ExMT/xcXF/8yMjL/MTEx/zEx
Mf8wMDD/Ly8v/y8vL/8xMTH/MjIy/zIyMv8zMzP/MjIy/zExMf8dHR3/PDw8/0VFRf8jIyP/X19f/2Nj
Y/8eHh7/RUVF/yUlJf8ZFxz/QTxL/2FXdP9hTYb/ajXI/0kPrP9pKeT/fkL+/4BG/v+CSf7/fD37/10e
y/8rEF3/MyBS/0g+Wf9JRVD/HR0d/yoqKv9hYWH/ampq/2pqav9ra2v/UFBQ/xwcHP8PDw//Dw8P/xIS
Ev8aGhr/LS0t/05OTv9tbW3/dHR0/19fX/9JSUn/Ozs7/ywsLP8cHBz/ERER/wsLC/8HBwf/CAgI/yoq
Kv9gYF//YmFf/1taVv9fXVX/amVW/3hwV/+Cdk//d2gy/4dqEv/YrBL/37EI/9GnAv+qhwf/dWIr/2JS
Pv9DLz7/RS1Z/2goyP9hA9j/NAl0/yUQQf8aDSn/KiIo/0lDNP9kWC3/eWIV/8aZA//3wQf//sYH//zD
Av/3vwD/8LsA/+y6Av/wvQr/4bII/2BQEf9JQCD/R0M3/yAeGf89Pj3/PDw8/ykpKf8SEhL/Gxsb/zIy
Mv8xMTH/MTEx/zAwMP8wMDD/Ly8v/zExMf8yMjL/MTEx/zIyMv8yMjL/MzMz/xsbG/84ODj/RUVF/yMj
I/9cXFz/Y2Nj/yMjI/9CQkL/KCgo/xgXGv8/Okj/YFZz/2BOgv9qOMP/SA6x/2Ym3P99Qv7/f0b+/4JJ
/v98Qfv/YiHU/zIXY/8/L17/SkJa/zEtOP8aGRv/U1NT/2ZmZv9oaGj/aGho/1BQUP8bGxv/Dw8P/xAQ
EP8UFBT/Hx8f/zo6Ov9fX1//dXV1/2lpaf9PT0//Pz8//zExMf8gICD/ExMT/wwMDP8ICAj/BwcH/xwc
HP9VVlT/aWpo/19eWv9hXlb/aGRY/3RuW/+CeFn/g3dM/3JiJP+jgBT/5LYS/+CyCf/TpwH/p4MF/2FR
E/9kWDb/WExD/zwrQP87KVL/ZyrF/1kFzP8lC0f/IhA2/xkQI/82MC7/UUgx/2xdJv+HaQr/5LEC//zE
B//9xQP//MMB//S9AP/tugD/7rwG/+67B/+/lwn/VkgU/0VAJf89OjH/JCIg/0A+P/87Ozv/JSUl/xAQ
EP8gICD/MjIy/zExMf8xMTH/MDAw/zAwMP8vLy//MTEx/zIyMv8xMTH/MjIy/zMzM/8zMzP/HR0d/zMz
M/9FRUX/JSUl/1ZWVv9jY2P/Kioq/zw8PP8tLS3/GBca/zw4Rf9fVXL/X02B/2s9vf9MDrn/XyHS/31B
/v9/Rf7/gkr+/39G+/9oJt3/PSJt/0g5ZP9FPVP/Ghch/zs6PP9hYWH/ZGRk/2VlZf9VVVX/Hx8f/w8P
D/8QEBD/FRUV/yQkJP9GRkb/ampq/3Fxcf9aWlr/RERE/zc3N/8mJib/FhYW/w4ODv8JCQn/BgYG/xIS
Ev9ISEn/bG1s/2NjYf9gX1v/Z2Nb/3NsX/9/eF7/in1Y/4FzPP9/ZBr/x6AW/+u4Ev/hsQn/1aYB/6WD
C/9lUxf/Rz0W/1ZOPf9QR0j/NCg+/zgoTv9mKcb/QAaT/yAOOf8bDin/Ixol/0Q7Mf9bTy3/cl0b/6yH
BP/1vQL//cUH//zFAv/6wgH/8rwA/+y5AP/vvQj/7LkF/5V2Df9OQhj/RUEs/ywsJf8vLiz/QD8//zk5
Of8gICD/Dw8P/yUlJf8xMTH/MDAw/zAwMP8vLy//MDAw/y8vL/8wMDD/MTEx/zExMf8yMjL/MzMz/zMz
M/8hISH/LCws/0NDQ/8qKir/TU1N/2RkZP8zMzP/MzMz/zU1Nf8YFxr/NzNA/15Vbv9fTn//aUKy/1QQ
xf9WGsT/fT/+/35E/v+DSv7/g0v9/2Uvz/9ELXD/Sz1m/zMrQf8hHif/VVVW/2FhYf9iYmL/Wlpa/ycn
J/8PDw//EBAQ/xUVFf8lJSX/S0tL/21tbf9nZ2f/TExM/zw8PP8uLi7/Gxsb/xEREf8LCwv/BgYG/woK
Cv85OTn/a2tr/2loZ/9jY13/ZmVd/3FtYP99dmP/i39j/4p8Uf92Zij/oH8W/+W4Ff/quQ7/37IF/8+i
Av+afQ7/c2In/1BFHP83MBn/TEc//0pGSv8sJDf/OS1K/2Qoxv8iDET/HBAu/xkQIP8yKiz/S0Iu/2VX
J/+AYwr/16kD//rCB//+xQb//MUB//a/AP/vuwD/67kC/+28CP/isgn/a1YN/0g+Gv9IQjT/HR0Y/zk6
OP8/QD7/NjY2/xsbG/8ODg7/LCws/zExMf8wMDD/MDAw/y8vL/8vLy//Li4u/zAwMP8xMTH/MTEx/zIy
Mv8yMjL/MzMz/yYmJv8kJCT/Pz8//zIyMv8/Pz//Y2Nj/0BAQP8nJyf/QEBA/xkYHP8yLjn/XFRq/19P
fP9mRaH/XBbU/0wUtP97O/z/fkP9/4JK/v+GTv7/XTWz/0c1cv9IPGD/Ix0v/zs4QP9cW1z/Xl5e/11d
Xf83Nzf/ERER/xAQEP8TExP/IyMj/0lJSf9qamr/XV1d/0VFRf82Njb/JCQk/xQUFP8MDAz/BwcH/wcH
B/8kJCT/Y2Fi/21tbP9kZGD/Z2Vf/29sYv96dWb/iIBn/46BXf+BcDv/hmwY/9CnGP/wvRP/6rcM/92v
A//EmgP/jnQW/3BhKv9fVi//PDUd/y4pIP9IRUP/SEVM/yIcK/8+NUj/RSKE/xkPKP8WDyD/Ihsi/z84
Lf9XSyj/bVoZ/6qDBP/xuwX//cUH//7EBP/6wgH/870A/+y5AP/uuwb/6rkG/7yUCP9WRxL/RDwh/0E9
Mv8cHBj/Pz8+/z8/Pv8xMTH/FxcX/w8PD/8xMTH/MTEx/zAwMP8wMDD/MDAw/y8vL/8uLi7/MDAw/zEx
Mf8yMjL/MjIy/zMzM/8yMjL/Li4u/x0dHf85OTn/Ojo6/zAwMP9iYmL/T09P/xsbG/9KSkr/HRwf/yso
MP9XUWT/X1F4/2BEj/9lIdr/Rw+v/3Mx9f9+QP3/gUf+/4dR/f9TNJb/Sjlv/0A2Vf8iHSv/TkxT/1pa
Wv9cXFz/SkpK/xgYGP8PDw//EhIS/x4eHv9DQ0P/ZWVl/1dXV/9AQED/MTEx/x0dHf8QEBD/CgoK/wYG
Bv8QEBD/TExM/3Bvb/9nZmT/ZmVg/25sYv96dWf/h4Bp/5CGZP+JeUr/emYh/7iTFv/yvxr/770Q/+e1
CP/ZqQT/sIwJ/4JtHv9tXiv/XVUw/1FLNv8oJBf/Lisl/0ZFRP9FREj/GRYf/z42Sf8aESj/FxEe/xgS
Gv80LSf/SkEo/2RUH/+AZQn/3qwD//vCCP/9xQb//cMC//fAAP/xuwD/67kB/+67B//ntQX/gmkO/0w/
FP9EPyr/Lywk/ykoJv9AQED/PT09/yoqKv8TExP/FhYW/zExMf8xMTH/MTEx/zAwMP8vLy//Ly8v/y4u
Lv8wMDD/MTEx/zIyMv8xMTH/MzMz/zMzM/8zMzP/Ghoa/zExMf89PT3/JiYm/15eXv9cXFz/GBgY/0xM
TP8iIST/JCIp/1FLXP9gVHb/XEWD/2ot1f9IDLX/ZSLi/34+/v9/Q/3/hU/4/0kvf/9KOmv/NStH/y8q
N/9UUlf/WFhZ/1VVVf8rKyv/Dw8P/xEREf8YGBj/OTk5/2BgYP9WVlb/Pj4+/y4uLv8ZGRn/Dg4O/wgI
CP8GBgb/Jicm/2ZmZf9naGb/Y2Rf/2loYv91cmj/hH5r/5CGav+NgFX/eGYt/6KBGf/puhv/9b8V/+u6
C//jsQP/yJ0D/5l8EP93Zij/Z1wu/1lRNP9QSjf/RUM4/xYWDv8zMi//RkZF/z49QP8ZGB3/HRkf/xUQ
GP8UEBb/JyMg/0E5Jf9aSyT/bloQ/7yRBf/1vwP//sQI//3FA//7wgD/874A/+y6AP/rugX/6rgF/8uh
B/9dTA3/Rjod/0VBMf8aGBT/Ojg4/0BAQP87Ozv/IyMj/xAQEP8gICD/MjIy/zExMf8xMTH/MDAw/zAw
MP8vLy//Ly8v/zAwMP8wMDD/MTEx/zExMf8yMjL/MzMz/zMzM/8iIiL/KCgo/zw8PP8nJyf/UlJS/2Bg
YP8mJib/QkJC/y8uMP8fHSP/RkFP/2BVdP9bSHr/Zz64/1UNyv9REsT/ejr8/3w+/v98Ruv/RCt1/0c5
ZP8rIzr/PTlE/1RSV/9VVFX/RkZG/xYWFv8PDw//FBQU/yoqKv9VVVX/V1dX/z8/P/8vLy//GRkZ/w0N
Df8HBwf/BwcH/zc3N/9oaWf/YmJf/2ZkXv9vbWP/f3po/4yFaf+RhFz/fG03/451Gv/drx3/9cMV//C9
Dv/ltwX/2KgC/6yJDP+FbyD/cWIq/2FXMf9XTjT/TEg4/0ZDO/8yMSz/GRgV/z07PP9GRkb/Kysr/xAP
EP8TERL/EhAQ/yIeGP85MyP/UEUh/2VVFv+ceQT/7LcD//3DCP/+xAb//MQB//i/AP/xuwD/67gB/+q7
Bf/ltAb/j3EK/0xBE/9COyT/NzMs/x4dGf9BPz//Pz8//zU1Nf8bGxv/Dg4O/ykpKf8xMTH/MDAw/zEx
Mf8wMDD/MDAw/y4uLv8uLi7/MTEx/zAwMP8xMTH/MjIy/zIyMv8zMzP/MzMz/ysrK/8dHR3/NjY2/zEx
Mf87Ozv/YmJi/z09Pf8rKyv/QkJC/x4dIf83Mz//XVVs/1xLeP9eQpL/ZBzf/0YJtP9rKu7/ezv9/286
3/9AKG7/QjRd/ycgNv9FQkv/UlJU/1FRUP8xMTH/EBAQ/xEREf8cHBz/Q0ND/1paWv9CQkL/MTEx/xwc
HP8ODg7/BwcH/wcHB/84OTf/Xl9d/1taWP9mY13/dXFk/4d/aP+RhmL/hXZG/4FoH//IoRv/+MMa//O+
Ev/suAf/360C/7uVBv+Qdhr/eWco/2lcLf9dVDH/U0w3/0tFO/9EQjz/QEE9/xoaGP8jIyP/QkJC/0RE
RP8VFRX/Dw8P/xEQDf8dGRX/Mi8e/0o+If9hTxv/hWgH/9+uAv/7wQf//sUH//vEAv/4wQH/870A/+25
AP/sugX/57YE/8aeBv9dSw7/RDoX/0RAMP8eHBX/MDAv/0A/P/8+Pj7/Li4u/xQUFP8RERH/MTEx/zEx
Mf8wMDD/MDAw/zAwMP8vLy//Ly8v/y4uLv8wMDD/MTEx/zExMf8xMTH/MTEx/zIyMv8zMzP/MzMz/xsb
G/8tLS3/OTk5/ygoKP9eXl7/VVVV/xkZGf9OTk7/JSQn/yknLv9UTl//YFJ2/1lCfv9pNM3/TAbA/1QR
y/96Ovz/ZzHX/zskaf88Llj/Jh41/0lFT/9QT1H/SktK/yAgIP8PDw//FBQU/yoqKv9TU1P/SUlJ/zU1
Nf8hISH/EBAQ/wkJCf8GBgb/Kysr/1ZXVv9RUk//YF1T/3ZvYP+IgGX/jH9T/3hlKf+siRr/778b//XA
FP/uugv/4rIE/8acBf+bfhT/gGsm/21gLP9jVzH/V082/01JOP9HRTn/Q0E8/z9APv8xMTH/EhIS/zQ0
NP9FRUX/JSUl/w8QDf8PEAz/HBoS/zArG/9DOx3/W00X/3phCP/WpgP/9sAG//3EBv/+xQP/+sMA//a+
AP/xugD/7LgD/+q4B//hsQX/gmgK/0w+E/8/OSL/NjUq/xcYFf89PT3/Pz8//zo6Ov8jIyP/EBAQ/xwc
HP8xMTH/MTEx/zExMf8wMDD/Ly8v/y8vL/8vLy//Ly8v/zAwMP8xMTH/MDAw/zExMf8yMjL/MjIy/zMz
M/8zMzP/JCQk/yEhIf82Njb/Jycn/0xMTP9gYGD/KSkp/z4+Pv81NTX/IiAm/0Q/T/9fVXL/V0V2/2E/
nf9dFNv/QwOt/20o7v9kL9H/NR9g/zcpUv8mHzb/SEVO/01MT/9BQkH/FhYW/w8PD/8YGBj/PT09/1FR
Uf87Ozv/Kioq/xQUFP8LCwv/BQUF/xcXFv9PUE7/R0hF/1VUSv9taFX/hXpa/39xQP+GbBj/2bAX//PA
Ff/tuwz/5LQE/9CjA/+mhA//hG4j/3RkKf9mWy7/W1Iz/1FLNv9IRjn/REM6/0NAPf9APz//PT09/xQU
FP8jIyP/PDw8/x4eHv8PDwz/EBAM/x4cEf8uKxj/QToa/1hKF/95Xgj/zqID//W/Bv/8xAj//cUG//zD
Af/4wAD/8rwA/+y5AP/qugX/5LME/7GMCP9XSA3/QjgX/0M/L/8cGRT/LS0t/z9AQP8/Pz//MzMz/xoa
Gv8ODg7/KSkp/zExMf8wMDD/MTEx/zAwMP8wMDD/Ly8v/y4uLv8vLy//MDAw/zAwMP8wMDD/MTEx/zIy
Mv8yMjL/MjIy/zIyMv8xMTH/GRkZ/y4uLv80NDT/Ly8v/15eXv9ISEj/ICAg/0tLS/8kJCb/MS43/1lS
Zv9cT3P/VUB5/2oyzf9JArf/TgrC/2Uv0/8wGVv/MiNM/ycfNv9GQ0z/SklL/zk5OP8RERH/ERER/x8f
H/9ISEj/RkZG/zQ0NP8eHh7/Dg4O/wcHB/8ICAj/Ojs6/0BAPv9IRkD/YFxM/3twUf92aDL/lnkS/+28
E//xuhD/5bYG/9iqAf+5kwb/knUb/3tnJ/9rXi7/X1Qz/1RNN/9NRzn/R0M7/0JBPP8/QT3/Pj8+/z4+
Pv8fHyD/FxgX/yYmJv8SEhL/EA4N/xYTDP8iHxP/MCsX/0Q5Gf9YShP/fWMH/9OjA//0vgb//MMG//3F
Bf/8xQL/+cEB//O9AP/tugD/7bkF/+W0BP/PpQX/a1UL/0g8Ef9BOif/MS4l/xkXFP89PT3/Pz8//zw8
PP8pKSn/ExMT/xMTE/8yMjL/MTEx/zAwMP8wMDD/MDAw/y8vL/8uLi7/Ly8v/y8vL/8vLy//MDAw/zAw
MP8xMTH/MTEx/zExMf8yMjL/MzMz/zMzM/8hISH/ISEh/zQ0NP8lJSX/UFBQ/1xcXP8iIiL/RUVF/zMz
M/8lIyn/SUNT/19Vcf9UQnH/XUCV/2EY1v89AJ//WBzE/ysVUP8vIEf/Jh81/0RBSv9HRkn/MTEx/w8P
D/8SEhL/Jycn/0pKSv88PDz/LCws/xUVFf8LCwv/BgYG/xUVFf89Pj3/OTcy/0xJPv9qY0n/cWYz/5Fy
D//svA7/67sG/+SyA//UpQH/pH4D/4RsF/93ZSf/ZVos/1hQNP9PSjf/SEU6/0RCPP9DQD7/QT8+/0BA
Pv8/QD7/KCgn/w4ODf8SEQ7/Dw4K/xMRC/8bGQ//KSMU/zYvFf9IPRT/W0oQ/45wBv/ZrAP/9L4G//rD
B//+xQX//cQD//rCAf/zvgD/7roA/+u6A//ptQb/3K4E/4RoCv9QQA7/Pzca/z87L/8VEw7/MjEx/z8/
P/8+Pj7/NjY2/x0dHf8QEBD/ISEh/zExMf8xMTH/MDAw/zAwMP8vLy//Ly8v/y4uLv8uLi7/Li4u/y8v
L/8wMDD/MTEx/zExMf8xMTH/MjIy/zIyMv8yMjL/MzMz/zExMf8ZGRn/Kysr/zAwMP8xMTH/XV1d/0RE
RP8iIiL/S0tL/yYlKP8zLzv/WVJm/1tOcf9RP3D/bDrA/0sFt/89BZj/KBNJ/y0gQf8kHTL/Qj9H/0RD
Rv8sLSz/Dw8P/xMTE/8uLi7/R0dH/zc3N/8mJib/ERER/wgICP8GBgb/JSUl/y8vLv80Miz/T0o6/2hg
Of9sVhH/4rQJ/+28Bv/otQH/26sB/8aaAf+hgAH/Z1IC/1FDEf9ORSL/Tkk1/0lGOv9EQzz/QkI8/0FA
Pf89Ozn/MjEu/yIiH/8MDAj/Dg8I/xQRCv8bGA7/JSER/zAqEv8+NRP/TkIS/2tWCf+uiQT/5bQD//S/
Bv/7wwf//sUF//7EAv/7wgH/9r4A//C7AP/suQP/57gE/9+vA/+ZfQn/WEcL/z82Fv9BPSz/IB8Y/x8f
Hf8+Pj7/Pz8//zw8PP8rKyv/FBQU/xAQEP8wMDD/MTEx/zAwMP8xMTH/MDAw/zAwMP8vLy//Li4u/y8v
L/8uLi7/Ly8v/zAwMP8wMDD/MTEx/zExMf8xMTH/MjIy/zIyMv8yMjL/MzMz/yMjI/8fHx//MTEx/yQk
JP9NTU3/Wlpa/yIiIv9ERET/NjY3/yYkK/9HQk//XlVu/1NFaf9XQH3/ZijV/z4CmP8lEEf/Kh49/yIc
Lv8+O0T/QkFD/ysrK/8PDw//FBQU/zIyMv9DQ0P/NTU1/yAgIP8ODg7/BwcH/wcHB/8pKSn/JiUl/zEu
Jv9ORzT/XFAk/4FjBv/sugb/7rwG/+i3Av/ergL/0aIB/7yVAf+XdwP/V0UF/zotBv8rIgn/JiAQ/yAe
EP8cGQ//FxQL/xMQB/8UEQf/FhMJ/xwXC/8hHg3/KSMO/zMqEP8+NA//Sz4R/2ROCv+Wdgb/1KcE/+25
BP/2vgn/+8MH//3FBP/9xQL/+8MB//e/Af/xuwH/7LkD/+m3Bf/frwL/rIoI/11KDP9EORH/QDsm/y8t
If8TEw//Ojs5/z4+Pv8+Pj7/NTU1/x4eHv8QEBD/Hx8f/zExMf8xMTH/MDAw/zAwMP8vLy//MDAw/y8v
L/8uLi7/Ly8v/y4uLv8vLy//MDAw/zAwMP8xMTH/MDAw/zExMf8xMTH/MjIy/zIyMv8zMzP/MjIy/xkZ
Gf8nJyf/Li4u/ywsLP9aWlr/SEhI/x4eHv9OTk7/Kiks/zEuNv9VT2D/XFFt/09AZf9kRZz/WhTI/yoM
Uv8nHTn/IBos/zo3QP9APkL/LCws/w8PD/8TExP/MjIy/0FBQf8zMzP/Hh4e/w4ODv8ICAj/CAgI/ygo
KP8hICD/LCkh/0lCLf9TRRb/cVgC/+OzBf/wvQf/7roD/+W0Av/arAH/z6IB/8CYAP+phwP/el8E/0g6
B/82LQj/LikJ/ysmCf8qIwz/KSIO/yokDf8uJg//NCsN/zowD/9DNxD/UEEN/21WCf+cewX/0KIF/+i2
A//xvAb/+sAG//zDBv/+xQT//cQB//zDAP/3vwD/8bsB/+25BP/otwT/3rAB/7SPBv9kUQf/RzsP/z84
IP82NCn/EhIK/zAwLv89Pj3/PT49/zs7O/8pKSn/FBQU/xAQEP8wMDD/MTEx/zAwMP8xMTH/MDAw/y8v
L/8vLy//Li4u/y8vL/8uLi7/LS0t/y8vL/8wMDD/Ly8v/zAwMP8wMDD/MTEx/zExMf8yMjL/MzMz/zIy
Mv8zMzP/Jycn/xsbG/8tLS3/JSUl/0NDQ/9aWlr/Kioq/zg4OP9AP0D/JyYr/z87R/9dVWj/Vkpl/0xA
Yv9sQL//Pg2I/yEaMP8eGCn/NDE6/z08QP8tLS7/EBAQ/xMTE/8xMTH/Pz8//zQ0NP8eHh7/Dg4O/wgI
CP8ICAj/JSUl/x0cHP8mIxv/Pzso/01AFv9iTQL/xJkD//G9CP/0vQT/77kD/+i1A//grgT/1qgC/8yh
AP/EmwH/tY8D/5d3BP92Xwb/Yk0H/1RDCP9PQAj/UkEJ/1tHCP9nUgn/fmQH/5x7Bf+/lwL/2KwD/+e0
BP/uuwT/9L4G//vCB//9wwb//cQC//zEAf/7wwD/9r8A//C7Af/suQP/57UE/96tA/+0jgf/ZFIK/0k9
Dv89Nxv/PDgq/xMTDf8lJCH/Pj09/z09Pf89PT3/MzMz/xsbG/8QEBD/ISEh/zExMf8wMDD/MDAw/zAw
MP8vLy//MDAw/y8vL/8uLi7/Ly8v/y4uLv8uLi7/Li4u/y8vL/8vLy//MDAw/zAwMP8wMDD/MTEx/zEx
Mf8yMjL/MjIy/zMzM/8zMzP/HBwc/yEhIf8tLS3/JCQk/1NTU/9QUFD/HBwc/0xMTP8zMjT/Kykw/01I
VP9dVmj/TERc/1FFaP9nOb3/HRUs/x0YJ/8tKjP/Ozo9/zExMf8TExP/EhIS/y0tLf8+Pj7/NDQ0/yAg
IP8PDw//CQkJ/wgICP8gICD/HBwc/yAeGf81MiL/SkAa/1dFA/+QcAH/6bUF//jABv/3vwP/87wC/+24
A//otAX/4bAF/9qsA//WpwP/0aQC/8+iAf/MoAH/yZ8B/8mfAf/LoAL/z6QB/9anAv/drgH/5LIE/+i2
Bf/vuwb/9r4H//jBB//8xAX//cQE//3FAf/8xAD/+sEA//S+AP/wuwH/7LkE/+azA//crQL/q4gH/2VS
B/9JPA7/PzYY/z45LP8YFxD/GhsZ/zw8PP89PDz/PT09/zk5Of8jIyP/EhIS/xMTE/8xMTH/MTEx/zAw
MP8wMDD/MDAw/y8vL/8vLy//Li4u/y8vL/8uLi7/Li4u/y4uLv8uLi7/Ly8v/y8vL/8vLy//MDAw/zEx
Mf8xMTH/MTEx/zIyMv8yMjL/MjIy/zMzM/8vLy//GBgY/yYmJv8oKCj/MjIy/1hYWP89PT3/JCQk/0xM
TP8sLC7/NDE4/1VRXf9ZVGP/SEFU/1hKdv8vIUr/HRok/yIgJv83Njn/NDQ0/xcXF/8RERH/JiYm/z09
Pf82Njb/JSUl/xEREf8KCgr/CAgI/xUVFf8hISH/HBoV/yooG/9HPST/SzwI/21TAf+uiQL/87wE//rC
Bf/7wwP/98AD//W9Av/xuwT/7LkE/+u3Bv/ntAX/5bME/+KxBP/isQP/47ID/+azBP/ntgP/7LcF/++6
Bf/xvQf/878G//jCBv/8wwT//cUC//3FAf/8xQH//MMC//jAAP/zvQD/7rsD/+q4Bf/gsQL/1agE/5p7
Bf9hTgn/STwN/zw3Gv8+Oij/GRkQ/xgWE/85OTn/Ozs7/zw8PP87Ozv/LCws/xYWFv8PDw//KCgo/zEx
Mf8wMDD/MDAw/zAwMP8vLy//Ly8v/y8vL/8uLi7/Ly8v/y4uLv8uLi7/LS0t/y4uLv8uLi7/Ly8v/zAw
MP8wMDD/MDAw/zExMf8xMTH/MTEx/zIyMv8zMzP/MzMz/zMzM/8nJyf/Ghoa/ykpKf8iIiL/QkJC/1ZW
Vv8qKir/Nzc3/0NDQ/8rKyz/PTpC/1lVYP9UUFv/REBL/zk1Qv8aGB//Gxoc/zIyMv81NTX/ICAg/w8P
D/8dHR3/Ozs7/zg4OP8qKir/FRUV/wwMDP8JCQn/CwsL/yQkJP8XGBT/Hx0W/zcyIv9GPBj/UkAC/3pc
Av++kgL/9LsE//zCBv/+wgP//MIC//rBAf/4wAL/9r8C//S+BP/0vQX/9b0G//W9Bv/0vgb/9r4G//e/
Bv/4wQb/+cIG//zDBP/8wwT//MQD//3EAv/8xAH//MQA//rBAP/3vwD/8bwC/+26A//ltAP/264B/8ab
Bv+HaQf/WkoJ/0Y5Df8+OBv/PDgo/xgXD/8XFRL/ODg4/zs7O/87Ozv/PDw8/zIyMv8bGxv/EBAQ/xwc
HP8yMjL/MTEx/zExMf8wMDD/MDAw/y8vL/8vLy//Li4u/y4uLv8uLi7/Li4u/y0tLf8tLS3/Li4u/y8v
L/8vLy//Ly8v/y8vL/8wMDD/MDAw/zExMf8yMjL/MjIy/zIyMv8yMjL/MzMz/zQ0NP8eHh7/HR0d/ykp
Kf8iIiL/TExM/09PT/8eHh7/RkZG/zs7O/8tLC7/RUNI/1tZXv9PTVL/QD9B/xoaHP8YGBj/Jycn/zQ0
NP8pKSn/ERER/xYWFv81NTX/Ojo6/zExMf8cHBz/Dg4O/wkJCf8JCQn/Gxsb/xwdG/8XFxP/JCIX/0A6
JP9FNxD/V0QD/31gAf+5jQL/6rUE//nABf/7wgP/+8IC//7DAv/+wwH//cMC//3DAv/8wwP//MMD//zE
BP/9xAP//cQC//3FAf/9xQH//cUB//7GAv/9xgH//MQB//rCAP/2wAD/870B//G7A//otgP/4K8B/9Sm
Av+mhAb/blkH/1NDC/9CNxD/Pzkg/zgzJv8WFA3/FRYT/zc3OP86Ojr/Ojo6/zw8PP81NTX/ICAg/xIS
Ev8TExP/MDAw/zExMf8wMDD/MTEx/zAwMP8vLy//Ly8v/y8vL/8vLy//Li4u/y4uLv8uLi7/LS0t/yws
LP8uLi7/Ly8v/y4uLv8vLy//MDAw/zAwMP8wMDD/MTEx/zExMf8xMTH/MjIy/zIyMv8yMjL/MzMz/zIy
Mv8ZGRn/Hx8f/ycnJ/8oKCj/UVFR/0VFRf8dHR3/TExM/zY2Nv8vLjD/SklL/1pZW/9KSUv/Kysr/xcX
F/8bGxv/Ly8v/y8vL/8YGBj/EhIS/ykpKf86Ojr/NTU1/yYmJv8SEhL/DAwM/wkJCf8NDQ3/JCQk/xcW
FP8ZGRL/KiYZ/0Q8I/9FNwz/WkQC/3pcAf+pgQH/2KcA/++4A//3vwP//MAE//3DAv/9wwL//MQC//zD
Av/9xQP//sYD//7GA//9xQL//MQB//zEAf/9xAL//MMB//nCAP/4vwH/870C/++7A//otgL/4K8B/9Wo
Af+1kAT/gGUI/2BNB/9KPgv/PzYT/0E8Jv8uKh//EhIK/xsaF/84ODj/ODg4/zk5Of87Ozv/Nzc3/yUl
Jf8UFBT/EBAQ/yoqKv8xMTH/MTEx/zExMf8wMDD/MDAw/zAwMP8vLy//Li4u/y8vL/8vLy//Li4u/y0t
Lf8tLS3/LS0t/y4uLv8vLy//Li4u/y8vL/8vLy//MDAw/zAwMP8wMDD/MTEx/zExMf8xMTH/MjIy/zMz
M/8zMzP/NDQ0/y4uLv8XFxf/ISEh/yMjI/8vLy//UVFR/zw8PP8hISH/TU1N/zU0Nf8xMDL/TEtN/1lZ
Wv9ISEj/Ghoa/xYWFv8mJib/Ly8v/yMjI/8QEBD/Gxsb/zc3N/84ODj/MDAw/xwcHP8PDw//CwsL/woK
Cv8TExP/JCIj/xUUEv8bGRH/LCYb/0M6JP9ENxD/U0EE/29VAv+UcgH/vJEC/9mmAv/qtAL/87sD//jA
Av/5wQP/+8IE//vCA//8wgP/+8IC//rCAv/6wQL/+sEC//bAA//1vgL/8rsD/+u4Av/ksgL/3asB/9Ck
Av+wiwT/hmgH/2VRCP9TQgv/QjcP/z44Hf88OSj/IB4V/xAOCf8hIR7/Ojk5/zc3N/84ODj/Ozs7/zg4
OP8oKCj/FRUV/w8PD/8kJCT/MTEx/zExMf8xMTH/MDAw/zAwMP8vLy//Ly8v/y8vL/8uLi7/Ly8v/y4u
Lv8uLi7/LS0t/ywsLP8tLS3/Li4u/y4uLv8uLi7/Ly8v/y8vL/8vLy//Ly8v/zAwMP8wMDD/MTEx/zIy
Mv8yMjL/MjIy/zMzM/8zMzP/MzMz/ysrK/8WFhb/ISEh/yEhIf80NDT/T09P/zU1Nf8lJSX/TU1N/zU1
Nf80NDT/TU1N/1lZWf8/Pz//FRUV/xkZGf8qKir/Kioq/xgYGP8SEhL/Kioq/zk5Of82Njb/KSkp/xYW
Fv8NDQ3/CwsL/wsLC/8YGBj/ICAg/xUUEv8ZGBH/JyQX/z44Iv9EOhX/SjwH/2BKAv94XAL/lnQC/7aM
Af/MngH/2agB/+OvAP/qswH/7LcB/+24Av/suAL/7LgC/+q2Av/otAH/4rEB/96tAf/XqgH/0KQC/7uS
A/+cewX/e2AG/2VRBf9UQwn/RjoL/z83F/9BOyb/Lyse/xUUDP8QEA3/Kysp/zk5OP81NTX/Nzc3/zo6
Ov84ODj/KSkp/xcXF/8QEBD/Hh4e/zIyMv8xMTH/MTEx/zExMf8wMDD/Ly8v/zAwMP8vLy//Li4u/y4u
Lv8uLi7/Li4u/y0tLf8tLS3/LCws/ywsLP8tLS3/Li4u/y4uLv8vLy//Li4u/y8vL/8wMDD/MDAw/zEx
Mf8xMTH/MTEx/zIyMv8yMjL/MjIy/zIyMv8zMzP/MzMz/ygoKP8XFxf/ISEh/x8fH/82Njb/TU1N/zIy
Mv8mJib/TU1N/zc3N/81NTX/S0tL/1dXV/8vLy//FBQU/yAgIP8qKir/IyMj/xISEv8aGhr/MzMz/zg4
OP80NDT/IyMj/xQUFP8NDQ3/CwsL/wwMDP8aGhr/ISEh/xMUEv8WFhH/Hx4T/zUwHv9DOyD/RDkP/08+
B/9fSQP/blUE/4FkAv+WdQL/qIIC/7aNAf+/lQH/xpoC/8mcAv/JnAL/xZkC/76VAv+yjAL/pIAC/5Bx
Bf95Xwb/aVQH/1xKCP9QQQj/RDkO/0A4GP9COyb/Mi8h/xwYEf8QDgn/GhoY/zQ0NP82Njb/NDQ0/zY2
Nv86Ojr/ODg4/ykpKf8XFxf/EBAQ/xsbG/8yMjL/MjIy/zExMf8xMTH/MDAw/zAwMP8wMDD/Ly8v/y8v
L/8uLi7/Li4u/y4uLv8tLS3/LS0t/ywsLP8sLCz/LCws/y0tLf8uLi7/Li4u/y8vL/8vLy//Ly8v/y8v
L/8vLy//MDAw/zAwMP8xMTH/MTEx/zExMf8yMjL/MjIy/zIyMv8zMzP/MzMz/yYmJv8WFhb/Hx8f/x4e
Hv81NTX/S0tL/zExMf8kJCT/TU1N/zs7O/81NTX/R0dH/1VVVf8jIyP/FBQU/yMjI/8oKCj/HBwc/xER
Ef8jIyP/Nzc3/zg4OP8xMTH/ISEh/xMTE/8NDQ3/DAwM/w0NDf8XFxf/JCQk/xcVFf8VFA//GxgQ/ycj
Ff86NB7/RD0d/0c6E/9IPAn/U0EF/11JBf9mUAT/blUE/3NZA/94XAP/d10D/3VcA/9zWgT/bVcF/2hS
BP9hTQT/WEYH/08/Cf9HOQv/QzcT/0Q6IP9AOiP/MCwe/x0ZEP8REAr/FBMQ/ywsKf82NzX/MjMy/zMz
M/82Njb/OTk5/zc3N/8nJyf/FxcX/xEREf8aGhr/MTEx/zExMf8xMTH/MTEx/zExMf8wMDD/MDAw/y8v
L/8vLy//Ly8v/y4uLv8uLi7/Li4u/y4uLv8tLS3/LS0t/ywsLP8sLCz/LS0t/y4uLv8tLS3/Li4u/y8v
L/8vLy//Ly8v/y8vL/8wMDD/MTEx/zExMf8xMTH/MTEx/zIyMv8yMjL/MjIy/zMzM/8zMzP/MzMz/ycn
J/8VFRX/HR0d/x0dHf8xMTH/SUlJ/zU1Nf8hISH/SkpK/0BAQP81NTX/QkJC/09PT/8cHBz/FhYW/yQk
JP8lJSX/GBgY/xMTE/8oKCj/Nzc3/zc3N/8wMDD/ISEh/xUVFf8PDw//DQ0N/w0NDf8SEhL/JCMk/x4e
Hf8TExH/FhQP/xsYEP8jIRP/NC4c/z86IP9FPR7/RjwX/0c6EP9HOwz/STwK/0s8Cv9MPQn/TD0I/0o8
Cf9IOgz/RDkO/0U4E/9DOhr/Qzwg/0A5I/81MR//JSIV/xgVDf8SEAr/ExMP/ycoJf81Njb/MjIy/zAw
MP8yMjL/NjY2/zo6Ov80NDT/JSUl/xYWFv8RERH/HBwc/zIyMv8yMjL/MTEx/zAwMP8wMDD/MDAw/zAw
MP8wMDD/Ly8v/y4uLv8uLi7/Li4u/y0tLf8uLi7/LS0t/ywsLP8tLS3/LCws/ywsLP8tLS3/Li4u/y0t
Lf8uLi7/Ly8v/y8vL/8vLy//Ly8v/zAwMP8wMDD/MTEx/zExMf8wMDD/MTEx/zExMf8yMjL/MjIy/zMz
M/8zMzP/NDQ0/yoqKv8VFRX/Gxsb/xwcHP8rKyv/RkZG/zo6Ov8eHh7/QkJC/0dHR/84ODj/PT09/0VF
Rf8ZGRn/GBgY/yMjI/8iIiL/FRUV/xUVFf8sLCz/Nzc3/zc3N/8yMjL/JCQk/xcXF/8QEBD/Dg4O/w4O
Dv8QEBD/GhoZ/yUmJP8dHhv/ExMQ/xQTD/8ZFg3/GxgQ/yMeEv8rJxj/NS8d/zs0If8+OCH/Pzkh/0A6
IP9AOyD/QTkh/z83I/85NSD/NC4d/yolGP8gHBH/FxUM/xISCv8RDwz/GRkX/yoqKP80NDT/MDEw/y4u
Lv8vLy//MzMz/zc3N/85OTn/MTEx/yEhIf8VFRX/EBAQ/x8fH/8yMjL/MjIy/zIyMv8xMTH/MDAw/zAw
MP8wMDD/Ly8v/y8vL/8uLi7/Ly8v/y4uLv8uLi7/LS0t/y4uLv8tLS3/LCws/ywsLP8sLCz/LCws/y0t
Lf8tLS3/LS0t/y4uLv8uLi7/Ly8v/y8vL/8vLy//MDAw/zAwMP8wMDD/MTEx/zAwMP8xMTH/MjIy/zIy
Mv8yMjL/MzMz/zMzM/8zMzP/MzMz/y0tLf8XFxf/GRkZ/xwcHP8jIyP/QEBA/z8/P/8hISH/MzMz/01N
Tf8/Pz//Ojo6/z09Pf8YGBj/GBgY/yEhIf8gICD/FBQU/xYWFv8rKyv/NjY2/zc3N/8zMzP/KCgo/xwc
HP8UFBT/EBAQ/w4ODv8PDw//EhIS/xscG/8lJSX/IyQi/xkaF/8UEw//ExIO/xYTDv8WFA3/GBYO/xkX
Df8aGA7/GxgO/xsYDv8aFg7/GBUN/xUTDf8UEQv/ExAK/xIRDP8YGRX/JSYk/zAwMP8xMjL/LS0t/ysr
K/8sLCz/MDAw/zQ0NP85OTn/Nzc3/ysrK/8bGxv/ExMT/xEREf8kJCT/MjIy/zExMf8yMjL/MTEx/zEx
Mf8xMTH/MDAw/zAwMP8vLy//Ly8v/y8vL/8uLi7/Li4u/y4uLv8tLS3/LS0t/y0tLf8tLS3/Kysr/ysr
K/8rKyv/LCws/y0tLf8tLS3/LS0t/y0tLf8uLi7/Ly8v/y8vL/8vLy//Ly8v/zAwMP8wMDD/MDAw/zEx
Mf8xMTH/MTEx/zIyMv8yMjL/MjIy/zMzM/8zMzP/MzMz/zExMf8bGxv/FhYW/xoaGv8cHBz/NTU1/0FB
Qf8sLCz/IyMj/0ZGRv9JSUn/PT09/zk5Of8aGhr/FxcX/x8fH/8eHh7/FBQU/xYWFv8pKSn/NDQ0/zY2
Nv82Njb/Li4u/yQkJP8aGhr/ExMT/xAQEP8QEBD/EBAQ/xISEv8XGBb/ISIg/ygnJ/8oJib/IiMh/x0e
HP8ZGhb/FxcU/xYUE/8VFBP/FhUU/xkYFf8cGxj/HyAe/yYmJf8sLSv/MDAv/y4uLv8qKir/KCgo/ygo
KP8qKir/Li4u/zMzM/84ODj/ODg4/zExMf8jIyP/FxcX/xISEv8UFBT/Kysr/zIyMv8xMTH/MTEx/zEx
Mf8xMTH/MDAw/zAwMP8wMDD/Ly8v/y8vL/8vLy//Ly8v/y4uLv8tLS3/Li4u/y0tLf8sLCz/LS0t/yws
LP8sLCz/LCws/ysrK/8sLCz/LS0t/ywsLP8tLS3/Li4u/y4uLv8vLy//Ly8v/y8vL/8vLy//Ly8v/zAw
MP8wMDD/MDAw/zAwMP8xMTH/MTEx/zIyMv8yMjL/MjIy/zIyMv8zMzP/MzMz/zMzM/8kJCT/FRUV/xgY
GP8ZGRn/Jycn/z09Pf84ODj/ISEh/y8vL/9LS0v/RkZG/z09Pf8iIiL/FRUV/xwcHP8eHh7/FhYW/xQU
FP8jIyP/MTEx/zU1Nf82Njb/NDQ0/ywsLP8jIyP/Gxsb/xUVFf8SEhL/EhIS/xISEv8TExP/FBQU/xcX
F/8bGxv/Hx8f/yQkJP8nJyf/KSkp/yoqKv8qKir/Kioq/ygoKP8mJib/JSUl/yMjI/8jIyP/JCQk/yYm
Jv8pKSn/LS0t/zIyMv83Nzf/ODg4/zMzM/8oKCj/HBwc/xUVFf8RERH/HBwc/zAwMP8xMTH/MjIy/zEx
Mf8xMTH/MTEx/zAwMP8wMDD/MDAw/y8vL/8vLy//Ly8v/y8vL/8uLi7/Li4u/y0tLf8uLi7/LS0t/yws
LP8sLCz/LCws/ysrK/8rKyv/Kysr/ywsLP8sLCz/LCws/y0tLf8tLS3/LS0t/y4uLv8vLy//Li4u/y4u
Lv8vLy//Ly8v/zAwMP8wMDD/MDAw/zAwMP8xMTH/MjIy/zIyMv8yMjL/MjIy/zMzM/8zMzP/MzMz/zMz
M/8uLi7/Ghoa/xUVFf8YGBj/Gxsb/y4uLv87Ozv/Ly8v/x8fH/80NDT/S0tL/0hISP8yMjL/FhYW/xkZ
Gf8cHBz/GBgY/xISEv8cHBz/Kysr/zIyMv81NTX/NjY2/zU1Nf8uLi7/Jycn/yAgIP8bGxv/GBgY/xUV
Ff8VFRX/FRUV/xUVFf8WFhb/GBgY/xgYGP8aGhr/Gxsb/xwcHP8cHBz/HR0d/x8fH/8hISH/JCQk/ycn
J/8qKir/Ly8v/zQ0NP84ODj/ODg4/zMzM/8pKSn/Hh4e/xYWFv8SEhL/FBQU/ykpKf8zMzP/MjIy/zIy
Mv8xMTH/MTEx/zAwMP8wMDD/MDAw/zAwMP8vLy//Ly8v/y4uLv8uLi7/Li4u/y4uLv8uLi7/LS0t/y0t
Lf8tLS3/LCws/ywsLP8sLCz/Kysr/yoqKv8rKyv/Kysr/ywsLP8sLCz/LS0t/y0tLf8tLS3/Li4u/y4u
Lv8uLi7/Li4u/y4uLv8vLy//MDAw/zAwMP8wMDD/MDAw/zExMf8xMTH/MTEx/zExMf8yMjL/MjIy/zMz
M/8yMjL/MzMz/zMzM/80NDT/JiYm/xUVFf8VFRX/FhYW/x0dHf8vLy//ODg4/ywsLP8gICD/Ly8v/0dH
R/9ISEj/KSkp/xYWFv8aGhr/Ghoa/xQUFP8VFRX/ISEh/y0tLf8xMTH/NDQ0/zY2Nv82Njb/MzMz/y4u
Lv8qKir/JSUl/yEhIf8fHx//Hh4e/x0dHf8dHR3/HR0d/x4eHv8fHx//ICAg/yIiIv8lJSX/KCgo/ysr
K/8wMDD/NDQ0/zc3N/84ODj/NjY2/zAwMP8nJyf/HR0d/xcXF/8TExP/EhIS/yIiIv8yMjL/MjIy/zIy
Mv8xMTH/MTEx/zExMf8wMDD/MDAw/zAwMP8wMDD/MDAw/y8vL/8vLy//Ly8v/y4uLv8uLi7/Li4u/y0t
Lf8tLS3/LCws/y0tLf8sLCz/Kysr/ywsLP8rKyv/Kioq/yoqKv8rKyv/LCws/ywsLP8tLS3/LCws/y0t
Lf8tLS3/Li4u/y4uLv8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8wMDD/MDAw/zExMf8xMTH/MTEx/zIy
Mv8yMjL/MjIy/zIyMv8zMzP/MzMz/zMzM/80NDT/MjIy/yIiIv8VFRX/FRUV/xUVFf8cHBz/Kysr/zQ0
NP8tLS3/Hx8f/yQkJP84ODj/Pz8//yYmJv8WFhb/GRkZ/xcXF/8SEhL/FhYW/yEhIf8qKir/Li4u/zEx
Mf8zMzP/NTU1/zY2Nv82Njb/NDQ0/zIyMv8xMTH/Ly8v/y8vL/8vLy//Ly8v/zAwMP8xMTH/MzMz/zU1
Nf82Njb/ODg4/zc3N/80NDT/MDAw/ykpKf8iIiL/HBwc/xgYGP8TExP/ExMT/yAgIP8wMDD/MjIy/zIy
Mv8yMjL/MjIy/zExMf8wMDD/MTEx/zAwMP8wMDD/MDAw/zAwMP8vLy//Ly8v/y8vL/8uLi7/Li4u/y4u
Lv8tLS3/LS0t/ywsLP8tLS3/LCws/ywsLP8sLCz/Kysr/yoqKv8qKir/Kioq/ysrK/8sLCz/LCws/yws
LP8sLCz/LS0t/y0tLf8tLS3/Li4u/y4uLv8vLy//Ly8v/y8vL/8vLy//Ly8v/zAwMP8wMDD/MTEx/zEx
Mf8xMTH/MTEx/zExMf8yMjL/MjIy/zIyMv8zMzP/MjIy/zMzM/80NDT/MzMz/zIyMv8kJCT/FhYW/xMT
E/8UFBT/GBgY/yIiIv8tLS3/Li4u/ycnJ/8fHx//IyMj/yEhIf8VFRX/FRUV/xcXF/8VFRX/EhIS/xQU
FP8dHR3/JCQk/ykpKf8sLCz/LS0t/zAwMP8yMjL/MzMz/zU1Nf81NTX/NjY2/zY2Nv82Njb/NjY2/zU1
Nf80NDT/MjIy/y8vL/8rKyv/JiYm/yEhIf8dHR3/GRkZ/xYWFv8SEhL/FxcX/yMjI/8xMTH/MzMz/zIy
Mv8yMjL/MTEx/zIyMv8xMTH/MTEx/zAwMP8wMDD/MDAw/y8vL/8wMDD/Ly8v/y8vL/8uLi7/Ly8v/y4u
Lv8tLS3/Li4u/y0tLf8sLCz/LCws/ywsLP8sLCz/LCws/ysrK/8qKir/Kioq/yoqKv8qKir/Kioq/ysr
K/8rKyv/LCws/ywsLP8sLCz/LCws/y0tLf8uLi7/Li4u/y4uLv8uLi7/Ly8v/y8vL/8vLy//Ly8v/zAw
MP8wMDD/MTEx/zExMf8xMTH/MTEx/zExMf8yMjL/MjIy/zIyMv8yMjL/MzMz/zMzM/8zMzP/NDQ0/zMz
M/8zMzP/KSkp/xwcHP8TExP/ExMT/xISEv8XFxf/Hh4e/yYmJv8pKSn/Jycn/yEhIf8bGxv/FxcX/xQU
FP8UFBT/FBQU/xISEv8RERH/FBQU/xoaGv8fHx//IyMj/yUlJf8mJib/Jycn/ycnJ/8nJyf/Jycn/yYm
Jv8lJSX/JCQk/yIiIv8gICD/HR0d/xsbG/8YGBj/FRUV/xISEv8WFhb/ICAg/y0tLf8zMzP/MzMz/zIy
Mv8yMjL/MjIy/zIyMv8xMTH/MTEx/zExMf8wMDD/MDAw/zAwMP8vLy//Ly8v/y8vL/8vLy//Ly8v/y4u
Lv8uLi7/Li4u/y4uLv8tLS3/LCws/ywsLP8sLCz/LCws/ywsLP8rKyv/Kioq/yoqKv8qKir/KSkp/ykp
Kf8qKir/Kysr/ywsLP8sLCz/LCws/ywsLP8sLCz/LS0t/y4uLv8uLi7/Li4u/y4uLv8vLy//Li4u/y4u
Lv8vLy//Ly8v/zAwMP8wMDD/MDAw/zAwMP8wMDD/MTEx/zExMf8yMjL/MTEx/zIyMv8yMjL/MjIy/zMz
M/8zMzP/MzMz/zQ0NP8zMzP/MzMz/zIyMv8oKCj/HR0d/xQUFP8RERH/ERER/xMTE/8WFhb/Ghoa/x0d
Hf8gICD/ICAg/xsbG/8XFxf/ExMT/xISEv8SEhL/ERER/xEREf8RERH/EhIS/xQUFP8WFhb/GBgY/xkZ
Gf8YGBj/GBgY/xcXF/8WFhb/FRUV/xMTE/8SEhL/FxcX/x4eHv8mJib/Ly8v/zMzM/8zMzP/MjIy/zMz
M/8yMjL/MjIy/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zAwMP8wMDD/MDAw/y8vL/8vLy//Ly8v/y8v
L/8uLi7/Li4u/y4uLv8tLS3/LS0t/y0tLf8tLS3/LCws/ysrK/8rKyv/LCws/ysrK/8qKir/Kioq/yoq
Kv8pKSn/KSkp/yoqKv8rKyv/Kysr/ywsLP8sLCz/Kysr/y0tLf8tLS3/LS0t/y0tLf8uLi7/Li4u/y4u
Lv8vLy//Li4u/y4uLv8vLy//MDAw/zAwMP8wMDD/MDAw/zExMf8wMDD/MTEx/zExMf8xMTH/MjIy/zIy
Mv8yMjL/MzMz/zIyMv8zMzP/MzMz/zMzM/80NDT/MzMz/zMzM/8zMzP/NDQ0/y8vL/8nJyf/ISEh/xsb
G/8WFhb/EhIS/xAQEP8PDw//EBAQ/xAQEP8QEBD/Dw8P/w8PD/8TExP/GBgY/xkZGf8WFhb/FBQU/xIS
Ev8SEhL/EhIS/xQUFP8WFhb/Ghoa/x8fH/8kJCT/LCws/zIyMv80NDT/MzMz/zMzM/8zMzP/MzMz/zIy
Mv8zMzP/MjIy/zIyMv8yMjL/MTEx/zExMf8xMTH/MTEx/zExMf8wMDD/MDAw/zAwMP8vLy//Ly8v/y4u
Lv8vLy//Ly8v/y4uLv8uLi7/LS0t/y0tLf8tLS3/LS0t/ywsLP8sLCz/Kysr/ysrK/8rKyv/Kysr/yoq
Kv8qKir/KSkp/yoqKv8pKSn/Kioq/yoqKv8rKyv/Kysr/ysrK/8rKyv/LCws/ywsLP8tLS3/LS0t/y0t
Lf8tLS3/Li4u/y4uLv8uLi7/Ly8v/y8vL/8vLy//Ly8v/y8vL/8wMDD/MDAw/zAwMP8wMDD/MDAw/zEx
Mf8xMTH/MTEx/zIyMv8yMjL/MjIy/zIyMv8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/80NDT/NDQ0/zQ0
NP8zMzP/NDQ0/zQ0NP80NDT/MzMz/zIyMv8xMTH/MTEx/zExMf8yMjL/NDQ0/zU1Nf80NDT/NDQ0/zU1
Nf80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zMzM/80NDT/MzMz/zMzM/8zMzP/MzMz/zIy
Mv8yMjL/MjIy/zIyMv8yMjL/MTEx/zExMf8xMTH/MDAw/zAwMP8wMDD/MDAw/zAwMP8vLy//Ly8v/y8v
L/8vLy//Li4u/y4uLv8uLi7/Li4u/y0tLf8tLS3/LS0t/ywsLP8sLCz/LCws/ysrK/8rKyv/Kysr/ysr
K/8qKir/Kioq/yoqKv8pKSn/KSkp/ykpKf8pKSn/Kioq/yoqKv8rKyv/Kysr/ysrK/8rKyv/LCws/yws
LP8sLCz/LS0t/y0tLf8tLS3/Li4u/y4uLv8uLi7/Li4u/y8vL/8vLy//Ly8v/y8vL/8vLy//MDAw/zAw
MP8wMDD/MTEx/zExMf8xMTH/MTEx/zExMf8yMjL/MTEx/zIyMv8yMjL/MjIy/zIyMv8zMzP/MzMz/zMz
M/8zMzP/MzMz/zMzM/80NDT/NDQ0/zQ0NP8zMzP/NDQ0/zQ0NP80NDT/MzMz/zQ0NP80NDT/MzMz/zQ0
NP8zMzP/NDQ0/zQ0NP80NDT/MzMz/zQ0NP80NDT/MzMz/zMzM/8zMzP/MzMz/zIyMv8yMjL/MzMz/zIy
Mv8yMjL/MjIy/zIyMv8xMTH/MTEx/zExMf8xMTH/MDAw/zExMf8wMDD/MDAw/y8vL/8wMDD/Ly8v/y8v
L/8vLy//Ly8v/y4uLv8uLi7/Li4u/y4uLv8tLS3/LS0t/ywsLP8sLCz/LCws/ywsLP8sLCz/Kysr/ysr
K/8qKir/Kioq/yoqKv8pKSn/Kioq/ykpKf8oKCj/KSkp/ykpKf8qKir/Kioq/yoqKv8qKir/Kysr/ysr
K/8rKyv/LCws/ywsLP8tLS3/LS0t/y0tLf8tLS3/LS0t/y4uLv8uLi7/Ly8v/y8vL/8uLi7/Ly8v/y8v
L/8vLy//Ly8v/y8vL/8wMDD/MTEx/zAwMP8wMDD/MTEx/zExMf8yMjL/MjIy/zIyMv8xMTH/MjIy/zIy
Mv8zMzP/MzMz/zMzM/8yMjL/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/NDQ0/zQ0
NP8zMzP/NDQ0/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8yMjL/MzMz/zIyMv8zMzP/MjIy/zIy
Mv8yMjL/MTEx/zExMf8yMjL/MTEx/zExMf8xMTH/MTEx/zExMf8wMDD/MDAw/y8vL/8vLy//Ly8v/y8v
L/8vLy//Ly8v/y4uLv8uLi7/Li4u/y4uLv8uLi7/LS0t/y0tLf8sLCz/LS0t/ywsLP8sLCz/LCws/ysr
K/8rKyv/Kysr/yoqKv8qKir/KSkp/ykpKf8pKSn/KCgo/ykpKf8oKCj/KSkp/yoqKv8qKir/Kioq/yoq
Kv8rKyv/Kysr/ysrK/8sLCz/LCws/ywsLP8tLS3/LS0t/y0tLf8tLS3/Li4u/y4uLv8uLi7/Li4u/y8v
L/8vLy//Ly8v/y8vL/8vLy//MDAw/zAwMP8wMDD/MDAw/zExMf8xMTH/MDAw/zExMf8xMTH/MTEx/zEx
Mf8yMjL/MTEx/zExMf8yMjL/MjIy/zIyMv8zMzP/MzMz/zIyMv8zMzP/MjIy/zMzM/8yMjL/MjIy/zIy
Mv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8zMzP/MjIy/zMzM/8yMjL/MzMz/zMzM/8yMjL/MjIy/zIy
Mv8xMTH/MTEx/zIyMv8yMjL/MTEx/zExMf8xMTH/MDAw/zAwMP8wMDD/MDAw/zAwMP8vLy//MDAw/y8v
L/8vLy//Li4u/y8vL/8vLy//Li4u/y4uLv8tLS3/Li4u/y0tLf8tLS3/LS0t/y0tLf8sLCz/LCws/yws
LP8rKyv/Kysr/yoqKv8rKyv/Kioq/yoqKv8pKSn/Kioq/ykpKf8pKSn/KCgo/ygoKP8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
</value>
</data>
</root>
\ No newline at end of file
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论