1、添加PMA匹配工具

2、建立工程概念,对工程进行保存和恢复
3、将图像显示窗口更改为SmartwindowControl
4、其他bug修复
This commit is contained in:
liu.wenjie
2021-12-18 10:37:44 +08:00
parent a24dda2525
commit 8eb315b394
23 changed files with 1494 additions and 811 deletions

Binary file not shown.

View File

@@ -32,9 +32,6 @@ G:\VisionEdit\VisionEdit\CaliperTool\obj\Debug\CaliperTool.FormCaliper.resources
G:\VisionEdit\VisionEdit\CaliperTool\obj\Debug\CaliperTool.csproj.GenerateResource.Cache G:\VisionEdit\VisionEdit\CaliperTool\obj\Debug\CaliperTool.csproj.GenerateResource.Cache
G:\VisionEdit\VisionEdit\CaliperTool\obj\Debug\CaliperTool.dll G:\VisionEdit\VisionEdit\CaliperTool\obj\Debug\CaliperTool.dll
G:\VisionEdit\VisionEdit\CaliperTool\obj\Debug\CaliperTool.pdb G:\VisionEdit\VisionEdit\CaliperTool\obj\Debug\CaliperTool.pdb
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.FormCaliper.resources
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\log4net.config F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\log4net.config
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\CaliperTool.dll F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\CaliperTool.dll
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\CaliperTool.pdb F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\CaliperTool.pdb
@@ -60,5 +57,8 @@ F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\HWindow_Tool.pdb
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\halcondotnet.xml F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\halcondotnet.xml
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\Newtonsoft.Json.xml F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\Newtonsoft.Json.xml
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\DevComponents.DotNetBar2.xml F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\bin\Debug\DevComponents.DotNetBar2.xml
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.FormCaliper.resources
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.dll F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.dll
F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.pdb F:\GitHubClone\最新克隆\VisionEdit\CaliperTool\obj\Debug\CaliperTool.pdb

View File

@@ -49,6 +49,7 @@ namespace CommonMethods
{ {
String, String,
IntValue, IntValue,
DoubleValue,
Region, Region,
Image, Image,
Point, Point,
@@ -89,6 +90,7 @@ namespace CommonMethods
No_Input_String, No_Input_String,
Tool_Run_Error, Tool_Run_Error,
Input_Value_Type_Error, Input_Value_Type_Error,
Model_UnFound,
, ,
, ,
, ,

View File

@@ -12,4 +12,3 @@ F:\GitHubClone\最新克隆\VisionEdit\CommonMethods\bin\Debug\halcondotnet.xml
F:\GitHubClone\最新克隆\VisionEdit\CommonMethods\bin\Debug\Newtonsoft.Json.xml F:\GitHubClone\最新克隆\VisionEdit\CommonMethods\bin\Debug\Newtonsoft.Json.xml
F:\GitHubClone\最新克隆\VisionEdit\CommonMethods\obj\Debug\CommonMethods.dll F:\GitHubClone\最新克隆\VisionEdit\CommonMethods\obj\Debug\CommonMethods.dll
F:\GitHubClone\最新克隆\VisionEdit\CommonMethods\obj\Debug\CommonMethods.pdb F:\GitHubClone\最新克隆\VisionEdit\CommonMethods\obj\Debug\CommonMethods.pdb
F:\GitHubClone\最新克隆\VisionEdit\CommonMethods\obj\Debug\CommonHelper.csprojResolveAssemblyReference.cache

View File

@@ -37,11 +37,11 @@ namespace DataStruct
[Serializable] [Serializable]
public class XYU public class XYU
{ {
internal XYU() public XYU()
{ {
_point = new XY(); _point = new XY();
} }
internal XYU(double x, double y, double u) public XYU(double x, double y, double u)
{ {
_point = new XY(); _point = new XY();
_point.X = x; _point.X = x;

View File

@@ -24,9 +24,6 @@ G:\VisionEdit\VisionEdit\FindCircle\obj\Debug\FindCircle.FormFindCircle.resource
G:\VisionEdit\VisionEdit\FindCircle\obj\Debug\FindCircleTool.csproj.GenerateResource.Cache G:\VisionEdit\VisionEdit\FindCircle\obj\Debug\FindCircleTool.csproj.GenerateResource.Cache
G:\VisionEdit\VisionEdit\FindCircle\obj\Debug\FindCircleTool.dll G:\VisionEdit\VisionEdit\FindCircle\obj\Debug\FindCircleTool.dll
G:\VisionEdit\VisionEdit\FindCircle\obj\Debug\FindCircleTool.pdb G:\VisionEdit\VisionEdit\FindCircle\obj\Debug\FindCircleTool.pdb
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircleTool.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircle.FormFindCircle.resources
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircleTool.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\FindCircleTool.dll F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\FindCircleTool.dll
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\FindCircleTool.pdb F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\FindCircleTool.pdb
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\CommonMethods.dll F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\CommonMethods.dll
@@ -41,5 +38,8 @@ F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\ToolBase.pdb
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\HWindow_Tool.pdb F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\HWindow_Tool.pdb
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\halcondotnet.xml F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\halcondotnet.xml
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\Newtonsoft.Json.xml F:\GitHubClone\最新克隆\VisionEdit\FindCircle\bin\Debug\Newtonsoft.Json.xml
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircleTool.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircle.FormFindCircle.resources
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircleTool.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircleTool.dll F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircleTool.dll
F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircleTool.pdb F:\GitHubClone\最新克隆\VisionEdit\FindCircle\obj\Debug\FindCircleTool.pdb

View File

@@ -1,11 +1,9 @@
using System; using System;
using HalconDotNet; using HalconDotNet;
using DataStruct;
using static DataStruct.DataStruct; using static DataStruct.DataStruct;
using ToolBase; using ToolBase;
using CommonMethods; using CommonMethods;
using System.Diagnostics; using System.Diagnostics;
using ChoiceTech.Halcon.Control;
namespace FindLineTool namespace FindLineTool
{ {
@@ -207,7 +205,7 @@ namespace FindLineTool
{ {
if(inputImage != null) if(inputImage != null)
{ {
FormFindLine.Instance.myHwindow.DispHWindow.DispImage(new HImage(inputImage)); FormFindLine.Instance.myHwindow.DispImage(new HImage(inputImage));
} }
} }

View File

@@ -32,6 +32,9 @@
this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.tsbtRunTool = new System.Windows.Forms.ToolStripButton(); this.tsbtRunTool = new System.Windows.Forms.ToolStripButton();
this.statusStrip = new System.Windows.Forms.StatusStrip(); this.statusStrip = new System.Windows.Forms.StatusStrip();
this.lb_RunStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.lb_RunTime = new System.Windows.Forms.ToolStripStatusLabel();
this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.panel1 = new System.Windows.Forms.Panel(); this.panel1 = new System.Windows.Forms.Panel();
this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabControl1 = new System.Windows.Forms.TabControl();
@@ -68,9 +71,6 @@
this.label7 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label();
this.lb_RunStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.lb_RunTime = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStrip1.SuspendLayout(); this.toolStrip1.SuspendLayout();
this.statusStrip.SuspendLayout(); this.statusStrip.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
@@ -119,6 +119,22 @@
this.statusStrip.TabIndex = 3; this.statusStrip.TabIndex = 3;
this.statusStrip.Text = "statusStrip1"; this.statusStrip.Text = "statusStrip1";
// //
// lb_RunStatus
//
this.lb_RunStatus.Name = "lb_RunStatus";
this.lb_RunStatus.Size = new System.Drawing.Size(0, 17);
//
// toolStripStatusLabel1
//
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(120, 17);
this.toolStripStatusLabel1.Text = " ";
//
// lb_RunTime
//
this.lb_RunTime.Name = "lb_RunTime";
this.lb_RunTime.Size = new System.Drawing.Size(0, 17);
//
// splitContainer1 // splitContainer1
// //
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -528,23 +544,7 @@
this.label9.TabIndex = 105; this.label9.TabIndex = 105;
this.label9.Text = "起点列坐标:"; this.label9.Text = "起点列坐标:";
// //
// lb_RunStatus // FormFindLine
//
this.lb_RunStatus.Name = "lb_RunStatus";
this.lb_RunStatus.Size = new System.Drawing.Size(0, 17);
//
// toolStripStatusLabel1
//
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(120, 17);
this.toolStripStatusLabel1.Text = " ";
//
// lb_RunTime
//
this.lb_RunTime.Name = "lb_RunTime";
this.lb_RunTime.Size = new System.Drawing.Size(0, 17);
//
// FormFindLine2
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
@@ -553,7 +553,7 @@
this.Controls.Add(this.statusStrip); this.Controls.Add(this.statusStrip);
this.Controls.Add(this.toolStrip1); this.Controls.Add(this.toolStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FormFindLine2"; this.Name = "FormFindLine";
this.Text = "找线工具"; this.Text = "找线工具";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormFindLine2_FormClosing); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormFindLine2_FormClosing);
this.Load += new System.EventHandler(this.FormFindLine2_Load); this.Load += new System.EventHandler(this.FormFindLine2_Load);

View File

@@ -32,9 +32,6 @@ G:\VisionEdit\VisionEdit\FindLine\obj\Debug\FindLineTool.FormFindLine.resources
G:\VisionEdit\VisionEdit\FindLine\obj\Debug\FindLineTool.csproj.GenerateResource.Cache G:\VisionEdit\VisionEdit\FindLine\obj\Debug\FindLineTool.csproj.GenerateResource.Cache
G:\VisionEdit\VisionEdit\FindLine\obj\Debug\FindLineTool.dll G:\VisionEdit\VisionEdit\FindLine\obj\Debug\FindLineTool.dll
G:\VisionEdit\VisionEdit\FindLine\obj\Debug\FindLineTool.pdb G:\VisionEdit\VisionEdit\FindLine\obj\Debug\FindLineTool.pdb
F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.FormFindLine.resources
F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\log4net.config F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\log4net.config
F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\FindLineTool.dll F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\FindLineTool.dll
F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\FindLineTool.pdb F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\FindLineTool.pdb
@@ -60,5 +57,8 @@ F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\HWindow_Tool.pdb
F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\halcondotnet.xml F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\halcondotnet.xml
F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\Newtonsoft.Json.xml F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\Newtonsoft.Json.xml
F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\DevComponents.DotNetBar2.xml F:\GitHubClone\最新克隆\VisionEdit\FindLine\bin\Debug\DevComponents.DotNetBar2.xml
F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.FormFindLine.resources
F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.dll F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.dll
F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.pdb F:\GitHubClone\最新克隆\VisionEdit\FindLine\obj\Debug\FindLineTool.pdb

View File

@@ -32,9 +32,6 @@ G:\VisionEdit\VisionEdit\HalconTool\obj\Debug\HalconTool.FormHalconTool.resource
G:\VisionEdit\VisionEdit\HalconTool\obj\Debug\HalconTool.csproj.GenerateResource.Cache G:\VisionEdit\VisionEdit\HalconTool\obj\Debug\HalconTool.csproj.GenerateResource.Cache
G:\VisionEdit\VisionEdit\HalconTool\obj\Debug\HalconTool.dll G:\VisionEdit\VisionEdit\HalconTool\obj\Debug\HalconTool.dll
G:\VisionEdit\VisionEdit\HalconTool\obj\Debug\HalconTool.pdb G:\VisionEdit\VisionEdit\HalconTool\obj\Debug\HalconTool.pdb
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.FormHalconTool.resources
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\log4net.config F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\log4net.config
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\HalconTool.dll F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\HalconTool.dll
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\HalconTool.pdb F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\HalconTool.pdb
@@ -58,5 +55,8 @@ F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\HWindow_Tool.pdb
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\DevComponents.DotNetBar2.xml F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\DevComponents.DotNetBar2.xml
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\halcondotnet.xml F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\halcondotnet.xml
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\Newtonsoft.Json.xml F:\GitHubClone\最新克隆\VisionEdit\HalconTool\bin\Debug\Newtonsoft.Json.xml
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.FormHalconTool.resources
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.dll F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.dll
F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.pdb F:\GitHubClone\最新克隆\VisionEdit\HalconTool\obj\Debug\HalconTool.pdb

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,7 @@
using ChoiceTech.Halcon.Control; using ChoiceTech.Halcon.Control;
using CommonMethods; using CommonMethods;
using HalconDotNet; using HalconDotNet;
using Logger;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
@@ -16,12 +17,13 @@ namespace PMAlignTool
{ {
public partial class FormPMAlignTool : Form public partial class FormPMAlignTool : Form
{ {
private PMAlign myPMAlign = null; private PMAlign myPMAlign = new PMAlign();
private IToolInfo myToolInfo = null; public IToolInfo myToolInfo = new IToolInfo();
public HWindowTool_Smart myHwindow = new HWindowTool_Smart(); public HWindowTool_Smart myHwindow = new HWindowTool_Smart();
private HDrawingObject selected_drawing_object = new HDrawingObject(); private HDrawingObject selected_drawing_object = new HDrawingObject();
private List<HDrawingObject> templateModelListAdd = new List<HDrawingObject>() { }; public List<HDrawingObject> templateModelListAdd = new List<HDrawingObject>() { };
private List<HDrawingObject> templateModelListSub = new List<HDrawingObject>() { }; public List<HDrawingObject> templateModelListSub = new List<HDrawingObject>() { };
public FormPMAlignTool(ref object pmalign) public FormPMAlignTool(ref object pmalign)
{ {
InitializeComponent(); InitializeComponent();
@@ -30,6 +32,7 @@ namespace PMAlignTool
{ {
myToolInfo = (IToolInfo)pmalign; myToolInfo = (IToolInfo)pmalign;
myPMAlign = (PMAlign)myToolInfo.tool; myPMAlign = (PMAlign)myToolInfo.tool;
myPMAlign.toolName = myToolInfo.FormToolName;
myPMAlign.DispImage(); myPMAlign.DispImage();
} }
} }
@@ -70,15 +73,22 @@ namespace PMAlignTool
myHwindow.Dock = DockStyle.Fill; myHwindow.Dock = DockStyle.Fill;
InitTool(); InitTool();
} }
bool isInitTool = false;
private void InitTool() private void InitTool()
{ {
isInitTool = true;
cNumErosionValue1.Value = myPMAlign.imageProcess.erosionValue1.algValue; cNumErosionValue1.Value = myPMAlign.imageProcess.erosionValue1.algValue;
cbCErosion1.Checked = myPMAlign.imageProcess.erosionValue1.isEnable; cbCErosion1.Checked = myPMAlign.imageProcess.erosionValue1.isEnable;
cmbErsion1.TextStr = myPMAlign.imageProcess.erosionValue1.algName;
cNumDilationValue2.Value = myPMAlign.imageProcess.dilationValue.algValue; cNumDilationValue2.Value = myPMAlign.imageProcess.dilationValue.algValue;
cbCDilation1.Checked = myPMAlign.imageProcess.dilationValue.isEnable; cbCDilation1.Checked = myPMAlign.imageProcess.dilationValue.isEnable;
cmbDilation.TextStr = myPMAlign.imageProcess.dilationValue.algName;
cNumErosionValue2.Value = myPMAlign.imageProcess.erosionValue2.algValue; cNumErosionValue2.Value = myPMAlign.imageProcess.erosionValue2.algValue;
cbCErosion2.Checked = myPMAlign.imageProcess.erosionValue2.isEnable; cbCErosion2.Checked = myPMAlign.imageProcess.erosionValue2.isEnable;
cmbErsion2.TextStr = myPMAlign.imageProcess.erosionValue2.algName;
isInitTool = false;
} }
private void btnAcqNewModelImage_Click(object sender, EventArgs e) private void btnAcqNewModelImage_Click(object sender, EventArgs e)
@@ -121,10 +131,12 @@ namespace PMAlignTool
myHwindow.DispHWindow.AttachDrawingObjectToWindow(temp_object); myHwindow.DispHWindow.AttachDrawingObjectToWindow(temp_object);
if(rdo_templateRegionAdd.Checked) if(rdo_templateRegionAdd.Checked)
{ {
temp_object.SetDrawingObjectParams("color","green");
templateModelListAdd.Add(temp_object); templateModelListAdd.Add(temp_object);
} }
else else
{ {
temp_object.SetDrawingObjectParams("color", "red");
templateModelListSub.Add(temp_object); templateModelListSub.Add(temp_object);
} }
} }
@@ -156,27 +168,124 @@ namespace PMAlignTool
selectObj.Dispose(); selectObj.Dispose();
} }
public HObject contour;
private void btnCreateModel_Click(object sender, EventArgs e) private void btnCreateModel_Click(object sender, EventArgs e)
{ {
if(myPMAlign.modelID == -1) if(myPMAlign.inputImage != null)
{ {
myPMAlign.oldTrainImage = myPMAlign.inputImage; if(myPMAlign.CreateModelTemplate() == 0)
{
if (myPMAlign.matchMode == MatchMode.BasedShape)
{
HOperatorSet.GetShapeModelContours(out contour, myPMAlign.modelID, (HTuple)1);
HTuple area, row, col;
HOperatorSet.AreaCenter(myPMAlign.templateRegion, out area, out row, out col);
HTuple homMat2D;
HOperatorSet.HomMat2dIdentity(out homMat2D);
HOperatorSet.HomMat2dTranslate(homMat2D, row, col, out homMat2D);
HOperatorSet.AffineTransContourXld(contour, out contour, homMat2D);
}
myHwindow.DispHWindow.ClearWindow();
hWindowTool_Smart1.DispHWindow.ClearWindow();
myHwindow.DispImage(myPMAlign.inputImage);
//在模板窗口显示模板
HTuple row1, col1, row2, col2;
HOperatorSet.SmallestRectangle1(myPMAlign.templateRegion, out row1, out col1, out row2, out col2);
HObject outRectangle1;
HOperatorSet.GenRectangle1(out outRectangle1, row1 - 20, col1 - 20, row2 + 20, col2 + 20);
HObject imageReduced, imagePart;
HOperatorSet.ReduceDomain(myPMAlign.inputImage, outRectangle1, out imageReduced);
HObject outBoundary, inBoundary;
HOperatorSet.Boundary(myPMAlign.templateRegion, out outBoundary, "inner_filled");
HOperatorSet.Boundary(myPMAlign.templateRegion, out inBoundary, "outer");
HOperatorSet.CropDomain(imageReduced, out imagePart);
HOperatorSet.SetSystem("flush_graphic", "true");
hWindowTool_Smart1.DispImage(imagePart);
hWindowTool_Smart1.DispHWindow.SetColor("green");
hWindowTool_Smart1.DispHWindow.SetDraw("margin");
hWindowTool_Smart1.DispHWindow.DispObj(outBoundary);
hWindowTool_Smart1.DispHWindow.DispObj(inBoundary);
if (myPMAlign.matchMode == MatchMode.BasedShape)
{
HOperatorSet.SetLineStyle(myHwindow.DispHWindow, new HTuple());
HOperatorSet.SetColor(myHwindow.DispHWindow, new HTuple("orange"));
HOperatorSet.DispObj(contour, myHwindow.DispHWindow);
}
}
else
{
LoggerClass.WriteLog("创建模板失败!", MsgLevel.Exception);
}
}
else
{
myPMAlign.isCreateModel = false;
}
}
/// <summary>
/// 设定工具运行状态
/// </summary>
/// <param name="msg">运行中的信息</param>
/// <param name="status">运行状态</param>
public void SetToolStatus(string msg, ToolRunStatu status, Exception ex = null)
{
if (myPMAlign != null)
{
myPMAlign.runMessage = msg;
myPMAlign.toolRunStatu = status;
lb_RunStatus.Text = myPMAlign.toolRunStatu == ToolRunStatu.Succeed ? "工具运行成功!" : $"工具运行异常, 异常原因:{myPMAlign.runMessage}";
lb_RunTime.Text = myPMAlign.runTime;
if (myPMAlign.toolRunStatu == ToolRunStatu.Succeed)
{
statusStrip.BackColor = Color.LimeGreen;
}
else
{
statusStrip.BackColor = Color.Red;
}
} }
} }
private void PreProcess_CheckChanged(object sender, EventArgs e) private void PreProcess_CheckChanged(object sender, EventArgs e)
{ {
myPMAlign.imageProcess.erosionValue1.isEnable = cbCErosion1.Checked; if(!isInitTool)
myPMAlign.imageProcess.dilationValue.isEnable = cbCDilation1.Checked; {
myPMAlign.imageProcess.erosionValue2.isEnable = cbCErosion2.Checked; myPMAlign.imageProcess.erosionValue1.isEnable = cbCErosion1.Checked;
myPMAlign.imageProcess.dilationValue.isEnable = cbCDilation1.Checked;
myPMAlign.imageProcess.erosionValue2.isEnable = cbCErosion2.Checked;
}
} }
private void PreValueChanged(double value) private void PreValueChanged(double value)
{ {
myPMAlign.imageProcess.erosionValue1.algValue = cNumErosionValue1.Value; if (!isInitTool)
myPMAlign.imageProcess.dilationValue.algValue = cNumDilationValue2.Value; {
myPMAlign.imageProcess.erosionValue2.algValue = cNumErosionValue2.Value; myPMAlign.imageProcess.erosionValue1.algValue = cNumErosionValue1.Value;
myPMAlign.imageProcess.dilationValue.algValue = cNumDilationValue2.Value;
myPMAlign.imageProcess.erosionValue2.algValue = cNumErosionValue2.Value;
}
}
private void rabShape_CheckedChanged(object sender, EventArgs e)
{
myPMAlign.matchMode = rabShape.Checked ? MatchMode.BasedShape : MatchMode.BasedGray;
}
private void cmbErsion1_SelectedIndexChanged()
{
if (!isInitTool)
{
myPMAlign.imageProcess.erosionValue1.algName = cmbErsion1.TextStr;
myPMAlign.imageProcess.dilationValue.algName = cmbDilation.TextStr;
myPMAlign.imageProcess.erosionValue2.algName = cmbErsion2.TextStr;
}
}
private void tsbtRunTool_Click(object sender, EventArgs e)
{
myPMAlign.Run(SoftwareRunState.Debug);
} }
} }
} }

View File

@@ -117,7 +117,7 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@@ -20,13 +20,25 @@ using CommonMethods;
using HalconDotNet; using HalconDotNet;
using ToolBase; using ToolBase;
using static DataStruct.DataStruct; using static DataStruct.DataStruct;
using System.Windows.Forms;
using Logger;
using System.Diagnostics;
using System.IO;
namespace PMAlignTool namespace PMAlignTool
{ {
[Serializable] [Serializable]
public class PMAlign:IToolBase public class PMAlign : IToolBase
{ {
public string toolName { get; set; } = string.Empty;
/// <summary>
/// 输入姿态
/// </summary>
public PosXYU inputPose = new PosXYU();
/// <summary>
/// 制作模板时的输入位姿
/// </summary>
public PosXYU templatePose = new PosXYU();
/// <summary> /// <summary>
/// 是否显示匹配到的模板 /// 是否显示匹配到的模板
/// </summary> /// </summary>
@@ -50,7 +62,7 @@ namespace PMAlignTool
/// <summary> /// <summary>
/// 模板句柄 /// 模板句柄
/// </summary> /// </summary>
internal HTuple modelID { get; set; } = -1; internal HTuple modelID = -1;
/// <summary> /// <summary>
/// 行列间隔像素数 /// 行列间隔像素数
/// </summary> /// </summary>
@@ -62,13 +74,11 @@ namespace PMAlignTool
/// <summary> /// <summary>
/// 模板区域 /// 模板区域
/// </summary> /// </summary>
internal HObject templateRegion { get; set; } internal HObject templateRegion;
/// <summary> /// <summary>
/// 在进行模板创建及匹配时进行的图像预处理 /// 在进行模板创建及匹配时进行的图像预处理
/// </summary> /// </summary>
public ImagePreProcess imageProcess { get; set; } = new ImagePreProcess(); public ImagePreProcess imageProcess { get; set; } = new ImagePreProcess();
internal HObject totalRegion;
/// <summary> /// <summary>
/// 搜索区域图像 /// 搜索区域图像
/// </summary> /// </summary>
@@ -101,10 +111,14 @@ namespace PMAlignTool
/// 训练时所使用的模板图像,不点击获取图像时,不进行更新 /// 训练时所使用的模板图像,不点击获取图像时,不进行更新
/// </summary> /// </summary>
public HObject oldTrainImage { get; set; } public HObject oldTrainImage { get; set; }
public bool isCreateModel { get; set; }
internal void DispMainWindow(object dispHWindow) public override void DispMainWindow(HWindow dispHWindow)
{ {
throw new NotImplementedException(); if (showFeature)
{
ShowTemplate(dispHWindow, false);
}
} }
/// <summary> /// <summary>
@@ -119,30 +133,365 @@ namespace PMAlignTool
/// <summary> /// <summary>
/// 模板匹配结果 /// 模板匹配结果
/// </summary> /// </summary>
internal List<XYU> L_result = new List<XYU>(); public List<MatchResult> L_resultList { get; set; } = new List<MatchResult>() { };
/// <summary>
/// 匹配模式
/// </summary>
public MatchMode matchMode { get; set; } = MatchMode.BasedShape;
/// <summary>
/// 缩放最小值
/// </summary>
public HTuple minScale { get; internal set; } = 0.9;
/// <summary>
/// 缩放最大值
/// </summary>
public HTuple maxScale { get; internal set; } = 1.1;
public bool isAutoConstants { get; set; }
public string modelFilePath { get; set; }
public RegionType searchRegionType { get; set; }
public HObject SearchRegion { get; private set; }
public override void Run(SoftwareRunState softwareRunState) public override void Run(SoftwareRunState softwareRunState)
{ {
Stopwatch sw = new Stopwatch();
sw.Restart();
if (inputImage == null)
{
FormPMAlignTool.Instance.SetToolStatus("工具输入图像为空", ToolRunStatu.Not_Input_Image);
return;
}
try
{
if (softwareRunState == SoftwareRunState.Debug)
{
DispImage();
}
if (inputPose != null)
{
HTuple Row = inputPose.X - templatePose.X;
HTuple Col = inputPose.Y - templatePose.Y;
HTuple angle = inputPose.U - templatePose.U;
HTuple _homMat2D;
HOperatorSet.HomMat2dIdentity(out _homMat2D);
HOperatorSet.HomMat2dRotate(_homMat2D, (HTuple)(angle), (HTuple)templatePose.X, (HTuple)templatePose.Y, out _homMat2D);
HOperatorSet.HomMat2dTranslate(_homMat2D, (HTuple)(Row), (HTuple)(Col), out _homMat2D);
//对预期线的找模板区域做放射变换
}
minScore = FormPMAlignTool.Instance.nud_minScore.Value;
startAngle = Convert.ToInt16(FormPMAlignTool.Instance.nud_angleStart.Value);
angleRange = Convert.ToInt16(FormPMAlignTool.Instance.nud_angleRange.Value);
angleStep = Convert.ToInt16(FormPMAlignTool.Instance.nud_angleStep.Value);
polarity = FormPMAlignTool.Instance.cbx_polarity.TextStr;
isAutoConstants = FormPMAlignTool.Instance.ckb_autoContrast.Checked;
minScale = FormPMAlignTool.Instance.nud_ScaleStart.Value;
maxScale = FormPMAlignTool.Instance.nud_ScaleRange.Value;
HObject findModelImg = ProcessImage(inputImage);
int ret = FindModelTemplate(findModelImg);
ToolRunStatu myState = ret == 0 ? ToolRunStatu.Succeed : ToolRunStatu.Model_UnFound;
string retMsg = ret == 0 ? "工具运行成功,已找到匹配项!" : "未找到匹配项";
sw.Stop();
runTime = $"运行时间: {sw.ElapsedMilliseconds} ms";
FormPMAlignTool.Instance.SetToolStatus(retMsg, myState);
}
catch (Exception ex)
{
FormPMAlignTool.Instance.SetToolStatus($"工具运行异常,异常原因: {ex}", ToolRunStatu.Tool_Run_Error);
}
finally
{
}
} }
public override void DispImage() public override void DispImage()
{ {
FormPMAlignTool.Instance.myHwindow.DispHWindow.ClearWindow();
if (inputImage != null) if (inputImage != null)
{ {
FormPMAlignTool.Instance.myHwindow.DispHWindow.DispObj(inputImage); FormPMAlignTool.Instance.myHwindow.DispHWindow.DispObj(inputImage);
} }
} }
private void CreateModelRegion()
public override void DispMainWindow(HWindow window)
{ {
throw new NotImplementedException(); HOperatorSet.GenEmptyObj(out templateRegion);
foreach (var item in FormPMAlignTool.Instance.templateModelListAdd)
{
HObject selectObj = item.GetDrawingObjectIconic();
HOperatorSet.Union2(selectObj, templateRegion, out templateRegion);
}
foreach (var item in FormPMAlignTool.Instance.templateModelListSub)
{
HObject selectObj = item.GetDrawingObjectIconic();
HOperatorSet.Difference(templateRegion, selectObj, out templateRegion);
}
} }
public void CreateModelTemplate() public int CreateModelTemplate()
{ {
HObject template;
oldTrainImage = inputImage;
if (FormPMAlignTool.Instance.templateModelListAdd.Count == 0)
{
LoggerClass.WriteLog("未划定模板建立区域", MsgLevel.Exception);
isCreateModel = false;
return -1;
}
CreateModelRegion();
HObject createModelImg;
HOperatorSet.GenEmptyObj(out createModelImg);
createModelImg = ProcessImage(inputImage);
HOperatorSet.ReduceDomain(createModelImg, templateRegion, out template);
try
{
HTuple rows, cols, angles, scores, scale;
if (matchMode == MatchMode.BasedShape)
{
HOperatorSet.CreateScaledShapeModel(template,
"auto",
((HTuple)startAngle).TupleRad(),
((HTuple)angleRange).TupleRad(),
"auto",
minScale,
maxScale,
"auto",
"auto",
polarity,
isAutoConstants ? (HTuple)"auto" : (HTuple)contrast,
"auto",
out modelID);
HOperatorSet.FindScaledShapeModel(inputImage,
(HTuple)modelID,
((HTuple)startAngle).TupleRad(),
((HTuple)angleRange - startAngle).TupleRad(),
minScale,
maxScale,
(HTuple)minScore,
(HTuple)matchNum,
(HTuple)0.5,
(HTuple)"least_squares",
(HTuple)0,
(HTuple)0.9,
out rows,
out cols,
out angles,
out scale,
out scores);
}
else
{
HOperatorSet.CreateNccModel(template,
"auto",
((HTuple)startAngle).TupleRad(),
((HTuple)angleRange).TupleRad(),
"auto",
"use_polarity",
out modelID);
HOperatorSet.FindNccModel(inputImage,
(HTuple)modelID,
((HTuple)startAngle).TupleRad(),
((HTuple)angleRange - startAngle).TupleRad(),
(HTuple)minScore,
(HTuple)matchNum,
(HTuple)0.5,
(HTuple)"true",
(HTuple)0,
out rows,
out cols,
out angles,
out scores);
}
isCreateModel = true;
HOperatorSet.WriteRegion(templateRegion, FormPMAlignTool.Instance.myToolInfo.FormToolName + ".hobj");
if (scores != null && scores.Type != HTupleType.EMPTY)
{
templatePose = new PosXYU { X = rows[0].D, Y = cols[0].D , U = angles[0].D };
}
}
catch (Exception ex)
{
Logger.LoggerClass.WriteLog("创建模板时出现异常", ex);
isCreateModel = false;
return -1;
}
finally
{
FormPMAlignTool.Instance.templateModelListAdd.Clear();
FormPMAlignTool.Instance.templateModelListSub.Clear();
}
return 0;
} }
public int FindModelTemplate(HObject findModelImage)
{
if (!isCreateModel)
{
LoggerClass.WriteLog("未创建或加载模板", MsgLevel.Exception);
return -1;
}
if (File.Exists(toolName + ".hobj"))
{
HOperatorSet.ReadRegion(out templateRegion, toolName + ".hobj");
LoggerClass.WriteLog($"{FormPMAlignTool.Instance.myToolInfo.FormToolName} 已加载模板", MsgLevel.Info);
}
HObject image;
if (searchRegionType == RegionType.AllImage)
{
image = findModelImage;
}
else
{
HOperatorSet.ReduceDomain(inputImage, SearchRegion, out reducedImage);
image = reducedImage;
}
HTuple rows, cols, angles, scores;
L_resultList.Clear();
try
{
if (matchMode == MatchMode.BasedShape)
{
HTuple temp;
HOperatorSet.FindScaledShapeModel(image,
(HTuple)modelID,
((HTuple)startAngle).TupleRad(),
((HTuple)angleRange - startAngle).TupleRad(),
minScale,
maxScale,
(HTuple)minScore,
(HTuple)matchNum,
(HTuple)0.5,
(HTuple)"least_squares",
(HTuple)0,
(HTuple)0.9,
out rows,
out cols,
out angles,
out temp,
out scores);
}
else
{
HOperatorSet.FindNccModel(image,
(HTuple)modelID,
((HTuple)startAngle).TupleRad(),
((HTuple)angleRange - startAngle).TupleRad(),
(HTuple)minScore,
(HTuple)matchNum,
(HTuple)0.5,
(HTuple)"true",
(HTuple)0,
out rows,
out cols,
out angles,
out scores);
}
FormPMAlignTool.Instance.myHwindow.DispHWindow.ClearWindow();
FormPMAlignTool.Instance.myHwindow.DispImage(inputImage);
if (rows.TupleLength() > 0)
{
for (int i = 0; i < rows.TupleLength(); i++)
{
MatchResult matchResult = new MatchResult();
matchResult.Row = Math.Round((double)rows[i], 3);
matchResult.Col = Math.Round((double)cols[i], 3);
matchResult.Angle = Math.Round((double)angles[i], 3);
matchResult.Socre = Math.Round((double)scores[i], 3);
L_resultList.Add(matchResult);
}
MatchResult temp;
for (int i = 0; i < L_resultList.Count - 1; i++)
{
for (int j = i + 1; j < L_resultList.Count; j++)
{
if (L_resultList[i].Socre < L_resultList[j].Socre)
{
temp = L_resultList[i];
L_resultList[i] = L_resultList[j];
L_resultList[j] = temp;
}
}
}
}
if(L_resultList.Count > 0)
{
toolRunStatu = ToolRunStatu.Succeed;
ShowTemplate(FormPMAlignTool.Instance.myHwindow.DispHWindow);
return 0;
}
}
catch (Exception ex)
{
LoggerClass.WriteLog("寻找模板时出现异常!", ex);
toolRunStatu = ToolRunStatu.Not_Succeed;
}
return -1;
}
public HObject contour;
/// <summary>
/// 显示模板
/// </summary>
internal void ShowTemplate(HWindow dispHWindow, bool clearImg = false)
{
try
{
if (modelID == null)
{
return;
}
if(clearImg)
{
dispHWindow.ClearWindow();
dispHWindow.DispObj(inputImage);
}
if (matchMode == MatchMode.BasedShape)
{
HOperatorSet.GetShapeModelContours(out contour, modelID, new HTuple(1));
HTuple area, row, col;
HOperatorSet.AreaCenter(templateRegion, out area, out row, out col);
HTuple homMat2D;
HOperatorSet.HomMat2dIdentity(out homMat2D);
HOperatorSet.HomMat2dTranslate(homMat2D, row, col, out homMat2D);
HOperatorSet.AffineTransContourXld(contour, out contour, homMat2D);
dispHWindow.SetColor("green");
dispHWindow.DispObj(contour);
}
HObject outBoundary, inBoundary;
HOperatorSet.Boundary(templateRegion, out outBoundary, "inner_filled");
HOperatorSet.Boundary(templateRegion, out inBoundary, "outer");
HOperatorSet.SetColor(FormPMAlignTool.Instance.myHwindow.DispHWindow, "green");
HOperatorSet.SetLineStyle(FormPMAlignTool.Instance.myHwindow.DispHWindow, new HTuple());
dispHWindow.DispObj(outBoundary);
dispHWindow.DispObj(inBoundary);
}
catch (Exception ex)
{
Logger.LoggerClass.WriteLog("显示模板时出现错误", ex);
}
}
private HObject ProcessImage(HObject inputImg)
{
if (inputImage == null) return inputImage;
if (imageProcess.erosionValue1.isEnable)
{
HOperatorSet.GrayErosionShape(inputImg, out inputImg, imageProcess.erosionValue1.algValue, imageProcess.erosionValue1.algValue, imageProcess.erosionValue1.algName);
}
if (imageProcess.dilationValue.isEnable)
{
HOperatorSet.GrayDilationShape(inputImg, out inputImg, imageProcess.erosionValue1.algValue, imageProcess.erosionValue1.algValue, imageProcess.dilationValue.algName);
}
if (imageProcess.erosionValue2.isEnable)
{
HOperatorSet.GrayErosionShape(inputImg, out inputImg, imageProcess.erosionValue1.algValue, imageProcess.erosionValue1.algValue, imageProcess.erosionValue2.algName);
}
return inputImg;
}
} }
[Serializable] [Serializable]
public class ImagePreProcess public class ImagePreProcess
@@ -156,5 +505,35 @@ namespace PMAlignTool
{ {
public double algValue { get; set; } = 0; public double algValue { get; set; } = 0;
public bool isEnable { get; set; } = false; public bool isEnable { get; set; } = false;
public string algName { get; set; } = "rectangle";
}
[Serializable]
public enum MatchMode
{
BasedShape,
BasedGray,
}
[Serializable]
public enum RegionType
{
AllImage,
Rectangle1,
Rectangle2,
Circle,
Ellipse,
MultPoint,
Ring,
Any,
}
/// <summary>
/// 模板匹配结果
/// </summary>
[Serializable]
public struct MatchResult
{
internal double Row;
internal double Col;
internal double Angle;
internal double Socre;
} }
} }

View File

@@ -96,8 +96,9 @@
treeNode4.Name = "节点3"; treeNode4.Name = "节点3";
treeNode4.SelectedImageIndex = 3; treeNode4.SelectedImageIndex = 3;
treeNode4.Text = "HIKVision"; treeNode4.Text = "HIKVision";
treeNode5.ImageIndex = 4; treeNode5.ImageKey = "相机.png";
treeNode5.Name = "节点0"; treeNode5.Name = "节点0";
treeNode5.SelectedImageKey = "相机.png";
treeNode5.Text = "获取图像"; treeNode5.Text = "获取图像";
treeNode6.Name = "节点5"; treeNode6.Name = "节点5";
treeNode6.Text = "滤波"; treeNode6.Text = "滤波";
@@ -173,6 +174,7 @@
this.imageList1.Images.SetKeyName(14, "停止.png"); this.imageList1.Images.SetKeyName(14, "停止.png");
this.imageList1.Images.SetKeyName(15, "几何_32.png"); this.imageList1.Images.SetKeyName(15, "几何_32.png");
this.imageList1.Images.SetKeyName(16, "图像预处理_32.png"); this.imageList1.Images.SetKeyName(16, "图像预处理_32.png");
this.imageList1.Images.SetKeyName(17, "相机.png");
// //
// richTextBoxEx1 // richTextBoxEx1
// //
@@ -205,6 +207,7 @@
this.imageListTool.Images.SetKeyName(8, "卡尺.png"); this.imageListTool.Images.SetKeyName(8, "卡尺.png");
this.imageListTool.Images.SetKeyName(9, "匹配.ico"); this.imageListTool.Images.SetKeyName(9, "匹配.ico");
this.imageListTool.Images.SetKeyName(10, "模板.ico"); this.imageListTool.Images.SetKeyName(10, "模板.ico");
this.imageListTool.Images.SetKeyName(11, "相机.png");
// //
// splitContainer1 // splitContainer1
// //

View File

@@ -124,8 +124,8 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABs ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADS
LAAAAk1TRnQBSQFMAgEBEQEAAVgBAAFYAQABIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo LgAAAk1TRnQBSQFMAgEBEgEAAXABAAFwAQABIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABgAMAAaADAAEBAQABCAYAAVAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABgAMAAaADAAEBAQABCAYAAVAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -153,168 +153,178 @@
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wAHAAH/ARYBagiP AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/yIAH2dgAAH0AWcdmAFn
AWcBSgg4AVkBmgH/aAABFgqPAWcBSgo4AZpoAAFqCo8BZwFKCjgBWWgAC48BZwFKCzhoAAuPAWcBSgs4 YAAB7QFnHZgBZ2AAAe0BZwyYAW0DZwHrDJgBZ0QAAf8BFgFqCI8BZwFKCDgBWQGaAf8EAAHtAWcKmAHs
aAALjwFnAUoLOGgAC48BZwFKCzhoAAuPAWcBSgs4aAALjwFnAUoLUmgAC48BZwxDaAALjwFnAUkLcWgA B2cBkgqYAWdEAAEWCo8BZwFKCjgBmgQAAe0BZwmYA2cF/wJnAesJmAFnRAABagqPAWcBSgo4AVkEAAHt
C48BZwFJC3FoAAuPAWcBSQtxaAALjwFnAUkLcWgADEMBSQtxaAALowFmAUkLcWgAC8YBZwFJC3FoAAvG AWcJmAFnAfcH/wJnCZgBZ0QAC48BZwFKCzgEAAHtAWcImAJnCf8CZwiYAWdEAAuPAWcBSgs4BAAB7QFn
AWcBSQtxaAALxgFnAUkLcWgAC8YBZwFJC3FoAAvGAWcBSQtxaAALxgFnAUkKcQFWaAABsArGAWcBSQpx B5gB6wFnBP8B8wHtAfQE/wFnCJgBZ0QAC48BZwFKCzgEAAHtAWcHmAJnA/8FZwP/AmcHmAFnRAALjwFn
AXhoAAH/AbABgAjGAWcBSQhxAVYBeAH0/wD/AHIAAfQGVQF3Af82AAolAW80AA1VMgAPJTAAB1UBlwGY AUoLOAQAAe0BZweYAWcD/wFtAWcCmAHtAWcBBwP/AWcHmAFnRAALjwFnAUoLOAQAAe0BZweYAWcD/wFn
AXcGVQF3EgAL9BEACSUBTAglAW8tAARVAZgJAAF3BFUPAA/rDgAFJQFvCQABRgUlKgAB9ANVAZ0NAAGX AewDmAJnA/8BZweYAWdEAAuPAWcBSgtSBAAB7QFnB5gBZwP/AWcFmAFnA/8BZweYAWdEAAuPAWcMQwQA
A1UB/wwAAusB8gsAAQcC6wwABCUBTA0ABSUTAAL0EwAB/wNVEAAB/wNVDAAB6wHtDQAC6wsABCUQAAH0 Ae0BZweYAWcD/wFnBZgBZwP/AWcHmAFnRAALjwFnAUkLcQQAAe0BZweYAWcD/wFnAZIDmAHqAWcD/wFn
BCUSAAL/EwADVRIAAf8DVQsAAesB8gEAAusCAAHyAesDAAHrAewBAAHsAesKAAQlEgAB/wMlAW8FAAH0 B5gBZ0QAC48BZwFJC3EEAAHtAWcHmAFnA/8CZwOYAWcBjQP/AWcHmAFnRAALjwFnAUkLcQQAAe0BZweY
AfEB/wkAAv8JAAH/AfEB9AYAA1UUAAH0AlUBlwoAAesB9AEAAusCAAHyAesDAAHrAewBAAGSAesJAAH/ AWcB6wP/BWcD/wJnB5gBZ0QAC48BZwFJC3EEAAHtAWcHmAHrAWcE/wH3AWcBvAT/AWcImAFnRAAMQwFJ
AyUUAAH0AyUFAAH/AbwBcwHxAf8HAAL0BwAB/wHxAXMBvAH/BQAB/wJVAQgHAAHxDQABdwJVCgAB6wH0 C3EEAAHtAWcImAFnAW0J/wJnCJgBZ0QAC6MBZgFJC3EEAAHtAWcImAHsAWcB8wf/AZIBZwOYBWcBmAFn
AQAC6wIAAfIB6wMAAesB7AEAAZIB6wkAAyUBFhUAAUYDJQYAAf8BBwEcAfMB/wUAAv8FAAH/AfMBHAEH RAALxgFnAUkLcQQAAe0BZwmYA2cF/wNnA5gFZwGYAWdEAAvGAWcBSQtxBAAB7QFnCpgBbQdnAewEmAFn
Af8HAANVCAACVQ0AAlUBdwkAAesB9AEAAusCAAHyAesDAAHrAewBAAGSAesIAAH/AyUFAAz/BgADJQgA A+MBZwGYAWdEAAvGAWcBSQtxBAAB7QFnDJgFZwaYBWcBmAFnRAALxgFnAUkLcQQAAe0BZxeYAW0DZwHs
Af8BBwEcAfMB/wMAAvQDAAH/AfMBHAEHAf8JAAJVAfQIAANVDAABdwJVCQAB6wH0AQAC6wIAAfIB6wMA AZgBZ0QAC8YBZwFJC3EEAAHwAWcdmAFnRAALxgFnAUkKcQFWBQAfZ0QAAbAKxgFnAUkKcQF4BgAFBwJn
AesB7AEAAZIB6wgAAyUB8wUAAW8LJQYAAUYCJQFvAwAB8wFyARwB8wIAAf8BBwEcAfMB/wEAAvQBAAH/ D24BZwHsBQdFAAH/AbABgAjGAWcBSQhxAVYBeAH0CwAB8AFnD5oBZwH/bgABZw+aAWdvAAFnD5oBZ28A
AfMBHAEHAf8CAAG8AfIBHAH0BAABCAJVCQAEVQHxCwACVQH/CAAB6wH0AQAC6wIAAfIB6wMAAesB7AEA EWdvAAH0D2cB/1MAAfQGVQF3Af82AAolAW80AA1VMgAPJTAAB1UBlwGYAXcGVQF3EgAL9BEACSUBTAgl
AZIB6wgAAyUGAAFvCyUHAAMlAwAB/wEcAfMFAAH/AQcBHAHzAv8B8wEcAQcB/wQAAf8BcwG8BQADVQkA AW8tAARVAZgJAAF3BFUPAA/rDgAFJQFvCQABRgUlKgAB9ANVAZ0NAAGXA1UB/wwAAusB8gsAAQcC6wwA
BlUKAAJVAXcIAAHrAfQBAALrAgAB8gHrAwAB6wHsAQABkgHrCAADJQYAAW8LJQcAAyUDAAH/AfQBcwH/ BCUBTA0ABSUTAAL0EwAB/wNVEAAB/wNVDAAB6wHtDQAC6wsABCUQAAH0BCUSAAL/EwADVRIAAf8DVQsA
BgAB/wG8AnMBvAH/BgAB9AEcAe8FAAJVAZcJAAdVCQADVQgAAesB9AEAAusCAAHyAesDAAHrAewBAAGS AesB8gEAAusCAAHyAesDAAHrAewBAAHsAesKAAQlEgAB/wMlAW8FAAH0AfEB/wkAAv8JAAH/AfEB9AYA
AesHAAH/AyUGAAFvCyUHAAMlAwAB9AIHAfQHAATwBwAB8AH0AfAB9AQAAlUB8wkACFUBCAcAA1UIAAHr A1UUAAH0AlUBlwoAAesB9AEAAusCAAHyAesDAAHrAewBAAGSAesJAAH/AyUUAAH0AyUFAAH/AbwBcwHx
AfQBAALrAgAB8gHrAwAB6wHsAQABkgHrBwABlAIlARoGAAFvCyUHAAMlCgAC/wHxAf8BAALxAQAB/wHx Af8HAAL0BwAB/wHxAXMBvAH/BQAB/wJVAQgHAAHxDQABdwJVCgAB6wH0AQAC6wIAAfIB6wMAAesB7AEA
Av8LAAJVAfQJAAlVBwABnQJVCAAB6wH0AQAC6wIAAfIB6wMAAesB7AEAAZIB6wcAAUYCJQH0BgABbwsl AZIB6wkAAyUBFhUAAUYDJQYAAf8BBwEcAfMB/wUAAv8FAAH/AfMBHAEHAf8HAANVCAACVQ0AAlUBdwkA
BwABbwIlCQAB9AH/AfMDAALxAwAB8wH/AfQKAAJVAfMJAAhVCAADVQgAAesB9AEAAusCAAHyAesDAAHr AesB9AEAAusCAAHyAesDAAHrAewBAAGSAesIAAH/AyUFAAz/BgADJQgAAf8BBwEcAfMB/wMAAvQDAAH/
AewBAAGSAesHAAGTAiUBGgYAAW8LJQcAAyUHAAP0BQAC8QUAA/QIAAJVAZcJAAZVAQgJAANVCAAB6wH0 AfMBHAEHAf8JAAJVAfQIAANVDAABdwJVCQAB6wH0AQAC6wIAAfIB6wMAAesB7AEAAZIB6wgAAyUB8wUA
AQAC6wIAAfIB6wMAAesB7AEAAZIB6wcAAf8CJQFMBgABbwslBwADJQcAAv8GAALxBgAC/wgAA1UJAAVV AW8LJQYAAUYCJQFvAwAB8wFyARwB8wIAAf8BBwEcAfMB/wEAAvQBAAH/AfMBHAEHAf8CAAG8AfIBHAH0
Af8KAANVCAAB6wH0AQAC6wIAAfIB6wMAAesB7AEAAZIB6wgAAyUGAAFvCyUHAAMlDwAC8RAAAZgCVQkA BAABCAJVCQAEVQHxCwACVQH/CAAB6wH0AQAC6wIAAfIB6wMAAesB7AEAAZIB6wgAAyUGAAFvCyUHAAMl
BFUMAAJVAfQIAAHrAfQBAALrAgAB8gHrAwAB6wHsAQABkgHrCAADJQYAAW8LJQcAAyUPAALxEQACVQH/ AwAB/wEcAfMFAAH/AQcBHAHzAv8B8wEcAQcB/wQAAf8BcwG8BQADVQkABlUKAAJVAXcIAAHrAfQBAALr
CAACVQEIDAABlwJVCQAB6wH0DQABkgHrCAADJQH/BQABbwslBgABFgMlDwAC8REAA1UIAAFVDgADVQcA AgAB8gHrAwAB6wHsAQABkgHrCAADJQYAAW8LJQcAAyUDAAH/AfQBcwH/BgAB/wG8AnMBvAH/BgAB9AEc
Av8B6wHwDf8B7AHrAv8GAAH0AyUFAAEWC0YGAAMlAf8PAALxEQAB9AJVAfMVAAGXAlUIABXrBwADJQHz Ae8FAAJVAZcJAAdVCQADVQgAAesB9AEAAusCAAHyAesDAAHrAewBAAGSAesHAAH/AyUGAAFvCyUHAAMl
FQABbwMlEAAC8RIAA1UVAANVCAAV6wcAARoDJRUAAyURAALxEwADVRMAA1UJABXrCAAEJRMABCURAALx AwAB9AIHAfQHAATwBwAB8AH0AfAB9AQAAlUB8wkACFUBCAcAA1UIAAHrAfQBAALrAgAB8gHrAwAB6wHs
AgAB/xAAAfIDVREAA1UPAALrBwAB6wHsDgAEJREABCUSAALxAgABHBEAAQgDVQHyDQABmANVAfQPAALr AQABkgHrBwABlAIlARoGAAFvCyUHAAMlCgAC/wHxAf8BAALxAQAB/wHxAv8LAAJVAfQJAAlVBwABnQJV
AfQFAAG8AesB7w8ABCUB8w0AAZMEJRMAAvEBAAH/AXIB9BEAAfIEVQH/CQAB8gRVEgAJ6xEABSUB/wkA CAAB6wH0AQAC6wIAAfIB6wMAAesB7AEAAZIB6wcAAUYCJQH0BgABbwslBwABbwIlCQAB9AH/AfMDAALx
AfMFJRQAAvEBAAEIAfABHBMABlUBlwHxAfQB8QdVFAAB8QWSAfQTAAclAW8BGwH0ARoBRgclFQAC/wEA AwAB8wH/AfQKAAJVAfMJAAhVCAADVQgAAesB9AEAAusCAAHyAesDAAHrAewBAAGSAesHAAGTAiUBGgYA
AfIB/wHzAf8TAAH0DVUB/zAAARoPJQH/MwABmAdVAfA1AAH0CyUB/3cAAf8BkwFGAZMB/3AAAZcDVQEI AW8LJQcAAyUHAAP0BQAC8QUAA/QIAAJVAZcJAAZVAQgJAANVCAAB6wH0AQAC6wIAAfIB6wMAAesB7AEA
IQABwghaAfNPAAHCBlUB9B0AAfMMWgH0TQAJVQH/GgAQWg4AAfQDBwHyDgAB9AMHAfImAApVAZcYAAZa AZIB6wcAAf8CJQFMBgABbwslBwADJQcAAv8GAALxBgAC/wgAA1UJAAVVAf8KAANVCAAB6wH0AQAC6wIA
AQgEAAGeBVoNAAH0AXMB8gLzAfQOAAH/A/MBBwHyBgABvBkUBQAMVQHCFQAFWgH/CAAB/wNaDQAB8wEH AfIB6wMAAesB7AEAAZIB6wgAAyUGAAFvCyUHAAMlDwAC8RAAAZgCVQkABFUMAAJVAfQIAAHrAfQBAALr
FgAB8wEHBgABvAEUBLgBkA0UBLgBkAEUBQAOVQH/EgABngRaDAAB5AH/DQAB8wEHAgAB/wLzAvQB/wIA AgAB8gHrAwAB6wHsAQABkgHrCAADJQYAAW8LJQcAAyUPAALxEQACVQH/CAACVQEIDAABlwJVCQAB6wH0
Av8CAAH/AwAB/wMAAfMBBwYAAbwBFAG4A5ABbAcUAYsBkAQUA5ABuAGQARQFABBVEQAEWhwAAfMBBwUA DQABkgHrCAADJQH/BQABbwslBgABFgMlDwAC8REAA1UIAAFVDgADVQcAAv8B6wHwDf8B7AHrAv8GAAH0
Af8B8wHwAgAB8wFyAbwCBwEAAf8CBwMAAfMBBwYAAbwBFAG4CRQBbAPZAWwGFAG4AZABFAUAEVUBmA4A AyUFAAEWC0YGAAMlAf8PAALxEQAB9AJVAfMVAAGXAlUIABXrBwADJQHzFQABbwMlEAAC8RIAA1UVAANV
BFodAAH/AfQCAAHzAgcBvAH0AgAB8AH/AfQB8QHzAf8B8wHvAfIB/wHyAf8BAAH/AfQGAAG8ARQBuAgU CAAV6wcAARoDJRUAAyURAALxEwADVRMAA1UJABXrCAAEJRMABCURAALxAgAB/xAAAfIDVREAA1UPAALr
AZAC2QGzApACuAGQAxQBuAGQARQFABNVAfIMAANaAf8jAAH/AfQBcwEcAf8B9AEcAQAB8AIAAXMB9AH/ BwAB6wHsDgAEJREABCUSAALxAgABHBEAAQgDVQHyDQABmANVAfQPAALrAfQFAAG8AesB7w8ABCUB8w0A
AXMBBwH/CQABvAEUAbgHFAGQAtkBbAGQBNkBkAMUAbgBkAEUBQAVVQH/CQABngNaIQAB/wMHAfEB9gHy AZMEJRMAAvEBAAH/AXIB9BEAAfIEVQH/CQAB8gRVEgAJ6xEABSUB/wkAAfMFJRQAAvEBAAEIAfABHBMA
Ae8B9AHyARwB/wHwAf8BBwHyAfQBBwsAAbwIFAFsAtkBbAGyAdkBuAKLAbMBkAYUBQAWVQGXCAADWgH/ BlUBlwHxAfQB8QdVFAAB8QWSAfQTAAclAW8BGwH0ARoBRgclFQAC/wEAAfIB/wHzAf8TAAH0DVUB/zAA
JAAB/wG8AXMB/wH0AXIB/wHvAfICAAH/AQcBAAEHCwABvAgUAbgB2QFsAZAB2QG4ARQBkALZAbIGFAUA ARoPJQH/MwABmAdVAfA1AAH0CyUB/3cAAf8BkwFGAZMB/3AAAZcDVQEIIQABwghaAfNPAAHCBlUB9B0A
GFUBmAYAA1oUAANaCQAIBwHvDwcHAAEZGd8FABpVAfQEAANaEwABCARaLwABGgFZARsBGgFZAfQBGgFZ AfMMWgH0TQAJVQH/GgAQWg4AAfQDBwHyDgAB9AMHAfImAApVAZcYAAZaAQgEAAGeBVoNAAH0AXMB8gLz
AZoBAAGaAVkBGgoAG1UBmAIAAf8DWhIAAf8GWggAAfQB8gH0AfIC8wH0Af8B8wH0AfMB9ALzAfQB8wH0 AfQOAAH/A/MBBwHyBgABvBkUBQAMVQHCFQAFWgH/CAAB/wNaDQAB8wEHFgAB8wEHBgABvAEUBLgBkA0U
AfMB9AHzAfQB8xAAAZoBWQH0AXoBmgH/AnoB9gGaAXoBGgH/CgAcVQH/AQABngJaAZ4SAAdaAQgHAAHz BLgBkAEUBQAOVQH/EgABngRaDAAB5AH/DQAB8wEHAgAB/wLzAvQB/wIAAv8CAAH/AwAB/wMAAfMBBwYA
AQcB8wEHAfMBCAIAAfIBvAHyAbwB8gG8AfMBBwHzAQcB8wG8AfMBBxAAAZoBWQH/AVkBGgEbAVkB/wHz AbwBFAG4A5ABbAcUAYsBkAQUA5ABuAGQARQFABBVEQAEWhwAAfMBBwUAAf8B8wHwAgAB8wFyAbwCBwEA
AVkBmgH/AZoKABxVAZgBAANaAcIRAAlaAf8GAAH/AfQB8wHvAfMBHAH/AfMB9AFzAfYB9AHwAvIB8AH/ Af8CBwMAAfMBBwYAAbwBFAG4CRQBbAPZAWwGFAG4AZABFAUAEVUBmA4ABFodAAH/AfQCAAHzAgcBvAH0
AfQB8gHwAfIBvA0AAvQBAAGaAXoB/wFZAhoBegEAAZoBegH0AnoKABxVARsBAAGeAloBnhAAC1oB/wcA AgAB8AH/AfQB8QHzAf8B8wHvAfIB/wHyAf8BAAH/AfQGAAG8ARQBuAgUAZAC2QGzApACuAGQAxQBuAGQ
AfQBcwH2AXID/wG8AXMB7wEcAQABBwL/AQABvAH0AfAB8w0AAnoBAAGaAVkB/wFZAXoB/wH2AfQBWQEa ARQFABNVAfIMAANaAf8jAAH/AfQBcwEcAf8B9AEcAQAB8AIAAXMB9AH/AXMBBwH/CQABvAEUAbgHFAGQ
ARsBWQEaCgAcVQIAAf8DWg8ABFoBngNaAf8EWgYAAQcB/wFzAfQBHAHzAvQB/wH0AfMB9gHwAQcB/wEH AtkBbAGQBNkBkAMUAbgBkAEUBQAVVQH/CQABngNaIQAB/wMHAfEB9gHyAe8B9AHyARwB/wHwAf8BBwHy
AQABBwH/AQcB/w0AAZoBegH/ARoBWQHzARsCegEaAXoBmgH/AZoBegH/CgAaVQGXBAADWg8ABFoBAANa AfQBBwsAAbwIFAFsAtkBbAGyAdkBuAKLAbMBkAYUBQAWVQGXCAADWgH/JAAB/wG8AXMB/wH0AXIB/wHv
AQAB/wNaBgABBwHyAfMBvAH/ARwB/wH0AfEB9gEHAXMBBwH/Ae8B8AH0AQcB/wEHDgABGwFZARsB9gFZ AfICAAH/AQcBAAEHCwABvAgUAbgB2QFsAZAB2QG4ARQBkALZAbIGFAUAGFUBmAYAA1oUAANaCQAIBwHv
AXoB/wEbAXoBWQF6Af8BmgFZARsLABlVAf8FAANaDwADWgIAA1oCAAHAAloGAAH/Ae8C/wEAAfMBHAHz DwcHAAEZGd8FABpVAfQEAANaEwABCARaLwABGgFZARsBGgFZAfQBGgFZAZoBAAGaAVkBGgoAG1UBmAIA
Av8B8wL0AQcBvAH0AXMB9AEHAfEOAAH/AnoB/wHzAnoBGwH/AvQBmgFZARoB/wsAF1UB8QcAA1oQAAEb Af8DWhIAAf8GWggAAfQB8gH0AfIC8wH0Af8B8wH0AfMB9ALzAfQB8wH0AfMB9AHzAfQB8xAAAZoBWQH0
AgAB8wNaAwAB/wgAAbwB8AEAAvQB/wHvAXIBHAEHAnMB9AH/ARwB9AHzAXMB/w8AARoBWQEaAQAB/wF6 AXoBmgH/AnoB9gGaAXoBGgH/CgAcVQH/AQABngJaAZ4SAAdaAQgHAAHzAQcB8wEHAfMBCAIAAfIBvAHy
BVkBmgH/DAAVVgGYCQABfANaEgADWgGeDAAB/wEcAfIB/wEHAbwB9AH2AvMB9AH/AfABHAHzAQABBwH/ AbwB8gG8AfMBBwHzAQcB8wG8AfMBBxAAAZoBWQH/AVkBGgEbAVkB/wHzAVkBmgH/AZoKABxVAZgBAANa
EAAB9gJ6ARoC/wHzAxoB9A4AFFYB/wsAA1oRAAH/A1oJAAH0AfIEAAEcAfAB/wHzAnMCHAFzAVAB8AcA AcIRAAlaAf8GAAH/AfQB8wHvAfMBHAH/AfMB9AFzAfYB9AHwAvIB8AH/AfQB8gHwAfIBvA0AAvQBAAGa
AfQB8ggAAfcEAAH/AXoBWQF6AfMB/woAAfcB8QYAElYB9A0ABFoQAARaCQAB8wEHBAAB/wG8Ae8B8gH/ AXoB/wFZAhoBegEAAZoBegH0AnoKABxVARsBAAGeAloBnhAAC1oB/wcAAfQBcwH2AXID/wG8AXMB7wEc
AfQC8wH0Af8B8wEIAf8FAAHzAQcIAAH3BQAB/wEaAXoBWQJ6AZoBGgcAAfcB8QYAEFYBCBAABFoOAARa AQABBwL/AQABvAH0AfAB8w0AAnoBAAGaAVkB/wFZAXoB/wH2AfQBWQEaARsBWQEaCgAcVQIAAf8DWg8A
CgAB8wEHBgAB/wEHAXIBcwEcAe8BHAFQARwB9AYAAfMBBwgAAfcHAAH/ARsBmgF6AVkBGgcAAfcB8QYA BFoBngNaAf8EWgYAAQcB/wFzAfQBHAHzAvQB/wH0AfMB9gHwAQcB/wEHAQABBwH/AQcB/w0AAZoBegH/
DlYBlxIABVoMAARaAZ4KAAHzAQcIAAH/AfQC8wH0Af8IAAHzAQcIAAH3A/EB9A0AA/EB9wHxBgANVgH/ ARoBWQHzARsCegEaAXoBmgH/AZoBegH/CgAaVQGXBAADWg8ABFoBAANaAQAB/wNaBgABBwHyAfMBvAH/
FAAFWgoABVoLAAH/AVAB7wIHAfIOAAH0AwcBcwH0CAAE9wHxDQAE9wHxBgALVgH0FwAGWgYABloNAAH/ ARwB/wH0AfEB9gEHAXMBBwH/Ae8B8AH0AQcB/wEHDgABGwFZARsB9gFZAXoB/wEbAXoBWQF6Af8BmgFZ
A/MB9A4AAf8D8wH0JgAJVgEIGgAQWkwAAZgGVgGXHQAB5AxaAZ5OAAVWAf8gAApaUQACCAH/JQAB9AKe ARsLABlVAf8FAANaDwADWgIAA1oCAAHAAloGAAH/Ae8C/wEAAfMBHAHzAv8B8wL0AQcBvAH0AXMB9AEH
Af//ADMAAfMDWigAAfMDWjAAAfYbWQQAAfMBWgEAAVomAARaAQAEWhQAAWwB9AHzFgAdWQMAAfMDWiMA AfEOAAH/AnoB/wHzAnoBGwH/AvQBmgFZARoB/wsAF1UB8QcAA1oQAAEbAgAB8wNaAwAB/wgAAbwB8AEA
Af8CWgH0AQAB8wNaAgABCAJaEQABbAH0AWYXAB1ZBAAC8wHCAVohAAGeAVoB/wQAA/MEAAHCAVoB/w4A AvQB/wHvAXIBHAEHAnMB9AH/ARwB9AHzAXMB/w8AARoBWQEaAQAB/wF6BVkBmgH/DAAVVgGYCQABfANa
AWwC9AH/AwAB/wGuEgAdWQcAAfQBWh8AAloPAAFaAcIMAAFsAvQBZgQAAWwBtRIAHVkIAAH/AVodAAHk EgADWgGeDAAB/wEcAfIB/wEHAbwB9AH2AvMB9AH/AfABHAHzAQABBwH/EAAB9gJ6ARoC/wHzAxoB9A4A
AVoRAAFaAf8KAAFsAvQBZgQAAfIB9AGREgAdWQkAAf8BWhsAAf8BWhMAAVoJAAG8AvQBrgUAAe0B9AFm FFYB/wsAA1oRAAH/A1oJAAH0AfIEAAEcAfAB/wHzAnMCHAFzAVAB8AcAAfQB8ggAAfcEAAH/AXoBWQF6
EgAdWQoAAfQBWhoAAVoUAAHCAVoIAAH3AvQBZgQAAewC9AHzEgAdWQsAAfQBWhgAAf8BWhUAAVoHAAFs AfMB/woAAfcB8QYAElYB9A0ABFoQAARaCQAB8wEHBAAB/wG8Ae8B8gH/AfQC8wH0Af8B8wEIAf8FAAHz
BPQBvAH3AgABZgL0EwAdWQwAAf8BWhcAAVoWAAEIAVoGAAT0AfcBbAHzAWwBZgEJAWYBrhMAHVkNAAH/ AQcIAAH3BQAB/wEaAXoBWQJ6AZoBGgcAAfcB8QYAEFYBCBAABFoOAARaCgAB8wEHBgAB/wEHAXIBcwEc
AVoWAAFaFwABWgUAAa4B8wX0AfMBbAH/AfECCQFsEgAdWQ4AAfQBWhUAAVoXAAFaBgABZgL0AWwE9AG8 Ae8BHAFQARwB9AYAAfMBBwgAAfcHAAH/ARsBmgF6AVkBGgcAAfcB8QYADlYBlxIABVoMAARaAZ4KAAHz
Aa4B/wGuAQkBkQG8EAAdWQ8AAfQBWhIAAfMDWhQAAfMDWgQAAf8B9AFmAgABbAGRAvQB8AH0Aa4B8QH/ AQcIAAH/AfQC8wH0Af8IAAHzAQcIAAH3A/EB9A0AA/EB9wHxBgANVgH/FAAFWgoABVoLAAH/AVAB7wIH
Aa4BCQFsAW0BuwHtDAAdWRAAAf8BWhEAAfMBWgEAAVoUAAHzAVoBAAFaBAABbAHxAgABBwEJAbsBbAP0 AfIOAAH0AwcBcwH0CAAE9wHxDQAE9wHxBgALVgH0FwAGWgYABloNAAH/A/MB9A4AAf8D8wH0JgAJVgEI
Aa4B9AFmAv8CCQJmDAAdWREAAf8BWhAAAfMDWhQAAfMDWgMAAfMBZgH/AgACkQEAAWYBbAEJAWYC9AGu GgAQWkwAAZgGVgGXHQAB5AxaAZ5OAAVWAf8gAApaUQACCAH/JQAB9AKeAf//ADMAAfMDWigAAfMDWjAA
AQcBZgH/Ae8BbAG7AfcLAB1ZEgAB9AFaEAAB8wFaAfMVAAHzAVoB8wcAAfMBCQEHAgABbQH0AWwBuwGu AfYbWQQAAfMBWgEAAVomAARaAQAEWhQAAWwB9AHzFgAdWQMAAfMDWiMAAf8CWgH0AQAB8wNaAgABCAJa
AvQBtQFsAfcB/wGuAfALAB1ZEwAB9AFaEAABWhcAAVoIAAHzAWwFAAFmAf8BkQGuAQcC9AHzA2YLAB1Z EQABbAH0AWYXAB1ZBAAC8wHCAVohAAGeAVoB/wQAA/MEAAHCAVoB/w4AAWwC9AH/AwAB/wGuEgAdWQcA
FAAB/wFaDwABWhYAAfQBWg0AAZIB/wFmAf8BbAH/AQkBZgT0AfABbAFmCQABMRtZATEVAAH/AVoOAAGe AfQBWh8AAloPAAFaAcIMAAFsAvQBZgQAAWwBtRIAHVkIAAH/AVodAAHkAVoRAAFaAf8KAAFsAvQBZgQA
AVoVAAFaDwABZgH/AgAB9wG8Ae0BCQFmAfQB8gP0AZEB8AcAAzEBWBX/BDEWAAH0AVoOAAFaFAAB/wFa AfIB9AGREgAdWQkAAf8BWhsAAf8BWhMAAVoJAAG8AvQBrgUAAe0B9AFmEgAdWQoAAfQBWhoAAVoUAAHC
FQABbAH/AWwBrgb0AWwB/wUAAzEBWBX/BDEXAAH0AVoNAAEbAVoTAAFaAf8WAAH/AfMBAAGuAfAG9AFs AVoIAAH3AvQBZgQAAewC9AHzEgAdWQsAAfQBWhgAAf8BWhUAAVoHAAFsBPQBvAH3AgABZgL0EwAdWQwA
BAAdMRgAAf8BWg0AAloRAAFaAZ4cAAFmBvQB8gGuAgAbMQF5GgAB/wFaDQACWg8AAlofAAFsBfQBZgIA Af8BWhcAAVoWAAEIAVoGAAT0AfcBbAHzAWwBZgEJAWYBrhMAHVkNAAH/AVoWAAFaFwABWgUAAa4B8wX0
EjElAAH0AVoNAAJaDQABWgHkIQABvAGSAvQB8wMAETEBmSYAAcIDWgsAARsCWgIAAfMDWgMAAloB/yQA AfMBbAH/AfECCQFsEgAdWQ4AAfQBWhUAAVoXAAFaBgABZgL0AWwE9AG8Aa4B/wGuAQkBkQG8EAAdWQ8A
AWwB9AFsAwARMScAAfMBWgEAAVoNAAGeBFoBAARaAf9kAAHzA1oQAAHzA1ppAAPzEQAD8/8ANgABsxAA AfQBWhIAAfMDWhQAAfMDWgQAAf8B9AFmAgABbAGRAvQB8AH0Aa4B8QH/Aa4BCQFsAW0BuwHtDAAdWRAA
Af8Bu20AAbIRAAGybAABsgEJAbICCQGzAgkBugIJAbsHCQG6AbNqAAL/AQABswIAAQkCAAHzAgAB/wgA Af8BWhEAAfMBWgEAAVoUAAHzAVoBAAFaBAABbAHxAgABBwEJAbsBbAP0Aa4B9AFmAv8CCQJmDAAdWREA
AQlqAAH/AgABswIAAQkCAAHzAgAB/wgAARkJAAH/BQkB9AIAARkFCQH/AgAGCRQAC7IBswYAHfQGAAH/ Af8BWhAAAfMDWhQAAfMDWgMAAfMBZgH/AgACkQEAAWYBbAEJAWYC9AGuAQcBZgH/Ae8BbAG7AfcLAB1Z
AgABswIAAQkCAAHzAgAB/wgAARkJAAH/BQkB9AIAARkFCQH/AgAGCRMAAQkMsgUAH4oFAAH/ArMBshKz EgAB9AFaEAAB8wFaAfMVAAHzAVoB8wcAAfMBCQEHAgABbQH0AWwBuwGuAvQBtQFsAfcB/wGuAfALAB1Z
CQAB/wIJAf8CCQH0AgABGQEJARkB/wIJAf8CAAMJAf8B8gEJCgABswqyAfQIAAG6AbIEAAG0AYoBZQK7 EwAB9AFaEAABWhcAAVoIAAHzAWwFAAFmAf8BkQGuAQcC9AHzA2YLAB1ZFAAB/wFaDwABWhYAAfQBWg0A
GhkBigUAAf8UAAEZCQAB/wIJAQACCQH0AgABGQEJAfMBAAIJAf8CAAMJAQAB8wEJCQAB8wGzCAABugGy AZIB/wFmAf8BbAH/AQkBZgT0AfABbAFmCQABMRtZATEVAAH/AVoOAAGeAVoVAAFaDwABZgH/AgAB9wG8
AfQIAAG6AbIEAAGzAYoCZQK7GRkBigUAAf8UAAEZCQAB/wUJAfQCAAEZBQkB/wIABgkJAAG6AfQIAAEJ Ae0BCQFmAfQB8gP0AZEB8AcAAzEBWBX/BDEWAAH0AVoOAAFaFAAB/wFaFQABbAH/AWwBrgb0AWwB/wUA
DLIEAAGzAYoBuwJlAbsBCRgZAYoFAAH/FAABGQkAAf8FCQH0AgABGQUJAf8CAAYJCQABugH0CQAMsgQA AzEBWBX/BDEXAAH0AVoNAAEbAVoTAAFaAf8WAAH/AfMBAAGuAfAG9AFsBAAdMRgAAf8BWg0AAloRAAFa
AbMBigG7ARkCZQG7AQkJGQEJDBkBuwGKBQAB/xQAARkKAAH/AgkC/wMAAv8DCQH/AwAC/wIJAfMB/wkA AZ4cAAFmBvQB8gGuAgAbMQF5GgAB/wFaDQACWg8AAlofAAFsBfQBZgIAEjElAAH0AVoNAAJaDQABWgHk
AboB9BkAAbMBigG7AhkCZQG7CBkCuwsZAQkBZQGKBQAB/xQAARkLAAIJBwADCQYAAgkB9AoAAboB9BkA IQABvAGSAvQB8wMAETEBmSYAAcIDWgsAARsCWgIAAfMDWgMAAloB/yQAAWwB9AFsAwARMScAAfMBWgEA
AbMBigG7AxkCZQG7BhkBuwJlAbsKGQJlAYoFAAH/FAABGQsAAgkH/wMJBv8CCQH0CgABugH0CQALsgGz AVoNAAGeBFoBAARaAf9kAAHzA1oQAAHzA1ppAAPzEQAD8/8ANgABsxAAAf8Bu20AAbIRAAGybAABsgEJ
BAABswGKAbsEGQJlAbsFGQFmAmUBZgEJCBkBuwFlARkBigUAAf8UAAEZCwAUCQH0CgABugH0CAABCQyy AbICCQGzAgkBugIJAbsHCQG6AbNqAAL/AQABswIAAQkCAAHzAgAB/wgAAQlqAAH/AgABswIAAQkCAAHz
BAABswGKAbsFGQJlAbsDGQG7AWUBZgGRAWUBuwcZAQkCZQEZAYoFAAH/FAABGQsAFAkB9AoAAboB9AQA AgAB/wgAARkJAAH/BQkB9AIAARkFCQH/AgAGCRQAC7IBswYAHfQGAAH/AgABswIAAQkCAAHzAgAB/wgA
BPQBswGyAfQIAAG6AbIEAAGzAYoBuwYZAWUBZgG7AQkBuwJlAhkBZQFmAQkGGQFmAWUCGQGKBQAB/xWy ARkJAAH/BQkB9AIAARkFCQH/AgAGCRMAAQkMsgUAH4oFAAH/ArMBshKzCQAB/wIJAf8CCQH0AgABGQEJ
FAAB8wIJEwABugH0AgAIsgH0CAABugGyBAABswGKAbsGGQG7AmUBuwJlAxkBCQFlAbsFGQG7AWUBbAIZ ARkB/wIJAf8CAAMJAf8B8gEJCgABswqyAfQIAAG6AbIEAAG0AYoBZQK7GhkBigUAAf8UAAEZCQAB/wIJ
AYoFAAH/AgABswIAAQkCAAHzAgAB/wgAARkUAAHzAgkTAAG6AfQCAAGyBQABCQyyBAABswGKAbsHGQG1 AQACCQH0AgABGQEJAfMBAAIJAf8CAAMJAQAB8wEJCQAB8wGzCAABugGyAfQIAAG6AbIEAAGzAYoCZQK7
A2UFGQJlAbsDGQEJAmUDGQGKBQAB/wIAAbMCAAEJAgAB8wIAAf8IAAEZDQAH/wEZAgkH/wwAAboB9AIA GRkBigUAAf8UAAEZCQAB/wUJAfQCAAEZBQkB/wIABgkJAAG6AfQIAAEJDLIEAAGzAYoBuwJlAbsBCRgZ
AbIGAAyyBAABswGKAbsQGQEJAWUBuwMZAa4BZQQZAYoFAAH/AgABswIAAQkCAAHzAgAB/wgAARkMAAHz AYoFAAH/FAABGQkAAf8FCQH0AgABGQUJAf8CAAYJCQABugH0CQAMsgQAAbMBigG7ARkCZQG7AQkJGQEJ
EgkLAAG6AfQCAAGyFgABswGKAbsCGQFmAmUMGQJlAbsBGQG7AmUEGQGKBQAB/wIAAbMCAAEJAgAB8wIA DBkBuwGKBQAB/xQAARkKAAH/AgkC/wMAAv8DCQH/AwAC/wIJAfMB/wkAAboB9BkAAbMBigG7AhkCZQG7
Af8IAAEZDAAB8wEJDv8DCQsAAboB9AIAAbIWAAGzAYoBuwEZAWUBiwIZAWUMGQFlArsCZQUZAYoEAAH/ CBkCuwsZAQkBZQGKBQAB/xQAARkLAAIJBwADCQYAAgkB9AoAAboB9BkAAbMBigG7AxkCZQG7BhkBuwJl
AbIVtAGyCwAB8wEJDgADCQoAB7IBswQAC7IBswQAAbMBigG7ARkBZQG7AhkBZQwZBGUBkQUZAYoEAAGy AbsKGQJlAYoFAAH/FAABGQsAAgkH/wMJBv8CCQH0CgABugH0CQALsgGzBAABswGKAbsEGQJlAbsFGQFm
FwABsgoAAfMBCQMAAgkJAAMJCQABCQiyAwABCQyyBAABswGKAbsBGQFlAbsCCQFlDhkBtQcZAYoEAAGy AmUBZgEJCBkBuwFlARkBigUAAf8UAAEZCwAUCQH0CgABugH0CAABCQyyBAABswGKAbsFGQJlAbsDGQG7
F7MBsgoAAfMBCQMAAgkJAAMJCQABugGyAfQEAAG6AbID9AGzAbIB9AgAAboBsgQAAbMBigG7AhkDZQG7 AWUBZgGRAWUBuwcZAQkCZQEZAYoFAAH/FAABGQsAFAkB9AoAAboB9AQABPQBswGyAfQIAAG6AbIEAAGz
FhkBigQAAboXAAGyCgAB8wEJDgADCQkAAboBsgH0BAABugayAfQIAAG6AbIEAAGzAYoBuxwZAYoEAAG6 AYoBuwYZAWUBZgG7AQkBuwJlAhkBZQFmAQkGGQFmAWUCGQGKBQAB/xWyFAAB8wIJEwABugH0AgAIsgH0
FwABsgoAAfMBCQ4AAwkJAAEJCLIDAAEJDLIEAAGzAYoduwGKBAABuhcAAbIKAAHzEgkKAAiyBAAMsgUA CAABugGyBAABswGKAbsGGQG7AmUBuwJlAxkBCQFlAbsFGQG7AWUBbAIZAYoFAAH/AgABswIAAQkCAAHz
H4oEAAG6BAABsgH0CwABCQGyBAABsgoAAf8RCQHzJwAB/xytAbQFAAG6AwABsgEAAbMLAAEJAQABsgMA AgAB/wgAARkUAAHzAgkTAAG6AfQCAAGyBQABCQyyBAABswGKAbsHGQG1A2UFGQJlAbsDGQEJAmUDGQGK
AbJnAAG6AgABsgMAAbIJAAGyAwABswIAAbJnAAG6AbMBugQAAboIAALzAwAB/wG6AbMBCW8AAbIBCQUA BQAB/wIAAbMCAAEJAgAB8wIAAf8IAAEZDQAH/wEZAgkH/wwAAboB9AIAAbIGAAyyBAABswGKAbsQGQEJ
AboBs3kAAboDsgEJbQABQgFNAT4HAAE+AwABKAMAAYADAAGgAwABAQEAAQEGAAEKFgAD/wEABP8MAAT/ AWUBuwMZAa4BZQQZAYoFAAH/AgABswIAAQkCAAHzAgAB/wgAARkMAAHzEgkLAAG6AfQCAAGyFgABswGK
DAAE/wwABP8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHw AbsCGQFmAmUMGQJlAbsBGQG7AmUEGQGKBQAB/wIAAbMCAAEJAgAB8wIAAf8IAAEZDAAB8wEJDv8DCQsA
AgABDwwAAfACAAEPDAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHwAgABDwwAAfACAAEP AboB9AIAAbIWAAGzAYoBuwEZAWUBiwIZAWUMGQFlArsCZQUZAYoEAAH/AbIVtAGyCwAB8wEJDgADCQoA
B7IBswQAC7IBswQAAbMBigG7ARkBZQG7AhkBZQwZBGUBkQUZAYoEAAGyFwABsgoAAfMBCQMAAgkJAAMJ
CQABCQiyAwABCQyyBAABswGKAbsBGQFlAbsCCQFlDhkBtQcZAYoEAAGyF7MBsgoAAfMBCQMAAgkJAAMJ
CQABugGyAfQEAAG6AbID9AGzAbIB9AgAAboBsgQAAbMBigG7AhkDZQG7FhkBigQAAboXAAGyCgAB8wEJ
DgADCQkAAboBsgH0BAABugayAfQIAAG6AbIEAAGzAYoBuxwZAYoEAAG6FwABsgoAAfMBCQ4AAwkJAAEJ
CLIDAAEJDLIEAAGzAYoduwGKBAABuhcAAbIKAAHzEgkKAAiyBAAMsgUAH4oEAAG6BAABsgH0CwABCQGy
BAABsgoAAf8RCQHzJwAB/xytAbQFAAG6AwABsgEAAbMLAAEJAQABsgMAAbJnAAG6AgABsgMAAbIJAAGy
AwABswIAAbJnAAG6AbMBugQAAboIAALzAwAB/wG6AbMBCW8AAbIBCQUAAboBs3kAAboDsgEJbQABQgFN
AT4HAAE+AwABKAMAAYADAAGgAwABAQEAAQEGAAEKFgAD/wEABP8BgAsABP8MAAT/DAAE/wwAAfACAAEP
DAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHw DAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHw
AgABDwwAAfACAAEPDAAB8AIAAQ8MAAT/DAAE/wwABP8MAAT/DAAB/wHwAQcG/wHgAQMG/wHAAQEG/wGA AgABDwwAAfACAAEPDAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHwAgABDwwAAfACAAEP
AQAG/wIAAX8B/wHgAQMB/wH+AgABPwT/Af4BDwH4AT8B/wGAAQAB/wH8AQ8B+AEfBP8B+AE/Af4BDwH/ DAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPDAAB8AIAAQ8MAAHwAgABDwwAAfACAAEPAYALAAHwAgABDwHA
AR8B/AF/AfgBPwH+AQ8B/wH+AX8B/wHwAv8BDwH/AT8B/gF/AfAC/wEHAf8B/gF/Af8B8QL/AYcB/wEm AgABAQgAAfACAAEPAf4CAAE/CAAF/wIAAX8IAAX/AgABfwgABf8CAAF/CAAF/wIAAX8IAAH/AfABBwb/
AXIBfwHhAv8BgwHjAf4BfwHHAeMC/wHDAf8BJgFyAX8BwwL/AcMB4AH+AX8BBwHDAfsB/wHjAf8BJgFy AeABAwb/AcABAQb/AYABAAb/AgABfwH/AeABAwH/Af4CAAE/BP8B/gEPAfgBPwH/AYABAAH/AfwBDwH4
AX8BwwL/AeEB+AE+AXwBHwHHAfkB/wHxAf8BJgFyAX8BhwHAAQMB8QH+AQ4BcAF/AccB+AH/AfEB/wEm AR8E/wH4AT8B/gEPAf8BHwH8AX8B+AE/Af4BDwH/Af4BfwH/AfAC/wEPAf8BPwH+AX8B8AL/AQcB/wH+
AXIBfwGHAcABAwHwAeEBggFBAYcBjwH4AT8B+AH/ASYBcgF/AY8BwAEDAfgB4wHgAQcCjwH4AR8B+AH/ AX8B/wHxAv8BhwH/ASYBcgF/AeEC/wGDAeMB/gF/AccB4wL/AcMB/wEmAXIBfwHDAv8BwwHgAf4BfwEH
ASYBcgF/AY8BwAEDAfgB4QH4AR8CjwH4AQ8B+AH/ASYBcgF/AQ8BwAEDAfgB4QH8AT8BhwGPAfgBAwH4 AcMB+wH/AeMB/wEmAXIBfwHDAv8B4QH4AT4BfAEfAccB+QH/AfEB/wEmAXIBfwGHAcABAwHxAf4BDgFw
Af8BJgFyAX8BDwHAAQMB+AH/AcIBQwH/AY8B+AEDAfgB/wEmAXIBfwEPAcABAwH4Af8BjgFxAf8BjwH4 AX8BxwH4Af8B8QH/ASYBcgF/AYcBwAEDAfAB4QGCAUEBhwGPAfgBPwH4Af8BJgFyAX8BjwHAAQMB+AHj
AQcB+AH/ASYBcgF/AQ8BwAEDAfgB/gE+AXwBfwGPAfgBDwH4Af8BJgFyAX8BDwHAAQMB+AH+An4BfwGP AeABBwKPAfgBHwH4Af8BJgFyAX8BjwHAAQMB+AHhAfgBHwKPAfgBDwH4Af8BJgFyAX8BDwHAAQMB+AHh
AfgBHwH4Af8BJgFyAX8BjwHAAQMB+AH/Af4BfwH/AY8B+AF/AfgB/wEmAXIBfwGPAcABAwH4Af8B/gF/ AfwBPwGHAY8B+AEDAfgB/wEmAXIBfwEPAcABAwH4Af8BwgFDAf8BjwH4AQMB+AH/ASYBcgF/AQ8BwAED
Af8BxwH4Af8B8QH/AT8B/gF/AYcBwAEDAfAB/wH+AX8B/wHHAfsB/wHxAfwCAAEfAYcBwAEDAfAB/wH+ AfgB/wGOAXEB/wGPAfgBBwH4Af8BJgFyAX8BDwHAAQMB+AH+AT4BfAF/AY8B+AEPAfgB/wEmAXIBfwEP
AX8B/wHDAv8B4wH8AgABHwHDAv8B4QH/Af4BfwH/AeMC/wHjAfwCAAEfAcMC/wHjAf8B/gF/Af8B8QL/ AcABAwH4Af4CfgF/AY8B+AEfAfgB/wEmAXIBfwGPAcABAwH4Af8B/gF/Af8BjwH4AX8B+AH/ASYBcgF/
AccB/AIAAR8B4QL/AcMB/wH+AW8B/wHwAv8BjwH/AecB8wH/AfAC/wGHAf8B/gFvAf8B+AE/Af4BDwH/ AY8BwAEDAfgB/wH+AX8B/wHHAfgB/wHxAf8BPwH+AX8BhwHAAQMB8AH/Af4BfwH/AccB+wH/AfEB/AIA
AuMB/wH4AT8B/gEPAf8B/gFHAf8B/AEPAfgBPwH/AfABBwH/AfwBDwH4AR8B/wH+AUcC/wIAAX8B/wH4 AR8BhwHAAQMB8AH/Af4BfwH/AcMC/wHjAfwCAAEfAcMC/wHhAf8B/gF/Af8B4wL/AeMB/AIAAR8BwwL/
AQ8B/wH+AgABPwH/Af4BQwL/AYABAAb/AgABfwX/AfABBwb/AcABAQ7/AfwBHw3/AeAE/wGAAR8J/wHA AeMB/wH+AX8B/wHxAv8BxwH8AgABHwHhAv8BwwH/Af4BbwH/AfAC/wGPAf8B5wHzAf8B8AL/AYcB/wH+
AT8C/wH+AQABBwn/AcABDwL/AfwBAAEDAf8B8AF/Af4BDwT/AcABBwL/AfgBDwEDAf8B4AF/Af4BBwHg AW8B/wH4AT8B/gEPAf8C4wH/AfgBPwH+AQ8B/wH+AUcB/wH8AQ8B+AE/Af8B8AEHAf8B/AEPAfgBHwH/
AgABBwHAAQEC/wHwAT8BwwH/AecC/wHnAeACAAEHAcABAAF/Af8B4AH/AfMB/wHmAQYBbgHnAeACAAEH Af4BRwL/AgABfwH/AfgBDwH/Af4CAAE/Af8B/gFDAv8BgAEABv8CAAF/Bf8B8AEHBv8BwAEBDv8B/AEf
AcABAAE/Af8B4QP/AecBxgEIAecB4AIAAQcBwAEAAQ8B/wHDA/8B5gEMAQABJwHgAgABBwHAAQABAwH/ Df8B4AT/AYABHwn/AcABPwL/Af4BAAEHCf8BwAEPAv8B/AEAAQMB/wHwAX8B/gEPBP8BwAEHAv8B+AEP
AcME/wGAAbABPwHgAgABBwHAAgAB/wGHA/8B/AIAAf8B4AIAAQcBwAIAAX8BhwT/AYABMgH/AeACAAEH AQMB/wHgAX8B/gEHAeACAAEHAcABAQL/AfABPwHDAf8B5wL/AecB4AIAAQcBwAEAAX8B/wHgAf8B8wH/
AcACAAEfAY8C/wEfAfACAAEPAeACAAEHAcACAAEHAY8B/wH+AQ8F/wHgAQgB/wHAAgABAwEPAf8B/AEH AeYBBgFuAecB4AIAAQcBwAEAAT8B/wHhA/8B5wHGAQgB5wHgAgABBwHAAQABDwH/AcMD/wHmAQwBAAEn
AfgCAAEfAf8B4AEAAf8BwAIAAQEBDwH/AfwBAwH4ARgBAAEfAf8B4AEAAf8BwAIAAQEBDwH/AfgBAQH4 AeACAAEHAcABAAEDAf8BwwT/AYABsAE/AeACAAEHAcACAAH/AYcD/wH8AgAB/wHgAgABBwHAAgABfwGH
AgABHwH/AiAB/wHAAgABAQEPAf8B8AEAAf4BAAEiAR8B/wEgAQAB/wHAAgABAwEPAf8B4AEAAfwBAAEC BP8BgAEyAf8B4AIAAQcBwAIAAR8BjwL/AR8B8AIAAQ8B4AIAAQcBwAIAAQcBjwH/Af4BDwX/AeABCAH/
AR8B/wIAAf8BwAIAAQcBjwH/AeEBEAH8AgABPwH/AQABAQH/AcACAAEPAY8B/wHjARgB/AEgAQABPwH/ AcACAAEDAQ8B/wH8AQcB+AIAAR8B/wHgAQAB/wHAAgABAQEPAf8B/AEDAfgBGAEAAR8B/wHgAQAB/wHA
AQABAQH/AcACAAE/AY8B/wH2AR0B/gFAAQABPwH/AYgBAwH/AcACAAH/AYcB/wH+AR8B/gEAAQIBfwH/ AgABAQEPAf8B+AEBAfgCAAEfAf8CIAH/AcACAAEBAQ8B/wHwAQAB/gEAASIBHwH/ASABAAH/AcACAAED
AYABDwH/AcABAAEBAf8BxwH/AfwBPwHnAYABDwHnAfsBwAH/Ac8BwAEAAQcB/wHDAf8B/AE/AecBgAED AQ8B/wHgAQAB/AEAAQIBHwH/AgAB/wHAAgABBwGPAf8B4QEQAfwCAAE/Af8BAAEBAf8BwAIAAQ8BjwH/
AecB+wHgAR8BzwHAAQABHwH/AeEB/wH4AX8B5wHgAQcB5wH7AfgBHwHPAcABAAF/Af8B4AH/AfABfwHn AeMBGAH8ASABAAE/Af8BAAEBAf8BwAIAAT8BjwH/AfYBHQH+AUABAAE/Af8BiAEDAf8BwAIAAf8BhwH/
AfgBHwHnAfgBPwH+AQ8BwAEAAv8B8AF/AeAB/wHgAX8B/gEHAfgBPwH+AQ8BwAEDAv8B+AEfAYEB/wHw Af4BHwH+AQABAgF/Af8BgAEPAf8BwAEAAQEB/wHHAf8B/AE/AecBgAEPAecB+wHAAf8BzwHAAQABBwH/
AX8B/gEPBP8BwAEPAv8B/AEAAQMJ/wHAAT8C/wH+AQABBwn/AeABfwP/AYABHwn/AfEE/wHwJv8BwwT/ AcMB/wH8AT8B5wGAAQMB5wH7AeABHwHPAcABAAEfAf8B4QH/AfgBfwHnAeABBwHnAfsB+AEfAc8BwAEA
AfwBPwX/AcACAAEDAcsE/wHwAYcC/wGPAv8BwAIAAQEBwwT/AYQBMQL/AR8C/wHAAgABAQHhBP8BHgE8 AX8B/wHgAf8B8AF/AecB+AEfAecB+AE/Af4BDwHAAQAC/wHwAX8B4AH/AeABfwH+AQcB+AE/Af4BDwHA
AX8B/gEcAv8BwAIAAQEB/AP/Af4BfwH/AT8B/AE8Av8BwAIAAQEB/gF/Av8B/AL/AZ8B+AF4Av8BwAIA AQMC/wH4AR8BgQH/AfABfwH+AQ8E/wHAAQ8C/wH8AQABAwn/AcABPwL/Af4BAAEHCf8B4AF/A/8BgAEf
AQEB/wE/Av8B+QL/Ad8B8AH4Av8BwAIAAQEB/wGfAv8B+wL/Ac8C8AL/AcACAAEBAf8BzwL/AfMC/wHv Cf8B8QT/AfAm/wHDBP8B/AE/Bf8BwAIAAQMBywT/AfABhwL/AY8C/wHAAgABAQHDBP8BhAExAv8BHwL/
AeABMQL/AcACAAEBAf8B5wL/AfcC/wHnAeABAQL/AcACAAEBAf8B8wL/AfcC/wH3AcABAAL/AcACAAEB AcACAAEBAeEE/wEeATwBfwH+ARwC/wHAAgABAQH8A/8B/gF/Af8BPwH8ATwC/wHAAgABAQH+AX8C/wH8
Af8B+QL/AfcC/wH3AeABAAE/Af8BwAIAAQEB/wH8Av8BwwL/AcMBxgEAAQMB/wHAAgABAQH/Af4BfwH/ Av8BnwH4AXgC/wHAAgABAQH/AT8C/wH5Av8B3wHwAfgC/wHAAgABAQH/AZ8C/wH7Av8BzwLwAv8BwAIA
AcsC/wHLAcwBAAEDAf8BwAIAAQEC/wE/Af8BwwL/AcMBjAGAAQEB/wHAAgABAQL/AZ8B/wHjAv8B4wH4 AQEB/wHPAv8B8wL/Ae8B4AExAv8BwAIAAQEB/wHnAv8B9wL/AecB4AEBAv8BwAIAAQEB/wHzAv8B9wL/
AcABAQH/AcACAAEBAv8BzwH/AfcC/wH3AfkB8AEBAf8BwAIAAQEC/wHnAf8B9wL/AecB/wHAAQABfwHA AfcBwAEAAv8BwAIAAQEB/wH5Av8B9wL/AfcB4AEAAT8B/wHAAgABAQH/AfwC/wHDAv8BwwHGAQABAwH/
AgABAQL/AfMB/wHzAv8B7wH/AeYBAAEfAcACAAEBAv8B+QH/AfsC/wHPAv8BgAEHAcACAAEBAv8B/AH/ AcACAAEBAf8B/gF/Af8BywL/AcsBzAEAAQMB/wHAAgABAQL/AT8B/wHDAv8BwwGMAYABAQH/AcACAAEB
AfkC/wHPAv8ByAEDAcACAAEBAv8B/gF/AfwC/wGfAv8B/gEAAcACAAEDA/8BPwH+AX8B/wE/A/8BgAHA Av8BnwH/AeMC/wHjAfgBwAEBAf8BwAIAAQEC/wHPAf8B9wL/AfcB+QHwAQEB/wHAAgABAQL/AecB/wH3
AQABDwT/AZ8B/wE/Af4BfwP/AcEBwAEAAQ8E/wHDAf8BjAE4BP8B8QHAAQABHwT/AcsB/wHgAYMM/wHD Av8B5wH/AcABAAF/AcACAAEBAv8B8wH/AfMC/wHvAf8B5gEAAR8BwAIAAQEC/wH5Af8B+wL/Ac8C/wGA
Af8B/AE/DP8B4wH/Af4BPyX/Af4C/wE/DP8B/gL/Ab8M/wH8AgABHwz/AfkBbQG/Ad8M/wH7AW0BvwHf AQcBwAIAAQEC/wH8Af8B+QL/Ac8C/wHIAQMBwAIAAQEC/wH+AX8B/AL/AZ8C/wH+AQABwAIAAQMD/wE/
AfABGAEMAQ8C/wEAAQ8BwAIAAQEB+wFtAb8B3wHwARgBDAEPAf8B/gEAAQ8BgAMAAfgCAAEfAfABGAEM Af4BfwH/AT8D/wGAAcABAAEPBP8BnwH/AT8B/gF/A/8BwQHAAQABDwT/AcMB/wGMATgE/wHxAcABAAEf
AQ8B/AEAAT8BzwQAAfsC/wHfAfEBGAGMAU8B+QH+AT8BzwQAAfsC/wHfAfABGAEMAQ8B+QH+AQABDwQA BP8BywH/AeABgwz/AcMB/wH8AT8M/wHjAf8B/gE/Jf8B/gL/AT8M/wH+Av8Bvwz/AfwCAAEfDP8B+QFt
AfsC/wHfAfABGAEMAQ8B+QH/AQABDwQAAfsC/wHfAfgBOAEcAQ8B+QP/BAAB+wL/Ad8B/AH+AT8BHwH5 Ab8B3wz/AfsBbQG/Ad8B8AEYAQwBDwL/AQABDwHAAgABAQH7AW0BvwHfAfABGAEMAQ8B/wH+AQABDwGA
A/8EAAH7Av8B3wH8AgABHwH5Af8BAAEPBAAB+wL/Ad8B/AIAAR8B+QH+AQABDwQAAfsC/wHfAfwCAAEf AwAB+AIAAR8B8AEYAQwBDwH8AQABPwHPBAAB+wL/Ad8B8QEYAYwBTwH5Af4BPwHPBAAB+wL/Ad8B8AEY
AfkB4AE/Ac8EAAH4AgABHwH/Af4BPwH/AfkBgAE/Ac8EAAH7AW0BvwHfAf8B/gE/Af8B+QG+AQABDwQA AQwBDwH5Af4BAAEPBAAB+wL/Ad8B8AEYAQwBDwH5Af8BAAEPBAAB+wL/Ad8B+AE4ARwBDwH5A/8EAAH7
AfsBbQG/Ad8B/wIAAX8B+QG/AQABDwQAAfsBbQG/Ad8B/gIAAT8B+QG/Av8EAAH7AW0BvwHfAf4CAAE/ Av8B3wH8Af4BPwEfAfkD/wQAAfsC/wHfAfwCAAEfAfkB/wEAAQ8EAAH7Av8B3wH8AgABHwH5Af4BAAEP
AfkBvwL/BAAB8AIAAQ8B/gF/Af4BPwHwAQ8BAAEPBAAB9wL/AfcB/gFzAf4BPwHgAQ4BAAEPBAAB8AIA BAAB+wL/Ad8B/AIAAR8B+QHgAT8BzwQAAfgCAAEfAf8B/gE/Af8B+QGAAT8BzwQAAfsBbQG/Ad8B/wH+
AQcB/gFzAf4BPwHjAcABPwHPBAAB9wL/AfcB/gF/Af4BPwHjAcABPwHPBAAB9wL/AfcB/gF/Af4BPwHg AT8B/wH5Ab4BAAEPBAAB+wFtAb8B3wH/AgABfwH5Ab8BAAEPBAAB+wFtAb8B3wH+AgABPwH5Ab8C/wQA
AQ4BAAEPBAAB9wL/AfcB/gIAAT8B8AEPAQABDwGAAwAB9wGfAfwB9wH+AgABPwT/AYACAAEBAfcBXwH9 AfsBbQG/Ad8B/gIAAT8B+QG/Av8EAAHwAgABDwH+AX8B/gE/AfABDwEAAQ8EAAH3Av8B9wH+AXMB/gE/
AXcM/wH2Ae8B+wG3DP8B8QHvAfMBhw3/AfMB5w7/AfwBHw3/Cw== AeABDgEAAQ8EAAHwAgABBwH+AXMB/gE/AeMBwAE/Ac8EAAH3Av8B9wH+AX8B/gE/AeMBwAE/Ac8EAAH3
Av8B9wH+AX8B/gE/AeABDgEAAQ8EAAH3Av8B9wH+AgABPwHwAQ8BAAEPAYADAAH3AZ8B/AH3Af4CAAE/
BP8BgAIAAQEB9wFfAf0Bdwz/AfYB7wH7AbcM/wHxAe8B8wGHDf8B8wHnDv8B/AEfDf8L
</value> </value>
</data> </data>
<metadata name="imageListTool.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="imageListTool.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@@ -324,159 +334,187 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACI ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD0
IwAAAk1TRnQBSQFMAgEBCwEAAUABAAFAAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA KQAAAk1TRnQBSQFMAgEBDAEAARgBAAEIAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMP8AJwAB/wH2AesB/3AAAyMBMwFOAVEBUAGZAzgBXBwAAU4BUQFQAZkBTgFR AwABQAMAAQEBAAEgBgABQP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A4gABIwEhASMBMAGt
AVABmVgAAf8B9gHrAf8DBgEIBAADDAEQKAABTAFEATQB/wHUAbgBAAH/AdQBuAEAAf8BTAFEATQB/wFM AdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGf
AUQBNAH/AUwBRAE0Af8BTAFEATQB/wFMAUQBNAH/AUwBRAE0Af8BTAFEATQB/wHUAbgBAAH/AdQBuAEA Af8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/xQA
Af8BTAFEATQB/wwAAU4BUQFQAZksAAFOAVEBUAGZUAAB/wH2AesB/wFkAUgBLwH/CAAB/wH2AesB/ygA Af8B9gHrAf9wAAMjATMBTgFQAU4BmQM4AVwcAAFOAVABTgGZAU4BUAFOAZkIAAFUAUEBWwG+Aa0B2wGf
AUwBRAE0Af8BTAFEATQB/wFMAUQBNAH/AUwBRAE0Af8BTAFEATQB/wFMAUQBNAH/AfQB2wEAAf8B/gHk Af8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/AWoBXgFuAf8BUAEsAVsB/wF3
AQAB/wFMAUQBNAH/AUwBRAE0Af8BTAFEATQB/wHUAbgBAAH/AUwBRAE0Af8MAAFOAVEBUAGZCAADCwEP AXYBeAH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/EAAB/wH2
A0IBdAQAAU4BeQFnAfABUAFTAVEBnwQAAU4BUAFPAZcIAAFOAVEBUAGZTAABtAGhAZAC/wH2AesB/wgA AesB/wMGAQgEAAMMARAoAAFLAUMBMwH/AdQBuAEAAf8B1AG4AQAB/wFLAUMBMwH/AUsBQwEzAf8BSwFD
AV8BWQFVAc8B/wH2AesB/ygAAUwBRAE0Af8BTAFEATQB/wFMAUQBNAH/AUwBRAE0Af8BTAFEATQC/wHl ATMB/wFLAUMBMwH/AUsBQwEzAf8BSwFDATMB/wFLAUMBMwH/AdQBuAEAAf8B1AG4AQAB/wFLAUMBMwH/
AQAB/wFcAVMBLwL/AeUBAAL/AeUBAAH/AasBmQEXAf8BTAFEATQB/wHUAbgBAAH/AUwBRAE0Af8YAAMo DAABTgFQAU4BmSwAAU4BUAFOAZkEAAFUAUEBWwG+Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGf
AT0BUwFbAVcBsQMkATUIAAFRAXYBZAHnAwgBCwFPAVIBUQGbVAAB/wH2AesC/wH2AesB/wF3AV0BRgH/ Af8BrQHbAZ8B/wFQASwBWw3/AVABLAFbAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGt
AW4BUwE7Af8B4gHKAbAB/wGFAWgBUgH/KAABTAFEATQB/wFMAUQBNAH/AUwBRAE0Af8BTAFEATQB/wHS AdsBnwH/DAAB/wH2AesB/wFjAUcBLgH/CAAB/wH2AesB/ygAAUsBQwEzAf8BSwFDATMB/wFLAUMBMwH/
Ab0BCwH/AWMBWQEtAv8B5QEAAf8BTAFEATQC/wHlAQAB/wHCAa4BEAH/AUwBRAE0Af8BTAFEATQB/wFM AUsBQwEzAf8BSwFDATMB/wFLAUMBMwH/AfQB2wEAAf8B/gHkAQAB/wFLAUMBMwH/AUsBQwEzAf8BSwFD
AUQBNAH/GAABSAFKAUkBiAMVAR0BSgF8AWgB8gFTAVkBVwGtBAADCAELXAAB/wH2AesB/wFuAVMBOwL/ ATMB/wHUAbgBAAH/AUsBQwEzAf8MAAFOAVABTgGZCAADCwEPA0IBdAQAAU4BdgFmAfABUAJRAZ8EAAFO
AfYB6wL/AfYB6wH/AZMBewFpAf8BjgF0AWEB/wGoAY8BcQH/NAABSgG3Av8BTAFPAVIBkAMsAUQBSgG3 Ak8BlwgAAU4BUAFOAZkEAAFUAUEBWwG+Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BUAEs
Av8EAAFKAbcC/5QAAW4BUwE7Af8EAAJMAUsBjwHLAbIBmQH/AfsB8QHlAv8B9gHrAf8B+wHxAeUF/wHb AVsV/wFQASwBWwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8IAAG0AaEBkAL/AfYB6wH/
AcIBqAH/AWQBSAEvAf8sAAFKAbcC/wFKAbcC/wFAAkEBbwMhATABSgG3Av8DIgEyHAABTgFRAVABmQFO CAABXQFZAVcBzwH/AfYB6wH/KAABSwFDATMB/wFLAUMBMwH/AUsBQwEzAf8BSwFDATMB/wFLAUMBMwL/
AVEBUAGZAUoBTAFLAYsEAAFIAkkBhgFIAkkBhQFIAUoBSQGHAUsBTQFMAY4BTAFOAU0BkQFIAkkBhQFL AeUBAAH/AVsBUgEuAv8B5QEAAv8B5QEAAf8BqwGZARYB/wFLAUMBMwH/AdQBuAEAAf8BSwFDATMB/xgA
AU0BTAGOVAAB4gHKAbAB/wQAAWQBVQFKAecBdgFdAUYB/wGAAWMBTAL/AfYB6wH/AXgBXwFIBf8DOwFk AygBPQFVAVcBVgGxAyQBNQgAAVMBcgFkAecDCAELAU8BUQFQAZsMAAFUAUEBWwG+Aa0B2wGfAf8BrQHb
IAABUAGjAd0B9QQAAUoBtwL/AUoBtAH2Af0DBAEGAywBRAFHAUkBSgGCAUoBtwL/IAABVAFzAWUB4AFN AZ8B/wGtAdsBnwH/Aa0B2wGfAf8BXgE9AWgF/wFQASwBWwH/AVABLAFbAf8BVAEwAV4F/wFSAS4BXQH/
AYMBawH3Aw0BEQFIAkkBhQFTAVkBVwGtBAADEgEZBAADIwEzAzEBTVwAAVcBVgFUAbgBZAFIAS8B/wFy Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8IAAH/AfYB6wL/AfYB6wH/AXYBXAFFAf8BbQFS
AVkBQgH/AeIBygGwAv8B9gHrAv8B9gHrAf8B4wHWAckB/wFkAUgBLwH/HAACNwE4AVsBPgI/AWsBSgG3 AToB/wHiAcoBsAH/AYUBZwFRAf8oAAFLAUMBMwH/AUsBQwEzAf8BSwFDATMB/wFLAUMBMwH/AdIBvQEK
Av8DAwEEAU0BrAHqAfoBUQGgAdUB8gFWAWkBdAG9Aj0BPgFoHAABSwFOAU0BkAMxAU4DBQEHAwABAQM6 Af8BYgFYASwC/wHlAQAB/wFLAUMBMwL/AeUBAAH/AcIBrgEPAf8BSwFDATMB/wFLAUMBMwH/AUsBQwEz
AWIBUQFUAVMBoQFNAVABTwGWAVEBWAFVAakDIwE0AwABAXAAAfsB+gH5Af8BkwF4AWMC/wH2AesC/wH2 Af8YAAFIAkkBiAMVAR0BSwF6AWcB8gFTAVcBVQGtBAADCAELFAABVAFBAVsBvgGtAdsBnwH/Aa0B2wGf
AesC/wH2AesB/wMGAQgYAAFKAbcC/wQAAVIBogHZAfQBSgG3Av8BSgG3Av8BUAFZAV0BoyQAA0ABcAMm Af8BrQHbAZ8B/wGtAdsBnwn/AYQBjQGBAf8BrQHbAZ8B/wFUATQBXgn/Aa0B2wGfAf8BrQHbAZ8B/wGt
ATkDBAEGAUgBfAFiAfYBUAFTAVEBnwFTAXYBZQHlAwIBAwMiATIBVQFxAWIB3HwAAf8B9gHrAv8B9gHr AdsBnwH/Aa0B2wGfAf8IAAH/AfYB6wH/AW0BUgE6Av8B9gHrAv8B9gHrAf8BkwF6AWgB/wGOAXMBYAH/
Av8B9gHrAf8B7AHhAdQB/xQAAwoBDgFKAbcC/wM1AVYUAAGuAaQBkAH/EAADOAFcCAADQgF0AzEBTwFR AagBjwFwAf80AAFJAbcC/wFMAU0BTgGQAywBRAFJAbcC/wQAAUkBtwL/UAABVAFBAVsBvgGtAdsBnwH/
AXYBZAHnAVIBWgFWAbABRwF+AWUB+BAAAzgBXHgAA0ABcAH/AfYB6wH/AfEB5gHaAf8cAAE/AkABbQFN Aa0B2wGfAf8BrQHbAZ8B/wGoAdIBnAn/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwn/Aa0B2wGfAf8BrQHb
AaEB1gHzAUkBSwFNAYgMAAGuAaQBkAH/EAABTgFRAVABmQwAAUsBTgFNAZABVgFuAWEB1wFRAVgBVgGq AZ8B/wGtAdsBnwH/Aa0B2wGfAf8EAAFtAVIBOgH/BAACTAFLAY8BywGyAZkB/wH7AfEB5QL/AfYB6wH/
AUcBgwFjAfsDHAEoDAABTgFRAVABmZAAAa4BpAGQAf8BrgGkAZAB/xwAAa4BpAGQAf8BrgGkAZAB/xAA AfsB8QHlBf8B2wHCAagB/wFjAUcBLgH/LAABSQG3Av8BSQG3Av8DQAFvAyEBMAFJAbcC/wMiATIcAAFO
AUcBfgFlAfgBTgFRAVABmQM4AVwcAAFOAVEBUAGZAU4BUQFQAZkDIgEx/wD/AP8AywADMgFQUAABJAH6 AVABTgGZAU4BUAFOAZkDSgGLBAADSAGGA0gBhQFIAkkBhwFLAUwBSwGOAUwCTQGRA0gBhQFLAUwBSwGO
ARUB/wEkAfoBFQH/BAABJAH6ARUB/wEkAfoBFQH/GAABqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFW CAABVAFBAVsBvgGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwn/AVABLAFbAf8BrQHbAZ8B/wFQ
AQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/ ASwBWwn/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8MAAHiAcoBsAH/BAABZAFWAU0B5wF1
AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8YAANQAZ4B2wGWAQwB/wHbAZYBDAH/AdsBlgEM AVwBRQH/AYABYgFLAv8B9gHrAf8BdwFeAUcF/wM7AWQgAAFRAZ4B0gH1BAABSQG3Av8BSQGzAfMB/QME
Af8DAAEBHAADMgFQASMB+gEUAf9AAAFRAVMBUQGgAxIBGAgAAzIBUAgAAT4BPwE+AWwDIQEwDAABfwFl AQYDLAFEAkcBSAGCAUkBtwL/IAABVwFuAWQB4AFPAYIBawH3Aw0BEQNIAYUBUwFXAVUBrQQAAxIBGQQA
AUsB7wFNASQBCwH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/ AyMBMwMxAU0IAAFUAUEBWwG+Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BUAEsAVsJ/wFY
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr ATYBYwn/AVABLAFbAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/xQAAVcCVgG4AWMBRwEu
AdIB/xQAAdsBlgEMAf8UAAHbAZYBDAH/IAABIwH6ARQB/zgAAVYBcgFTAc8kAAMhATAIAAF/AWUBSwHv Af8BcQFYAUEB/wHiAcoBsAL/AfYB6wL/AfYB6wH/AeMB1gHJAf8BYwFHAS4B/xwAAzcBWwM+AWsBSQG3
AeEBvQGKAf8BTQEkAQsB/wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr Av8DAwEEAU0BqQHjAfoBUwGbAckB8gFXAWIBaAG9Az0BaBwAAUsCTAGQAzEBTgMFAQcDAAEBAzoBYgFR
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wHhAb0BigH/ AlIBoQFNAk4BlgFSAVUBUwGpAyMBNAMAAQEMAAFUAUEBWwG+Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/
EAAByQGWARgB/UAAASMB+gEUAf9cAAM7AWQIAAF/AWUBSwHvAeEBvQGKAf8B+gHrAdIB/wFNASQBCwH/ Aa0B2wGfAf8BggGJAYAB/wHpAeQB6g3/AZ0BiQGjAf8BqQHTAZwB/wGtAdsBnwH/AVABLAFbAf8BUAEs
AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BTQEkAQsB/wHhAb0BigH/AfoB6wHSAf8B+gHr AVsB/wGtAdsBnwH/JAAB+wH6AfkB/wGTAXcBYgL/AfYB6wL/AfYB6wL/AfYB6wH/AwYBCBgAAUkBtwL/
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFNASQBCwH/EAADNgFZHAAB2wGWAQwB/yQAASMB+gEU BAABUgGcAc8B9AFJAbcC/wFJAbcC/wFQAVUBVgGjJAADQAFwAyYBOQMEAQYBSAF6AWIB9gFQAlEBnwFW
Af8sAAEkAfoBFQH/LAABJAH6ARUB/wQAAX8BZQFLAe8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8BTQEk AXMBZQHlAwIBAwMiATIBVgFsAWEB3AwAAVQBQQFbAb4BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHb
AQsB/wHhAb0BigH/AfoB6wHSAf8B3QG5AYcB/wFTASoBEQH/AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/ AZ8B/wGtAdsBnwH/AWcBWAFsAf8BUAEsAVsB/wFQASwBWwH/AVABLAFbAf8DeQH/Aa0B2wGfAf8BrQHb
AfoB6wHSAf8B+gHrAdIB/wFNASQBCwH/AfoB6wHSAf8wAAM1AVcoAAEjAfoBFAH/KAABJAH6ARUB/ywA AZ8B/wFwAU8B8AH/AXABTwHwAf8BrQHbAZ8B/zAAAf8B9gHrAv8B9gHrAv8B9gHrAf8B7AHhAdQB/xQA
ASQB+gEVAf8EAAF/AWUBSwHvAeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BTQEkAQsB/wHh AwoBDgFJAbcC/wM1AVYUAAGuAaQBkAH/EAADOAFcCAADQgF0AzEBTwFTAXIBZAHnAVMBVgFVAbABRwF9
Ab0BigH/AU0BJAELAf8B+gHrAdIB/wHnAdUBvAH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AeEBvQGK AWMB+BAAAzgBXAQAAVQBQQFbAb4BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/
Af8BcQFOATUB/wH6AesB0gH/IAAB2wGWAQwB/zwAASMB+gEUAf8gAAMyAVAsAAMyAVAIAAF/AWUBSwHv Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BrQHbAZ8B/wGtAdsBnwH/Aa0B2wGfAf8BUAEs
AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr AVsB/wFQASwBWwH/Aa0B2wGfAf80AANAAXAB/wH2AesB/wHxAeYB2gH/HAADPwFtAU0BmgHMAfMCSQFK
AdIB/wH6AesB0gH/AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/ AYgMAAGuAaQBkAH/EAABTgFQAU4BmQwAAUsCTAGQAVkBaQFgAdcBUgFWAVQBqgFHAYIBYQH7AxwBKAwA
IAAB2wGWAQwB/0AAASMB+gEUAf8gAAEkAfoBFQH/LAABJAH6ARUB/wQAAX8BZQFLAe8B4QG9AYoB/wFN AU4BUAFOAZkIAAFQASwBWwH/AVABLAFbAf8BUAEsAVsB/wFQASwBWwH/AVABLAFbAf8BUAEsAVsB/wFQ
ASQBCwH/AfoB6wHSAf8BTQEkAQsB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS ASwBWwH/AVABLAFbAf8BUAEsAVsB/wFQASwBWwH/AVABLAFbAf8BUAEsAVsB/wFQASwBWwH/AVABLAFb
Af8B+gHrAdIB/wHaAbYBhAH/AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8QAAHbAZYBDAH/ Af8BUAEsAVsB/0wAAa4BpAGQAf8BrgGkAZAB/xwAAa4BpAGQAf8BrgGkAZAB/xAAAUcBfQFjAfgBTgFQ
DAAB2wGWAQwB/xAAAZoBegE1AfAwAAEjAfoBFAH/HAABJAH6ARUB/ywAASQB+gEVAf8EAAF/AWUBSwHv AU4BmQM4AVwcAAFOAVABTgGZAU4BUAFOAZkDIgExFAABUAEsAVsB/wGJAcoB/QH/AYkBygH9Af8BiQHK
AeEBvQGKAf8BTQEkAQsB/wHpAcwBoQH/AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr Af0B/wGJAcoB/QH/AYkBygH9Af8BiQHKAf0B/wGJAcoB/QH/AVABLAFbAf/cAAFQASwBWwH/AYkBygH9
AdIB/wH6AesB0gH/AfoB6wHSAf8B9gHnAc4B/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/ Af8BiQHKAf0B/wGJAcoB/QH/AYkBygH9Af8BiQHKAf0B/wGJAcoB/QH/AYkBygH9Af8BUAEsAVsB/9wA
FAACTAFLAZAIAAHbAZYBDAH/SAABIwH6ARQB/0QAAxIBGAgAAX8BZQFLAe8B4QG9AYoB/wH6AesB0gH/ ASABHwEhASwBUAEsAVsB/wFQASwBWwH/AVABLAFbAf8BUAEsAVsB/wFQASwBWwH/AVABLAFbAf8BUAEs
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr AVsB/wMGAQj/AJEAAzIBUFAAASMB+gEUAf8BIwH6ARQB/wQAASMB+gEUAf8BIwH6ARQB/xgAAagBVQED
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8YAAHbAZYBDAH/BAAB2wGW Af8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGo
AQwB/wwAAdsBlgEMAf88AAEjAfoBFAH/GAABJAH6ARUB/yQAAVIBVgFSAagMAAGoAVYBBAH/AagBVgEE AVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/GAADUAGe
Af8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGo AdsBlgELAf8B2wGWAQsB/wHbAZYBCwH/AwABARwAAzIBUAEiAfoBEwH/QAADUQGgAxIBGAgAAzIBUAgA
AVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/ygAAdsBlgEMAf8DQAFw AT4BPwE+AWwDIQEwDAABewFkAUwB7wFMASMBCgH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS
RAABIwH6ARQB/xgAASQB+gEVAf8cAAFWAWgBUwHHwAADMgFQIAABJAH6ARUB/wEkAfoBFQH/BAABJAH6 Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
ARUB/wEkAfoBFQH/zAADMgFQJAADMgFQ/wD/AP8APwAB2wGWAQoB/wHbAZYBCgH/AdsBlgEKAf8B2wGW AesB0gH/AfoB6wHSAf8B+gHrAdIB/xQAAdsBlgELAf8UAAHbAZYBCwH/IAABIgH6ARMB/zgAAVgBbAFW
AQoB/wHbAZYBCgH/AdsBlgEKAf8MAAGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEE Ac8kAAMhATAIAAF7AWQBTAHvAeEBvQGKAf8BTAEjAQoB/wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6
Af8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGo
AVYBBAH/AagBVgEEAf8BqAFWAQQB/wQAAagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFW
AQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/
AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/BAABqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGo
AVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEE
Af8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8MAAFpAWIBVAHfEAAB2wGWAQoB/xAAAloBWAHACAABfwFl
AUsB7wFNASQBCwH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wF/AWUBSwHvAU0BJAELAf8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AX8BZQFLAe8BTQEkAQsB/wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8MAAMqAUAQAAHbAZYBCgH/AdsBlgEKAf8B2wGWAQoB/wHbAZYBCgH/
AdsBlgEKAf8B2wGWAQoB/wgAAX8BZQFLAe8B4QG9AYoB/wFNASQBCwH/AeEBvQGKAf8B+gHrAdIB/wH6
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS
Af8B+gHrAdIB/wH6AesB0gH/AeEBvQGKAf8BfwFlAUsB7wHhAb0BigH/AU0BJAELAf8B4QG9AYoB/wH6 Af8B+gHrAdIB/wHhAb0BigH/EAABxgGWARkB/UAAASIB+gETAf9cAAM7AWQIAAF7AWQBTAHvAeEBvQGK
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS Af8B+gHrAdIB/wFMASMBCgH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BTAEjAQoB/wHh
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B4QG9AYoB/wF/AWUBSwHvAeEBvQGKAf8BTQEkAQsB/wHh Ab0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFMASMBCgH/EAADNgFZ
Ab0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS HAAB2wGWAQsB/yQAASIB+gETAf8sAAEjAfoBFAH/LAABIwH6ARQB/wQAAXsBZAFMAe8B4QG9AYoB/wH6
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wHhAb0BigH/DAADKgFAMAABfwFlAUsB7wHh AesB0gH/AfoB6wHSAf8BTAEjAQoB/wHhAb0BigH/AfoB6wHSAf8B3QG5AYcB/wFSASkBEAH/AUwBIwEK
Ab0BigH/AfoB6wHSAf8BTQEkAQsB/wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AU0BJAEL Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFMASMBCgH/AfoB6wHSAf8wAAM1AVcoAAEi
Af8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BTQEkAQsB/wF/ AfoBEwH/KAABIwH6ARQB/ywAASMB+gEUAf8EAAF7AWQBTAHvAeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/
AWUBSwHvAeEBvQGKAf8B+gHrAdIB/wFNASQBCwH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS AfoB6wHSAf8BTAEjAQoB/wHhAb0BigH/AUwBIwEKAf8B+gHrAdIB/wHnAdUBvAH/AeEBvQGKAf8B+gHr
Af8BTQEkAQsB/wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFN AdIB/wH6AesB0gH/AeEBvQGKAf8BcAFNATQB/wH6AesB0gH/IAAB2wGWAQsB/zwAASIB+gETAf8gAAMy
ASQBCwH/AX8BZQFLAe8B4QG9AYoB/wH6AesB0gH/AU0BJAELAf8B4QG9AYoB/wH6AesB0gH/AfoB6wHS AVAsAAMyAVAIAAF7AWQBTAHvAeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
Af8B+gHrAdIB/wFNASQBCwH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6 AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AUwBIwEKAf8B+gHrAdIB/wH6AesB0gH/AUwBIwEK
AesB0gH/AU0BJAELAf8MAAMqAUAQAAHbAZYBCgH/AdsBlgEKAf8B2wGWAQoB/wHbAZYBCgH/AdsBlgEK Af8B+gHrAdIB/wH6AesB0gH/IAAB2wGWAQsB/0AAASIB+gETAf8gAAEjAfoBFAH/LAABIwH6ARQB/wQA
Af8B2wGWAQoB/wgAAX8BZQFLAe8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8BTQEkAQsB/wHhAb0BigH/ AXsBZAFMAe8B4QG9AYoB/wFMASMBCgH/AfoB6wHSAf8BTAEjAQoB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AfoB6wHSAf8B3QG5AYcB/wFTASoBEQH/AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wHaAbYBhAH/AUwBIwEKAf8B+gHrAdIB/wH6AesB0gH/
AdIB/wFNASQBCwH/AfoB6wHSAf8BfwFlAUsB7wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wFNASQBCwH/ AfoB6wHSAf8QAAHbAZYBCwH/DAAB2wGWAQsB/xAAAZQBdwE6AfAwAAEiAfoBEwH/HAABIwH6ARQB/ywA
AeEBvQGKAf8B+gHrAdIB/wHdAbkBhwH/AVMBKgERAf8BTQEkAQsB/wH6AesB0gH/AfoB6wHSAf8B+gHr ASMB+gEUAf8EAAF7AWQBTAHvAeEBvQGKAf8BTAEjAQoB/wHpAcwBoQH/AUwBIwEKAf8B+gHrAdIB/wH6
AdIB/wH6AesB0gH/AU0BJAELAf8B+gHrAdIB/wF/AWUBSwHvAeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/
AU0BJAELAf8B4QG9AYoB/wH6AesB0gH/Ad0BuQGHAf8BUwEqAREB/wFNASQBCwH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8BTQEkAQsB/wH6AesB0gH/DAADKgFABAAB2wGWAQoB/wHbAZYBCgH/
AdsBlgEKAf8B2wGWAQoB/xAAAloBWAHACAABfwFlAUsB7wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6
AesB0gH/AU0BJAELAf8B4QG9AYoB/wFNASQBCwH/AfoB6wHSAf8B5wHVAbwB/wHhAb0BigH/AfoB6wHS
Af8B+gHrAdIB/wHhAb0BigH/AXEBTgE1Af8B+gHrAdIB/wF/AWUBSwHvAeEBvQGKAf8B+gHrAdIB/wH6
AesB0gH/AfoB6wHSAf8BTQEkAQsB/wHhAb0BigH/AU0BJAELAf8B+gHrAdIB/wHnAdUBvAH/AeEBvQGK
Af8B+gHrAdIB/wH6AesB0gH/AeEBvQGKAf8BcQFOATUB/wH6AesB0gH/AX8BZQFLAe8B4QG9AYoB/wH6
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFNASQBCwH/AeEBvQGKAf8BTQEkAQsB/wH6AesB0gH/AecB1QG8
Af8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B4QG9AYoB/wFxAU4BNQH/AfoB6wHSAf8MAAMqAUAQAAHb
AZYBCgH/AdsBlgEKAf8B2wGWAQoB/wHbAZYBCgH/AdsBlgEKAf8B2wGWAQoB/wgAAX8BZQFLAe8B4QG9
AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8BTQEkAQsB/wH6AesB0gH/AfoB6wHSAf8BTQEkAQsB/wH6AesB0gH/AfoB6wHSAf8BfwFl
AUsB7wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8B+gHrAdIB/wFNASQBCwH/AfoB6wHSAf8B+gHrAdIB/wFNASQBCwH/AfoB6wHSAf8B+gHr
AdIB/wF/AWUBSwHvAeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/AU0BJAELAf8B+gHr
AdIB/wH6AesB0gH/DAADKgFAMAABfwFlAUsB7wHhAb0BigH/AU0BJAELAf8B+gHrAdIB/wFNASQBCwH/
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AdoBtgGEAf8BTQEk
AQsB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wF/AWUBSwHvAeEBvQGKAf8BTQEkAQsB/wH6AesB0gH/
AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B2gG2
AYQB/wFNASQBCwH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AX8BZQFLAe8B4QG9AYoB/wFNASQBCwH/
AfoB6wHSAf8BTQEkAQsB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wHaAbYBhAH/AU0BJAELAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8IAAHbAZYBCgH/AdsBlgEK
Af8B2wGWAQoB/wHbAZYBCgH/CAAB2wGWAQoB/wHbAZYBCgH/AdsBlgEKAf8B2wGWAQoB/wHbAZYBCgH/
AdsBlgEKAf8IAAF/AWUBSwHvAeEBvQGKAf8BTQEkAQsB/wHpAcwBoQH/AU0BJAELAf8B+gHrAdIB/wH6
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B9gHnAc4B/wH6AesB0gH/AfoB6wHS AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B9gHnAc4B/wH6AesB0gH/AfoB6wHS
Af8B+gHrAdIB/wH6AesB0gH/AX8BZQFLAe8B4QG9AYoB/wFNASQBCwH/AekBzAGhAf8BTQEkAQsB/wH6 Af8B+gHrAdIB/wH6AesB0gH/FAACTAFLAZAIAAHbAZYBCwH/SAABIgH6ARMB/0QAAxIBGAgAAXsBZAFM
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH2AecBzgH/AfoB6wHS Ae8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BfwFlAUsB7wHhAb0BigH/AU0BJAELAf8B6QHMAaEB/wFN
ASQBCwH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfYB5wHO
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wgAAdsBlgEKAf8IAAJaAVgBwAHbAZYBCgH/
AdsBlgEKAf8B2wGWAQoB/xAAAloBWAHACAABfwFlAUsB7wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wF/AWUBSwHvAeEBvQGKAf8B+gHrAdIB/wH6 Af8YAAHbAZYBCwH/BAAB2wGWAQsB/wwAAdsBlgELAf88AAEiAfoBEwH/GAABIwH6ARQB/yQAAVIBVQFS
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS AagMAAGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AX8BZQFLAe8B4QG9AYoB/wH6 AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFV
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS AQMB/ygAAdsBlgELAf8DQAFwRAABIgH6ARMB/xgAASMB+gEUAf8cAAFXAWEBVgHHwAADMgFQIAABIwH6
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8IAAHbAZYBCgH/ ARQB/wEjAfoBFAH/BAABIwH6ARQB/wEjAfoBFAH/zAADMgFQJAADMgFQ/wD/AP8APwAB2wGWAQkB/wHb
AdsBlgEKAf8B2wGWAQoB/wHbAZYBCgH/CAAB2wGWAQoB/wHbAZYBCgH/AdsBlgEKAf8B2wGWAQoB/wHb AZYBCQH/AdsBlgEJAf8B2wGWAQkB/wHbAZYBCQH/AdsBlgEJAf8MAAGoAVUBAwH/AagBVQEDAf8BqAFV
AZYBCgH/AdsBlgEKAf8MAAGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFW AQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/
AQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/ AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wQAAagBVQEDAf8BqAFVAQMB/wGo
AagBVgEEAf8BqAFWAQQB/wQAAagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGo AVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQED
AVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEE Af8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/BAABqAFVAQMB/wGoAVUBAwH/
Af8BqAFWAQQB/wGoAVYBBAH/BAABqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/ AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFV
AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFWAQQB/wGoAVYBBAH/AagBVgEEAf8BqAFW AQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8MAAFmAWEBVgHfEAAB2wGW
AQQB/wGoAVYBBAH/AagBVgEEAf//AP8A/wADAAFCAU0BPgcAAT4DAAEoAwABQAMAATADAAEBAQABAQUA AQkB/xAAAloBWAHACAABewFkAUwB7wFMASMBCgH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS
AYABARYAA/8BAAb/AgAB+wP/AccB8wIAAfIB/wHAAQEB3wH9AgAB5gH/AcABAQHZAS0CAAHMAf8BwAEB Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
AfgBxwIAAcAB/wHAAQEB+AFfAgABwAF/AfwBLwL/AgABoAEfAfwBDwHiAQMCAAHoAQ8B9AEPAfABUwIA AesB0gH/AfoB6wHSAf8B+gHrAdIB/wF7AWQBTAHvAUwBIwEKAf8B4QG9AYoB/wH6AesB0gH/AfoB6wHS
AfgBBwHwAQ8B4AEHAgAB/wGBAfoBHwHwAQcCAAH/AfAB+AH7AdgBPQIAAf8B+AH+ATsB3AEdAgAC/wHn Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
AfMBxwHxAgAG/wIABv8CAAz/Ab8B/wH8AZ8BgAEAAfwBHwHPAf8B8wFnAgAB+wHvAfcB/wHvAfsCAAH3 AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AXsBZAFMAe8BTAEjAQoB/wHhAb0BigH/AfoB6wHS
Af8B+wL/AfsCAAL3Af0B/wHfAf0CAAH/AfcB/gH/Ad8B/QIAAf8BfwH/AX8BvwH7AgAB/wF/Af8BvwHf Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
Af0CAAH3AXsB/wLfAf0CAAH7AX8B/wHvAf8B+wIAAf0BdwH/AfcB7wH7AYABAAH/Ac8B/wH7AvcF/wH7 AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8MAAMqAUAQAAHbAZYBCQH/AdsBlgEJ
AfwBnwX/Af0B/wF/Gf8BAwGAAQABgAEAAYABAAHvAXsGAAHvAQMGAAHvAf8GAAHvAQMGAAHoAXsGAAHv Af8B2wGWAQkB/wHbAZYBCQH/AdsBlgEJAf8B2wGWAQkB/wgAAXsBZAFMAe8B4QG9AYoB/wFMASMBCgH/
AQMGAAHvAf8GAAHDAQMGAAHYAXsGAAHDAQMBgAEAAYABAAGAAQAY/ws= AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AeEBvQGKAf8BewFkAUwB7wHhAb0BigH/
AUwBIwEKAf8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B4QG9AYoB/wF7AWQBTAHv
AeEBvQGKAf8BTAEjAQoB/wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wHhAb0BigH/
DAADKgFAMAABewFkAUwB7wHhAb0BigH/AfoB6wHSAf8BTAEjAQoB/wHhAb0BigH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AUwBIwEKAf8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8BTAEjAQoB/wF7AWQBTAHvAeEBvQGKAf8B+gHrAdIB/wFMASMBCgH/AeEBvQGKAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8BTAEjAQoB/wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8B+gHrAdIB/wFMASMBCgH/AXsBZAFMAe8B4QG9AYoB/wH6AesB0gH/AUwBIwEKAf8B4QG9
AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFMASMBCgH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AUwBIwEKAf8MAAMqAUAQAAHbAZYBCQH/AdsBlgEJAf8B2wGW
AQkB/wHbAZYBCQH/AdsBlgEJAf8B2wGWAQkB/wgAAXsBZAFMAe8B4QG9AYoB/wH6AesB0gH/AfoB6wHS
Af8BTAEjAQoB/wHhAb0BigH/AfoB6wHSAf8B3QG5AYcB/wFSASkBEAH/AUwBIwEKAf8B+gHrAdIB/wH6
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFMASMBCgH/AfoB6wHSAf8BewFkAUwB7wHhAb0BigH/AfoB6wHS
Af8B+gHrAdIB/wFMASMBCgH/AeEBvQGKAf8B+gHrAdIB/wHdAbkBhwH/AVIBKQEQAf8BTAEjAQoB/wH6
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AUwBIwEKAf8B+gHrAdIB/wF7AWQBTAHvAeEBvQGK
Af8B+gHrAdIB/wH6AesB0gH/AUwBIwEKAf8B4QG9AYoB/wH6AesB0gH/Ad0BuQGHAf8BUgEpARAB/wFM
ASMBCgH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BTAEjAQoB/wH6AesB0gH/DAADKgFA
BAAB2wGWAQkB/wHbAZYBCQH/AdsBlgEJAf8B2wGWAQkB/xAAAloBWAHACAABewFkAUwB7wHhAb0BigH/
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AUwBIwEKAf8B4QG9AYoB/wFMASMBCgH/AfoB6wHSAf8B5wHV
AbwB/wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wHhAb0BigH/AXABTQE0Af8B+gHrAdIB/wF7AWQBTAHv
AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BTAEjAQoB/wHhAb0BigH/AUwBIwEKAf8B+gHr
AdIB/wHnAdUBvAH/AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AeEBvQGKAf8BcAFNATQB/wH6AesB0gH/
AXsBZAFMAe8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFMASMBCgH/AeEBvQGKAf8BTAEj
AQoB/wH6AesB0gH/AecB1QG8Af8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B4QG9AYoB/wFwAU0BNAH/
AfoB6wHSAf8MAAMqAUAQAAHbAZYBCQH/AdsBlgEJAf8B2wGWAQkB/wHbAZYBCQH/AdsBlgEJAf8B2wGW
AQkB/wgAAXsBZAFMAe8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BTAEjAQoB/wH6AesB0gH/AfoB6wHSAf8BTAEjAQoB/wH6
AesB0gH/AfoB6wHSAf8BewFkAUwB7wHhAb0BigH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wFMASMBCgH/AfoB6wHSAf8B+gHrAdIB/wFM
ASMBCgH/AfoB6wHSAf8B+gHrAdIB/wF7AWQBTAHvAeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS
Af8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AUwBIwEKAf8B+gHrAdIB/wH6
AesB0gH/AUwBIwEKAf8B+gHrAdIB/wH6AesB0gH/DAADKgFAMAABewFkAUwB7wHhAb0BigH/AUwBIwEK
Af8B+gHrAdIB/wFMASMBCgH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
AesB0gH/AdoBtgGEAf8BTAEjAQoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wF7AWQBTAHvAeEBvQGK
Af8BTAEjAQoB/wH6AesB0gH/AUwBIwEKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
AesB0gH/AfoB6wHSAf8B2gG2AYQB/wFMASMBCgH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AXsBZAFM
Ae8B4QG9AYoB/wFMASMBCgH/AfoB6wHSAf8BTAEjAQoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6
AesB0gH/AfoB6wHSAf8B+gHrAdIB/wHaAbYBhAH/AUwBIwEKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHS
Af8IAAHbAZYBCQH/AdsBlgEJAf8B2wGWAQkB/wHbAZYBCQH/CAAB2wGWAQkB/wHbAZYBCQH/AdsBlgEJ
Af8B2wGWAQkB/wHbAZYBCQH/AdsBlgEJAf8IAAF7AWQBTAHvAeEBvQGKAf8BTAEjAQoB/wHpAcwBoQH/
AUwBIwEKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B9gHn
Ac4B/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AXsBZAFMAe8B4QG9AYoB/wFMASMBCgH/
AekBzAGhAf8BTAEjAQoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH2AecBzgH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8BewFkAUwB7wHhAb0BigH/
AUwBIwEKAf8B6QHMAaEB/wFMASMBCgH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfYB5wHOAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wgAAdsBlgEJ
Af8IAAJaAVgBwAHbAZYBCQH/AdsBlgEJAf8B2wGWAQkB/xAAAloBWAHACAABewFkAUwB7wHhAb0BigH/
AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wF7AWQBTAHv
AeEBvQGKAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AXsBZAFMAe8B4QG9AYoB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHr
AdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/AfoB6wHSAf8B+gHrAdIB/wH6AesB0gH/
AfoB6wHSAf8IAAHbAZYBCQH/AdsBlgEJAf8B2wGWAQkB/wHbAZYBCQH/CAAB2wGWAQkB/wHbAZYBCQH/
AdsBlgEJAf8B2wGWAQkB/wHbAZYBCQH/AdsBlgEJAf8MAAGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGo
AVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQED
Af8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wQAAagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/
AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFV
AQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/BAABqAFVAQMB/wGoAVUBAwH/AagBVQED
Af8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf8BqAFVAQMB/wGo
AVUBAwH/AagBVQEDAf8BqAFVAQMB/wGoAVUBAwH/AagBVQEDAf//AP8A/wADAAFCAU0BPgcAAT4DAAEo
AwABQAMAAUADAAEBAQABAQYAAQIWAAP/gQAG/wIAAfsD/wHHAfMCAAHyAf8BwAEBAd8B/QIAAeYB/wHA
AQEB2QEtAgABzAH/AcABAQH4AccCAAHAAf8BwAEBAfgBXwIAAcABfwH8AS8C/wIAAaABHwH8AQ8B4gED
AgAB6AEPAfQBDwHwAVMCAAH4AQcB8AEPAeABBwIAAf8BgQH6AR8B8AEHAgAB/wHwAfgB+wHYAT0CAAH/
AfgB/gE7AdwBHQGAAQAC/wHnAfMBxwHxAfABBwb/AfABBwb/AfABBwz/Ab8B/wH8AZ8BgAEAAfwBHwHP
Af8B8wFnAgAB+wHvAfcB/wHvAfsCAAH3Af8B+wL/AfsCAAL3Af0B/wHfAf0CAAH/AfcB/gH/Ad8B/QIA
Af8BfwH/AX8BvwH7AgAB/wF/Af8BvwHfAf0CAAH3AXsB/wLfAf0CAAH7AX8B/wHvAf8B+wIAAf0BdwH/
AfcB7wH7AYABAAH/Ac8B/wH7AvcF/wH7AfwBnwX/Af0B/wF/Gf8BAwGAAQABgAEAAYABAAHvAXsGAAHv
AQMGAAHvAf8GAAHvAQMGAAHoAXsGAAHvAQMGAAHvAf8GAAHDAQMGAAHYAXsGAAHDAQMBgAEAAYABAAGA
AQAY/ws=
</value> </value>
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

View File

@@ -267,7 +267,6 @@ namespace ToolLib.VisionJob
TreeView tree = GetJobTree(); TreeView tree = GetJobTree();
graph = tree.CreateGraphics(); graph = tree.CreateGraphics();
tree.CreateGraphics().Dispose(); tree.CreateGraphics().Dispose();
foreach (KeyValuePair<TreeNode, TreeNode> item in D_itemAndSource) foreach (KeyValuePair<TreeNode, TreeNode> item in D_itemAndSource)
{ {
// 将此划线线程委托到JOB管理界面 // 将此划线线程委托到JOB管理界面

View File

@@ -46,6 +46,7 @@ namespace VisionJobFactory
public class FindLineToolInterface : IToolInfo public class FindLineToolInterface : IToolInfo
{ {
ToolIO inputImage = new ToolIO("InputImage", null, DataType.Image); ToolIO inputImage = new ToolIO("InputImage", null, DataType.Image);
ToolIO inputPos = new ToolIO("InputPos", null, DataType.Pose);
ToolIO outputXld = new ToolIO("outputXld", null, DataType.Line); ToolIO outputXld = new ToolIO("outputXld", null, DataType.Line);
ToolIO startPointRow = new ToolIO("StartPointRow", null, DataType.IntValue); ToolIO startPointRow = new ToolIO("StartPointRow", null, DataType.IntValue);
ToolIO startPointColumn = new ToolIO("StartPointColumn", null, DataType.IntValue); ToolIO startPointColumn = new ToolIO("StartPointColumn", null, DataType.IntValue);
@@ -59,7 +60,7 @@ namespace VisionJobFactory
tool = new FindLine(); tool = new FindLine();
FormToolName = "FindLineTool.FormFindLine"; FormToolName = "FindLineTool.FormFindLine";
FormTool = null; FormTool = null;
toolInput = new List<ToolIO>() { inputImage }; toolInput = new List<ToolIO>() { inputImage, inputPos };
toolOutput = new List<ToolIO>() { outputXld, startPointRow, startPointColumn, endPointRow, endPointColumn }; toolOutput = new List<ToolIO>() { outputXld, startPointRow, startPointColumn, endPointRow, endPointColumn };
} }
/// <summary> /// <summary>
@@ -75,6 +76,7 @@ namespace VisionJobFactory
public class CaliperInterface : IToolInfo public class CaliperInterface : IToolInfo
{ {
ToolIO inputImage = new ToolIO("InputImage", null, DataType.Image); ToolIO inputImage = new ToolIO("InputImage", null, DataType.Image);
ToolIO inputPos = new ToolIO("InputPos", null, DataType.Pose);
ToolIO inputCenterRow = new ToolIO("inputCenterRow", null, DataType.IntValue); ToolIO inputCenterRow = new ToolIO("inputCenterRow", null, DataType.IntValue);
ToolIO inputCenterColumn = new ToolIO("inputCenterColumn", null, DataType.IntValue); ToolIO inputCenterColumn = new ToolIO("inputCenterColumn", null, DataType.IntValue);
ToolIO inputPhi = new ToolIO("inputPhi", null, DataType.IntValue); ToolIO inputPhi = new ToolIO("inputPhi", null, DataType.IntValue);
@@ -88,7 +90,7 @@ namespace VisionJobFactory
tool = new Caliper(); tool = new Caliper();
FormToolName = "CaliperTool.FormCaliper"; FormToolName = "CaliperTool.FormCaliper";
FormTool = null; FormTool = null;
toolInput = new List<ToolIO>() { inputImage, inputCenterRow, inputCenterColumn, inputPhi }; toolInput = new List<ToolIO>() { inputImage, inputCenterRow, inputCenterColumn, inputPhi , inputPos };
toolOutput = new List<ToolIO>() { outputCenterRow, outputCenterColumn }; toolOutput = new List<ToolIO>() { outputCenterRow, outputCenterColumn };
} }
/// <summary> /// <summary>
@@ -112,6 +114,10 @@ namespace VisionJobFactory
{ {
ToolIO inputImage = new ToolIO("InputImage", null, DataType.Image); ToolIO inputImage = new ToolIO("InputImage", null, DataType.Image);
ToolIO outPose = new ToolIO("GetPose", null, DataType.Pose); ToolIO outPose = new ToolIO("GetPose", null, DataType.Pose);
ToolIO outPoseX = new ToolIO("GetPose.X", null, DataType.IntValue);
ToolIO outPoseY = new ToolIO("GetPose.Y", null, DataType.IntValue);
ToolIO outPoseR = new ToolIO("GetPose.Z", null, DataType.DoubleValue);
ToolIO outPoseScore = new ToolIO("GetPose.Score", null, DataType.DoubleValue);
public PMAlignToolToolInterface(string toolName) public PMAlignToolToolInterface(string toolName)
{ {
enable = true; enable = true;
@@ -121,7 +127,8 @@ namespace VisionJobFactory
FormToolName = "PMAlignTool.FormPMAlignTool"; FormToolName = "PMAlignTool.FormPMAlignTool";
FormTool = null; FormTool = null;
toolInput = new List<ToolIO>() { inputImage }; toolInput = new List<ToolIO>() { inputImage };
toolOutput = new List<ToolIO>() { outPose }; toolOutput = new List<ToolIO>() { outPose, outPoseX, outPoseY, outPoseR, outPoseScore };
} }
/// <summary> /// <summary>
/// 只获取选择工具的描述信息 /// 只获取选择工具的描述信息

View File

@@ -32,6 +32,10 @@
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup>
<ApplicationIcon>
</ApplicationIcon>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="halcondotnet, Version=17.12.0.0, Culture=neutral, PublicKeyToken=4973bed59ddbf2b8, processorArchitecture=MSIL"> <Reference Include="halcondotnet, Version=17.12.0.0, Culture=neutral, PublicKeyToken=4973bed59ddbf2b8, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@@ -151,6 +155,9 @@
<ItemGroup> <ItemGroup>
<None Include="Resources\新建2.png" /> <None Include="Resources\新建2.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="几何.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -72,10 +72,6 @@ G:\VisionEdit\VisionEdit\VisionEdit\obj\Debug\VisionEdit.FormLib.FormToolBox.res
G:\VisionEdit\VisionEdit\VisionEdit\obj\Debug\VisionEdit.FormMain.resources G:\VisionEdit\VisionEdit\VisionEdit\obj\Debug\VisionEdit.FormMain.resources
G:\VisionEdit\VisionEdit\VisionEdit\obj\Debug\VisionEdit.Properties.Resources.resources G:\VisionEdit\VisionEdit\VisionEdit\obj\Debug\VisionEdit.Properties.Resources.resources
G:\VisionEdit\VisionEdit\VisionEdit\obj\Debug\VisionEdit.csproj.GenerateResource.Cache G:\VisionEdit\VisionEdit\VisionEdit\obj\Debug\VisionEdit.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.FormMain.resources
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.Properties.Resources.resources
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\VisionEdit.exe.config F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\VisionEdit.exe.config
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\VisionEdit.exe F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\VisionEdit.exe
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\VisionEdit.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\VisionEdit.pdb
@@ -84,26 +80,31 @@ F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\DataStruct.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\FormLib.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\FormLib.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\halcondotnet.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\halcondotnet.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\HWindow_Tool.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\HWindow_Tool.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Logger.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\ToolBase.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\ToolBase.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\ToolLib.VisionJob.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\ToolLib.VisionJob.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\WeifenLuo.WinFormsUI.Docking.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\WeifenLuo.WinFormsUI.Docking.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Newtonsoft.Json.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Newtonsoft.Json.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\log4net.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Logger.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\DevComponents.DotNetBar2.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\DevComponents.DotNetBar2.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\log4net.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\CommonMethods.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\CommonMethods.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\DataStruct.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\DataStruct.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\FormLib.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\FormLib.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\ToolBase.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\ToolBase.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Logger.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\ToolLib.VisionJob.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\ToolLib.VisionJob.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\HWindow_Tool.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\HWindow_Tool.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\halcondotnet.xml F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\halcondotnet.xml
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\WeifenLuo.WinFormsUI.Docking.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\WeifenLuo.WinFormsUI.Docking.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Newtonsoft.Json.xml F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Newtonsoft.Json.xml
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Logger.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\DevComponents.DotNetBar2.xml F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\DevComponents.DotNetBar2.xml
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.csprojResolveAssemblyReference.cache
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.FormMain.resources
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.Properties.Resources.resources
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.csproj.GenerateResource.Cache
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.exe F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.exe
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\obj\Debug\VisionEdit.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\log4net.config
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\HalconTool.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\HalconTool.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\FindLineTool.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\FindLineTool.dll
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\CaliperTool.dll F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\CaliperTool.dll
@@ -115,4 +116,3 @@ F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\FindLineTool.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\CaliperTool.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\CaliperTool.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\PMAlignTool.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\PMAlignTool.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Controls.pdb F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\Controls.pdb
F:\GitHubClone\最新克隆\VisionEdit\VisionEdit\bin\Debug\log4net.config

BIN
VisionEdit/几何.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB