Browse Source

Merge repos.ubtob.net:usoft/mes-client

callm 6 months ago
parent
commit
400f7969ae

+ 133 - 54
UAS_MES_BG/FunctionCode/Make/Make_ParseLog.cs

@@ -51,7 +51,7 @@ namespace UAS_MES_NEW.Make
         string SN, omakeCode, oMsid, oErrorMessage = "";
         List<string> fileList = new List<string>();
 
-        Timer formsTimer;
+        Timer formsTimer,SPITimer;
         string outXmlFilePath;
 
         private void Make_ParseLog_Load(object sender, EventArgs e)
@@ -68,6 +68,11 @@ namespace UAS_MES_NEW.Make
             formsTimer = new Timer();
             formsTimer.Interval = 10000;
             formsTimer.Tick += timer1_Tick;
+
+            SPITimer = new Timer();
+            SPITimer.Interval = 30000;
+            SPITimer.Tick += SPITimer_Tick;
+
             //outXmlFilePath = "C:\\Users\\MI\\Desktop\\贴片机\\outLogs";
             outXmlFilePath = "D:\\JANETSSR";
 
@@ -115,26 +120,34 @@ namespace UAS_MES_NEW.Make
                 case 0:
                     currFileType = "txt";
                     equiType = "SPI";
+
+                    SPITimer_Tick(null, null);
+                    SPITimer.Start();
                     break;
                 case 1:
                     currFileType = "csv";
                     equiType = "SPI";
+                    SPITimer.Stop();
                     break;
                 case 2:
                     currFileType = "txt";
                     equiType = "AOI";
+                    SPITimer.Stop();
                     break;
                 case 3:
                     currFileType = "csv";
                     equiType = "印刷机";
+                    SPITimer.Stop();
                     break;
                 case 4:
                     currFileType = "xml";
                     equiType = "贴片机";
+                    SPITimer.Stop();
                     break;
                 case 5:
                     currFileType = "xml";
                     equiType = "贴片机";
+                    SPITimer.Stop();
                     break;
             }
 
@@ -147,13 +160,13 @@ namespace UAS_MES_NEW.Make
                 txtPath.SelectAll();
                 return;
             }
-            if (string.IsNullOrEmpty(ma_code.Text))
-            {
-                Device.SelectedIndex = -1;
-                txtPath.Text = "";
-                MessageBox.Show(this.ParentForm, "请选择工单", "提示");
-                return;
-            }
+            //if (string.IsNullOrEmpty(ma_code.Text))
+            //{
+            //    Device.SelectedIndex = -1;
+            //    txtPath.Text = "";
+            //    MessageBox.Show(this.ParentForm, "请选择工单", "提示");
+            //    return;
+            //}
 
             txtPath.Text = fileList[Device.SelectedIndex];
             txtPath.Focus();
@@ -362,8 +375,43 @@ namespace UAS_MES_NEW.Make
             }
         }
 
+        private void SPITimer_Tick(object sender, EventArgs e)
+        {
+            try
+            {
+                sql.Clear();
+                sql.Append($"SELECT dl_macode FROM deviceline WHERE dl_type = 'SMT' AND dl_linecode = '{User.UserLineCode}'");
+                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                if (dt.Rows.Count > 0 && !String.IsNullOrEmpty(dt.Rows[0]["dl_macode"].ToString()))
+                {
+                    ma_code.Text = dt.Rows[0]["dl_macode"].ToString().Trim();
+                    return;
+                }
+
+                sql.Clear();
+                sql.Append($"SELECT dl_macode FROM deviceline WHERE dl_linecode = '{User.UserLineCode}' AND dl_type IS NULL");
+                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                if (dt.Rows.Count > 0 && !String.IsNullOrEmpty(dt.Rows[0]["dl_macode"].ToString()))
+                {
+                    ma_code.Text = dt.Rows[0]["dl_macode"].ToString().Trim();
+                }
+            }
+            catch (Exception ex)
+            {
+                LogMessage($"SPI自动识别生产工单Error: {ex.Message}");
+            }
+        }
+
         private void OnFileCreated(object sender, FileSystemEventArgs e)
         {
+            if (Device.SelectedIndex == 0 && string.IsNullOrEmpty(ma_code.Text))
+            {
+                Device.SelectedIndex = -1;
+                txtPath.Text = "";
+                MessageBox.Show(this.ParentForm, "请选择工单", "提示");
+                return;
+            }
+
             RefreshFileList();
         }
 
@@ -855,41 +903,52 @@ namespace UAS_MES_NEW.Make
                 {
                     if (string.IsNullOrEmpty(item)) continue;
                     string[] currItem = item.Split(',');
-                    string res = "",wo = "",lineName = "",source = "";
+                    string res = "",wo = "",detail = "",line = "";
                     if(equiType == "SPI")
                     {
                         res = currItem[1];
                         wo = ma_code.Text;
-                        source = User.UserSourceCode;
+                        detail = currItem[1];
+                        line = User.UserLineCode;
                     }
                     else if (equiType == "AOI")
                     {
-                        res = currItem[3];
-
-                        sql.Clear();
-                        //sql.Append($"SELECT a.li_code,b.dl_macode FROM line_ipaoi a, deviceline b WHERE a.ipaddress = '{currItem[2]}' AND a.li_code = b.dl_linecode");
-                        sql.Append($"SELECT a.li_code,b.dl_macode,c.sc_name FROM line_ipaoi a,deviceline b,source c WHERE a.ipaddress = '{currItem[2]}' AND a.li_code = b.dl_linecode AND a.li_code = c.sc_linecode AND c.sc_wccode = 'SMT' AND instr(c.sc_name, 'AOI') > 0 AND b.dl_type = 'SMT'");
-                        dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                        if (dt.Rows.Count > 0 && !String.IsNullOrEmpty(dt.Rows[0]["dl_macode"].ToString()))
+                        if (currItem.Length > 2)
                         {
-                            wo = dt.Rows[0]["dl_macode"].ToString();
-                            lineName = dt.Rows[0]["li_code"].ToString();
-                            source = dt.Rows[0]["sc_name"].ToString();
-                        }
-                        else
+                            res = currItem[3];
+                            detail = currItem[3];
+
+                            sql.Clear();
+                            sql.Append($"SELECT a.li_code,b.dl_macode,c.sc_name FROM line_ipaoi a,deviceline b,source c WHERE a.ipaddress = '{currItem[2]}' AND a.li_code = b.dl_linecode AND a.li_code = c.sc_linecode AND c.sc_wccode = 'SMT' AND instr(c.sc_name, 'AOI') > 0 AND b.dl_type = 'SMT'");
+                            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                            if (dt.Rows.Count > 0 && !String.IsNullOrEmpty(dt.Rows[0]["dl_macode"].ToString()))
+                            {
+                                wo = dt.Rows[0]["dl_macode"].ToString();
+                                line = dt.Rows[0]["li_code"].ToString();
+                            }
+                        }else if (currItem.Length == 2)
                         {
-                            LogMessage($"IP:{currItem[2]},无对应线体工单");
-                            return;
+                            res = currItem[1];
+                            detail = currItem[1];
+
+                            sql.Clear();
+                            sql.Append($"SELECT a.ms_linecode, a.ms_makecode FROM makeserial a WHERE a.ms_sncode = '{currItem[0]}'");
+                            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                            if (dt.Rows.Count > 0 && !String.IsNullOrEmpty(dt.Rows[0]["ms_linecode"].ToString()))
+                            {
+                                wo = dt.Rows[0]["ms_makecode"].ToString();
+                                line = dt.Rows[0]["ms_linecode"].ToString();
+                            }
                         }
                     }
                     Log itemLog = new Log()
                     {
                         SN = currItem[0],
                         Work_order = wo,
-                        Line = lineName,
-                        Source = source,
+                        Line = line,
+                        Source = User.UserSourceCode,
                         Result = res,
-                        Details = equiType == "SPI" ? currItem[1] : currItem[3]
+                        Details = detail
                     };
                     logArr.Add(itemLog);
 
@@ -917,47 +976,66 @@ namespace UAS_MES_NEW.Make
                 List<string> param = new List<string>() { };
                 foreach (var item in logs)
                 {
-                    if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, item.SN, User.UserCode, out omakeCode, out oMsid, out oErrorMessage))
+                    string ishave_sn = "";
+                    if (equiType == "SPI")
+                    {
+                        sql.Clear();
+                        //sql.Append($"SELECT ma_ishave_sn FROM make WHERE ma_code = '{item.Work_order}'");
+                        sql.Append($"SELECT pr_tm_user FROM make a,product b WHERE a.ma_code = '{item.Work_order}' AND a.ma_prodcode = b.pr_code");
+                        dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
+                        if (dt.Rows.Count > 0)
+                        {
+                            ishave_sn = dt.Rows[0]["pr_tm_user"].ToString().Trim();
+                        }
+                    }
+                    if (ishave_sn == "是")
                     {
-                        if (LogicHandler.SetStepResult(omakeCode, User.UserSourceCode, item.SN, "日志解析", "OK", User.UserCode, out oErrorMessage))
+                        if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, item.SN, User.UserCode, out omakeCode, out oMsid, out oErrorMessage))
                         {
-                            string sqlStr = $@"select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode,pr_detail,ma_qty - nvl(mcd_okqty, 0) remain_qty 
+                            if (LogicHandler.SetStepResult(omakeCode, User.UserSourceCode, item.SN, "日志解析", "OK", User.UserCode, out oErrorMessage))
+                            {
+                                string sqlStr = $@"select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode,pr_detail,ma_qty - nvl(mcd_okqty, 0) remain_qty 
                                         from make left join makecraftdetail on mcd_maid=ma_id left join product on pr_code = ma_prodcode 
                                         where ma_code='" + omakeCode + "' and mcd_stepcode='" + User.CurrentStepCode + "'";
-                            dt = (DataTable)dh.ExecuteSql(sqlStr, "select");
-                            BaseUtil.SetFormValue(Controls, dt);
-                            //记录操作日志
-                            LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "日志解析", "日志解析成功", item.SN, "");
-
-                            param.Add(item.SN);
-                            param.Add(omakeCode);
-                            param.Add(item.Result == "PASS" ? "OK" : "NG");
-                            param.Add(equiType);
-                            param.Add(item.Details);
-                            param.Add(User.UserCode);
-                            param.Add(item.Source);
-                            param.Add(item.Line);
-                            string res = "";
-                            param.Add(res);
-                            string[] paramList = param.ToArray();
-                            dh.CallProcedure("cs_insert_testrejects", ref paramList);
-                            param.Clear();
-                            LogMessage($"文件: {PathName},共{fileNum}条记录已过站解析");
-
-                            if (logs.IndexOf(item) == logs.Count - 1)
+                                dt = (DataTable)dh.ExecuteSql(sqlStr, "select");
+                                BaseUtil.SetFormValue(Controls, dt);
+                                //记录操作日志
+                                LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ma_code.Text, User.UserLineCode, User.UserSourceCode, "日志解析", "日志解析成功", item.SN, "");
+
+                                param.Add(item.SN);
+                                param.Add(omakeCode);
+                                param.Add(item.Result == "PASS" ? "OK" : "NG");
+                                param.Add(equiType);
+                                param.Add(item.Details);
+                                param.Add(User.UserCode);
+                                param.Add(item.Source);
+                                param.Add(item.Line);
+                                string res = "";
+                                param.Add(res);
+                                string[] paramList = param.ToArray();
+                                dh.CallProcedure("cs_insert_testrejects", ref paramList);
+                                param.Clear();
+                                LogMessage($"文件: {PathName},共{fileNum}条记录已过站解析");
+
+                                if (logs.IndexOf(item) == logs.Count - 1)
+                                {
+                                    return true;
+                                }
+                            }
+                            else
                             {
-                                return true;
+                                LogMessage($"处理过站NG:{oErrorMessage}");
+                                break;
                             }
                         }
                         else
                         {
-                            LogMessage($"处理过站NG:{oErrorMessage}");
+                            LogMessage($"过站核对NG:{oErrorMessage}");
                             break;
                         }
                     }
                     else
                     {
-                        LogMessage($"过站核对NG:{oErrorMessage}");
                         param.Add(item.SN);
                         param.Add(item.Work_order);
                         param.Add(item.Result == "PASS" ? "OK" : "NG");
@@ -978,6 +1056,7 @@ namespace UAS_MES_NEW.Make
                             return true;
                         }
                     }
+                    
                 }
                 return false;
             }

+ 44 - 92
UAS_MES_HGS/FunctionCode/Make/Make_ParseLog.Designer.cs

@@ -34,26 +34,19 @@
             this.txtPath = new System.Windows.Forms.TextBox();
             this.Choose = new System.Windows.Forms.Button();
             this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
-            this.logList = new System.Windows.Forms.ListView();
-            this.sn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.time = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.fileName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             this.panel1 = new System.Windows.Forms.Panel();
+            this.lstOk = new System.Windows.Forms.ListBox();
+            this.lstFiles = new System.Windows.Forms.ListBox();
             this.onWatch = new System.Windows.Forms.Button();
             this.claerBtn = new System.Windows.Forms.Button();
             this.LockMakeCode = new UAS_MES_NEW.CustomControl.CustomCheckBox.LockCheckBox();
             this.ma_code = new UAS_MES_NEW.CustomControl.TextBoxWithIcon.MaCodeSearchTextBox();
             this.allParse = new System.Windows.Forms.Button();
             this.label3 = new System.Windows.Forms.Label();
-            this.panel2 = new System.Windows.Forms.Panel();
-            this.panel4 = new System.Windows.Forms.Panel();
-            this.lstFiles = new System.Windows.Forms.ListBox();
-            this.panel3 = new System.Windows.Forms.Panel();
             this.openFileDialog2 = new System.Windows.Forms.OpenFileDialog();
+            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
             this.panel1.SuspendLayout();
-            this.panel2.SuspendLayout();
-            this.panel4.SuspendLayout();
-            this.panel3.SuspendLayout();
+            this.tableLayoutPanel1.SuspendLayout();
             this.SuspendLayout();
             // 
             // Device
@@ -114,38 +107,6 @@
             this.openFileDialog1.FileName = "openFileDialog1";
             this.openFileDialog1.RestoreDirectory = true;
             // 
-            // logList
-            // 
-            this.logList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.sn,
-            this.time,
-            this.fileName});
-            this.logList.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.logList.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.logList.HideSelection = false;
-            this.logList.Location = new System.Drawing.Point(0, 0);
-            this.logList.Name = "logList";
-            this.logList.Size = new System.Drawing.Size(326, 530);
-            this.logList.TabIndex = 6;
-            this.logList.UseCompatibleStateImageBehavior = false;
-            this.logList.View = System.Windows.Forms.View.Details;
-            this.logList.Visible = false;
-            // 
-            // sn
-            // 
-            this.sn.Text = "序号";
-            this.sn.Width = 55;
-            // 
-            // time
-            // 
-            this.time.Text = "时间";
-            this.time.Width = 220;
-            // 
-            // fileName
-            // 
-            this.fileName.Text = "文件名称";
-            this.fileName.Width = 380;
-            // 
             // panel1
             // 
             this.panel1.BackColor = System.Drawing.SystemColors.Control;
@@ -166,6 +127,27 @@
             this.panel1.Size = new System.Drawing.Size(1304, 296);
             this.panel1.TabIndex = 7;
             // 
+            // lstOk
+            // 
+            this.lstOk.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.lstOk.FormattingEnabled = true;
+            this.lstOk.ItemHeight = 18;
+            this.lstOk.Location = new System.Drawing.Point(655, 3);
+            this.lstOk.Name = "lstOk";
+            this.lstOk.Size = new System.Drawing.Size(646, 524);
+            this.lstOk.TabIndex = 1;
+            // 
+            // lstFiles
+            // 
+            this.lstFiles.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.lstFiles.FormattingEnabled = true;
+            this.lstFiles.ItemHeight = 18;
+            this.lstFiles.Location = new System.Drawing.Point(3, 3);
+            this.lstFiles.Name = "lstFiles";
+            this.lstFiles.Size = new System.Drawing.Size(646, 524);
+            this.lstFiles.TabIndex = 0;
+            this.lstFiles.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.lstFiles_DrawItem_1);
+            // 
             // onWatch
             // 
             this.onWatch.Cursor = System.Windows.Forms.Cursors.Hand;
@@ -245,55 +227,32 @@
             this.label3.TabIndex = 6;
             this.label3.Text = "工单";
             // 
-            // panel2
-            // 
-            this.panel2.Controls.Add(this.panel4);
-            this.panel2.Controls.Add(this.panel3);
-            this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel2.Location = new System.Drawing.Point(0, 296);
-            this.panel2.Name = "panel2";
-            this.panel2.Size = new System.Drawing.Size(1304, 530);
-            this.panel2.TabIndex = 8;
-            // 
-            // panel4
-            // 
-            this.panel4.Controls.Add(this.lstFiles);
-            this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel4.Location = new System.Drawing.Point(0, 0);
-            this.panel4.Name = "panel4";
-            this.panel4.Size = new System.Drawing.Size(978, 530);
-            this.panel4.TabIndex = 2;
-            // 
-            // lstFiles
-            // 
-            this.lstFiles.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.lstFiles.FormattingEnabled = true;
-            this.lstFiles.ItemHeight = 18;
-            this.lstFiles.Location = new System.Drawing.Point(0, 0);
-            this.lstFiles.Name = "lstFiles";
-            this.lstFiles.Size = new System.Drawing.Size(978, 530);
-            this.lstFiles.TabIndex = 0;
-            // 
-            // panel3
-            // 
-            this.panel3.Controls.Add(this.logList);
-            this.panel3.Dock = System.Windows.Forms.DockStyle.Right;
-            this.panel3.Location = new System.Drawing.Point(978, 0);
-            this.panel3.Name = "panel3";
-            this.panel3.Size = new System.Drawing.Size(326, 530);
-            this.panel3.TabIndex = 1;
-            // 
             // openFileDialog2
             // 
             this.openFileDialog2.FileName = "openFileDialog2";
             // 
+            // tableLayoutPanel1
+            // 
+            this.tableLayoutPanel1.ColumnCount = 2;
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel1.Controls.Add(this.lstOk, 1, 0);
+            this.tableLayoutPanel1.Controls.Add(this.lstFiles, 0, 0);
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 296);
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+            this.tableLayoutPanel1.RowCount = 1;
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(1304, 530);
+            this.tableLayoutPanel1.TabIndex = 8;
+            // 
             // Make_ParseLog
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.BackColor = System.Drawing.SystemColors.Window;
             this.ClientSize = new System.Drawing.Size(1304, 826);
-            this.Controls.Add(this.panel2);
+            this.Controls.Add(this.tableLayoutPanel1);
             this.Controls.Add(this.panel1);
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
             this.Name = "Make_ParseLog";
@@ -301,9 +260,7 @@
             this.Load += new System.EventHandler(this.Make_ParseLog_Load);
             this.panel1.ResumeLayout(false);
             this.panel1.PerformLayout();
-            this.panel2.ResumeLayout(false);
-            this.panel4.ResumeLayout(false);
-            this.panel3.ResumeLayout(false);
+            this.tableLayoutPanel1.ResumeLayout(false);
             this.ResumeLayout(false);
 
         }
@@ -316,12 +273,7 @@
         private System.Windows.Forms.TextBox txtPath;
         private System.Windows.Forms.Button Choose;
         private System.Windows.Forms.OpenFileDialog openFileDialog1;
-        private System.Windows.Forms.ListView logList;
         private System.Windows.Forms.Panel panel1;
-        private System.Windows.Forms.Panel panel2;
-        private System.Windows.Forms.ColumnHeader time;
-        private System.Windows.Forms.ColumnHeader fileName;
-        private System.Windows.Forms.ColumnHeader sn;
         private System.Windows.Forms.Label label3;
         private System.Windows.Forms.Button allParse;
         private CustomControl.TextBoxWithIcon.MaCodeSearchTextBox ma_code;
@@ -329,8 +281,8 @@
         private System.Windows.Forms.OpenFileDialog openFileDialog2;
         private System.Windows.Forms.ListBox lstFiles;
         private System.Windows.Forms.Button claerBtn;
-        private System.Windows.Forms.Panel panel4;
-        private System.Windows.Forms.Panel panel3;
         private System.Windows.Forms.Button onWatch;
+        private System.Windows.Forms.ListBox lstOk;
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
     }
 }

+ 63 - 8
UAS_MES_HGS/FunctionCode/Make/Make_ParseLog.cs

@@ -324,7 +324,7 @@ namespace UAS_MES_NEW.Make
                         dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                         if (dt.Rows.Count == 0 || dt.Rows[0]["MAL_SNCODE"].ToString() == "")
                         {
-                            LogMessage($"文件 {PathName}, 解析SN: {currItem[1]}无匹配过站SN");
+                            LogMessage($"文件 {PathName}, 匹配NG: {currItem[1]}无对应SN");
                             break;
                         }
 
@@ -336,6 +336,11 @@ namespace UAS_MES_NEW.Make
                         logArr.Add(itemLog);
                     }
                 }
+                if(logArr.Count == 0)
+                {
+                    return;
+                }
+
                 if (InsertDb(logArr, PathName, fileNum))
                 {
                     if (ConsoleLog(restOfStream, PathName))
@@ -359,9 +364,9 @@ namespace UAS_MES_NEW.Make
                 List<string> param = new List<string>() { };
                 foreach (var item in logs)
                 {
-                    if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, item.SN, User.UserCode, out omakeCode, out oMsid, out oErrorMessage))
+                    if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, item.SN, User.UserCode,false ,out omakeCode, out oMsid, out oErrorMessage))
                     {
-                        if (LogicHandler.SetStepResult(omakeCode, User.UserSourceCode, item.SN, "日志解析", "OK", User.UserCode, out oErrorMessage))
+                        if (LogicHandler.SetStepResult(omakeCode, User.UserSourceCode, item.SN, "日志解析", "OK", User.UserCode, false ,out oErrorMessage))
                         {
                             string sqlStr = $@"select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode,pr_detail,ma_qty - nvl(mcd_okqty, 0) remain_qty 
                                         from make left join makecraftdetail on mcd_maid=ma_id left join product on pr_code = ma_prodcode 
@@ -382,6 +387,11 @@ namespace UAS_MES_NEW.Make
                             dh.CallProcedure("cs_insert_testdetail", ref paramList);
                             LogMessage($"文件: {PathName},共{fileNum}条记录SN: {item.SN}解析已过站");
                             param.Clear();
+
+                            if (logs.IndexOf(item) == logs.Count - 1)
+                            {
+                                return true;
+                            }
                         }
                         else
                         {
@@ -392,6 +402,7 @@ namespace UAS_MES_NEW.Make
                     else
                     {
                         LogMessage($"过站核对NG:{oErrorMessage}");
+                        break;
                     }
                 }
                 return false;
@@ -442,13 +453,57 @@ namespace UAS_MES_NEW.Make
 
         private void LogMessage(string message)
         {
-            if (lstFiles.InvokeRequired)
+            bool isNg;
+            if (message.ToUpper().Contains("NG"))
             {
-                lstFiles.Invoke(new Action<string>(LogMessage), message);
-                return;
+                isNg = true;
+            }
+            else if (message.ToUpper().Contains("ERROR"))
+            {
+                isNg = true;
+            }
+            else
+            {
+                isNg = false;
+            }
+
+            if (isNg) 
+            {
+                if (lstFiles.InvokeRequired)
+                {
+                    lstFiles.Invoke(new Action<string>(LogMessage), message);
+                    return;
+                }
+                lstFiles.Items.Add($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] {message}");
+                lstFiles.TopIndex = lstFiles.Items.Count - 1;
+                lstFiles.DrawMode = DrawMode.OwnerDrawFixed;
+            }
+            else
+            {
+                if (lstOk.InvokeRequired)
+                {
+                    lstOk.Invoke(new Action<string>(LogMessage), message);
+                    return;
+                }
+                lstOk.Items.Add($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] {message}");
+                lstOk.TopIndex = lstFiles.Items.Count - 1;
+            }
+        }
+
+        private void lstFiles_DrawItem_1(object sender, DrawItemEventArgs e)
+        {
+            e.DrawBackground();
+            Brush mybsh = Brushes.Black;
+            if (lstFiles.Items[e.Index].ToString().Contains("NG"))
+            {
+                mybsh = Brushes.Red;
+            }
+            else if (lstFiles.Items[e.Index].ToString().Contains("ERROR"))
+            {
+                mybsh = Brushes.Red;
             }
-            lstFiles.Items.Add($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] {message}");
-            lstFiles.TopIndex = lstFiles.Items.Count - 1;
+            e.DrawFocusRectangle();
+            e.Graphics.DrawString(lstFiles.Items[e.Index].ToString(), e.Font, mybsh, e.Bounds, StringFormat.GenericDefault);
         }
 
         public string CheckFileAccess(string filePath)

+ 25 - 1
UAS_MES_HGS/PublicMethod/LogicHandler.cs

@@ -193,7 +193,25 @@ namespace UAS_MES_NEW.PublicMethod
                 return false;
             }
         }
-
+        public static bool CheckStepSNAndMacode(string iMakeCode, string iSourceCode, string iSN, string iUserCode, bool isHaveDiag, out string oMakeCode, out string oMsID, out string oErrorMessage)
+        {
+            oErrorMessage = "";
+            oMakeCode = "";
+            oMsID = "";
+            string[] param = new string[] { iMakeCode, iSourceCode, iSN, iUserCode, oMakeCode, oMsID, oErrorMessage };
+            dh.CallProcedure("CS_CHECKSTEPSNANDMACODE", ref param);
+            oMakeCode = param[4];
+            oMsID = param[5];
+            oErrorMessage = param[6];
+            if (oErrorMessage == "" || oErrorMessage == null || oErrorMessage == "null")
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
         public static void GetQuerySql(string iCondition, out string v_sql, out string v_sql1)
         {
             v_sql = "";
@@ -728,6 +746,12 @@ namespace UAS_MES_NEW.PublicMethod
             return result;
         }
 
+        public static bool SetStepResult(string iMakeCode, string iSourceCode, string iSN, string iMPKind, string iResult, string iUserCode, bool isHaveDiag ,out string oErrorMessage)
+        {
+            bool result = CS_SetResult(iMakeCode, iSourceCode, iSN, iUserCode, iResult, out oErrorMessage);
+            return result;
+        }
+
         public static bool CS_SetResult(string iMakeCode, string iSourceCode, string iSN, string iUserCode, string iResult, out string oErrorMessage)
         {
             oErrorMessage = "";

+ 2 - 1
UAS_MES_JH/FunctionCode/Make/Make_ColorBoxWeigh.cs

@@ -228,7 +228,8 @@ namespace UAS_MES_NEW.Make
                             lsi.SubItems.Add(sncode.Text);
                             lsi.SubItems.Add(ActualWeight.ToString());
                             lsi.SubItems.Add(System.DateTime.Now.ToString());
-                            WeighRecord.Items.Add(lsi);
+                            WeighRecord.Items.Insert(0, lsi);
+                            //WeighRecord.Items.Add(lsi);
                             OperateResult.AppendText(">>彩盒" + sncode.Text + "称重完成\n", Color.Green);
                             if (AutoPrint.Checked)
                                 Confirm_Click(new object(), new EventArgs());

+ 8 - 63
UAS_MES_JH/FunctionCode/Make/Make_RePrintLabel.cs

@@ -84,10 +84,9 @@ namespace UAS_MES_NEW.Make
         {
             try
             {
-                //engine = new BarTender.Application();
-                //lbl = new ApplicationClass();
+                engine = new BarTender.Application();
+                lbl = new ApplicationClass();
                 BaseUtil.WriteLbl();
-                COMObjManage.Initialize();
             }
             catch (Exception ex)
             {
@@ -266,16 +265,7 @@ namespace UAS_MES_NEW.Make
                 //doc = lbl.Documents.Open(PrintLabel.Text);
                 if (PrintLabel.Text.ToUpper().Contains(".BTW"))
                 {
-                    /*if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, giftBox.Checked ? "彩盒标" : "机身标", "-1", out errorMessage))
-                    {
-                        //按照打印张数打印
-                        OperateResult.AppendText("<<打印成功\n", Color.Green);
-                    }
-                    else
-                    {
-                        OperateResult.AppendText(errorMessage + "\n", Color.Red);
-                    }*/
-                    if (COMObjManage.SinglePrint(Tag.ToString(), PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, giftBox.Checked ? "彩盒标" : "机身标", "-1", out errorMessage))
+                    if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, giftBox.Checked ? "彩盒标" : "机身标", "-1", out errorMessage))
                     {
                         //按照打印张数打印
                         OperateResult.AppendText("<<打印成功\n", Color.Green);
@@ -287,16 +277,7 @@ namespace UAS_MES_NEW.Make
                 }
                 else
                 {
-                    /*if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, giftBox.Checked ? "彩盒标" : "机身标", "-1", out errorMessage))
-                    {
-                        //按照打印张数打印
-                        OperateResult.AppendText("<<打印成功\n", Color.Green);
-                    }
-                    else
-                    {
-                        OperateResult.AppendText(errorMessage + "\n", Color.Red);
-                    }*/
-                    if (COMObjManage.CodeSoft(Tag.ToString(), PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, giftBox.Checked ? "彩盒标" : "机身标", "-1", out errorMessage))
+                    if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, giftBox.Checked ? "彩盒标" : "机身标", "-1", out errorMessage))
                     {
                         //按照打印张数打印
                         OperateResult.AppendText("<<打印成功\n", Color.Green);
@@ -330,16 +311,7 @@ namespace UAS_MES_NEW.Make
                 //doc = lbl.Documents.Open(PrintLabel.Text);
                 if (PrintLabel.Text.ToUpper().Contains(".BTW"))
                 {
-                    /*if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "卡通箱标", "-1", out errorMessage))
-                    {
-                        //判断通过,打印
-                        OperateResult.AppendText("<<打印成功\n", Color.Green);
-                    }
-                    else
-                    {
-                        OperateResult.AppendText(errorMessage + "\n", Color.Red);
-                    }*/
-                    if (COMObjManage.SinglePrint(Tag.ToString(), PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "卡通箱标", "-1", out errorMessage))
+                    if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "卡通箱标", "-1", out errorMessage))
                     {
                         //判断通过,打印
                         OperateResult.AppendText("<<打印成功\n", Color.Green);
@@ -351,16 +323,7 @@ namespace UAS_MES_NEW.Make
                 }
                 else
                 {
-                    /*if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "卡通箱标", "-1", out errorMessage))
-                    {
-                        //判断通过,打印
-                        OperateResult.AppendText("<<打印成功\n", Color.Green);
-                    }
-                    else
-                    {
-                        OperateResult.AppendText(errorMessage + "\n", Color.Red);
-                    }*/
-                    if (COMObjManage.CodeSoft(Tag.ToString(), PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "卡通箱标", "-1", out errorMessage))
+                    if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "卡通箱标", "-1", out errorMessage))
                     {
                         //判断通过,打印
                         OperateResult.AppendText("<<打印成功\n", Color.Green);
@@ -394,16 +357,7 @@ namespace UAS_MES_NEW.Make
                 //doc = lbl.Documents.Open(PrintLabel.Text);
                 if (PrintLabel.Text.ToUpper().Contains(".BTW"))
                 {
-                    /*if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "栈板标", "-1", out errorMessage))
-                    {
-                        //判断通过,打印
-                        OperateResult.AppendText("<<打印成功\n", Color.Green);
-                    }
-                    else
-                    {
-                        OperateResult.AppendText(errorMessage + "\n", Color.Red);
-                    }*/
-                    if (COMObjManage.SinglePrint(Tag.ToString(), PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "栈板标", "-1", out errorMessage))
+                    if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "栈板标", "-1", out errorMessage))
                     {
                         //判断通过,打印
                         OperateResult.AppendText("<<打印成功\n", Color.Green);
@@ -415,16 +369,7 @@ namespace UAS_MES_NEW.Make
                 }
                 else
                 {
-                    /*if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "栈板标", "-1", out errorMessage))
-                    {
-                        //判断通过,打印
-                        OperateResult.AppendText("<<打印成功\n", Color.Green);
-                    }
-                    else
-                    {
-                        OperateResult.AppendText(errorMessage + "\n", Color.Red);
-                    }*/
-                    if (COMObjManage.CodeSoft(Tag.ToString(), PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "栈板标", "-1", out errorMessage))
+                    if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), Printer.Text, inputValue.Text, int.Parse(printNum.Text), ms_makecode.Text, pr_code.Text, "栈板标", "-1", out errorMessage))
                     {
                         //判断通过,打印
                         OperateResult.AppendText("<<打印成功\n", Color.Green);

+ 14 - 31
UAS_MES_JH/FunctionCode/Packing/Packing_PackageCollection.cs

@@ -47,20 +47,19 @@ namespace UAS_MES_NEW.Packing
         {
             try
             {
-                COMObjManage.Initialize();
-                //try
-                //{
-                //    engine = new BarTender.Application();
-                //}
-                //catch
-                //{
+                try
+                {
+                    engine = new BarTender.Application();
+                }
+                catch
+                {
 
-                //}
-                //try
-                //{
-                //    lbl = new ApplicationClass();
-                //}
-                //catch { }
+                }
+                try
+                {
+                    lbl = new ApplicationClass();
+                }
+                catch { }
                 BaseUtil.WriteLbl();
             }
             catch (Exception ex)
@@ -177,15 +176,7 @@ namespace UAS_MES_NEW.Packing
                     //doc = lbl.Documents.Open(PrintLabel.Text);
                     if (PrintLabel.Text.ToUpper().Contains(".BTW"))
                     {
-                        /*if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), PrintList.Text, pa_outboxcode.Text, int.Parse(PrintNum.Text), oMakeCode == "" ? pa_makecode.Text : oMakeCode, pr_code.Text, "卡通箱标", "0", out ErrorMessage))
-                        {
-                            OperateResult.AppendText(">>开始打印箱号" + pa_outboxcode.Text + "\n", Color.Black);
-                        }
-                        else
-                        {
-                            OperateResult.AppendText(ErrorMessage + "\n", Color.Red);
-                        }*/
-                        if (COMObjManage.SinglePrint(Tag.ToString(), PrintLabel.Text, PrintLabel.SelectedValue.ToString(), PrintList.Text, pa_outboxcode.Text, int.Parse(PrintNum.Text), oMakeCode == "" ? pa_makecode.Text : oMakeCode, pr_code.Text, "卡通箱标", "0", out ErrorMessage))
+                        if (Print.SinglePrint(Tag.ToString(), engine, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), PrintList.Text, pa_outboxcode.Text, int.Parse(PrintNum.Text), oMakeCode == "" ? pa_makecode.Text : oMakeCode, pr_code.Text, "卡通箱标", "0", out ErrorMessage))
                         {
                             OperateResult.AppendText(">>开始打印箱号" + pa_outboxcode.Text + "\n", Color.Black);
                         }
@@ -196,15 +187,7 @@ namespace UAS_MES_NEW.Packing
                     }
                     else
                     {
-                        /*if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), PrintList.Text, pa_outboxcode.Text, int.Parse(PrintNum.Text), oMakeCode == "" ? pa_makecode.Text : oMakeCode, pr_code.Text, "卡通箱标", "0", out ErrorMessage))
-                        {
-                            OperateResult.AppendText(">>开始打印箱号" + pa_outboxcode.Text + "\n", Color.Black);
-                        }
-                        else
-                        {
-                            OperateResult.AppendText(ErrorMessage + "\n", Color.Red);
-                        }*/
-                        if (COMObjManage.CodeSoft(Tag.ToString(), PrintLabel.Text, PrintLabel.SelectedValue.ToString(), PrintList.Text, pa_outboxcode.Text, int.Parse(PrintNum.Text), oMakeCode == "" ? pa_makecode.Text : oMakeCode, pr_code.Text, "卡通箱标", "0", out ErrorMessage))
+                        if (Print.CodeSoft(Tag.ToString(), ref lbl, PrintLabel.Text, PrintLabel.SelectedValue.ToString(), PrintList.Text, pa_outboxcode.Text, int.Parse(PrintNum.Text), oMakeCode == "" ? pa_makecode.Text : oMakeCode, pr_code.Text, "卡通箱标", "0", out ErrorMessage))
                         {
                             OperateResult.AppendText(">>开始打印箱号" + pa_outboxcode.Text + "\n", Color.Black);
                         }

+ 12 - 0
UAS_MES_WEIP/FunctionCode/Make/Make_Repair.cs

@@ -371,6 +371,18 @@ namespace UAS_MES_NEW.Make
                     else OperatResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
                 }
                 else OperatResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
+
+                sql.Clear();
+                sql.Append("SELECT nrg_name FROM qua_ngreasongroup WHERE ROWNUM = 1");
+                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                nrg_name.Text = dt.Rows[0]["nrg_name"].ToString();
+
+                sql.Clear();
+                sql.Append("select ND_CODE from ngduty where ND_NAME = '贴片'");
+                dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                mbr_dutyname.Text = dt.Rows[0]["ND_CODE"].ToString();
+
+                mbc_component.Text = "主板";
             }
         }
 

+ 25 - 0
UAS_MES_WEIP/UAS_MES_WEIP.sln

@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36202.13 d17.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS_MES_WEIP", "UAS_MES_WEIP.csproj", "{620AC1B1-F6AB-400D-BFF4-463143D22A5E}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{620AC1B1-F6AB-400D-BFF4-463143D22A5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{620AC1B1-F6AB-400D-BFF4-463143D22A5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{620AC1B1-F6AB-400D-BFF4-463143D22A5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{620AC1B1-F6AB-400D-BFF4-463143D22A5E}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {C59B5F03-23C2-45E2-8567-6B6B59D381CA}
+	EndGlobalSection
+EndGlobal

+ 281 - 118
UAS_WinForm.sln

@@ -1,7 +1,7 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36202.13
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS-MES", "UAS-MES\UAS-MES.csproj", "{411DEE44-B893-47E0-A0C2-797A3DAE2466}"
 EndProject
@@ -33,7 +33,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS_CheckWork", "UAS_CheckW
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS-出货标签管理(贸易版)", "UAS-出货标签管理(贸易版)\UAS-出货标签管理(贸易版).csproj", "{B44AD0C1-6ED9-4811-8381-B0549B554194}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS_PRINT", "UAS_PRINT\UAS_PRINT.csproj", "{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS_PRINT", "UAS_PRINT\UAS_PRINT.csproj", "{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS-出货标签管理(标签复核)", "UAS-出货标签管理(标签复核)\UAS-出货标签管理(标签复核).csproj", "{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}"
 EndProject
@@ -73,250 +73,413 @@ Global
 		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Debug|x64.Build.0 = Debug|Any CPU
 		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|Default.ActiveCfg = Debug|Any CPU
-		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|x64.ActiveCfg = Debug|Any CPU
-		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|x86.ActiveCfg = Debug|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Debug|x86.Build.0 = Debug|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|Any CPU.Build.0 = Release|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|Default.ActiveCfg = Release|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|Default.Build.0 = Release|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|x64.ActiveCfg = Release|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|x64.Build.0 = Release|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|x86.ActiveCfg = Release|Any CPU
+		{411DEE44-B893-47E0-A0C2-797A3DAE2466}.Release|x86.Build.0 = Release|Any CPU
 		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Debug|x64.Build.0 = Debug|Any CPU
 		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|Default.ActiveCfg = Debug|Any CPU
-		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|x64.ActiveCfg = Debug|Any CPU
-		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|x86.ActiveCfg = Debug|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Debug|x86.Build.0 = Debug|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|Default.ActiveCfg = Release|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|Default.Build.0 = Release|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|x64.ActiveCfg = Release|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|x64.Build.0 = Release|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|x86.ActiveCfg = Release|Any CPU
+		{7767BBB5-6E7E-4687-A9D6-6C6E9B6F4EA3}.Release|x86.Build.0 = Release|Any CPU
 		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Debug|x64.Build.0 = Debug|Any CPU
 		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|Default.ActiveCfg = Debug|Any CPU
-		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|x64.ActiveCfg = Debug|Any CPU
-		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|x86.ActiveCfg = Debug|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Debug|x86.Build.0 = Debug|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|Default.ActiveCfg = Release|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|Default.Build.0 = Release|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|x64.ActiveCfg = Release|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|x64.Build.0 = Release|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|x86.ActiveCfg = Release|Any CPU
+		{B37433F6-7066-4D60-8A54-4AAD5D0F3D41}.Release|x86.Build.0 = Release|Any CPU
 		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Debug|x64.Build.0 = Debug|Any CPU
 		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|Default.ActiveCfg = Debug|Any CPU
-		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|x64.ActiveCfg = Debug|Any CPU
-		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|x86.ActiveCfg = Debug|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Debug|x86.Build.0 = Debug|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|Default.ActiveCfg = Release|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|Default.Build.0 = Release|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|x64.ActiveCfg = Release|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|x64.Build.0 = Release|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|x86.ActiveCfg = Release|Any CPU
+		{00071CA1-0410-4E55-BC92-2FF6B160C3AC}.Release|x86.Build.0 = Release|Any CPU
 		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Debug|x64.Build.0 = Debug|Any CPU
 		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|Default.ActiveCfg = Debug|Any CPU
-		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|x64.ActiveCfg = Debug|Any CPU
-		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|x86.ActiveCfg = Debug|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Debug|x86.Build.0 = Debug|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|Default.ActiveCfg = Release|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|Default.Build.0 = Release|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|x64.ActiveCfg = Release|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|x64.Build.0 = Release|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|x86.ActiveCfg = Release|Any CPU
+		{AF6321B6-3B55-4756-8B0B-110354A7BC1E}.Release|x86.Build.0 = Release|Any CPU
 		{A35F767D-0858-4061-AF7C-C5C594034668}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{A35F767D-0858-4061-AF7C-C5C594034668}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{A35F767D-0858-4061-AF7C-C5C594034668}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{A35F767D-0858-4061-AF7C-C5C594034668}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Debug|x64.Build.0 = Debug|Any CPU
 		{A35F767D-0858-4061-AF7C-C5C594034668}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|Default.ActiveCfg = Debug|Any CPU
-		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|x64.ActiveCfg = Debug|Any CPU
-		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|x86.ActiveCfg = Debug|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Debug|x86.Build.0 = Debug|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|Default.ActiveCfg = Release|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|Default.Build.0 = Release|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|x64.ActiveCfg = Release|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|x64.Build.0 = Release|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|x86.ActiveCfg = Release|Any CPU
+		{A35F767D-0858-4061-AF7C-C5C594034668}.Release|x86.Build.0 = Release|Any CPU
 		{0516B4B2-6F50-4495-8785-3B813570682B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{0516B4B2-6F50-4495-8785-3B813570682B}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{0516B4B2-6F50-4495-8785-3B813570682B}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{0516B4B2-6F50-4495-8785-3B813570682B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Debug|x64.Build.0 = Debug|Any CPU
 		{0516B4B2-6F50-4495-8785-3B813570682B}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|Default.ActiveCfg = Debug|Any CPU
-		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|x64.ActiveCfg = Debug|Any CPU
-		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|x86.ActiveCfg = Debug|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Debug|x86.Build.0 = Debug|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|Default.ActiveCfg = Release|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|Default.Build.0 = Release|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|x64.ActiveCfg = Release|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|x64.Build.0 = Release|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|x86.ActiveCfg = Release|Any CPU
+		{0516B4B2-6F50-4495-8785-3B813570682B}.Release|x86.Build.0 = Release|Any CPU
 		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Debug|x64.Build.0 = Debug|Any CPU
 		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|Default.ActiveCfg = Debug|Any CPU
-		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|x64.ActiveCfg = Debug|Any CPU
-		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|x86.ActiveCfg = Debug|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Debug|x86.Build.0 = Debug|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|Default.ActiveCfg = Release|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|Default.Build.0 = Release|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|x64.ActiveCfg = Release|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|x64.Build.0 = Release|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|x86.ActiveCfg = Release|Any CPU
+		{C360004D-8D2C-4633-B8B8-3DD1C2D4AAB6}.Release|x86.Build.0 = Release|Any CPU
 		{92488A73-91D7-4797-9794-67C4D9D86D09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{92488A73-91D7-4797-9794-67C4D9D86D09}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{92488A73-91D7-4797-9794-67C4D9D86D09}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{92488A73-91D7-4797-9794-67C4D9D86D09}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Debug|x64.Build.0 = Debug|Any CPU
 		{92488A73-91D7-4797-9794-67C4D9D86D09}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|Default.ActiveCfg = Debug|Any CPU
-		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|x64.ActiveCfg = Debug|Any CPU
-		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|x86.ActiveCfg = Debug|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Debug|x86.Build.0 = Debug|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|Any CPU.Build.0 = Release|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|Default.ActiveCfg = Release|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|Default.Build.0 = Release|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|x64.ActiveCfg = Release|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|x64.Build.0 = Release|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|x86.ActiveCfg = Release|Any CPU
+		{92488A73-91D7-4797-9794-67C4D9D86D09}.Release|x86.Build.0 = Release|Any CPU
 		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|Default.ActiveCfg = Debug|Any CPU
-		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|Default.ActiveCfg = Debug|Any CPU
-		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|x64.ActiveCfg = Debug|Any CPU
-		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|x86.ActiveCfg = Debug|Any CPU
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|x64.ActiveCfg = Debug|x64
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|x64.Build.0 = Debug|x64
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|x86.ActiveCfg = Debug|x86
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Debug|x86.Build.0 = Debug|x86
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|Default.ActiveCfg = Release|Any CPU
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|Default.Build.0 = Release|Any CPU
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|x64.ActiveCfg = Release|x64
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|x64.Build.0 = Release|x64
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|x86.ActiveCfg = Release|x86
+		{7293045C-D6EE-4454-B822-E296AD9E758B}.Release|x86.Build.0 = Release|x86
 		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Debug|x64.Build.0 = Debug|Any CPU
 		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|Default.ActiveCfg = Debug|Any CPU
-		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|x64.ActiveCfg = Debug|Any CPU
-		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|x86.ActiveCfg = Debug|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Debug|x86.Build.0 = Debug|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|Default.ActiveCfg = Release|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|Default.Build.0 = Release|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|x64.ActiveCfg = Release|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|x64.Build.0 = Release|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|x86.ActiveCfg = Release|Any CPU
+		{8F565F5E-3C9C-4CDD-8DDB-96B1247D1B47}.Release|x86.Build.0 = Release|Any CPU
 		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|x64.Build.0 = Debug|Any CPU
 		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Default.ActiveCfg = Debug|Any CPU
-		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x64.ActiveCfg = Debug|Any CPU
-		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x86.ActiveCfg = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Debug|x86.Build.0 = Debug|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Default.ActiveCfg = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|Default.Build.0 = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x64.ActiveCfg = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x64.Build.0 = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x86.ActiveCfg = Release|Any CPU
+		{9520C162-69BE-41D0-BE89-3E702B746A48}.Release|x86.Build.0 = Release|Any CPU
 		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Debug|x64.Build.0 = Debug|Any CPU
 		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|Default.ActiveCfg = Debug|Any CPU
-		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|x64.ActiveCfg = Debug|Any CPU
-		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|x86.ActiveCfg = Debug|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Debug|x86.Build.0 = Debug|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|Default.ActiveCfg = Release|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|Default.Build.0 = Release|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|x64.ActiveCfg = Release|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|x64.Build.0 = Release|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|x86.ActiveCfg = Release|Any CPU
+		{1144A2FC-0A07-4F8C-97E0-F2913601D466}.Release|x86.Build.0 = Release|Any CPU
 		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Debug|x64.Build.0 = Debug|Any CPU
 		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|Default.ActiveCfg = Debug|Any CPU
-		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|x64.ActiveCfg = Debug|Any CPU
-		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|x86.ActiveCfg = Debug|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Debug|x86.Build.0 = Debug|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|Default.ActiveCfg = Release|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|Default.Build.0 = Release|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|x64.ActiveCfg = Release|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|x64.Build.0 = Release|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|x86.ActiveCfg = Release|Any CPU
+		{28F8D16E-0332-4430-B0DC-E1E4C7DA0BD1}.Release|x86.Build.0 = Release|Any CPU
 		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Debug|x64.Build.0 = Debug|Any CPU
 		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|Default.ActiveCfg = Debug|Any CPU
-		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|x64.ActiveCfg = Debug|Any CPU
-		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|x86.ActiveCfg = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Debug|Default.ActiveCfg = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Release|Default.ActiveCfg = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Release|x64.ActiveCfg = Debug|Any CPU
-		{B8BBF7C9-BCCA-49B0-BC22-6519B594AB19}.Release|x86.ActiveCfg = Debug|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Debug|x86.Build.0 = Debug|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|Default.ActiveCfg = Release|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|Default.Build.0 = Release|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|x64.ActiveCfg = Release|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|x64.Build.0 = Release|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|x86.ActiveCfg = Release|Any CPU
+		{B44AD0C1-6ED9-4811-8381-B0549B554194}.Release|x86.Build.0 = Release|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Debug|Default.ActiveCfg = Debug|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Debug|x64.Build.0 = Debug|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Debug|x86.Build.0 = Debug|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Release|Default.ActiveCfg = Release|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Release|Default.Build.0 = Release|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Release|x64.ActiveCfg = Release|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Release|x64.Build.0 = Release|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Release|x86.ActiveCfg = Release|Any CPU
+		{B2428D57-87E0-4EFD-AF54-C52C4A964D1F}.Release|x86.Build.0 = Release|Any CPU
 		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|x64.Build.0 = Debug|Any CPU
 		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Default.ActiveCfg = Debug|Any CPU
-		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x64.ActiveCfg = Debug|Any CPU
-		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x86.ActiveCfg = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Debug|x86.Build.0 = Debug|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Any CPU.Build.0 = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Default.ActiveCfg = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|Default.Build.0 = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x64.ActiveCfg = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x64.Build.0 = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x86.ActiveCfg = Release|Any CPU
+		{13F2B4BC-3765-4259-9D5E-ECA4DBBAA099}.Release|x86.Build.0 = Release|Any CPU
 		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Debug|x64.Build.0 = Debug|Any CPU
 		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|Default.ActiveCfg = Debug|Any CPU
-		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|x64.ActiveCfg = Debug|Any CPU
-		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|x86.ActiveCfg = Debug|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Debug|x86.Build.0 = Debug|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|Default.ActiveCfg = Release|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|Default.Build.0 = Release|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|x64.ActiveCfg = Release|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|x64.Build.0 = Release|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|x86.ActiveCfg = Release|Any CPU
+		{DCF126DE-2A41-459C-B1F4-C38F66FA7E58}.Release|x86.Build.0 = Release|Any CPU
 		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Debug|x64.Build.0 = Debug|Any CPU
 		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|Default.ActiveCfg = Debug|Any CPU
-		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|x64.ActiveCfg = Debug|Any CPU
-		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|x86.ActiveCfg = Debug|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Debug|x86.Build.0 = Debug|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|Default.ActiveCfg = Release|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|Default.Build.0 = Release|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|x64.ActiveCfg = Release|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|x64.Build.0 = Release|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|x86.ActiveCfg = Release|Any CPU
+		{DB114F68-6E53-4F84-9EF6-088419D1F9A2}.Release|x86.Build.0 = Release|Any CPU
 		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Debug|x64.Build.0 = Debug|Any CPU
 		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|Default.ActiveCfg = Debug|Any CPU
-		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|x64.ActiveCfg = Debug|Any CPU
-		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|x86.ActiveCfg = Debug|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Debug|x86.Build.0 = Debug|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|Default.ActiveCfg = Release|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|Default.Build.0 = Release|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|x64.ActiveCfg = Release|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|x64.Build.0 = Release|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|x86.ActiveCfg = Release|Any CPU
+		{8F7287BF-B2F0-4C72-9060-C5CB290F8938}.Release|x86.Build.0 = Release|Any CPU
 		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Debug|x64.Build.0 = Debug|Any CPU
 		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|Default.ActiveCfg = Debug|Any CPU
-		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|x64.ActiveCfg = Debug|Any CPU
-		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|x86.ActiveCfg = Debug|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Debug|x86.Build.0 = Debug|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|Default.ActiveCfg = Release|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|Default.Build.0 = Release|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|x64.ActiveCfg = Release|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|x64.Build.0 = Release|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|x86.ActiveCfg = Release|Any CPU
+		{230E4688-A561-4B3B-91EC-D2FE273ED8E2}.Release|x86.Build.0 = Release|Any CPU
 		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Debug|x64.Build.0 = Debug|Any CPU
 		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|Default.ActiveCfg = Debug|Any CPU
-		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|x64.ActiveCfg = Debug|Any CPU
-		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|x86.ActiveCfg = Debug|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Debug|x86.Build.0 = Debug|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|Default.ActiveCfg = Release|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|Default.Build.0 = Release|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|x64.ActiveCfg = Release|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|x64.Build.0 = Release|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|x86.ActiveCfg = Release|Any CPU
+		{C122ECF1-E9DC-4004-A366-6CABA69A4A8A}.Release|x86.Build.0 = Release|Any CPU
 		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|x64.Build.0 = Debug|Any CPU
 		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Default.ActiveCfg = Debug|Any CPU
-		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x64.ActiveCfg = Debug|Any CPU
-		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x86.ActiveCfg = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Debug|x86.Build.0 = Debug|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Default.ActiveCfg = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|Default.Build.0 = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x64.ActiveCfg = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x64.Build.0 = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x86.ActiveCfg = Release|Any CPU
+		{7FA72759-6D1C-484E-8C00-5AD2620B3C43}.Release|x86.Build.0 = Release|Any CPU
 		{A496EFD3-D51D-4CA6-850D-777800315301}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{A496EFD3-D51D-4CA6-850D-777800315301}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{A496EFD3-D51D-4CA6-850D-777800315301}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{A496EFD3-D51D-4CA6-850D-777800315301}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Debug|x64.Build.0 = Debug|Any CPU
 		{A496EFD3-D51D-4CA6-850D-777800315301}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|Default.ActiveCfg = Debug|Any CPU
-		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|x64.ActiveCfg = Debug|Any CPU
-		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|x86.ActiveCfg = Debug|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Debug|x86.Build.0 = Debug|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|Default.ActiveCfg = Release|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|Default.Build.0 = Release|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|x64.ActiveCfg = Release|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|x64.Build.0 = Release|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|x86.ActiveCfg = Release|Any CPU
+		{A496EFD3-D51D-4CA6-850D-777800315301}.Release|x86.Build.0 = Release|Any CPU
 		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Debug|x64.Build.0 = Debug|Any CPU
 		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|Default.ActiveCfg = Debug|Any CPU
-		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|x64.ActiveCfg = Debug|Any CPU
-		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|x86.ActiveCfg = Debug|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Debug|x86.Build.0 = Debug|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|Default.ActiveCfg = Release|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|Default.Build.0 = Release|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|x64.ActiveCfg = Release|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|x64.Build.0 = Release|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|x86.ActiveCfg = Release|Any CPU
+		{E67FB990-BD42-44DF-BF8E-3E4DDE3035DD}.Release|x86.Build.0 = Release|Any CPU
 		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Debug|x64.Build.0 = Debug|Any CPU
 		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|Default.ActiveCfg = Debug|Any CPU
-		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|x64.ActiveCfg = Debug|Any CPU
-		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|x86.ActiveCfg = Debug|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Debug|x86.Build.0 = Debug|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|Default.ActiveCfg = Release|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|Default.Build.0 = Release|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|x64.ActiveCfg = Release|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|x64.Build.0 = Release|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|x86.ActiveCfg = Release|Any CPU
+		{8450D22A-338F-4202-BC8B-EB5DFDF1AFD5}.Release|x86.Build.0 = Release|Any CPU
 		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Debug|Default.ActiveCfg = Debug|Any CPU
 		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Debug|x64.Build.0 = Debug|Any CPU
 		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|Default.ActiveCfg = Debug|Any CPU
-		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|x64.ActiveCfg = Debug|Any CPU
-		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|x86.ActiveCfg = Debug|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Debug|x86.Build.0 = Debug|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|Default.ActiveCfg = Release|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|Default.Build.0 = Release|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|x64.ActiveCfg = Release|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|x64.Build.0 = Release|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|x86.ActiveCfg = Release|Any CPU
+		{84BA9669-6DDF-4220-BD98-663D91CD96AB}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {9115B5C1-046B-49C0-9E73-10B974D0C04C}
 		VisualSVNWorkingCopyRoot = .
 	EndGlobalSection
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution