챔피언

This commit is contained in:
chi
2023-05-30 11:03:12 +09:00
parent a74a47b582
commit 0da45cf931
32 changed files with 23256 additions and 1684 deletions

14786
Project/DSMail.Designer.cs generated Normal file

File diff suppressed because it is too large Load Diff

9
Project/DSMail.xsc Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

1584
Project/DSMail.xsd Normal file

File diff suppressed because it is too large Load Diff

22
Project/DSMail.xss Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="16" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:MailForm" ZOrder="11" X="222" Y="158" Height="305" Width="200" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:MailData" ZOrder="10" X="456" Y="157" Height="305" Width="197" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:MailAuto" ZOrder="9" X="711" Y="160" Height="305" Width="199" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:vMailingProjectSchedule" ZOrder="8" X="204" Y="490" Height="305" Width="289" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:ProjectsIngList" ZOrder="7" X="514" Y="488" Height="305" Width="191" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="237" />
<Shape ID="DesignTable:EETGW_ProjectsSchedule" ZOrder="6" X="769" Y="496" Height="96" Width="291" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
<Shape ID="DesignTable:vJobReportForUser" ZOrder="3" X="1206" Y="86" Height="229" Width="257" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:JobReport" ZOrder="1" X="927" Y="84" Height="400" Width="318" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="332" />
<Shape ID="DesignTable:HolidayLIst" ZOrder="5" X="823" Y="620" Height="191" Width="210" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:vGroupUser" ZOrder="2" X="1159" Y="468" Height="324" Width="230" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:JobReportDateList" ZOrder="4" X="359" Y="85" Height="96" Width="212" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -313,6 +313,11 @@
<Compile Include="Dialog\fTouchKeyFull.Designer.cs">
<DependentUpon>fTouchKeyFull.cs</DependentUpon>
</Compile>
<Compile Include="DSMail.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DSMail.xsd</DependentUpon>
</Compile>
<Compile Include="dsMSSQL.cs">
<DependentUpon>dsMSSQL.xsd</DependentUpon>
</Compile>
@@ -456,6 +461,10 @@
</Compile>
<Compile Include="Settings.cs" />
<Compile Include="SqlServerTypes\Loader.cs" />
<Compile Include="StateMachine\ReportUserData.cs" />
<Compile Include="StateMachine\_MailService.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UserGroup.cs">
<DependentUpon>AdoNetEFMain.tt</DependentUpon>
</Compile>
@@ -619,6 +628,17 @@
<None Include="DataSet1.xss">
<DependentUpon>DataSet1.xsd</DependentUpon>
</None>
<None Include="DSMail.xsc">
<DependentUpon>DSMail.xsd</DependentUpon>
</None>
<None Include="DSMail.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DSMail.Designer.cs</LastGenOutput>
</None>
<None Include="DSMail.xss">
<DependentUpon>DSMail.xsd</DependentUpon>
</None>
<None Include="dsMSSQL.xsc">
<DependentUpon>dsMSSQL.xsd</DependentUpon>
</None>

View File

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
// 지정되도록 할 수 있습니다.
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("23.05.15.1130")]
[assembly: AssemblyFileVersion("23.05.15.1130")]
[assembly: AssemblyVersion("23.05.29.0100")]
[assembly: AssemblyFileVersion("23.05.29.0100")]

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class ReportUserData
{
public DateTime date { get; set; }
public string uid { get; set; }
public string uname { get; set; }
public double hrs { get; set; }
}

View File

@@ -11,8 +11,26 @@ namespace Project
{
public partial class fMain
{
DateTime redisTryTime = DateTime.Parse("1982-11-23");
//DateTime redisTryTime = DateTime.Parse("1982-11-23");
Boolean bBW = true;
DateTime ChkMakeAutoTime = DateTime.Now.AddDays(-1);
DateTime ChkSendMailTime = DateTime.Now.AddDays(-1);
DateTime ChkMakeSchDayWeekTime = DateTime.Now.AddDays(-1);
DateTime ChkMakeSchDay = DateTime.Now.AddDays(-1);
DateTime ChkNoSchedule = DateTime.Now.AddDays(-1);
DateTime ChkJobreportDay = DateTime.Now.AddDays(-1);
DateTime ChkJObreportWeek = DateTime.Now.AddDays(-1);
public string MailSort(string addr, string except)
{
if (string.IsNullOrEmpty(except)) return addr;
var alist = addr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
var elist = except.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (var item in elist)
alist.Remove(item);
if (alist.Count < 1) return string.Empty;
return string.Join(";", alist);
}
string getdbdata(object tdata)
{
@@ -45,89 +63,6 @@ namespace Project
return list_to;
}
DateTime ChkAutoDate = DateTime.Now;
void MakeAutoMail()
{
var ts = DateTime.Now - ChkAutoDate;
if (ts.TotalMinutes < 1) return; //10분마다 자동 생성 데이터를 처리한다
Console.WriteLine("Check Auto Make Mail");
var taData = new dsMSSQLTableAdapters.MailDataTableAdapter();
var taList = new dsMSSQLTableAdapters.MailAutoTableAdapter();
var dtList = taList.GetByAutoSend();
var dtInsert = new dsMSSQL.MailDataDataTable();
//대상
Console.WriteLine("Make Auto Send Mail Data (" + dtList.Rows.Count.ToString() + ")");
foreach (dsMSSQL.MailAutoRow dr in dtList)
{
//시간정보가 없는 애들은 처리 하지 않음
if (dr.stime.IndexOf(":") == -1) continue;
if (dr.sday == null || dr.sday.Length < 2) continue;
//발신시간을 넘어야 한다
var curTime = DateTime.Now.ToString("HH:mm");
if (string.Compare(curTime, dr.stime) < 0) continue; //지정된 시간 이전이면 생성 안한다
//자동생성 구분용 카테고리
var cate = string.Format("{0},{1}", dr.sday[0], dr.sday[1]);
//동륵일
var pdate = DateTime.Now.ToString("yyyy-MM-dd");
//같은날, 같은 atime aidx pdate 의 같이 있으면 이미 생성된것이므로 추가하지 않는다
var existData = taData.FindAutoData(dr.idx, dr.stime, pdate, cate);
var PreMakeCount = (int)(existData);
if (PreMakeCount > 0) continue;
//전송간격과 대상
if (dr.sday[0] == 1)
{
//week
var bitString = Convert.ToString(dr.sday[1], 2).PadLeft(8, '0').ToArray();
var weeknum = (int)(DateTime.Now.DayOfWeek);
if (bitString[weeknum + 1] == '0') continue;
}
else
{
//month
if (dr.sday[1] != DateTime.Now.Day) continue;
}
//같은날, 같은 atime aidx pdate 의 같이 있으면 이미 생성된것이므로 추가하지 않는다
//생성해야할 자료라면 만들어 준다
var newdr = dtInsert.NewMailDataRow();
newdr.pdate = pdate;// DateTime.Now.ToString("yyyy-MM-dd");
newdr.gcode = dr.gcode;
newdr.fromlist = dr.fromlist;
newdr.tolist = dr.tolist;
newdr.bcc = dr.bcc;
newdr.cate = cate;// string.Format("{0},{1}", dr.sday[0], dr.sday[1]); //cate에 해당 자료를 기록한다.
newdr.cc = dr.cc;
newdr.subject = dr.subject;
newdr.body = dr.body;
newdr.aidx = dr.idx;
newdr.atime = dr.stime;
newdr.wuid = "DEV";
newdr.wdate = DateTime.Now;
dtInsert.AddMailDataRow(newdr);
try
{
taData.Update(newdr);
Console.WriteLine("auto make : " + newdr.tolist + ",subject=" + newdr.subject);
}
catch (Exception eX)
{
Console.WriteLine("auto make error : " + eX.Message);
}
}
ChkAutoDate = DateTime.Now;
}
private void bw_DoWork(object sender, DoWorkEventArgs e)
@@ -135,163 +70,86 @@ namespace Project
while (bBW)
{
ServerUtil.IsMailserver = ServerUtil.SendmailSet();
if (ServerUtil.IsMailserver)
if (ServerUtil.IsMailserver && System.Diagnostics.Debugger.IsAttached == false)
{
//메일서버역할이 있다.
try
//메일대기내역전송
var tsSendMail = DateTime.Now - ChkSendMailTime;
if (tsSendMail.TotalMilliseconds > 1000)
{
var cn = new System.Data.SqlClient.SqlConnection(Properties.Settings.Default.gwcs);
var cmd = new System.Data.SqlClient.SqlCommand("", cn);
cn.Open();
//1개의데이터 가져오기
cmd.CommandText = "SELECT top 1 * FROM MailData WHERE ISNULL(SendOK, 0) = 0 order by wdate";
var dar = cmd.ExecuteReader();
var list_from = string.Empty;// getMaillist(dar["fromlist"]);
var list_to = string.Empty;// getMaillist(dar["tolist"]);
var list_bcc = string.Empty;// getMaillist(dar["bcc"]);
var list_cc = string.Empty;//getMaillist(dar["cc"]);
var subject = string.Empty;// getdbdata(dar["subject"]).Trim();
var body = string.Empty;//getdbdata(dar["body"]).Trim();
var idx = -1;
while (dar.Read())
{
list_from = getMaillist(dar["fromlist"]);
list_to = getMaillist(dar["tolist"]);
list_bcc = getMaillist(dar["bcc"]);
list_cc = getMaillist(dar["cc"]);
subject = getdbdata(dar["subject"]).Trim();
body = getdbdata(dar["body"]).Trim();
idx = (int)dar["idx"];
}
dar.Close();
string sendMsg = "";
if (list_from == "")
{
sendMsg = ("보내는 주소가 없습니다");
}
else if (subject.Trim() == "")
{
sendMsg = ("메일 제목이 없습니다");
}
else if (body.Trim() == "")
{
sendMsg = ("본문이 없습니다");
}
else if (list_to == "")
{
sendMsg = ("받는 주소가 없습니다");
}
if (sendMsg.isEmpty()==false)
{
//오류가 있다
try
{
cmd.CommandText = "UPDATE MailData SET SendOK = 1, SendMsg = @msg WHERE(idx = @idx) and isnull(sendok,0) = 0";
cmd.Parameters.Clear();
cmd.Parameters.Add("msg", System.Data.SqlDbType.VarChar).Value = sendMsg;
cmd.Parameters.Add("idx", System.Data.SqlDbType.Int).Value = idx;
//Console.WriteLine(string.Format("Send Complete index={0},Msg={1}", dar["idx"], sendMsg));
//ta.UpdateSendOK(sendMsg, dr.idx);
var ucnt = cmd.ExecuteNonQuery();
if (ucnt == 1)
{
Console.WriteLine("send mail to" + list_to + ",subject=" + getdbdata(subject));
}
}
catch (Exception eX)
{
sendMsg = eX.Message;
}
}
else
{
//var body = getdbdata(dar["body"]);
body +=
"<p>" +
"<br />이 메일은 EET 프로그램에서 자동 발신 되었습니다." +
"<br />메일이 잘못 전송 되었다면 [<a href='chikyun.kim@amkor.co.kr'>chikyun.kim@amkor.co.kr</a>] 로 문의 주시기 바랍니다" +
"</p>";
//전송을 해야 함
var mc = new System.Net.Mail.SmtpClient("10.101.10.6");
var msg = new System.Net.Mail.MailMessage
(list_from,
list_to,
subject,
body);
if (list_bcc != "") msg.Bcc.Add(list_bcc);
if (list_cc != "") msg.CC.Add(list_cc);
msg.IsBodyHtml = true;
bool msgupdate = false;
try
{
sendMsg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
cmd.CommandText = "UPDATE MailData SET SendOK = 1, SendMsg = @msg WHERE(idx = @idx) and isnull(sendok,0) = 0";
cmd.Parameters.Clear();
cmd.Parameters.Add("msg", System.Data.SqlDbType.VarChar).Value = sendMsg;
cmd.Parameters.Add("idx", System.Data.SqlDbType.Int).Value = idx;
//Console.WriteLine(string.Format("Send Complete index={0},Msg={1}", dar["idx"], sendMsg));
//ta.UpdateSendOK(sendMsg, dr.idx);
var ucnt = cmd.ExecuteNonQuery();
if (ucnt == 1)
{
mc.Send(msg);
Console.WriteLine("send mail to" + list_to + ",subject=" + getdbdata(subject));
}
}
catch (Exception eX)
{
sendMsg = eX.Message;
msgupdate = true;
}
try
{
if (msgupdate)
{
cmd.CommandText = "UPDATE MailData SET SendMsg = @msg WHERE idx = @idx ";
cmd.Parameters.Clear();
cmd.Parameters.Add("idx", System.Data.SqlDbType.Int).Value = idx;
var ucnt = cmd.ExecuteNonQuery();
}
}
catch (Exception eX)
{
//sendMsg = eX.Message;
//msgupdate = true;
}
}
cmd.Dispose();
cn.Close();
try { SendMail(); }
catch { }
finally { ChkSendMailTime = DateTime.Now; }
}
catch (Exception ex)
//자동생성 메일 작성
var tsAutoMake = DateTime.Now - ChkMakeAutoTime;
if (tsAutoMake.TotalMinutes >= 10)
{
try { MakeAutoMail(); }
catch { }
finally { ChkMakeAutoTime = DateTime.Now; }
}
///스케쥴 기한 알림(주)
var tsScheDayweek = DateTime.Now - ChkMakeSchDayWeekTime;
if (tsScheDayweek.TotalMinutes > 15 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 10)
{
try { MakeScheduleDayWeek(); }
catch { }
finally { ChkMakeSchDayWeekTime = DateTime.Now; }
}
System.Threading.Thread.Sleep(1500);
try
{
MakeAutoMail();
}
catch (Exception ex)
///스케쥴 기한 알림(일)
var tsScheDay = DateTime.Now - ChkMakeSchDay;
if (tsScheDay.TotalMinutes > 15 && DateTime.Now.DayOfWeek != DayOfWeek.Saturday &&
DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now.Hour >= 10)
{
try { MakeScheduleDay(); }
catch { }
finally { ChkMakeSchDay = DateTime.Now; }
}
System.Threading.Thread.Sleep(500);
///스케쥴없음
var tsNoSchedule = DateTime.Now - ChkNoSchedule;
if (tsNoSchedule.TotalMinutes > 15 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 10)
{
try { Mail_NoSchedule(); }
catch { }
finally { ChkNoSchedule = DateTime.Now; }
}
///업무일지(주간)
var tsjobweek = DateTime.Now - ChkJObreportWeek;
if (tsjobweek.TotalMinutes > 15 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 9)
{
try { Mail_JobReportWeek(); }
catch { }
finally { ChkJObreportWeek = DateTime.Now; }
}
///업무일지(일)
var tsjobday = DateTime.Now - ChkJobreportDay;
if (tsjobday.TotalMinutes > 15 &&
DateTime.Now.DayOfWeek != DayOfWeek.Saturday &&
DateTime.Now.DayOfWeek != DayOfWeek.Sunday &&
DateTime.Now.DayOfWeek != DayOfWeek.Monday &&
DateTime.Now.Hour >= 9)
{
try { Mail_JobReportDay(); }
catch { }
finally { ChkJobreportDay = DateTime.Now; }
}
System.Threading.Thread.Sleep(1000);
}
else System.Threading.Thread.Sleep(3000);
else System.Threading.Thread.Sleep(60000); //메일서비스사용안하므로 1분정도 지연한다
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -138,6 +138,7 @@
this.sPR설정ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.bwrunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tabControl1 = new System.Windows.Forms.TabControl();
@@ -445,7 +446,7 @@
//
// 담당자별현황ToolStripMenuItem
//
this.ToolStripMenuItem.ForeColor = System.Drawing.Color.Red;
this.ToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.ToolStripMenuItem.Name = "담당자별현황ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(180, 24);
this.ToolStripMenuItem.Text = "목록(챔피언)";
@@ -873,7 +874,8 @@
this.ToolStripMenuItem,
this.sPR설정ToolStripMenuItem,
this.toolStripMenuItem13,
this.ToolStripMenuItem});
this.ToolStripMenuItem,
this.bwrunToolStripMenuItem});
this.btDev.ForeColor = System.Drawing.Color.Blue;
this.btDev.Image = ((System.Drawing.Image)(resources.GetObject("btDev.Image")));
this.btDev.Name = "btDev";
@@ -1036,6 +1038,13 @@
this.ToolStripMenuItem.Text = "프로젝트스케쥴담당자사번업데이트";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// bwrunToolStripMenuItem
//
this.bwrunToolStripMenuItem.Name = "bwrunToolStripMenuItem";
this.bwrunToolStripMenuItem.Size = new System.Drawing.Size(302, 24);
this.bwrunToolStripMenuItem.Text = "bw-run";
this.bwrunToolStripMenuItem.Click += new System.EventHandler(this.bwrunToolStripMenuItem_Click);
//
// 버젼확인ToolStripMenuItem
//
this.ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("버젼확인ToolStripMenuItem.Image")));
@@ -1299,6 +1308,7 @@
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem15;
private System.Windows.Forms.ToolStripMenuItem bwrunToolStripMenuItem;
}
}

View File

@@ -1434,5 +1434,10 @@ namespace Project
{
menu_projecTU_list();
}
private void bwrunToolStripMenuItem_Click(object sender, EventArgs e)
{
bw_DoWork(null, null);
}
}
}

View File

@@ -452,14 +452,14 @@
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPY4CDmcasDEu1MxmW6ixgWKbTwrBYVx0svkqL
h2GZViHDMu15QPFWhmXqUmBxDLBUZzVQwX84Xqzzg2GJpifDMs3rKOJLtZ4ADZWA6oKCpVo2IEmBtZb/
/U7m/E+5XP8/92TF/3lzYj/ULMn/l3q54X/kubL/qtu8oIZo90F1QsEynQn8a8yPJV+p/1Z8q+d/yc2e
/4dm5vx/1Jn2/+qkzJ8gMRg22R16gmGJzjWoTihYqitYfKu7Dqao41D9/+ulEf9PtPr8vV7o9blnWyHc
/U7m/E+5XP8/92TF/3lzYj/ULMr/l3q54X/kubL/qtu8oIZo90F1QsEynQn8a8yPJV+p/1Z8q+d/yc2e
/4dm5vx/1Jn2/+qkzJ8gMRg22R16gmGJzjWoTihYqitYfKu7Dqao41D9/+ulEf+PtXr9vV7o9blnWyHc
gOJbXRdA6qE6EaD4ZvdcmKLKSx3LzheGHLyc7PbtYpDa/20VTnuLL3Z8BMkV3Ox5B9WCCmAuKLrZUwLi
v2iNEH9c5vn/SobWnyfZNmqFN3v1gbZ/LrrVcx6sAR0U3+kxLr7RdRzKZXhc7On5qNTjPxiXeHmAxICu
LAVa1AJWgA0U3+kWgzIZnlR4ZcEMeFLpnQkSq79fz5F7ayIfWAEh8KjCs+9Judd/EH5c7tULFSYeAP2/
Ee6FUo8NUGHiwP/99RwvuqJOv+mJ+w/CLzsjT4HEoNLYwb8D/Zp/D/T2/T/Qe+bFgd7fQPo/MoaKnQGr
2d+jAdUG1LhtIjtQcP6LlfX/0DXhwiC1fw/0zAPpZfi7v7cXmyJiMEgv0Ol9tkDTlgMFVpGCQXr+Heiz
BQA3bqsYWMfKRAAAAABJRU5ErkJggg==
Ee6FUo8NUGHiwP/99RwvuqJOv+mJ+w/CLzsjT4HEoNLYwb8D/Zp/D/T2/T/Qe+bZgd7fQPo/MoaKnQGr
2d+jAdUG1LhtIjtQcP6z5fX/0DXhwiC1fw/0zAPpZfi7v7cXmyJiMEgv0Ol9tkDTlgMFVpGCQXr+Heiz
BQAcLqsGT4fV4QAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">