From 6fd84e2f2a3ae7ca38e443588cc450c5924cf275 Mon Sep 17 00:00:00 2001 From: mschill Date: Tue, 8 Apr 2025 10:54:19 -0400 Subject: [PATCH 01/30] C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) --- PROMS/Formats/Formats.csproj | 2 + PROMS/Formats/epall/EPFormatTST1.xml | Bin 0 -> 2646 bytes PROMS/Formats/fmtall/EPTST1all.xml | Bin 0 -> 62412 bytes PROMS/VEPROMS User Interface/PROMSFixes.Sql | 222 +- .../Config/AnnotationConfig.cs | 45 + .../Extension/FormatExt.cs | 77 +- .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 39 + .../Format/EPFormatFile.cs | 343 +++ .../Format/PlantFormat.cs | 12 + .../VEPROMS.CSLA.Library/Format/vlnFormat.cs | 2 + .../Generated/AnnotationType.cs | 25 + .../Generated/AnnotationTypeInfo.cs | 17 + .../VEPROMS.CSLA.Library.csproj | 3 + .../AnnotationDetails.Designer.cs | 646 +++--- .../AnnotationDetails.cs | 30 +- .../Volian.Controls.Library/StepTabRibbon.cs | 74 +- .../StepTabRibbon.designer.cs | Bin 575428 -> 671144 bytes .../StepTabRibbon.resx | 1959 ++++++++--------- PROMS/Volian.Controls.Library/VlnFlexGrid.cs | 136 +- .../Volian.Controls.Library.csproj | 10 + .../frmEPAnnotationDetails.Designer.cs | 111 + .../frmEPAnnotationDetails.cs | 234 ++ .../frmEPAnnotationDetails.resx | 120 + 23 files changed, 2791 insertions(+), 1316 deletions(-) create mode 100644 PROMS/Formats/epall/EPFormatTST1.xml create mode 100644 PROMS/Formats/fmtall/EPTST1all.xml create mode 100644 PROMS/VEPROMS.CSLA.Library/Config/AnnotationConfig.cs create mode 100644 PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs create mode 100644 PROMS/Volian.Controls.Library/frmEPAnnotationDetails.Designer.cs create mode 100644 PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs create mode 100644 PROMS/Volian.Controls.Library/frmEPAnnotationDetails.resx diff --git a/PROMS/Formats/Formats.csproj b/PROMS/Formats/Formats.csproj index 9d8e1803..dccc2562 100644 --- a/PROMS/Formats/Formats.csproj +++ b/PROMS/Formats/Formats.csproj @@ -92,6 +92,7 @@ + Designer @@ -176,6 +177,7 @@ + diff --git a/PROMS/Formats/epall/EPFormatTST1.xml b/PROMS/Formats/epall/EPFormatTST1.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0d3ce528e2e8aafd4a4c2ad0126c49dd47054d7 GIT binary patch literal 2646 zcmd^>OOFyk6ot=L6aPc&N)tzciLOvGGUFpbGy^kn+rvvD0-<3>{=E8~TTPf(%(!uZ zAt|csKI)#+r|R~vpLI3#L*F$~rgIInP@%DAn(CDvsj6qH@SkCss>gaC>r|t#uC&xp zdw9JJpN3xRf$poWhpg`DGudXEGmeR0DrdGP*9S5Tu`Jj(XFctg5s|4G5$lK<=_}Su zHEO8o1v7h`;xQp6CrhRy#%0u<_9>VbdWyxn^r%160shA4I#SLep6qGF#@)x$HE$3c zQT^LXHD;yd9_W(Im?p$!?306J5S*N{N1ypD7+HdMURt`ueNneuAHe!DBFyeN8H}l4 z@=^q*Ib(`1!t;GuztJ75txtioNvz*QV$rrXyPFfwyI9Z2ot`>)o`KrddDst_`_1&= z+Wv>+8S*;;)fkJbdwxgkE%qG|)%z>#Q);sQtSi3}>ux_X>;@}sP+4C^=+JsgtWM(1 zSVKm<^~zYcvaQ*u?kc<2)ehky*F`90bSrBe_-b<>x9ITy4{vpJcl|3VeLejKFFva0 literal 0 HcmV?d00001 diff --git a/PROMS/Formats/fmtall/EPTST1all.xml b/PROMS/Formats/fmtall/EPTST1all.xml new file mode 100644 index 0000000000000000000000000000000000000000..0c3557429df9140891079c371b19bba5178b941e GIT binary patch literal 62412 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 literal 0 HcmV?d00001 diff --git a/PROMS/VEPROMS User Interface/PROMSFixes.Sql b/PROMS/VEPROMS User Interface/PROMSFixes.Sql index d59c839b..dd995cd1 100644 --- a/PROMS/VEPROMS User Interface/PROMSFixes.Sql +++ b/PROMS/VEPROMS User Interface/PROMSFixes.Sql @@ -23810,6 +23810,224 @@ GO IF (@@Error = 0) PRINT 'Running vesp_UpdateUserSettings Succeeded' ELSE PRINT 'Running vesp_UpdateUserSettings Failed to Execute' GO +--- begin changes for: +---C2025-023 - Electronic Procedures - Modifications to PROMS +--- The following IsEPAnnotationType column was added for EP Annotations. +--- IsEPAnnotationType = Is for EPs +IF NOT EXISTS(SELECT * + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME = 'AnnotationTypes' + AND COLUMN_NAME = 'IsEPAnnotationType') +ALTER TABLE AnnotationTypes ADD IsEPAnnotationType bit NOT NULL DEFAULT(0); +go +-- Display the status +IF (@@Error = 0) PRINT 'Altered table [AnnotationTypes] Succeeded for IsEPAnnotationType' +ELSE PRINT 'Altered table [AnnotationTypes] Error on Alter for IsEPAnnotationType' +go + + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) + DROP PROCEDURE [getAnnotationType]; +GO + +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: Matthew Schill +-- Create date: 3/21/2025 +-- Description: Add EP to AnnotationTypes +-- ============================================= +CREATE PROCEDURE [dbo].[getAnnotationType] +( + @TypeID int +) +WITH EXECUTE AS OWNER +AS + SELECT + [TypeID], + [Name], + [Config], + [DTS], + [UserID], + [LastChanged], + (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount], + [IsEPAnnotationType] + FROM [AnnotationTypes] + WHERE [TypeID]=@TypeID + + SELECT + [Annotations].[AnnotationID], + [Annotations].[ItemID], + [Annotations].[TypeID], + [Annotations].[RtfText], + [Annotations].[SearchText], + [Annotations].[Config], + [Annotations].[DTS], + [Annotations].[UserID], + [Annotations].[LastChanged], + [Items].[PreviousID] [Item_PreviousID], + [Items].[ContentID] [Item_ContentID], + [Items].[DTS] [Item_DTS], + [Items].[UserID] [Item_UserID] + FROM [Annotations] + JOIN [Items] ON + [Items].[ItemID]=[Annotations].[ItemID] + WHERE + [Annotations].[TypeID]=@TypeID + + RETURN +GO + +IF (@@Error = 0) PRINT 'Running getAnnotationType Succeeded' +ELSE PRINT 'Running getAnnotationType Failed to Execute' +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationTypeByName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) + DROP PROCEDURE [getAnnotationTypeByName]; +GO + +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: Matthew Schill +-- Create date: 3/21/2025 +-- Description: Add EP to AnnotationTypes +-- ============================================= +CREATE PROCEDURE [dbo].[getAnnotationTypeByName] +( + @Name nvarchar(100) +) +WITH EXECUTE AS OWNER +AS + SELECT + [TypeID], + [Name], + [Config], + [DTS], + [UserID], + [LastChanged], + (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount], + [IsEPAnnotationType] + FROM [AnnotationTypes] + WHERE [Name]=@Name + RETURN +GO + +IF (@@Error = 0) PRINT 'Running getAnnotationTypeByName Succeeded' +ELSE PRINT 'Running getAnnotationTypeByName Failed to Execute' +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationTypes]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) + DROP PROCEDURE [getAnnotationTypes]; +GO + +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: Matthew Schill +-- Create date: 3/21/2025 +-- Description: Add EP to AnnotationTypes +-- ============================================= +CREATE PROCEDURE [dbo].[getAnnotationTypes] +WITH EXECUTE AS OWNER +AS + SELECT + [TypeID], + [Name], + [Config], + [DTS], + [UserID], + [LastChanged], + (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount], + [IsEPAnnotationType] + FROM [AnnotationTypes] + RETURN + +GO + +IF (@@Error = 0) PRINT 'Running getAnnotationTypes Succeeded' +ELSE PRINT 'Running getAnnotationTypes Failed to Execute' +GO + +IF Not Exists(SELECT * FROM sys.objects Where name = 'EPFormats' AND type in (N'U')) +Begin -- Rofst Tables + + SET ANSI_NULLS ON + SET QUOTED_IDENTIFIER ON + + CREATE TABLE [dbo].[EPFormats]( + [FormatID] [int] IDENTITY(1,1) NOT NULL, + [Name] [nvarchar](100) NOT NULL, + [Data] [xml] NULL, + [Created] [datetime] NOT NULL DEFAULT (getdate()), + [CreatedBy] [nvarchar](100) NOT NULL DEFAULT (upper(suser_sname())), + [Updated] [datetime] NOT NULL DEFAULT (getdate()), + [UpdatedBy] [nvarchar](100) NOT NULL DEFAULT (upper(suser_sname())) + CONSTRAINT [PK_EPFormats] PRIMARY KEY CLUSTERED + ( + [FormatID] ASC + )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] + ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] + + IF (@@Error = 0) PRINT 'Table Creation: [EPFormats] Succeeded' + ELSE PRINT 'Table Creation: [EPFormats] Error on Creation' + +End +Go + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_UpdateEPFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) + DROP PROCEDURE [vesp_UpdateEPFormat]; +GO + +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: Matthew Schill +-- Create date: 3/26/2025 +-- Description: Update / Insert EP Format +-- ============================================= +CREATE PROCEDURE [dbo].[vesp_UpdateEPFormat] +( + @name nvarchar(100), + @data nvarchar(max), + @userID nvarchar(15) +) +WITH EXECUTE AS OWNER +AS + +IF EXISTS(Select 1 FROM EPFormats where Name = @name ) + BEGIN + UpDate EPFormats + SET Name = @name, + Data = @data, + Updated = getdate(), + UpdatedBy = upper(@userID) + WHERE Name = @name + END +ELSE + BEGIN + INSERT INTO EPFormats (Name, Data, CreatedBy, UpdatedBy) + values (@name, @data, 'Migration', 'Migration') + + END + +GO + +IF (@@Error = 0) PRINT 'Running vesp_UpdateEPFormat Succeeded' +ELSE PRINT 'Running vesp_UpdateEPFormat Failed to Execute' +GO +UPDATE Formats SET ApplicablePlant = 1000 WHERE [Name] LIKE 'EPTST%'; +Go +--- end changes for: +---C2025-023 - Electronic Procedures - Modifications to PROMS /* --------------------------------------------------------------------------- @@ -23844,8 +24062,8 @@ BEGIN TRY -- Try Block DECLARE @RevDate varchar(255) DECLARE @RevDescription varchar(255) - set @RevDate = '4/03/2025 6:14 PM' - set @RevDescription = 'B2022-031 Add filtering for Proc and Section name from Global Search' + set @RevDate = '4/8/2025 11:24' + set @RevDescription = 'Added support for EP Viewer Editing' Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription diff --git a/PROMS/VEPROMS.CSLA.Library/Config/AnnotationConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/AnnotationConfig.cs new file mode 100644 index 00000000..feb430cd --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Config/AnnotationConfig.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel; + +namespace VEPROMS.CSLA.Library +{ + //C2025-023 - Electronic Procedures - Modifications to PROMS + //new class to handle access of tblAnnotations.Config + [Serializable] + [TypeConverter(typeof(ExpandableObjectConverter))] + public class AnnotationConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged + { + private XMLProperties _Xp; + private XMLProperties Xp + { + get { return _Xp; } + } + public AnnotationConfig(string xml) + { + if (xml == string.Empty) xml = ""; + _Xp = new XMLProperties(xml); + } + + public AnnotationConfig() + { + _Xp = new XMLProperties(); + } + public override string ToString() + { + string s = _Xp.ToString(); + if (s == "" || s == "") return string.Empty; + return s; + } + public string GetValue(string group, string item) + { + return _Xp[group, item]; + } + public void SetValue(string group, string item, string newvalue) + { + _Xp[group, item] = newvalue; + } + + } +} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/FormatExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/FormatExt.cs index 02cd7989..a4e5383a 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/FormatExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/FormatExt.cs @@ -19,6 +19,7 @@ using System.Xml; using System.Drawing; using System.ComponentModel; using System.Collections.Generic; +using Volian.Base.Library; namespace VEPROMS.CSLA.Library { @@ -226,6 +227,34 @@ namespace VEPROMS.CSLA.Library //} } OnFormatLoaded(null, new FormatEventArgs("Formats Updated")); + + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Begin section for processing Electronic Procedure (EP) Format Files + // now loop through all EP format files + string epPath = fmtPath.Replace("\\fmtall", "\\epall"); + DirectoryInfo diEP = new DirectoryInfo(epPath); + if (diEP.Exists) + { + FileInfo[] fisEP = diEP.GetFiles("*.xml"); + OnFormatLoaded(null, new FormatEventArgs(fisEP.Length.ToString() + " EP Formats to Load")); + foreach (FileInfo fi in fisEP) + { + string fmtname = Path.GetFileNameWithoutExtension(fi.Name); + try + { + AddEPFormatToDB(fmtname, DateTime.Now, VlnSettings.UserID, epPath); + } + catch (Exception ex) + { + Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); + } + } + OnFormatLoaded(null, new FormatEventArgs("EP Formats Updated")); + + // update all in-use annotation types that have Electronic Procedures + EPFormatFile.UpdateAllInUseEPAnnotationTypes(); + } + } private static Dictionary _LookupFormats; @@ -338,8 +367,54 @@ namespace VEPROMS.CSLA.Library } return rec; } + + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Procedure to load the EP format fiels into the DB + private static void AddEPFormatToDB(string formatname, DateTime Dts, string Userid, string epPath) + { + string fmtdata = null; + FileInfo fmtfi = null; + XmlDocument xd = null; + + OnFormatLoaded(null, new FormatEventArgs("Loading Format " + formatname)); + + string path = Path.Combine(epPath, formatname + ".xml"); + if (File.Exists(path)) + { + try + { + using (StreamReader srf = new StreamReader(path)) + { + fmtfi = new FileInfo(path); + xd = new XmlDocument(); + xd.XmlResolver = null; + xd.Load(srf); + fmtdata = xd.OuterXml; + } + } + catch (Exception ex) + { + OnFormatLoaded(null, new FormatEventArgs("Error Loading Format " + formatname)); + _MyLog.ErrorFormat($"AddEPFormatToDB('{path}')"); + return; + } + } + + if (string.IsNullOrEmpty(Userid)) Userid = "Migration"; + + try + { + EPFormatFile.UpdateEPFormat(formatname, fmtdata, Userid); + } + catch (Exception ex) + { + _MyLog.ErrorFormat($"AddFormatToDB-make format('{path}')"); + } + + } } - public partial class FormatInfo : IFormatOrFormatInfo + +public partial class FormatInfo : IFormatOrFormatInfo { //transition report stuff private static Dictionary _TransitionTypes; diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 668e1cf5..a425bfdc 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -2112,6 +2112,45 @@ namespace VEPROMS.CSLA.Library return (sd.Type == type); } + // C2025-023 - Electronic Procedures - Modifications to PROMS + //return EPFields that match this step type or a parent step type + public EPFields GetValidEPFields(int AnnTypeID) + { + EPFields filtered = new EPFields(); + EPFields unfiltered = ActiveFormat.PlantFormat.EPFormatFiles.First(x => x.AnnotationTypeID == AnnTypeID).FieldList; + + //Build list of step type and step type of it's parents + List steptypelist = new List(); + if ((int)MyContent.Type < 20000) return filtered; + int stepType = ((int)MyContent.Type) % 10000; + StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList; + if (stepType > sdlist.MaxIndex) + { + Console.WriteLine("Error getting type - contentid = {0}", MyContent.ContentID); + return filtered; + } + StepData sd = sdlist[stepType]; + while (sd.Index != 0) + { + steptypelist.Add(sd.Type); + sd = sdlist[sd.ParentType]; + } + + //if unfiltered list contains All as a step type, include it + foreach (EPField EP in unfiltered) + { + //if unfiltered list contains All as a step type, include it + if (EP.IsValidForStepType("All")) + filtered.Add(EP); + + //check for intersections between unfiltered list and step type list + if (EP.validforsteptypes.Any(steptypelist.Contains)) + filtered.Add(EP); + } + + return filtered; + } + // determine if the the current step should automatically be placed on the Continuous Action Summary // Note, this logic only checks the format setting of the step. We will check the value of the Tag's Check Box later on. public bool IncludeOnContActSum diff --git a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs new file mode 100644 index 00000000..df6b3a42 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs @@ -0,0 +1,343 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel; +using System.Xml; +using System.Linq; +using System.Data.SqlClient; +using System.Data; +using Csla.Data; +using static VEPROMS.CSLA.Library.ROFSTLookup; + +namespace VEPROMS.CSLA.Library +{ + //C2025-023 - Electronic Procedures - Modifications to PROMS + // class to handle storage and access of EPFormatFile and EPFormatFile details + #region EPFormatFiles + [TypeConverter(typeof(vlnListConverter))] + public class EPFormatFiles : vlnFormatList + { + public EPFormatFiles(XmlNodeList xmlNodeList) : base(xmlNodeList) { } + } + #endregion + #region EPFormatFile + public class EPFormatFile : vlnFormatItem + { + #region Constructor + public EPFormatFile(XmlNode xmlNode) : base(xmlNode) { } + public EPFormatFile() : base() { } + #endregion + #region Business Fields + // Name of the EP Viewer Format File + private LazyLoad _Name; + [DisplayName("Name")] + [Description("EP Viewer File Name")] + public string Name + { + get + { + return LazyLoad(ref _Name, "@Name"); + } + } + // Name of the EP Viewer Format File + private LazyLoad _Description; + [DisplayName("Description")] + [Description("EP Viewer Description")] + public string Description + { + get + { + return LazyLoad(ref _Description, "@Description"); + } + } + // Id of Annotation Type Associated with this file + private LazyLoad _AnnotationTypeID; + [DisplayName("AnnotationTypeID")] + [Description("Id of Annotation Type Associated with this file")] + public int? AnnotationTypeID + { + get + { + return LazyLoad(ref _AnnotationTypeID, "@AnnotationTypeID"); + } + } + // returns a list of fields that are defined in the EP format's structure + private EPFields _FieldList; + public EPFields FieldList + { + get + { + XmlDocument xd = GetEPFormatData(Name); + return _FieldList == null ? _FieldList = new EPFields(xd.SelectNodes("/EPFormat/EPField")) : _FieldList; + } + } + #endregion + #region Business Methods + // update all in-use annotation types that have Electronic Procedures + public static void UpdateAllInUseEPAnnotationTypes() + { + foreach (int formatid in GetAllInUseFormats()) + { + PlantFormat frmt = FormatInfo.Get(formatid).PlantFormat; + foreach (EPFormatFile EP in frmt.EPFormatFiles) + { + UpdateAnnotationTypeAsEP((int) EP.AnnotationTypeID); + } + } + } + #endregion + #region Data Access + // static - Load EP Format details - save to db (insert/update) + public static void UpdateEPFormat(string name, string data, string userID) + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "vesp_UpdateEPFormat"; + cm.Parameters.AddWithValue("@name", name); + cm.Parameters.AddWithValue("@data", data); + cm.Parameters.AddWithValue("@userID", userID); + cm.CommandTimeout = Database.DefaultTimeout; + cm.ExecuteNonQuery(); + } + } + } + + // load data for getting fieldlist for this EPFormat + public static XmlDocument GetEPFormatData(string name) + { + name = name.Replace(".xml", ""); + + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.Text; + cm.CommandText = "Select Data FROM EPFormats where Name = @Name"; + cm.Parameters.AddWithValue("@Name", name); + cm.CommandTimeout = Database.DefaultTimeout; + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (dr.Read()) + { + XmlDocument xd = new XmlDocument(); + xd.XmlResolver = null; + xd.LoadXml(dr.GetString("Data")); + return xd; + } + } + } + } + + return null; + } + + // Get all in-use formats + public static List GetAllInUseFormats() + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.Text; + cm.CommandText = @"SELECT Distinct Formats.[FormatID] + FROM + ( + SELECT FormatID FROM Contents + UNION + SELECT FormatID FROM DocVersions + UNION + SELECT FormatID FROM Folders + ) inuse + inner join Formats + on inuse.FormatID = Formats.FormatID"; + cm.CommandTimeout = Database.DefaultTimeout; + + using (DataTable dt = new DataTable()) + { + using (SqlDataAdapter da = new SqlDataAdapter(cm)) + { + da.Fill(dt); + return dt.AsEnumerable().Select(x => x.Field("FormatID")).ToList(); + } + } + + } + } + } + + // update an annotation type as an Electronic Procedure Annotation Type + public static void UpdateAnnotationTypeAsEP(int typeID) + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.Text; + cm.CommandText = @"Update AnnotationTypes + SET IsEPAnnotationType = 1 + WHERE TypeID = @typeID"; + cm.Parameters.AddWithValue("@typeID", typeID); + cm.CommandTimeout = Database.DefaultTimeout; + cm.ExecuteNonQuery(); + } + } + } + + // Returns true if there are any EP Annotation Types + public static bool IsEPAnnotationType() + { + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.Text; + cm.CommandText = @"SELECT RESULT = CASE WHEN + EXISTS(SELECT 1 FROM AnnotationTypes where IsEPAnnotationType = 1) + THEN 1 ELSE 0 END"; + cm.CommandTimeout = Database.DefaultTimeout; + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (dr.Read() && dr.GetInt32("RESULT") == 1) + return true; + } + } + } + } + catch + { + // EP Support has not yet been added for this DB + // IsEPAnnotationType does not exist + // need to run PROMS Fixes + // until then will ignore EP code + // instead of crashing for a field not found + } + + return false; + } + #endregion + } + + public class EPFields : vlnFormatList + { + public EPFields() + { + } + + public EPFields(XmlNodeList xmlNodeList) : base(xmlNodeList) { } + } + // EP field class + public class EPField : vlnFormatItem + { + public EPField(XmlNode xmlNode) : base(xmlNode) { } + public EPField() : base() { } + private LazyLoad _name; + public string name + { + get + { + return LazyLoad(ref _name, "@name"); + } + } + private LazyLoad _type; + public string type + { + get + { + return LazyLoad(ref _type, "@type"); + } + } + private LazyLoad _label; + public string label + { + get + { + string tmp = LazyLoad(ref _label, "@label"); + + if (string.IsNullOrEmpty(tmp)) + return LazyLoad(ref _name, "@name"); + else + return tmp; + } + } + private LazyLoad _text; + public string text + { + get + { + return LazyLoad(ref _text, "@text"); + } + } + private LazyLoad _rosource; + public string rosource + { + get + { + return LazyLoad(ref _rosource, "@rosource"); + } + } + private LazyLoad _numlines; + public int numlines + { + get + { + int? tmp = LazyLoad(ref _numlines, "@numlines"); + + if (tmp == null) + return 1; + + return (int) tmp; + } + } + //step types that the EPForma Item is valid for (as a list of types) + private LazyLoad _validforsteptypes; + public List validforsteptypes + { + get + { + try + { + string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes"); + return tmp.Split(',').Select(p => p.Trim()).ToList(); + } + catch + { + throw new ArgumentException($"Error in validforsteptypes for EP file: {((EPFormatFile) MyParentFormat).Name}.xml, field: {name}"); + } + } + } + public bool IsValidForStepType(string StepType) + { + return validforsteptypes.Contains(StepType); + } + + //return a list of items based on the ROsource specified in the EPFormat File + public Dictionary getROList(AnnotationInfo currAnn) + { + if (string.IsNullOrEmpty(rosource)) + return new Dictionary(); + + try + { + DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion; + ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion); + + string roid = FormatRoidKey(rosource, false); + rochild[] children = lookup.GetRoChildrenByRoid(roid); + + + return children.Select(x => new { x.ID, x.title }).ToDictionary(t => t.ID, t => t.title); + } + catch (Exception Ex) + { + throw new ArgumentException($"Error in rosource for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}"); + } + } + } + #endregion +} + diff --git a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs index 8232a8d6..6703b87c 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs @@ -192,6 +192,18 @@ namespace VEPROMS.CSLA.Library } return (retlist); } + + //C2025-023 - Electronic Procedures - Modifications to PROMS + // EPFormatFiles contains which Electronic Procedure Format files apply to this main format file. + private EPFormatFiles _EPFormatFiles; + public EPFormatFiles EPFormatFiles + { + get + { + if (_EPFormatFiles == null) _EPFormatFiles = new EPFormatFiles(XmlDoc.SelectNodes("/PlantFormat/EPFormatFiles/EPFormatFile")); + return _EPFormatFiles; + } + } } #endregion #region VE_Font diff --git a/PROMS/VEPROMS.CSLA.Library/Format/vlnFormat.cs b/PROMS/VEPROMS.CSLA.Library/Format/vlnFormat.cs index 312582e8..c7676e27 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/vlnFormat.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/vlnFormat.cs @@ -57,6 +57,8 @@ namespace VEPROMS.CSLA.Library XmlNode xn = xmlNode.SelectSingleNode(path); if (xmlNode.Name == "Box") return xn; // if box, don't do inheritance. if (xmlNode.Name == "DocStyle") return xn; + //C2025-023 - Electronic Procedures - Modifications to PROMS + if (xmlNode.Name == "EPField") return xn; // if Electronic Procedure Field, don't do inheritance. if (xmlNode.Name == "StructureStyle") { Volian.Base.Library.DebugText.WriteLine("vlnFormatDocument:LookupSingleNode:StructureStyle - shouldn't get to this line of code.\r\nPath = {0}", path); diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/AnnotationType.cs b/PROMS/VEPROMS.CSLA.Library/Generated/AnnotationType.cs index d586f302..913453ef 100644 --- a/PROMS/VEPROMS.CSLA.Library/Generated/AnnotationType.cs +++ b/PROMS/VEPROMS.CSLA.Library/Generated/AnnotationType.cs @@ -18,6 +18,8 @@ using System.IO; using System.ComponentModel; using System.Collections.Generic; using Csla.Validation; +using System.Linq; + namespace VEPROMS.CSLA.Library { /// @@ -207,6 +209,27 @@ namespace VEPROMS.CSLA.Library } } } + + //C2025-023 - Electronic Procedures - Modifications to PROMS + // Is Annotation Type an EP Annotation? + private bool _IsEPAnnotationType = false; + public bool IsEPAnnotationType + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + return _IsEPAnnotationType; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + set + { + if (_IsEPAnnotationType != value) + { + _IsEPAnnotationType = value; + PropertyHasChanged(); + } + } + } private byte[] _LastChanged = new byte[8];//timestamp private int _AnnotationTypeAnnotationCount = 0; /// @@ -712,6 +735,8 @@ namespace VEPROMS.CSLA.Library _UserID = dr.GetString("UserID"); dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); _AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount"); + if (dr.GetSchemaTable().Rows.OfType().Any(row => row["ColumnName"].ToString() == "IsEPAnnotationType")) + _IsEPAnnotationType = (bool)dr.GetValue("IsEPAnnotationType"); MarkOld(); } catch (Exception ex) diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/AnnotationTypeInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/AnnotationTypeInfo.cs index a82473e1..9aeb05cc 100644 --- a/PROMS/VEPROMS.CSLA.Library/Generated/AnnotationTypeInfo.cs +++ b/PROMS/VEPROMS.CSLA.Library/Generated/AnnotationTypeInfo.cs @@ -17,6 +17,8 @@ using System.Configuration; using System.IO; using System.ComponentModel; using System.Collections.Generic; +using System.Linq; + namespace VEPROMS.CSLA.Library { public delegate void AnnotationTypeInfoEvent(object sender); @@ -135,6 +137,19 @@ namespace VEPROMS.CSLA.Library return _UserID; } } + + //C2025-023 - Electronic Procedures - Modifications to PROMS + // Is Annotation Type an EP Annotation? + private bool _IsEPAnnotationType = false; + public bool IsEPAnnotationType + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + return _IsEPAnnotationType; + } + } + private int _AnnotationTypeAnnotationCount = 0; /// /// Count of AnnotationTypeAnnotations for this AnnotationType @@ -312,6 +327,8 @@ namespace VEPROMS.CSLA.Library _DTS = dr.GetDateTime("DTS"); _UserID = dr.GetString("UserID"); _AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount"); + if (dr.GetSchemaTable().Rows.OfType().Any(row => row["ColumnName"].ToString() == "IsEPAnnotationType")) + _IsEPAnnotationType = (bool)dr.GetValue("IsEPAnnotationType"); } catch (Exception ex) { diff --git a/PROMS/VEPROMS.CSLA.Library/VEPROMS.CSLA.Library.csproj b/PROMS/VEPROMS.CSLA.Library/VEPROMS.CSLA.Library.csproj index 469a09b4..3af1e207 100644 --- a/PROMS/VEPROMS.CSLA.Library/VEPROMS.CSLA.Library.csproj +++ b/PROMS/VEPROMS.CSLA.Library/VEPROMS.CSLA.Library.csproj @@ -98,6 +98,7 @@ + @@ -107,6 +108,7 @@ Properties\Settings.Designer.cs + @@ -164,6 +166,7 @@ + diff --git a/PROMS/Volian.Controls.Library/AnnotationDetails.Designer.cs b/PROMS/Volian.Controls.Library/AnnotationDetails.Designer.cs index b7cee59f..68e786bb 100644 --- a/PROMS/Volian.Controls.Library/AnnotationDetails.Designer.cs +++ b/PROMS/Volian.Controls.Library/AnnotationDetails.Designer.cs @@ -28,326 +28,341 @@ namespace Volian.Controls.Library /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); - this.rtxbComment = new System.Windows.Forms.RichTextBox(); - this.btnSaveAnnotation = new DevComponents.DotNetBar.ButtonX(); - this.btnCancelAnnoation = new DevComponents.DotNetBar.ButtonX(); - this.cbGridAnnoType = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.btnRemoveAnnotation = new DevComponents.DotNetBar.ButtonX(); - this.btnAddAnnotation = new DevComponents.DotNetBar.ButtonX(); - this.pannelAnnoEdit = new DevComponents.DotNetBar.PanelEx(); - this.labelX1 = new DevComponents.DotNetBar.LabelX(); - this.panelAnnoEditBtns = new DevComponents.DotNetBar.PanelEx(); - this.expandableSplitter4 = new DevComponents.DotNetBar.ExpandableSplitter(); - this.pannelAnnoGrid = new DevComponents.DotNetBar.PanelEx(); - this.dgAnnotations = new DevComponents.DotNetBar.Controls.DataGridViewX(); - this.myAnnotationTypeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dTSDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.userIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.searchTextDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.pannelAnnoEdit.SuspendLayout(); - this.panelAnnoEditBtns.SuspendLayout(); - this.pannelAnnoGrid.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit(); - this.SuspendLayout(); - // - // superTooltip1 - // - this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray); - this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; - // - // rtxbComment - // - this.rtxbComment.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); + this.rtxbComment = new System.Windows.Forms.RichTextBox(); + this.btnSaveAnnotation = new DevComponents.DotNetBar.ButtonX(); + this.btnCancelAnnoation = new DevComponents.DotNetBar.ButtonX(); + this.cbGridAnnoType = new DevComponents.DotNetBar.Controls.ComboBoxEx(); + this.btnRemoveAnnotation = new DevComponents.DotNetBar.ButtonX(); + this.btnAddAnnotation = new DevComponents.DotNetBar.ButtonX(); + this.btnEPAnnotation = new DevComponents.DotNetBar.ButtonX(); + this.pannelAnnoEdit = new DevComponents.DotNetBar.PanelEx(); + this.labelX1 = new DevComponents.DotNetBar.LabelX(); + this.panelAnnoEditBtns = new DevComponents.DotNetBar.PanelEx(); + this.expandableSplitter4 = new DevComponents.DotNetBar.ExpandableSplitter(); + this.pannelAnnoGrid = new DevComponents.DotNetBar.PanelEx(); + this.dgAnnotations = new DevComponents.DotNetBar.Controls.DataGridViewX(); + this.myAnnotationTypeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dTSDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.userIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.searchTextDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.pannelAnnoEdit.SuspendLayout(); + this.panelAnnoEditBtns.SuspendLayout(); + this.pannelAnnoGrid.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit(); + this.SuspendLayout(); + // + // superTooltip1 + // + this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray); + this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; + // + // rtxbComment + // + this.rtxbComment.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.rtxbComment.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.rtxbComment.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtxbComment.Location = new System.Drawing.Point(87, 33); - this.rtxbComment.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.rtxbComment.Name = "rtxbComment"; - this.rtxbComment.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; - this.rtxbComment.Size = new System.Drawing.Size(489, 291); - this.superTooltip1.SetSuperTooltip(this.rtxbComment, new DevComponents.DotNetBar.SuperTooltipInfo("Annotation", "", "Enter the annotation information here.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); - this.rtxbComment.TabIndex = 1; - this.rtxbComment.Text = ""; - this.rtxbComment.TextChanged += new System.EventHandler(this.rtxbComment_TextChanged); - // - // btnSaveAnnotation - // - this.btnSaveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnSaveAnnotation.Enabled = false; - this.btnSaveAnnotation.Location = new System.Drawing.Point(491, 4); - this.btnSaveAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.btnSaveAnnotation.Name = "btnSaveAnnotation"; - this.btnSaveAnnotation.Size = new System.Drawing.Size(71, 25); - this.superTooltip1.SetSuperTooltip(this.btnSaveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Save Changes", "", "This will save the new annotation or changes made to an existing annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); - this.btnSaveAnnotation.TabIndex = 9; - this.btnSaveAnnotation.Text = "Save"; - this.btnSaveAnnotation.Click += new System.EventHandler(this.btnSaveAnnotation_Click); - // - // btnCancelAnnoation - // - this.btnCancelAnnoation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnCancelAnnoation.Enabled = false; - this.btnCancelAnnoation.Location = new System.Drawing.Point(401, 4); - this.btnCancelAnnoation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.btnCancelAnnoation.Name = "btnCancelAnnoation"; - this.btnCancelAnnoation.Size = new System.Drawing.Size(69, 25); - this.superTooltip1.SetSuperTooltip(this.btnCancelAnnoation, new DevComponents.DotNetBar.SuperTooltipInfo("Cancel", "", "This will cancel the changes made to the annotation text and type selection", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(145, 100))); - this.btnCancelAnnoation.TabIndex = 8; - this.btnCancelAnnoation.Text = "Cancel"; - this.btnCancelAnnoation.Click += new System.EventHandler(this.btnCancelAnnoation_Click); - // - // cbGridAnnoType - // - this.cbGridAnnoType.DisplayMember = "Text"; - this.cbGridAnnoType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.cbGridAnnoType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cbGridAnnoType.FlatStyle = System.Windows.Forms.FlatStyle.Standard; - this.cbGridAnnoType.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbGridAnnoType.ForeColor = System.Drawing.SystemColors.WindowText; - this.cbGridAnnoType.ItemHeight = 17; - this.cbGridAnnoType.Location = new System.Drawing.Point(133, 4); - this.cbGridAnnoType.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.cbGridAnnoType.Name = "cbGridAnnoType"; - this.cbGridAnnoType.PreventEnterBeep = true; - this.cbGridAnnoType.Size = new System.Drawing.Size(244, 23); - this.superTooltip1.SetSuperTooltip(this.cbGridAnnoType, new DevComponents.DotNetBar.SuperTooltipInfo("Select Annotation Type", "", "This drop down list contains the possible annotation types.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); - this.cbGridAnnoType.TabIndex = 7; - this.cbGridAnnoType.WatermarkBehavior = DevComponents.DotNetBar.eWatermarkBehavior.HideNonEmpty; - this.cbGridAnnoType.WatermarkText = "Select Annotation Type"; - this.cbGridAnnoType.SelectedValueChanged += new System.EventHandler(this.cbGridAnnoType_SelectedValueChanged); - // - // btnRemoveAnnotation - // - this.btnRemoveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnRemoveAnnotation.Location = new System.Drawing.Point(5, 34); - this.btnRemoveAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.btnRemoveAnnotation.Name = "btnRemoveAnnotation"; - this.btnRemoveAnnotation.Size = new System.Drawing.Size(71, 25); - this.superTooltip1.SetSuperTooltip(this.btnRemoveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); - this.btnRemoveAnnotation.TabIndex = 4; - this.btnRemoveAnnotation.Text = "Remove"; - this.btnRemoveAnnotation.Click += new System.EventHandler(this.btnRemoveAnnotation_Click); - // - // btnAddAnnotation - // - this.btnAddAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnAddAnnotation.Location = new System.Drawing.Point(5, 4); - this.btnAddAnnotation.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.btnAddAnnotation.Name = "btnAddAnnotation"; - this.btnAddAnnotation.Size = new System.Drawing.Size(71, 25); - this.superTooltip1.SetSuperTooltip(this.btnAddAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Add New Annotation", "", "This button will create a new annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); - this.btnAddAnnotation.TabIndex = 3; - this.btnAddAnnotation.Text = "Add"; - this.btnAddAnnotation.Click += new System.EventHandler(this.btnAddAnnotation_Click); - // - // pannelAnnoEdit - // - this.pannelAnnoEdit.CanvasColor = System.Drawing.SystemColors.Control; - this.pannelAnnoEdit.Controls.Add(this.rtxbComment); - this.pannelAnnoEdit.Controls.Add(this.btnSaveAnnotation); - this.pannelAnnoEdit.Controls.Add(this.btnCancelAnnoation); - this.pannelAnnoEdit.Controls.Add(this.labelX1); - this.pannelAnnoEdit.Controls.Add(this.cbGridAnnoType); - this.pannelAnnoEdit.Controls.Add(this.panelAnnoEditBtns); - this.pannelAnnoEdit.DisabledBackColor = System.Drawing.Color.Empty; - this.pannelAnnoEdit.Dock = System.Windows.Forms.DockStyle.Fill; - this.pannelAnnoEdit.Location = new System.Drawing.Point(548, 0); - this.pannelAnnoEdit.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.pannelAnnoEdit.Name = "pannelAnnoEdit"; - this.pannelAnnoEdit.Size = new System.Drawing.Size(576, 325); - this.pannelAnnoEdit.Style.Alignment = System.Drawing.StringAlignment.Center; - this.pannelAnnoEdit.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.pannelAnnoEdit.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.pannelAnnoEdit.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.pannelAnnoEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.pannelAnnoEdit.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.pannelAnnoEdit.Style.GradientAngle = 90; - this.pannelAnnoEdit.TabIndex = 16; - this.pannelAnnoEdit.Text = "panelEx2"; - this.pannelAnnoEdit.ThemeAware = true; - // - // labelX1 - // - this.labelX1.AutoSize = true; - // - // - // - this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelX1.Location = new System.Drawing.Point(93, 7); - this.labelX1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.labelX1.Name = "labelX1"; - this.labelX1.Size = new System.Drawing.Size(35, 17); - this.labelX1.TabIndex = 10; - this.labelX1.Text = "Type:"; - // - // panelAnnoEditBtns - // - this.panelAnnoEditBtns.CanvasColor = System.Drawing.SystemColors.Control; - this.panelAnnoEditBtns.Controls.Add(this.btnRemoveAnnotation); - this.panelAnnoEditBtns.Controls.Add(this.btnAddAnnotation); - this.panelAnnoEditBtns.DisabledBackColor = System.Drawing.Color.Empty; - this.panelAnnoEditBtns.Dock = System.Windows.Forms.DockStyle.Left; - this.panelAnnoEditBtns.Location = new System.Drawing.Point(0, 0); - this.panelAnnoEditBtns.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panelAnnoEditBtns.Name = "panelAnnoEditBtns"; - this.panelAnnoEditBtns.Size = new System.Drawing.Size(87, 325); - this.panelAnnoEditBtns.Style.Alignment = System.Drawing.StringAlignment.Center; - this.panelAnnoEditBtns.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.panelAnnoEditBtns.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.panelAnnoEditBtns.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.panelAnnoEditBtns.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.panelAnnoEditBtns.Style.GradientAngle = 90; - this.panelAnnoEditBtns.TabIndex = 11; - this.panelAnnoEditBtns.ThemeAware = true; - // - // expandableSplitter4 - // - this.expandableSplitter4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter4.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter4.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.expandableSplitter4.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter4.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter4.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter4.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter4.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter4.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter4.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter4.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter4.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61))))); - this.expandableSplitter4.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94))))); - this.expandableSplitter4.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2; - this.expandableSplitter4.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground; - this.expandableSplitter4.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter4.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter4.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter4.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter4.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter4.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter4.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter4.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter4.Location = new System.Drawing.Point(545, 0); - this.expandableSplitter4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.expandableSplitter4.Name = "expandableSplitter4"; - this.expandableSplitter4.Size = new System.Drawing.Size(3, 325); - this.expandableSplitter4.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007; - this.expandableSplitter4.TabIndex = 15; - this.expandableSplitter4.TabStop = false; - // - // pannelAnnoGrid - // - this.pannelAnnoGrid.CanvasColor = System.Drawing.SystemColors.Control; - this.pannelAnnoGrid.Controls.Add(this.dgAnnotations); - this.pannelAnnoGrid.DisabledBackColor = System.Drawing.Color.Empty; - this.pannelAnnoGrid.Dock = System.Windows.Forms.DockStyle.Left; - this.pannelAnnoGrid.Location = new System.Drawing.Point(0, 0); - this.pannelAnnoGrid.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.pannelAnnoGrid.Name = "pannelAnnoGrid"; - this.pannelAnnoGrid.Size = new System.Drawing.Size(545, 325); - this.pannelAnnoGrid.Style.Alignment = System.Drawing.StringAlignment.Center; - this.pannelAnnoGrid.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.pannelAnnoGrid.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.pannelAnnoGrid.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.pannelAnnoGrid.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.pannelAnnoGrid.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.pannelAnnoGrid.Style.GradientAngle = 90; - this.pannelAnnoGrid.TabIndex = 14; - this.pannelAnnoGrid.Text = "panelEx2"; - this.pannelAnnoGrid.ThemeAware = true; - // - // dgAnnotations - // - this.dgAnnotations.AutoGenerateColumns = false; - this.dgAnnotations.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; - this.dgAnnotations.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - this.dgAnnotations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgAnnotations.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.rtxbComment.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.rtxbComment.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rtxbComment.Location = new System.Drawing.Point(65, 27); + this.rtxbComment.Margin = new System.Windows.Forms.Padding(2); + this.rtxbComment.Name = "rtxbComment"; + this.rtxbComment.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; + this.rtxbComment.Size = new System.Drawing.Size(368, 237); + this.superTooltip1.SetSuperTooltip(this.rtxbComment, new DevComponents.DotNetBar.SuperTooltipInfo("Annotation", "", "Enter the annotation information here.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); + this.rtxbComment.TabIndex = 1; + this.rtxbComment.Text = ""; + this.rtxbComment.TextChanged += new System.EventHandler(this.rtxbComment_TextChanged); + // + // btnSaveAnnotation + // + this.btnSaveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; + this.btnSaveAnnotation.Enabled = false; + this.btnSaveAnnotation.Location = new System.Drawing.Point(368, 3); + this.btnSaveAnnotation.Margin = new System.Windows.Forms.Padding(2); + this.btnSaveAnnotation.Name = "btnSaveAnnotation"; + this.btnSaveAnnotation.Size = new System.Drawing.Size(53, 20); + this.superTooltip1.SetSuperTooltip(this.btnSaveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Save Changes", "", "This will save the new annotation or changes made to an existing annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); + this.btnSaveAnnotation.TabIndex = 9; + this.btnSaveAnnotation.Text = "Save"; + this.btnSaveAnnotation.Click += new System.EventHandler(this.btnSaveAnnotation_Click); + // + // btnCancelAnnoation + // + this.btnCancelAnnoation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; + this.btnCancelAnnoation.Enabled = false; + this.btnCancelAnnoation.Location = new System.Drawing.Point(301, 3); + this.btnCancelAnnoation.Margin = new System.Windows.Forms.Padding(2); + this.btnCancelAnnoation.Name = "btnCancelAnnoation"; + this.btnCancelAnnoation.Size = new System.Drawing.Size(52, 20); + this.superTooltip1.SetSuperTooltip(this.btnCancelAnnoation, new DevComponents.DotNetBar.SuperTooltipInfo("Cancel", "", "This will cancel the changes made to the annotation text and type selection", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(145, 100))); + this.btnCancelAnnoation.TabIndex = 8; + this.btnCancelAnnoation.Text = "Cancel"; + this.btnCancelAnnoation.Click += new System.EventHandler(this.btnCancelAnnoation_Click); + // + // cbGridAnnoType + // + this.cbGridAnnoType.DisplayMember = "Text"; + this.cbGridAnnoType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; + this.cbGridAnnoType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbGridAnnoType.FlatStyle = System.Windows.Forms.FlatStyle.Standard; + this.cbGridAnnoType.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cbGridAnnoType.ForeColor = System.Drawing.SystemColors.WindowText; + this.cbGridAnnoType.ItemHeight = 17; + this.cbGridAnnoType.Location = new System.Drawing.Point(100, 3); + this.cbGridAnnoType.Margin = new System.Windows.Forms.Padding(2); + this.cbGridAnnoType.Name = "cbGridAnnoType"; + this.cbGridAnnoType.PreventEnterBeep = true; + this.cbGridAnnoType.Size = new System.Drawing.Size(184, 23); + this.superTooltip1.SetSuperTooltip(this.cbGridAnnoType, new DevComponents.DotNetBar.SuperTooltipInfo("Select Annotation Type", "", "This drop down list contains the possible annotation types.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); + this.cbGridAnnoType.TabIndex = 7; + this.cbGridAnnoType.WatermarkBehavior = DevComponents.DotNetBar.eWatermarkBehavior.HideNonEmpty; + this.cbGridAnnoType.WatermarkText = "Select Annotation Type"; + this.cbGridAnnoType.SelectedValueChanged += new System.EventHandler(this.cbGridAnnoType_SelectedValueChanged); + // + // btnRemoveAnnotation + // + this.btnRemoveAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; + this.btnRemoveAnnotation.Location = new System.Drawing.Point(4, 28); + this.btnRemoveAnnotation.Margin = new System.Windows.Forms.Padding(2); + this.btnRemoveAnnotation.Name = "btnRemoveAnnotation"; + this.btnRemoveAnnotation.Size = new System.Drawing.Size(53, 20); + this.superTooltip1.SetSuperTooltip(this.btnRemoveAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); + this.btnRemoveAnnotation.TabIndex = 4; + this.btnRemoveAnnotation.Text = "Remove"; + this.btnRemoveAnnotation.Click += new System.EventHandler(this.btnRemoveAnnotation_Click); + // + // btnAddAnnotation + // + this.btnAddAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; + this.btnAddAnnotation.Location = new System.Drawing.Point(4, 3); + this.btnAddAnnotation.Margin = new System.Windows.Forms.Padding(2); + this.btnAddAnnotation.Name = "btnAddAnnotation"; + this.btnAddAnnotation.Size = new System.Drawing.Size(53, 20); + this.superTooltip1.SetSuperTooltip(this.btnAddAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Add New Annotation", "", "This button will create a new annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); + this.btnAddAnnotation.TabIndex = 3; + this.btnAddAnnotation.Text = "Add"; + this.btnAddAnnotation.Click += new System.EventHandler(this.btnAddAnnotation_Click); + // + // btnEPAnnotation + // + this.btnEPAnnotation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; + this.btnEPAnnotation.Location = new System.Drawing.Point(4, 52); + this.btnEPAnnotation.Margin = new System.Windows.Forms.Padding(2); + this.btnEPAnnotation.Name = "btnEPAnnotation"; + this.btnEPAnnotation.Size = new System.Drawing.Size(53, 20); + this.superTooltip1.SetSuperTooltip(this.btnEPAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); + this.btnEPAnnotation.TabIndex = 5; + this.btnEPAnnotation.Text = "Open"; + this.btnEPAnnotation.Visible = false; + this.btnEPAnnotation.Click += new System.EventHandler(this.btnEPAnnotation_Click); + // + // pannelAnnoEdit + // + this.pannelAnnoEdit.CanvasColor = System.Drawing.SystemColors.Control; + this.pannelAnnoEdit.Controls.Add(this.rtxbComment); + this.pannelAnnoEdit.Controls.Add(this.btnSaveAnnotation); + this.pannelAnnoEdit.Controls.Add(this.btnCancelAnnoation); + this.pannelAnnoEdit.Controls.Add(this.labelX1); + this.pannelAnnoEdit.Controls.Add(this.cbGridAnnoType); + this.pannelAnnoEdit.Controls.Add(this.panelAnnoEditBtns); + this.pannelAnnoEdit.DisabledBackColor = System.Drawing.Color.Empty; + this.pannelAnnoEdit.Dock = System.Windows.Forms.DockStyle.Fill; + this.pannelAnnoEdit.Location = new System.Drawing.Point(411, 0); + this.pannelAnnoEdit.Margin = new System.Windows.Forms.Padding(2); + this.pannelAnnoEdit.Name = "pannelAnnoEdit"; + this.pannelAnnoEdit.Size = new System.Drawing.Size(432, 264); + this.pannelAnnoEdit.Style.Alignment = System.Drawing.StringAlignment.Center; + this.pannelAnnoEdit.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; + this.pannelAnnoEdit.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; + this.pannelAnnoEdit.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.pannelAnnoEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.pannelAnnoEdit.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.pannelAnnoEdit.Style.GradientAngle = 90; + this.pannelAnnoEdit.TabIndex = 16; + this.pannelAnnoEdit.Text = "panelEx2"; + this.pannelAnnoEdit.ThemeAware = true; + // + // labelX1 + // + this.labelX1.AutoSize = true; + // + // + // + this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelX1.Location = new System.Drawing.Point(70, 6); + this.labelX1.Margin = new System.Windows.Forms.Padding(2); + this.labelX1.Name = "labelX1"; + this.labelX1.Size = new System.Drawing.Size(29, 14); + this.labelX1.TabIndex = 10; + this.labelX1.Text = "Type:"; + // + // panelAnnoEditBtns + // + this.panelAnnoEditBtns.CanvasColor = System.Drawing.SystemColors.Control; + this.panelAnnoEditBtns.Controls.Add(this.btnEPAnnotation); + this.panelAnnoEditBtns.Controls.Add(this.btnRemoveAnnotation); + this.panelAnnoEditBtns.Controls.Add(this.btnAddAnnotation); + this.panelAnnoEditBtns.DisabledBackColor = System.Drawing.Color.Empty; + this.panelAnnoEditBtns.Dock = System.Windows.Forms.DockStyle.Left; + this.panelAnnoEditBtns.Location = new System.Drawing.Point(0, 0); + this.panelAnnoEditBtns.Margin = new System.Windows.Forms.Padding(2); + this.panelAnnoEditBtns.Name = "panelAnnoEditBtns"; + this.panelAnnoEditBtns.Size = new System.Drawing.Size(65, 264); + this.panelAnnoEditBtns.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelAnnoEditBtns.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; + this.panelAnnoEditBtns.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; + this.panelAnnoEditBtns.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.panelAnnoEditBtns.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelAnnoEditBtns.Style.GradientAngle = 90; + this.panelAnnoEditBtns.TabIndex = 11; + this.panelAnnoEditBtns.ThemeAware = true; + // + // expandableSplitter4 + // + this.expandableSplitter4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); + this.expandableSplitter4.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.expandableSplitter4.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; + this.expandableSplitter4.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); + this.expandableSplitter4.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.expandableSplitter4.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.expandableSplitter4.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; + this.expandableSplitter4.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.expandableSplitter4.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; + this.expandableSplitter4.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); + this.expandableSplitter4.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; + this.expandableSplitter4.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61))))); + this.expandableSplitter4.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94))))); + this.expandableSplitter4.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2; + this.expandableSplitter4.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground; + this.expandableSplitter4.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); + this.expandableSplitter4.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.expandableSplitter4.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.expandableSplitter4.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; + this.expandableSplitter4.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); + this.expandableSplitter4.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.expandableSplitter4.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); + this.expandableSplitter4.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; + this.expandableSplitter4.Location = new System.Drawing.Point(409, 0); + this.expandableSplitter4.Margin = new System.Windows.Forms.Padding(2); + this.expandableSplitter4.Name = "expandableSplitter4"; + this.expandableSplitter4.Size = new System.Drawing.Size(2, 264); + this.expandableSplitter4.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007; + this.expandableSplitter4.TabIndex = 15; + this.expandableSplitter4.TabStop = false; + // + // pannelAnnoGrid + // + this.pannelAnnoGrid.CanvasColor = System.Drawing.SystemColors.Control; + this.pannelAnnoGrid.Controls.Add(this.dgAnnotations); + this.pannelAnnoGrid.DisabledBackColor = System.Drawing.Color.Empty; + this.pannelAnnoGrid.Dock = System.Windows.Forms.DockStyle.Left; + this.pannelAnnoGrid.Location = new System.Drawing.Point(0, 0); + this.pannelAnnoGrid.Margin = new System.Windows.Forms.Padding(2); + this.pannelAnnoGrid.Name = "pannelAnnoGrid"; + this.pannelAnnoGrid.Size = new System.Drawing.Size(409, 264); + this.pannelAnnoGrid.Style.Alignment = System.Drawing.StringAlignment.Center; + this.pannelAnnoGrid.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; + this.pannelAnnoGrid.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; + this.pannelAnnoGrid.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.pannelAnnoGrid.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.pannelAnnoGrid.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.pannelAnnoGrid.Style.GradientAngle = 90; + this.pannelAnnoGrid.TabIndex = 14; + this.pannelAnnoGrid.Text = "panelEx2"; + this.pannelAnnoGrid.ThemeAware = true; + // + // dgAnnotations + // + this.dgAnnotations.AutoGenerateColumns = false; + this.dgAnnotations.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dgAnnotations.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + this.dgAnnotations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgAnnotations.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.myAnnotationTypeDataGridViewTextBoxColumn, this.dTSDataGridViewTextBoxColumn, this.userIDDataGridViewTextBoxColumn, this.searchTextDataGridViewTextBoxColumn}); - this.dgAnnotations.DataSource = this.itemAnnotationsBindingSource; - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgAnnotations.DefaultCellStyle = dataGridViewCellStyle2; - this.dgAnnotations.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgAnnotations.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229))))); - this.dgAnnotations.HighlightSelectedColumnHeaders = false; - this.dgAnnotations.Location = new System.Drawing.Point(0, 0); - this.dgAnnotations.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.dgAnnotations.MultiSelect = false; - this.dgAnnotations.Name = "dgAnnotations"; - this.dgAnnotations.RowHeadersVisible = false; - this.dgAnnotations.RowTemplate.Height = 24; - this.dgAnnotations.RowTemplate.ReadOnly = true; - this.dgAnnotations.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.dgAnnotations.SelectAllSignVisible = false; - this.dgAnnotations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dgAnnotations.Size = new System.Drawing.Size(545, 325); - this.dgAnnotations.TabIndex = 1; - this.dgAnnotations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgAnnotations_CellClick); - // - // myAnnotationTypeDataGridViewTextBoxColumn - // - this.myAnnotationTypeDataGridViewTextBoxColumn.DataPropertyName = "MyAnnotationType"; - this.myAnnotationTypeDataGridViewTextBoxColumn.HeaderText = "Type"; - this.myAnnotationTypeDataGridViewTextBoxColumn.Name = "myAnnotationTypeDataGridViewTextBoxColumn"; - this.myAnnotationTypeDataGridViewTextBoxColumn.Width = 69; - // - // dTSDataGridViewTextBoxColumn - // - this.dTSDataGridViewTextBoxColumn.DataPropertyName = "DTS"; - this.dTSDataGridViewTextBoxColumn.HeaderText = "Date"; - this.dTSDataGridViewTextBoxColumn.Name = "dTSDataGridViewTextBoxColumn"; - this.dTSDataGridViewTextBoxColumn.Width = 67; - // - // userIDDataGridViewTextBoxColumn - // - this.userIDDataGridViewTextBoxColumn.DataPropertyName = "UserID"; - this.userIDDataGridViewTextBoxColumn.HeaderText = "User"; - this.userIDDataGridViewTextBoxColumn.Name = "userIDDataGridViewTextBoxColumn"; - this.userIDDataGridViewTextBoxColumn.Width = 67; - // - // searchTextDataGridViewTextBoxColumn - // - this.searchTextDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.searchTextDataGridViewTextBoxColumn.DataPropertyName = "SearchText"; - this.searchTextDataGridViewTextBoxColumn.HeaderText = "Description"; - this.searchTextDataGridViewTextBoxColumn.Name = "searchTextDataGridViewTextBoxColumn"; - // - // itemAnnotationsBindingSource - // - this.itemAnnotationsBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.ItemAnnotation); - // - // AnnotationDetails - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.pannelAnnoEdit); - this.Controls.Add(this.expandableSplitter4); - this.Controls.Add(this.pannelAnnoGrid); - this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.Name = "AnnotationDetails"; - this.Size = new System.Drawing.Size(1124, 325); - this.pannelAnnoEdit.ResumeLayout(false); - this.pannelAnnoEdit.PerformLayout(); - this.panelAnnoEditBtns.ResumeLayout(false); - this.pannelAnnoGrid.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit(); - this.ResumeLayout(false); + this.dgAnnotations.DataSource = this.itemAnnotationsBindingSource; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgAnnotations.DefaultCellStyle = dataGridViewCellStyle1; + this.dgAnnotations.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgAnnotations.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229))))); + this.dgAnnotations.HighlightSelectedColumnHeaders = false; + this.dgAnnotations.Location = new System.Drawing.Point(0, 0); + this.dgAnnotations.Margin = new System.Windows.Forms.Padding(2); + this.dgAnnotations.MultiSelect = false; + this.dgAnnotations.Name = "dgAnnotations"; + this.dgAnnotations.RowHeadersVisible = false; + this.dgAnnotations.RowTemplate.Height = 24; + this.dgAnnotations.RowTemplate.ReadOnly = true; + this.dgAnnotations.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.dgAnnotations.SelectAllSignVisible = false; + this.dgAnnotations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgAnnotations.Size = new System.Drawing.Size(409, 264); + this.dgAnnotations.TabIndex = 1; + this.dgAnnotations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgAnnotations_CellClick); + // + // myAnnotationTypeDataGridViewTextBoxColumn + // + this.myAnnotationTypeDataGridViewTextBoxColumn.DataPropertyName = "MyAnnotationType"; + this.myAnnotationTypeDataGridViewTextBoxColumn.HeaderText = "Type"; + this.myAnnotationTypeDataGridViewTextBoxColumn.Name = "myAnnotationTypeDataGridViewTextBoxColumn"; + this.myAnnotationTypeDataGridViewTextBoxColumn.Width = 56; + // + // dTSDataGridViewTextBoxColumn + // + this.dTSDataGridViewTextBoxColumn.DataPropertyName = "DTS"; + this.dTSDataGridViewTextBoxColumn.HeaderText = "Date"; + this.dTSDataGridViewTextBoxColumn.Name = "dTSDataGridViewTextBoxColumn"; + this.dTSDataGridViewTextBoxColumn.Width = 55; + // + // userIDDataGridViewTextBoxColumn + // + this.userIDDataGridViewTextBoxColumn.DataPropertyName = "UserID"; + this.userIDDataGridViewTextBoxColumn.HeaderText = "User"; + this.userIDDataGridViewTextBoxColumn.Name = "userIDDataGridViewTextBoxColumn"; + this.userIDDataGridViewTextBoxColumn.Width = 54; + // + // searchTextDataGridViewTextBoxColumn + // + this.searchTextDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.searchTextDataGridViewTextBoxColumn.DataPropertyName = "SearchText"; + this.searchTextDataGridViewTextBoxColumn.HeaderText = "Description"; + this.searchTextDataGridViewTextBoxColumn.Name = "searchTextDataGridViewTextBoxColumn"; + // + // itemAnnotationsBindingSource + // + this.itemAnnotationsBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.ItemAnnotation); + // + // AnnotationDetails + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.pannelAnnoEdit); + this.Controls.Add(this.expandableSplitter4); + this.Controls.Add(this.pannelAnnoGrid); + this.Margin = new System.Windows.Forms.Padding(2); + this.Name = "AnnotationDetails"; + this.Size = new System.Drawing.Size(843, 264); + this.pannelAnnoEdit.ResumeLayout(false); + this.pannelAnnoEdit.PerformLayout(); + this.panelAnnoEditBtns.ResumeLayout(false); + this.pannelAnnoGrid.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgAnnotations)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit(); + this.ResumeLayout(false); } @@ -371,5 +386,6 @@ namespace Volian.Controls.Library private System.Windows.Forms.DataGridViewTextBoxColumn dTSDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn userIDDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn searchTextDataGridViewTextBoxColumn; - } + private DevComponents.DotNetBar.ButtonX btnEPAnnotation; + } } diff --git a/PROMS/Volian.Controls.Library/AnnotationDetails.cs b/PROMS/Volian.Controls.Library/AnnotationDetails.cs index fbd56849..0d047caa 100644 --- a/PROMS/Volian.Controls.Library/AnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/AnnotationDetails.cs @@ -329,14 +329,22 @@ namespace Volian.Controls.Library AnnotationDirty = true; } - private void dgAnnotations_CellClick(object sender, DataGridViewCellEventArgs e) + //C2025-023 - Electronic Procedures - Modifications to PROMS + // Only show Open button if it is an EPAnnotationType + private void dgAnnotations_CellClick(object sender, DataGridViewCellEventArgs e) { - if (!_LoadingGrid) // Only set the Current Annotation when not loading the grid + btnEPAnnotation.Visible = false; + + if (!_LoadingGrid) // Only set the Current Annotation when not loading the grid { - if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0)) - CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index]; - else - CurrentAnnotation = null; + if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0)) + { + CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index]; + if (CurrentAnnotation.MyAnnotationType.IsEPAnnotationType) + btnEPAnnotation.Visible = true; + } + else + CurrentAnnotation = null; } } @@ -600,6 +608,7 @@ namespace Volian.Controls.Library public void UpdateAnnotationGrid(ItemInfo currentitem) { CurrentItem = currentitem; + btnEPAnnotation.Visible = false; UpdateAnnotationGrid(); } @@ -702,5 +711,12 @@ namespace Volian.Controls.Library } #endregion - } + //C2025-023 - Electronic Procedures - Modifications to PROMS + // Open new Dynamic Form if open button selected + private void btnEPAnnotation_Click(object sender, EventArgs e) + { + frmEPAnnotationDetails EPfrm = new frmEPAnnotationDetails(CurrentAnnotation); + DialogResult dr = EPfrm.ShowDialog(this); + } + } } diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs index 9834448d..46743631 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs @@ -603,6 +603,10 @@ namespace Volian.Controls.Library } public void SetGridContextMenu() { + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Only show EP menu if an EP Annotation Type Exists + btnEPDesignation.Visible = EPFormatFile.IsEPAnnotationType(); + if (rtabTableGridTools.Visible) _ContextMenuBar.SetContextMenuEx(MyFlexGrid, btnCMGrid); } @@ -770,6 +774,43 @@ namespace Volian.Controls.Library //C1.Win.C1FlexGrid.CellRange cr = MyFlexGrid.GetEvenSelection(); //rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid.MyBorders, cr.r1, cr.c1, cr.r2, cr.c2); rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid, MyFlexGrid.Selection); + + SetEPbuttonImages(); + + } + + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Set which EP items are selected to show in the UI + void SetEPbuttonImages() + { + if (EPFormatFile.IsEPAnnotationType()) + { + VlnFlexGrid.EPinputtype myEPInput = MyFlexGrid.GetEPinputtype(); + Bitmap cb_Btmp = createTextBitmap('\u2713'); + switch (myEPInput) + { + case VlnFlexGrid.EPinputtype.none: + btnEP_None.Image = cb_Btmp; + btnEP_Text.Image = null; + btnEP_Check.Image = null; + break; + case VlnFlexGrid.EPinputtype.textbox: + btnEP_None.Image = null; + btnEP_Text.Image = cb_Btmp; + btnEP_Check.Image = null; + break; + case VlnFlexGrid.EPinputtype.checkbox: + btnEP_None.Image = null; + btnEP_Text.Image = null; + btnEP_Check.Image = cb_Btmp; + break; + case VlnFlexGrid.EPinputtype.multi: + btnEP_None.Image = null; + btnEP_Text.Image = null; + btnEP_Check.Image = null; + break; + } + } } void _MyEditItem_Leave(object sender, EventArgs e) { @@ -4548,6 +4589,35 @@ namespace Volian.Controls.Library //MyFlexGrid.ListStyles(); } } + + //C2025-023 - Electronic Procedures - Modifications to PROMS + //if button selected, set the Cell's UserData + //then save the Grid + + private void btnEP_None_Click(object sender, EventArgs e) + { + MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.none); + SetEPbuttonImages(); + GridItem tmp = MyEditItem as GridItem; + tmp.SaveContents(); + } + + private void btnEP_Text_Click(object sender, EventArgs e) + { + MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.textbox); + SetEPbuttonImages(); + GridItem tmp = MyEditItem as GridItem; + tmp.SaveContents(); + } + + private void btnEP_check_Click(object sender, EventArgs e) + { + MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.checkbox); + SetEPbuttonImages(); + GridItem tmp = MyEditItem as GridItem; + tmp.SaveContents(); + } + #endregion #region Table Grid Border private void btnTblDgnTableBorderNone_Click(object sender, EventArgs e) @@ -4808,8 +4878,8 @@ namespace Volian.Controls.Library if (MyEditItem != null) MyEditItem.SaveCurrentAndContents(); OnTimeCriticalActionSummaryRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure)); } - } - public class StepTabRibbonEventArgs : EventArgs + } + public class StepTabRibbonEventArgs : EventArgs { public StepTabRibbonEventArgs() { ; } public StepTabRibbonEventArgs(ItemInfo proc) diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs index 33fc65fe5b524d2adb6f050cb1c1792c6312116d..b71685206345aaa3ef97fa5cdcebd2df2e76a7a2 100644 GIT binary patch literal 671144 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 literal 575428 zcmeFadvjIEu_wC!^+e2f*q4d$rNd*n#Ty@=6G79^Fb6jn==Pc0b~um_GHxMcZP7G# z%vZnn=5M7^S&yu>s@Ai%a43L{c0IDPvhrP7|KI<6yn3~Iw>nsDRwwjnpFXWu->=@U zj#h8!|HrGH)qVQk@#<`K+WdAyzj;F6?a}{V(VtJN|GxTftA93s|DqY=l-i>25skD@ zf4`!!H}v@h{r-Sjyrkdkt)4ey>@{O!gkM~Y@r%`OnxFORchv6#LHF)_rvEsfMO!?l z5&uqY-V!7StJgHkYx;LX|34&{59qh+)lW@tK(t5D91#3GpN{f7nlCle361f#83WK` z6`!arKEFH1%{y8XFm%vh>G$**FdWghk1ufdipCIl_Nj&62iW;{`g2SxIijC`YaooF zOu;Dly5Fo1ySAp0PUvrZ{zU%*I~$t!1AW3CW5zxD7f>BGtvB?)*M+!|d4G4l@1P{C zf+_0XS667nw=@^u&_&3hXCuQbl->SOcm!Rmj~Z{N`9M+5_QAG-}&2mQVyXavvLY4koI4B>Cg^PYAd zV}S;+tDvU$&FA&%Yj5_egwOZ%1FCo7;#GffF^im(Ul7If>aQB@*Q;OB&w6#0V6mv> z|MKYNiI-MaZ3 zG$=S&Q#;IeMkAaSp52hIDP2FN^PFh_jd*7@F!!(A^E>12+mgDQj4?ISA-!@oh!-xal;)_Xiggrd`x{Y z*IW7<^x)!i2o%qny@L#Hg8(`V>mR(5Ya>FyBc^BHBmDWRe@Iw3ZaB~oEPO>g>WqGH zRvy#8&{EP+KsSRHaCFi3=0F@giAGG%9^>E}g8L=?8Ab_ZIDlmL>0o!@{O)-ur-SbjLzG`fzS-a#`S^o55vYYIuUPHe;}%UOY-DL;!5DdjGcL@WN-D1=2rc1*zDz4 zfz1WG-TJTUTl+)phhVR0A083=Z8R$a;_h{8@Wer_Sx&tJDL3{!{+Zp{jk2^n;SNBpPd(+Lk_(m{KHON;tcZq zPiZ&)*2u(VU=hpl5uF5Z!(sd3QbL~92wH?rI^Mi_HUiJOtp1C2&u=ByWCMId6z6&* z=ca=Dt9#`AS&9l+7k^3fF9`+Yfy9!AY6I^1&pU_kOCgGcKk%;%qkuAb0Iw`OI^tzh zU+7Suh4_l%k-Pji&PaOO8X&2L(9fgY(GHGWxQ3v!6Hn@HOoP zqRjJQ;D|7Abb$lr>_d5EiElg2so}{2eZrC(hLQd}8!&L>a=snmGm4cjGxIXB1=Unu zo=5P8?RmMr!hSoRec0S(x(ayEL!xnbtA@>6vgY);8wZv?XRaHjdxRt8R}I5cAK3U* z!oS6NHFNU=z>LfsM0bYj@@4eND`!p!`3x9f*$vx+J}|()zDKLyCn(;Myc~L7`oaJY z7vf6Gz>z*B%)#zA8t%~j>3>GXgrd(5eMgkRJG4IvCi=jD_}|BdN|uA+C7qEoI<3e_ z;>@%;Pb{PwvMg~SX$W{|f$?IcJ8{mJA}$1hj~wQT^mPYT6qI&h(Q0 z9FZ>$9vI}v4%H}2I1}bS_T~ncgii|a{2c5^*$smoZ`>!|xX6vzu-?#!eYkRthw^I~nX^Xaf9i#ndD2vx3+d1(lfc#= z(lmd)6VP&LrmA2`U{w62@y6VZ&-b^q+vA<_K3taJc-rKeE@w9}6zu<(+ZjXjurf?2 zzlC4$6Ya@xiC4mJU5facysOCfMI;7X|BO70(A0gdRZ6F2_{f20+4um{OA1%Zcf)`IeTC;6_k(bsY}vhZA*q2+xbV0;w=9jt$`eTeA;q%uRaQMp>sbkD+gUVbD^q@ z+HO}zZSbP-ZP|Af@-r7YcVFwFHW$KWsEsXEUNN*n_=Z&>Ac+#KIc)0Zl ziSjl5L4*O>TOUczq&;@3-;9%aQlh=5IsWeI%LPth961~+c}jBe+?{}C@Pcf)VP^=m z@s8ph?1%mN;`V$FHAr6OFbGPhA@=3~{<))MX((#&K?p|p)Z@PE(jGT~D2^8mqnx2y ztwz0TfujccQLHdD_Zsf7yss~W3;tT%qhC5U;KJqR>escG^>72lmkU!p-gg_mT72&| zbnrVbc}v9gVe{cNd8YmM$fal84;h}5H!dX$ zOi~AVNKV%{SVA@_PJB)0eH@s^!4FrfAD*2sE**^p)i^l9ZU1@i_aAmhyfGje2R9Fz z_X$w3bc{1UE)_i|EDrSqj)Nsg_>(4s8THra>8ZsAO5B8)EfrRhg;6)A51LnmGc&ua|$WF;i zMZ>sBIi(03SD{@Z3)elME7&EGn8`YR%?i|m)RX1=fSo%meuF*9X1SJ_kXHCU` zujucwW`9XsA5{pD5tow>BvSQNb026dDEgfR+;n-@L>0#41i5Dck(8mFu$%*-mdb02 zWId&q?%rJsd>OxbGJ7P152STkfq)|>d|P!G2HgEGg#tMM z_n#P2WM4;j{YSqyfuKU$iH#50%Nk{WmB>jlzd+?h+FPUFs8 z@=DmaGneFzk2`b8?Uiw7E~z&%?#y==qwTVL3gfPNceNZJ+byaaHTJsa;$?eHTozf5 z`by!=!8cP%^>D<7Ll{bS9(RDkw=m0K*iXd$he83Zpe&yt1xblqweT?>Bqg*tEhHs! zcUnkFojS4iQ8$~*?MH^$_VO}|7@5NBM90LzSHIOl27^-`W0mD#< zUj_rbPPjYSUJ+n8KhK#Z?Hk)OY^xiqp?W|WrfeAI<)nYP$hGIl9O_*i6K*(CI?U4! zUnO#QtdZMx=8SsXU;UmUPiIs+Nv!u_u$1nMz_9G>_Zuo*X64wuxvL+<6)=X%vXXc= z#~eXg7m2lk?u@QaY4#xS{B~ z!b;rEXFo?c|$ zy{GjdNp!A%U zQZMec!L__kS9yWrjJZKAbk5K`p&eZ2rF(n-7%Eikn*S~NHtr;FE&HmTjWa|<^;NxP z>5HSYV^lsY<>;|qwj?K)I5}P;U7CBlu++k_8KxyUq65W2=~&>oN17OF!M|*3HP0ypaGwfP0xbBiKMal6N$t&e%`VSSmq7yWWCs8NQUJu%R*ODJaa{!5Znzh0pywC(np= zZJ*j)xN4)hp*a9k&>U_Ea>d7YRq{3$K6h_xqB$4FWoRxw6?hW~uOgq3bcL^FiF*F7 z78b(;dCL0OW?^|{!^XPV(y*aI&uMd;S@v-mh>-dCg7V0hICnDlBZ6R=`H>0xiO$ec z6=J|)j;JQdGOLH&c}4TTrFWy2qCTz&gR{VIy)U&B{3avd*bp{O2`49non`h#UVvU2 z4$hUpeTL0qCj_t8oHV?0e^EG|&`JGR0UR$I*$|>a3<2nBwl@Ts z{=@J4^|2nhU>aJ%p$|-=>yCkwex44@Japy#XTCnGwCSRNq0sc9fDL6vFt3LV0nG?? znNG->cuTK%?a^(Rav7#<@zg1-XlSQOFf}P3ojMAM7iZdPqm~?c;_@p+#Xo&YC;J zIQ@8^6*~7nXp}E#%rmOXhb+{cReLqrFR1kn?d}0tuWyN3usawpP4W4sCRem3EB)6b;baQeBFWA>X1rwngo^Lg~S=pP$yhWfA{n-hr~{Zl%rayrq^ zJ?FSn4*zSP6DZn|p1tRdq(gPXs}1k?NHCW23veb_>N5Hdt3T5y|7sLhOklu&H{pB{w)zuXm=N0JzkWjDafB%zc<~Dub4>I^n;H7}B z5$o>lFg>FlfDd}bmkk_W_JrbFg5VwDh%s`7w41baztU?5pfy8&GCtcd-^OG7QFPVV z1IEB^PYl?%oZ9g(eXdenraN>K22kwMy@tEJVemcerM&IH(2!hi{FJg*-_Q>1(@vv~ z)0afIeNK~$m6tRY-Z|ePKg}!p^p@y|^<|fWq?ORuFQe9L8Ut_Ctv$-?M{6ngKzn)c z{hr$W(rZ0Ee1B-T0Be~donpN4_kad9+W$a0F7^}B`X2p@o!!vSns^j@2li;xQ{qzN z?K8uP_ZnbbfeZ3}%X=DHu|RhFcVz4S2kGfyk9_!lM>Y?}m}4C=&WAw0LnmWr0=T~> ztiv{aPtu8L!u6^N=6`wq-I{PW1@>Gh5Cb`GC=h-P%`6sJ-0#QV#}E=krd)}7Wf1*M z5APYB+(X*UQ-T_2I6g(cq!mExcu(JgPwvyFck~0Szi!U_8|sbU{dQt{drJJq+To|G z|D1T{XGHN_i67buG#}uEUp9sB^Jl`#ztf*9#J#m`KA%|=m(klfQ%fY~q%P$`$Cu1u z3&X!8>8LHnr%J_{=HIu=aqUrpW!O-XA3YD26;93OpJHY6(~nCLX}!U1wI(f)IYs`S z^`kYm0$~Bd3wW}6MAYlwQre|k?0s~TaO82l1U_YeS_QMZmNL)5A>rVpu^i#|Ke)K{ zDtg*x)z`L-F#&5IFLv-u%n{FM{tq;7e_TIqVB5QzP>}2C~EU zbBoW_?U(jvyPg~NFuMKN4-Fmal)P5^jU<6wQJaaOT+R-&R?ARB_Tf|=(N5dGY4zdq z3wPI&R_U0tr0wr9XSqJfTJ}h108XKc?bF{WkIs;l>@^Zx;!K-~=HU2==txt|!q|G> z_!QtJE5p}(er9{W#G}V&9C0T2lU?5dB2H;9;63_|Z7}u$;uYx~@~b>-{6Kl*D5u$J z=;DxgG&J1Pj4>dIUXe^eL=w4)$P#=@RJ%h|EPg?Fq!0_;Bkw1u8Zk`x2=QY}0vlK3 zdMWXCaM}FuEg=&a9-OxQD)Aj&JNMTCNAkH0s?cj{;Vz{&S#7a%Q+P>vb?hJQw^H$R zw&6ZJE7HgHj@~7YqmN@-%J-M(?uh~y3?svRCAu|MI?6oVs*tq+KN|abKhk+vGMYZe zI-fT8XptXd?ZG_z*`-Ia4jyXADa*z_`#iM13C+#laqe4I?@E?Y4ylmyR!7LhLKau`gM9|5XA{@SejulROnYVY2q^ z=PA|>TWhalrS567AO|0S{qw5P2axk7zhR4r^-_t2xc)Vc12fO)L$zb-tWW3!p^8jO z53^RzGWM|1OK~Hcb2Y`9=)W#KePT;4pKHOn&aSZGKtO_9mvJXa{B2U>x=cGB{gz;#WB|wnUS;C z>E6iY)`+(5dEe7zkA^&S#B-71i1(9UQ@nt^<@Tv)gBLjqxTgsVn4$DNQf;0Rw=cZQ zcn2NOltZEGVHo1P{LpKlJ>aW4rS)SCSPScOI}|wqPkKs{{crRMep=+@wc$d?yh405 z?fc3b1KzbwbN=1@g7O%FLKTj<(`4_Q^uV{D=g2sRmXVTLZ7U9?VY+Rf(Vr6r#ajJi zL#3}*f23W8N0Z^UEkKogX?Wn5L8b(&8gRcPbnWd=J*c5n(nZmurCTQBUYT z(9Vd)ydll=XWA3y0N@(0Y3+YK-=lQ&c0+jYx~GPH!dYf326mi8Ly^04LgzYXx8c7P z&8l>7Q!~Sp^M)u0oJAzay191)d*p<6p0iNcj`-n%9*|4^1NHbb^#fd2f`5+*E69gu znDuih+y?=spn1SQ11}lJ1wQrUb0Tq+cd*UX=ZxPcm?S&#S501y?2|8x9yA_4So9)k z;9WX3_Fwkmd9w#!)A)zYO)QzmKaIAIU|EGZ+JV&%dI7Nhx`7v(J3cY)%JE7F->B(ww z-f{Bxh$9`5z2@ife?xlGOZwwuw2iCkxT>Ep<;9uzu9i-{K4`qb<&{WzL=6T!rNWUr2WE7*|QQM%&2*gusGBOYDSUe?pz_#H_ zl3&p7e47S(jN+g58qs?Bf8T7KmLu!O8TGT!@D1OY=yM*%*K-6?+%hlGZDMcRu5vu3^1Ip>;GNwSP`q(E2Z9<`utNlx{19P*4pb>Y1ghvY;N9Y-7Z-| zOGfK>esI=tqjeZpwGW9E^wne7vmcKKtAjJH{LF){y;iS5&2hy0B=HVteP{IdGoq4* zExFhBX{;-z2b$2>hwGKJ?d{O#3LO?!K0K*6DF$<+IHm^(LY>pXTuQoHZDC{b%|fQ` zytPQ5s}xP;8@XlCGpt1UYTt7;UGxm_rJ`qd5|+4)-B1VOli=@Am&6Xg@8S=aIc~-~ z6UPN(4W&N4B(@J@9+{)NVUY~*1{r80A&IsGs3T3oH8)DzP_ zTIfOP%X1Z9;fSR^84F(9JM*l-J7bL+%FGV$EhJ9);jyvP} zTz`ePhP^X?rccid&y3p(IkvCp4@-Rbf!@&nz@PYDIil^*kf9N-DRzLYN<`mZlRpi= zM?Hfug5^fG$|E0s+;3`QtkzI+Ic`aoH&$GiM~ERBr?T8l z$}lg_@&*K*%gaF@gj}VXIN5!W02=Sb;$K*1}Ys=#m z>nioFxQtuo=rd&_Zi|epIEhz=NRug_-zPh^nYVGh3t@b5SA(SdP znsKUc%|5qSeu9?gt#M$%pdO)lylU+*8h7b9>c%>U=ooK6(D^bDzG{ z>^Ube)whmQ=tF0p#4ZWxk71uiw@v$rbX&&WZ1-D#9Q$O#QbnZnguEE2=d;PoV+?!2 zAEfW2q4p4Jj6A1N@h@{wzbZ*vg{-!*koSW6r0JV;7Hs2H+f9!?r(fFNGw{XFqtb4S zeQV|F^;ps(SBV^-GKOpVD!Vbh=JiX5bUH?b-FQv)`la!H8uBt9o%^TD{L6@kzau;R zuQWobM;kRL;0@<`ho!x>YK4x`?%@u18kX5|b$MeN8S4h`b*d-aov#_sUxSA`+@nwz ziTRYTL$q@=k$)`hOYaloeV5(l-b5*wei+!6$L*JGE^PGNBOV6Kk%F?~-IAbAvsT1}h*y-?uh2z-g%Wu_w zy8O0y!)~0j6^@Jl53l5B(Rh5Wcy82TAMad+wod-Z3VY6fw%Q=bIbCi2>o{LAgsBtO zT}joqY2!O^OoQQ!?WZhkja;4a&Oa_SjZdPt1~jcUuF`;fEGw*s+y5R;n7P4LSC4ju=Bs zFY`tjtog^te~-u2(^p#tJl^_%PQ6dIX<3xv9?{4#Q3|5JWj*nt!h6bnXKnt+;{J#c z?48#SDV-Z{i0qSx68n7Ik$oTURy3nJvxpla&S3Zr)#FM8XXfwBDCS=A7qh_Mpt zF&3XoX)spXp?Ub%sP1WAlp%8VM~6ft~uq++)vQelnZ$10@qSe`Z0Uq)NL{L7?+ zSnG@RuliOjJ|UG&IeQ%UsyXw|mAv!Y&8gXQ?B!J7I_zX0I@><(_Q@*crMyM%JSkaX zQRFyYq7C_)#(&ApUDMPR3EUTw*5o@=jEAqZeMQRX4L@S(Hi#JvtLsy{|(b;Q)!e$xEWYL*i&q*KcYolC7;$N^MWzDFGYjOx~CrRAgZ z|NY*mW>X*E*0pV#dV#(bq~E$LFQK9FxwXQyDSqRV&qM6}$>-T|-q&eCZ++t=6hb<;L`u(}BaPC% z>yShte6|#N(jkSyQEUn1w`xCye%rBfF{a_^KCDyobDjaSsH2%jx|9#j59yR-<$ zvE`57s%*rXy<7gerj|cE8zL5On-~XPJm>6`4gE&)IuHp5Bv&r}eb}^rP4uhLjoh)g z2fRvnNlf0E#c%QAy2MKMn=^8HE(g~QGrGYv$CF87``Q+O#Qp%&UgV!MWr&tl98dSyS1Nb%HoG^rFKROLxu+1IPV9e9z_p z_RRBU+s1n~PF0V1+?um(A)Aiqrz~Su_&s!21Y^|8}nF$~f&6I%537 zx>>SDhXv6%S+LhKa$w`xYsi6(p$c_&iwC51cB}2s9N3$yTMc%*>U6{_Q9fQn25bzU zodNr05ibsJE`_uBJ2mXCN;o$3PFNbKxu&>YQfAJvzHQ2b6{(S<0kfy#MPmg)($wq$ za-m$-`-3dMABp+}(`<1(qTl?*dC}F@u40VqTI%o%>AH5#wMLxy6Vf7>qh2AM)8{a% zwZ^LpB}>>Mf2677-w)~D#TN-a970`pOhk8ZYJZf@v~K*Od@^8{@cSk|tbo-&U-+SX zzm)spy!&~H*XMO5v1diU6Q2rvz`WLc`klguA{?k+)WEhB^5urzzh)Vdf>?Pl^SJq< z2?CMpzs;2*($}~2-1{MQNR$+ucEq78-jEv2mNa(j_ET&3nLY#S;p$F@1WH3zZ`PF! z^VE{bKNG1qiAt$ETOp-vT*ea1U%f~z>Fx5G@YZCg%Sj)9MA&`*z2S7NDwT?)78}`a)hYM4tbf*sJA^+Kgq_>TK=ni>6RX&W(n5@^>R|~JF*{M zH?`WoZ#>d%wo%>+>X2-0u-ekCyZ#iswie~4?iQwDXqR&7esf5=yB(6Q9lCm@T^jDW zB_2ZpUW?o`_}~!-XUc-@f?6CZ|L$&u{7YjuR|Z;G5&7ujrvK>~UpA)KT`C_>i4!9u z;}Jy#k+qm355qp}?L}Pilzd*eGmA_Q*B`vR@7-S|L+odO-J|pH+S5ZglJT1OZ^{p3 zVybT%=s@n?3r3g=*meQO^FPwa*!Las6LN;; zRq_?yqqTD80{aV5w||G;M0nW51pPODQscO>DR9q2%6K?xun0NaKE^lASvn!U1`B6H zZ(JPHC%irntrHNRHISh8_#V*}pSr6A5XUX6R(UvUoTjld6zS)mK)4 zT27s;1sM-FWbn;lAT8`YtT&62xzYVb>al&)mBGjuUOsP8;20-c@h)kHx6gH|w3ev! z8taGhU0O4g7SJ``uKq!k(@+1peW88bXwmuH+0IA{hdk+f3cwT2=+(~y`kPOL%Q2tQ z8OOZ>_|UGAPWmNbviroRWbUo3zH*xd((ww()UV0<@i9M+e7tPge0*xGRn?`f*}KP) zu$X7%Xg#UEHAk!BmF}$E3UnbCa{0J*CR945v7xe)xy95kh*@h?7;@?uw2x3nB+P=* zj(|N2_*l-Kg>;bGU7thdj68K#p;UT#mXu_vwLps28|RAmd+PX>d-hQw0TNMbx&4_c zygf5wSZ*)GyHK}N`tnO_pb}^f;SJUk(ix$9!Aiyb?*p=F>$?>i??W63b8%39LdK6~ z#W0sgu|)g3mKnj)_H}qBt`Rj^mU^tExSFWt+3TzGT4PP)C3JCbt+|dBs>Y_cD%wtRhfybiGsA|Qtf_o03a@Kd^zpic*`_&?99m7-Z)q<~ z43FiRxSZaYytUV%OZ&cs81lKiGx5yxdTFfr$MDv~aH?YrjAAZPDCCw~?4 zhYu(dSMrQYy-PUv8yZ1;LqCx8Td)4vS`k^PlJ%wgl(YPTJcWo7aF$7F&8~QacCSy2 zou$1$7DVHCfo@SoZcgq>3_++DTaqXxudTL2y+ga?&yvjI_S}|uEy|B;@Ds)GrTj&0 zxiZ!$zTYTp;qTTkPfIv9^t{XDNy=MatmD+@J4l6L6p@X=T>hSDNMIX(~S)&(Fn>doYcF)^0oDae`($a8Yt_`*4yOF4Qj@MwdKe9%k z5grr7-PO&xzWO%goWv9pdq@QTJG64%OYxM1dueCVrp_K@)7X_q;`NkzMi|7-0QeE)ZA*XC8ZAoRdZI@M6kGiFm1@XM{3N`|&9iZYNzX*16u&hp z>DA>GhbJCcS@;94lIs(P4-S6*m@;;=#}NDBglHewIw|Za7>4g-)47G7cMSBt=We+r78QZhDHFcQ6z(78Fwibkc&yIqMjSB zE>2Tk|C^aK@{&&a&$K$W7Oyz^hrb`gJpDezm&wQ9wX*H;?uXJMNB?9lANH)-YZAj6 zdQ7IikJ<)7PA+C!|2ljoF@z!Kx9P^`II6MQt?TxaggBVmMpr z-M*0V^7e$y(<}_f`8HGQ<>C6(F38c!!`}8SqZh=PQhe9OLdemrR%IjBoD1V)acZ5J zXJe_mK9?D|YYz=tE1MiO`N%&I^`jm!WCQY(f1vj9yK3%;k_jVu(HrWC$j+LyYe*-V z$;wxOKStWuSoOr;r#N=!;=#vk8Lf`5WxJ5`4wP!z?gW^@dV2mDQgWZ}-RqsjXyJ;3WXxE`fH8mBQj->4ctu82S15PDkaoGBzxz6T-_Ynhmy; z^vhX8IChQJk4wd|yo>3sEgbcrRZv!pmTTa&^E1CDL{Sh ztEJZXUo|J~jA-?^Is3yhH|)_||I|I2=QTyFIFrKGkJ)Oppq*Q)w!@GkTdfgn85Xx} zKMQgDSf14uanMu2Q3v)aJ=O6xC|OC`Qitso6sqQ^?eMgzk;6NvJ>Y z*9ooSG09G@c)V$3D13i^Z6q$sT0|6WnGFsX%4*!p;}?6t*<9Hj&f(J`ZbgU;2d-FF zGo9r~WR>G@Nb2L&%5Dv*MyVZBPAt2vy)Nfit{fZZZSENMev(|*=h8^NG`IW5RX;18aJ16Zh(dJ z*Ki9ggemkE#rv4jE8>>$5Dj_laF-$ijMuIkVc{y2@3Z7B&jpTi-*wC#^8J^*dl*8O zx*3*=;9HmttuB8Ke~-r1Ff=RH#R#O>_Px>_>Xp!~!7u$66XNXOCGU&dyUBdnk}~9(LUEvakhxV4n989`%H--dcnfKBtba$eiodZ-^>= zUmG&-;!Ny^Mg~WHFGI?@Tw5&ms!1!XUg{h9IOucw$M>)aobGB$J#4mxnWH(_J)t!~ zAAC*LTGQ=&*o3>uRUtIy~?J%nL!`OLHd!rAc$OkXnZ4e*c0Vz*}fa8uIDG#ck=eor^9lr zg}Ds1dF+6r*F>9To-s%W^a?#=)1N4{Tw{B+j*~Sf4r*R8+a5w+Ib7B6QL{}ht3ovh z)P>k1K7SOwJu0nIJS1H2+}5$$SH|v$0X552u`6q6i@o274G@t|26V#*~ge?%Qq?d^*Q4d zJX;{>$Fn6zAfIPTkD7V5!q~>Mzo7{6OZwBkcRJSG`mHr{4$rpw)e#j^$ZToyP4-^c z(nQA3-O;%s9eUT{n~s==tRTL(;7%kY9V8Q^ z8OJ#k&s<~XK7D^mGK>HBjUjLAi+jkLV_Ac5)=frNE`5(5#}MdBr46!U;O&9ECSLd) znPc_S9Nuv?w(CwH=yqd%MXi zUlWe=USJS;i+Rt^Z(8(?rh`|UQKSGBHo&8iHy~q{X57Y@wsUT;B_i}TZo`~gnFX2? zXA<~()j!^qnjc!JpPO1=CTf4(OCy-N^RZS^--_82<8tgA9K^k9_ItRi!w$?_f!3dW zZf{9y_8gB%s&5@$6CXO;bMmsobK;K?O0<~DeIBX0Ox$vZY;&zqI3!orhcV1NsmcH0 zLOQh%1araLffvl(3K}ZS0D-e-jK|Ke+8Zt>^A1YI~d25 zy$AgrZ&$0Y1$VpQuRm&HvmBj}UU&!NkVZIbG(i4t-&;dY1VKgvTwL{6;H@z};L=0v zw{dqsa#XvtlJ*lfzF)^(K_B1F!-jUwvhRFLd-b)9~QB+`i^IR;Z`Rhj=bujp9grE%W$j+Q077M&}JRMEBgJbVIkzP#?!G`HpaVzT3;8Fe|UA!MmYw*< zxrS;*-96)cgnD8z-O%47%>a?7+*=~)5!p_?^nqzmuYUV2%e^nJfU{rA^jki0ac<|elXwvfuhT9Zmsp2V|}@`vW7TDBj4oG z*7y+^fuJ<{!e_&m)A=0B@7K<^+_vp_a$Dm4+PQN9((~u=v9Pzz&8~HDvv3rfr}?eQ zusRoidpt9L^KmjSm-FYgd7brEVST*LUrEgI-0#ciZhYS7!m?TQDSPsX^JmsiH~+x+sot+;m; zuO{Z1ahq~#9G`o}Q1#=WvA-psgT{T^IcVIz9g}hU`8jAi3^^Rs8o}nEH#<0}HImIi zl(Jr{+@ej5c5T_pRVd@oHke6t_w3F8Ke$mLbmC^o;kmBFv9 z(b7CCZk@vZW-`7N!!QT$if6U?7xY@xR^{96+r!P`_1PRPZkM6}_Q zOM7SMEBaXmX-+pqoYV9s|T|l*Ji=;Q zKR@`6EI*cU`{&tiW!V>~Ch(EY@+swSaJF1of8_?LY&)f@X*58e2By~hFq_`=grpEo6b^;arj+!&%Msh+V@T=FyP$ zYu_JjC$Obx=t;+(SR>goJZ@PIV@N|s7qZXgR_-ZR*_GOrDeTsGt^H_7xv_AGd>V@T z=FyP$Yu_JjC$Obx=za$cStHpr6t^sgF{B|K6MTpzaQUd?^C5*xpem&y+!JKDPUzEn zS{vRV%Ap{;r`iwW+#!!)(;4QxO>V(q-MhMc)^ci}t<~3IB`ZHq!9LerbBk)`y>)Iw zFvk6JYvjl0UR2~6-XlJO*Sp1zy4u`2Kt1!)w}nAzxZx$E|IpZ0|17%yfGR1l!t(Du zw0RRh&`9^mBL5WKI_svrCuIHY6C9|SdvLCm>y6^Ot6QsUH1-4fbDONO`-H7KWKaH@ z>dW1wTiCnw=^lN0K!5P%INvlC zbtJkDNqRy%!aLFK+p?j97iq}b-FNBjZeXvglAwh@<-0Z9wznX(@7;gda_`s~fVRIxk?5RmxawPodT- zvQS_(gA3VydmBR3_<+8ww84^aI!c1&n@>e0GzZIHM=ztHQ0K9*mEt^BTiE=s8t)GF zw#A3E3AA$CQVn(3P#?>YBVA+oR$X`+RPKdyr_Mz8eBm5jJ^IfS?uM)Z zFD$S|J7jG4=85e0%O=wWo-)m2!CBcSKK-GQRBQT#-~8D4(_n+}n_=h!Z!q2leo34e zpEuMpMKLOYy6`ted^SxNrTS3_z3faM+Lpe#G%f9OsX*GNvOE+k(z1MH=_wTTjOgW6 zLowx4D`P>cwy5>nhWcP@NZoW$8#p`kJpMLKt>`tBRu#f2b#|Ghls5CC9BE3mxq7<2 zp6R@q)gCycy?9R?2K)nD?o*=|F6oCXU&|AsbACtojNVX0B`w5(P}NI#AfJg+JNqCp z+Ro~GngK6F^+o;XBIhR^BEt)w)dcU)hW*5 zk27~gBZkdgdrpi+df73I{|c-nl`Z~SLk{eIo5I#q8Trihru7ap)}VvIib#2dL!a<} zZG}%*C_>JR=)?T`)NZ;vK84-GvzO|T0u@WO5^lvk>gHDhV>`#6ZaFZBko};Vpn$LbbQ1gHxT{$QCdXL>7mQQ{A0ng@!L`H|@1b6Bg~WLk2quB=V%lbvII$D{n5alUV)I%eT&4Q&6WsVsl)E?xTA)1wie+>ri+ zEUBLZNjBA-s4R(7wNLZ%ogm0~wuO9I+6}>&TAXADxzaobf-!Eq#TE{0L7=8K%_+Pw zC3-iqUy-B86vh=a?vh>wt;yHDQX{x$?m6w&A^H3fOULVKU1NMhtzJDn(;Q?7DP!I_@4?)QT+1CGQ^EFpYEf@Fr>dw;H-{zkg`K5ZhOl>_}TzR%^~* z{Riz{32zXa2U*E#zuYM1`pOx2_VSDZaP2e7kU@oEXgkP1)~t)Cq!GS3r>1L^nffK= zE0%EtTU)(ZJc@rK(9I;y%Rn5W1!^qa#SJ*g_E~>64O=UW_1yZjTi76NT2$_?w~etw z+971<$EHRia`gGE`LessZxZ(3p*$W~)sQ~&9sE{5({En4oQ!rT#Z!YUBWQETe#^C- zR1$Sz6fd=p!^xS8xAVOA62Pq9m75XmOJT4y zVAr)v$Y6rs<1y_O_|DJgoaaVw9^v8`c+!#GI(hK1483jEwYI+yE%%`F+4hqPZ6ofi9??#1&hH?7APWdN?<^;}t4#R3Cug4LME~&5Pcg$-{QWlRia6nE zu2;5eab`hT|9tM>z5}AWGwy|p`r3dhmZajjO#%cKZBM1$!i%CH!1YlQ+q-!zgzzZXc$tyb^9@%dga3 zzq0eZ<9ScPd$pQxEWy5~ori}N-c7b+{0s!>8GDVMe@Z*=kL}WHC`%r!embX^FjFEQ zPk(7$iO(Z!`IqaF+Re&u$sY|d8)#OLM&d_1Hb533#e^O-0i>$Bu)o>eSTS*XZ=lNtKwdlq%ae%CKDpG;Q>>T{Mc-^rg}8wP2e@+dS`SJHZ|+ z-ClWJ+kB8ZugG)%BWWgxR&3iXxI464ZnoZb+-uhT<5%t&PidvNc?KOkzYeE60z3hbc<_0Im6oPDdFla={od-es?P&HoagAu zYhI^IA0d_I;GnHP_-?JY=iAqU{7$~ZSAEU`yuyjYn|f0V|z^6V3^uJBDf4a~gU*kFupwSc! zwU6iepN4wJ+h!`g$>NUX%idDH==ZLlD~9mSeb~;b(?^3cl;}+mM%Dp%%Yt%>zS= zZQ!x~PFNh)Z;_(SG{=H|4S6+Y#Y^ji4dJn_byCV<-M;nnS0CDtyDqJ9y3loNoo?&c z-gha|ZJDCrDY>gV|J1zIoogP>3M+wQYrbO|W`?CR ze*_N|L`&&5ynnrJGB^ZBDQZno_jKIWrK?h2izp!TY}c2V!)fiFb=)g**JAs5FQ4Bj zwIAEy@c;@~LKt8#W;XAET#)q;#w?(@gcUUW{e05cJjg77_2}L}yh0Q_{cB;dyd5vk`#POM&IHW4vE$<< z^n=)3Ii>g5tu-63gxAR4B7^S^?FcmUt~b0atZIyh~L65uGrqr$X&?_WBswdHM^Eb%-2~)vYY)8Tf-K!IF8K}p4)vDzNFMWz zcIbt9yQib)`|Q&g)zRvBTaD#V8s1RK=HP7D{%=P%ObTOP5qGPe5UTvsK^gG zZP6fe_68b`pKauFz@^_DYp2F}Jf3Wm;Jpf1B{`nYx97S!Y#Bt__5Pe2DTfaLcj^v^ zYqGx*@u7Q7ya;xN+)n@nan`iPnEd+(YoY>-Rj+3kW1-`bJzE2>wr15?w-Z5 zGzWLgzVcD`dhD^3W_B-l|r=)pK|vG5a^Bh zmqtF|Thct(i&gSmeoc3etR7___svI1bkLtL6xu}jXd_Q%pAzV~PNkOz64^`Nf zm{am=G=xVn{)72D*G4IsxQgofqId!b1_@+WIoNKz7sQvh(JHm8cHh-4w z@T~bT=XlfH9{H5&_ChsKR8^P!bks>WBHsx6(Ztru)!O}$m-Nb|ASw04rN*hx`{qO1 z?QwJ4_oba}@~pY*y|_0)QmJ6DeOTM_ z36EBZ9q6tv)>+(d{qvlgvE+`xSQ;+jd7M0pC!XJ5N1MMW?we!R#Jy58PH)G=u*`YB zG}jHYw#V&VNW0G25@!l45X~k0oOfH#y+L!0ZqZ0Z9wlZAY z%b4yRfibK7u=gpRaa=3H<-o)FjXPR7*KvFI+Y@($QV!(yP0ci1&H^hd0NuNR&M5VrkuJP*gG1w4y`x>l%`P{_ny*(DQ1^v{r)SYvE{xTE4 zFD067TBdSkPTc1~U87GVF+Vi=G-}Q56L-R^6oniAI;Ny6=<*(EVx3CxkADcOH)&Ofatk=gF72k!6&286a zu2WoxvvGEtPh}Bum)?cKV_n8=h4J3^5-9~E|oj3MDR)~#Ymse zp(>S&tL>;s^@2Pk&|A*P4wS0q{bN?TejP0xud+{V9kriyCF50o!rSII8$WMON>p;xQ}4-z?nzrNRl5y9!omHMJuA76G*b8cnr24a4=VT0DpFP`l`1)+vb26Z; zp8iQzO*D6hmh>@N>v3PuDfKaSjaQ$K(S|sbvUz(sloGZnzsbVeU�O{=9O~hO`3k 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 diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.resx b/PROMS/Volian.Controls.Library/StepTabRibbon.resx index cf608a76..4a1e760c 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.resx +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.resx @@ -121,45 +121,46 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAI0UlE - QVRYR53XSWwb1xkH8JElS+i50KUIempB9FyguQRoiya2gSyHOEWQADnkFtRxmwRBENcIigZx0sDNVsCJ - d1mSZcv0EluS7aS2JFv7QslaSIkUd3KG+zILZx/y3++RVBzvTgf4YzhDit/vfe89YsSx41/79nN79/yj - 9ejBEz/vOtLb2XWkp7PrKOVYIydYjnffThdds/z43vGezu4TvZ09J04209d5svtUZy+d93/62c8unh+s - 17rvMdh3k+s/fPmXKyPpq4GJ4mJwpugJe0qe6FLJE/eWPIn1socPlD1CqOxJRURPOip6MjE6s9DrVIS9 - V/LwwaIn4S94Yms5T2Q16wkupT1+D+8ZuTL951K8yrW0tDQr3nVc7p3k3Ie+dwVuyKnYjIXkgoXUio3s - uo180EEx6qCcqEISapDTNShZoJID1HzjrGTZ/SrElINS0kI+qiMTUiH4ZcS9ZUwNL+2ChAcDhnonuDOH - vnP5RyUhOmUiMW9CWLaQ8VnIBQgRtlGMESLpEKJaL8aKVhIaKhnnNiLDEDYhTORjDFEBH5Awc2N5FzQ0 - q93nGOwZ5/oPfudaHxEJYCA+b4BfMpH2Wsj6aUQhBmBf7EAUCJGhkS/zMD/8DMapoUYnCpQ8IbLUqbSN - smCikCBERMHc+Mou2I8EXHWtDYtCZJIAcwaStwykvCYBaDQhC4UoARLsiwlAI9aOnYVxqA/64E1oORta - ie5R1CJNUZ66RPfEDCF4DZ4pAuBhgO6xJqBMAB2xOb0JMJAhQC5IXxS1mgC7DjA+/gr6ue+hzaxBK9jQ - RUCXGtHEGtQyTU2REFkdi7OrDwcMMMA3DUB4UiOARgAdwioDGMiFGMCsL7AyzbFErTY+ovYfPQXzP0eg - FwwYSg1mBTDVZio16EoVFdHE0sJjAE5/c8XlGy7dCfDSHNYBBgoxAvAWxLQFqUSArw7D2vtPWJ9+AUO2 - YWo1WHoNjgk4ViO2RZ/TLKwsex8OuNR9swkoEkBFbF5FYkmD4NOQCejIhQ0U4wZKtLDErAmZWqyfG4Kz - bQfs/V/ANGuwzSocu4ZqtYZajcrRwc62bcPr/QmA0GSlDkgu0z5eI8CGVt/XxaSBctqg9ptQJAf6og+1 - X/0aztFjoLpwHIeKV6koAzQFdLD7jwQM9BDgIAMUhNAUATyVOiC1rtJeJkBMo9HrEHMG5JIBVTah58uo - PvscnCtXaIc1Cm0iNiE/HTBSEMJTCmILCpKrFaT8KrIRFYWkhnJGg1TUUZEMaJoJM51B7ckn4XzyCWwq - yFp9PwS79vl8jwLcIMBll2+UADMK4osKeF8F6WAFuZiKYkqFmNegiDrUig6dilk08urTT6P64ouwBQE2 - FbobsQl4dAd6CXCIADfyQmSOfr+XZAjrCjJhBflkBaWsSitfRUXRaPQE0DQ4b70Fu6sLzjvvwPn6a1jN - LtyNeLxFuNkBBpiXkViVkdqQkY0pKKQUlAsVKLIKVVWhGbTnV1Zo/p+FGYnAXFhA9YUXYPl890U8FuBi - zyh36uCQyzuaE8JzEgEkpIIycgkZxawCqazQ6Ct1gEoAa98+2O++C51hTBM2daD66quwksl7EJZlPUYH - To5ypw8PuXw3c0LEIyHpJUBIQp6XUSrIkCUCVCqoUOu1cBjOjh0wJiagUfE6QpbhfPABqq+8Asvvh0Vz - b7NQVZMQPr//Lw9fA30jXP+RIdfaRFaI3hLBr4vIRCUU0hLEEgGogKIoUAhgfvkl7DfegEbXmq43EDRa - o1SCs3cvak89BbuvD/boKJyBAdi9vSi+/HJvjeN2EuE3lC33UAZOE+DYkGt9KivEVkQIGyKySRHFnARJ - lOoAmXWARm8//zy08XGorDitftYJ68gR2NQBZ/duVHfuRHXbNtSeeAK1Z56B8/77ELdvP09F/075N+UP - DHAHYrB/hDtzfNDln80I7AkmFS4jJ4goFUVIEiEoDGB8/jksKqLOz0Pv74d54ADM48dhXL0KY3kZBs/X - p8PI5WBfuFAvblMKO3ceog78lor+rpmWOwHuYe7MiUFXYD4j0PMf0tEy8pkyymURIgNQcYVWvvXSS9Au - XoQ6PQ01GESF2s46odI0sN3BpkSnsIVp0NybNGUGfS69Z88BAjxHRX9P+dM9iKGzw5y7e9C1sZAWkoES - MokSCjkCsOI0KimRgPHee9Bp/lknZNoNCpuSZuq7g21RKsgAdURzh7BF6l1fry/CZtE/UnZQbq+FoXME - 6CHArZTABwnAl1AslCGPjUEZHITa0wPztdcg0zaT2Hpopr4wKT+GMMQmhCHY69XVxvNAnmpR0TbKVlb8 - B8Dl89e5s70DruBSShDCRWSFAuTePqg0x9LMDCxaWMp/r0GUFYgiTQubms3QdX2himy7Eoo+U//NqDQw - DLUJeOBx+QIB+giwIghCvITyyTPQ3n4bZfp1M15/Her+/SgWWVeKKOaLND2FO1LM0X1KKU9/S50T2eIt - 30YtL9FT8cMAVy5e586dGnCFvIKQCmWgvvk3SN9+C233X6HSqs/Hk8hmcsimssgIGZqie5Pls9S5LHKp - HPLpPP2CNkAsiwuLjwE4TQAfL6SiWZSPd6OyZw+kDz+iR7IgUnwaQlwAH+PBR5uJ3BW6J0QFpGIppONp - ZJIZ2sq5ejyznkcALm0CkkIymqEvSdLDSAB8nEcimkQinEA8FEcsGENsgxK4N/FAHPGNOBLBBJKhJPjw - bdDs5OyjANe48/0MkEglQikkIknEI4l6wWggiog/gvB6GOE1ii+MkDf0Q8JeusdC9yO+CKJrUUTXo4j7 - CbORqIOmx6ffhPMAQEdHB3e69xx39GD3L6bHPAfnpxfPzk7NuWcmZtzTY9PuqZtT7snRSffkyKR7Ynii - kesT7vHr443ztfH6681r9v7k8KR7amTKPX1j2j0zNuO+dOHS9hyfa1a862hra+O2tm/l2tvbW9raW9u3 - drR1tLa1dmxp3dLR0trS0bKlEa6F66CP/79ppdznn1OO+x8FMcZP/Ws5zwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAI8klE + QVRYR53XSWwb1xkH8CdLttBzoUsR9NSC6LlAcwnQFs1iwEkOUYogAXLILaijNgmCwK5hFA2yNHCTOAXs + yPEiS7IsmV5iS7KcNJZkW6slStZCSpS4kzPD4ZCcfZ/h/IsZUnW9xHL6gD+GHALz/fC97xEkIYSQf3x0 + iBzY/7fmE52nf9p1vLet63hPW9eJnrauk/Wc9nOq+266eur533unetq6T/e29Zw+00hf25nus229p/va + Dn362U8uXxzySz18DfXdJANfX/35yljx2sZkdTExW42kInwks8RHclE+kl8XItSGEKGTQoRJi5FiRoyw + WTFS9JMRI0za/4yPUIlqJB+vRLJrXCS9WookloqReISKjI3M/JHP1UhTU9P9pevrau8UCR/7LrRxQ2ay + szYKCzaYFQeldQflhItqxoWQr0GiPchFD0oJUDlAK9evSsm/X4PIuOALNsoZA2xSAx2XkYsKmB5d2gsJ + PwwY7p0k5459G4qPS3Rm2kJ+3gK9bION2eA2HJRTDqpZF0LBhUTXgmJ+UTWvQ2XduwjWRzjgCxbKWR+h + gtqQMHtjeS903F/27hrqmSADnd+G1sdEOjNtIjdvglqyUIzaKMVtlJM+wH+wC5F2IbGAukzB+uAzmGeH + 652oAGrZg1yqQSo6EGgLlbwBNq1gbmJlL5xtAddCa6MinZ4ykZszUbhjgolaKMUtlJM2KhkHfN5/sAuJ + A/ST52Ee64MxdBM650DnEUSrelDKNcicA5G1UKF0RKZX9gKPAnTfagAEOj1lIDtnNAAm2LgFLmGhkrEb + ACcAmB9/CePCd9Bn16BXHBgiYEj16KIHTXChVh2IJQOLt1cfDRj0AV/VAakpHdk5HYU7BuhVH2CCS/oA + KxgwgXEglT2YH34G88RZWP86DqNiwlQ8WCpgaY2oHgylBlW0sLTwGID+r0ZCsVH+XkDUaABMVLIWeMqG + WLQh8R7ML7+GfeDvsD/9AqbswNI92IYH1wJcux7H9mDqNlaWo48GXOm+2QBU6dSUhuy8hvySDjqmg90w + wKVMVHMmeNqCWLIgix6MC8Nwn90N59AXsCwPjlWD63io1Tx4HoLlXx3HQTT6IwDJKTUAFJY10Gs62E09 + ONfVggmhaEIqW1AkF8ZiDN4vfgn3xEk4HuC6Lmq1GjzPBzQEqN/fFjDYc5P0d/qACp2cVpGNqAGAWdfA + JnWUszp42oDImZB5E5pswSgLqO15Hu7ICJxGoS3EFuTHA8YqdGpaQXZBQWFVBRPXUEprqBR0CKwOqWpA + lUzougWryMJ78km4n3wCp1YLWv0whP8+FottB7hB+juvhmLjFTo1qyC3qICKqSgmVHBZDVVGg1jWoYgG + NNWA4TiwR0ZQe/pp1F56CQ5Nw3HdBxBbgO070HuD9B+7GordKNPpORm5JRn0ugI2paBcUMGXNEi8BlXR + oesGDF2H+/bbcLq64L77LtyjR2E3unA/4vGGcKsDPmBeRn5VBrMpo5RVUGEUCBUViqxB0zTopglzZQW1 + PXtgpdOwFhZQe/FF2LHYQxGPBbjcM07Odg6HouMcnZqTkF+VwCRkcHkZ1ZICSVCgKmoA0EwT9kcfwXnv + PRg+xrLgHD2K2muvwS4UHkDYtr094MqZcdL/9XAodpOj0xEJhagEJimhTMngKzJkSYGqqlB1HXoqBXf3 + bpiTk9Atq46QZbgHD6L26quw43HYngfHDwDLH8J4/E+PBAz2jZGB48OhtckSnbkjgloXwWYkVIoSRF6G + LMtQFAWKrsM6fBjOm29CVxTohlFHOA5Mnod74AC8p56C09cHZ3wc7uAgnN5eVF95pdcjpB2E/AqE7HiA + Mtg/RgZODofWp0t0dkUEvSmiVBBR5SRIohQAZL8DqRScF16APjEBzS9O00En7OPH4Rw8CLejA7X2dtSe + fRbeE0/Ae+YZuPv2QXzuuYsg5K8g5J8g5Hc+4B7E0MAYOXdqKBS/zdL+LxgmJYCjRfBVEZIkBfEB5uef + w+7ogDY/D2NgANaRI7BOnYJ57RrM5WWYFBVsh8lxcC5dCoo7+/ah0t5+zCPk1yDkN4003QsIj5Jzp4dC + G/MsnV8XUMwIKLMCBEGE6ANUFcrKCuyXX4Z++TK0mRloiQRUng86oVlWcDr8LTEMIxhM03Vh6TrMRALF + /fuPeIQ8D0J+C0L+8ABi+PwoCXcPhTYXinRhgweb51HhBAh+cYqClM/DfP99GIcPB52QNQ2KvyWNBKfD + P6K6HgACROOE+EMaXV8PhrBR9PcgZPc9szB8YZSEe4ZCm3cYmkrwYCke1YoA+dYtKEND0Hp6YL3+OuRC + AZI/D40Eg6k0TkgD4iO2ID7Cf726Wv89UK7vfQsI2XnPHFy9eJ2c7x0MJZYYmk5VUaIrkHv7oB05Aml2 + FnZ7O5R/fw9RViCKIkR/a7YiivVBFf3jKkORG98Zah3jo7YAP7iuXrpOzvcNhhIrNE3neAhnzkF/5x0I + sRjMN96AdugQqlW/K1VUy1VUuMo9qXLVIHyZh1ARIPrDK9xFLS8tPxowcvk6uXB2MJSM0jSTZKG99RdI + 33wDvePP0Do6UM4VUGI5lJgSWJoFSz2YElVCiS6BYziUi2VUS3WQn8WFxccA9A+GkjGKZjIlCKe6oe7f + D+mDD8HGE2CoIugcDSpLgco0kr4vGQp0hgaTZVDMFcEWWHA0FyRyO7IN4MoWoEAXMiyYbAHM+gaoHIV8 + poB8Ko9cModsIovsZhbZjQeT28ght5lDPpFHIVkAlboLuj11ezvA9+TigA/IM/kkg3y6gFw6HxTMbGSQ + jqeRWk8htZZCKpZCMpr8b1LRVD2xFNKxNDJrGWTWM8jFc8hv5gPQzMTMW3B/ANDa2kr6ey+QE53dP5u5 + Femcn1k8f3t6Ljw7ORueuTUTnr45HZ4anwpPjU2FJ0cn67k+GZ64PlG/fj8RvN56738+NToVnh6bDs/c + mAnP3poNX7l05TmO4u4vXV8tLS1k566dZNeuXU0tu5p37WxtaW1uaW7d0byjtam5qbVpRz2kibT63v8z + zX6th/05/Q8FMcZPXTFPhgAAAABJRU5ErkJggg== @@ -168,61 +169,62 @@ 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 + zX6th/05/Q8FMcZPXTFPhgAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACLUlE - QVQ4T52TvY/ScBjHuVIRKHA9JAgnL+VoC7TX0kLLS6EvFBTa0uj5J7gYF+PsfpOTMrg4ORgHY+LCYJwc - TYyJiYuDLu7GxHgxd/Hnr5fA8TZcrsmnzfN9nufTNPnVBwDw2ZYljGzr3ciyTNu2EC87L75eb+DvD67f - hU9g9vt/HNs5cMaOf9Owohro7YNbe8PhjfuzzBOgkDuabk6bbRXoxuBkNLIeus6yhKyIwY5umo5tHxmG - +Wwu8G5QkIa0jN5gqnR1oOkGuOk6b1x3jHl9uaWGhpb1UtXNY1luPmJ4KbIkmAElAcgD3egfa5oJxq77 - oq3ovKJoE7XbBbwoTWhG2F7cWRJ4dFR1S9fNCvykT41mB9TqjSOxXvtJM9zrYokLrc4vFYtUBcngq9Lf - tqICvlr7RhQr8U1za4FHXZIIurT/mePFf1AEJLkFGJb7uml2LRBrcp4us1+g4KRcYV8lkmkplyenglgH - VIm9tzq/VJRZLpUlih9yBQrAt79Pp3bjkVgM244nsPwe/VQQ6r8pRsgu7pwtC61grkA/T10r/NrnxB8s - V2VmvQiOB0MhLMZVxY/pDPEkU6DnZ2Qu2M0STjJFAIpmAUmXD0NY9PQMzEBRPwJzkiSp71F8J1/ipNMj - f9rE8XggkUgexq9cBXmi+DYYjtCRGL72T+D4jr/RaE+waFgu8c0zgUcmT9UuBS4/9m0hmh9Fo7N8FXih - CIKE5/Vi8yJsDM8P8P0HLGwR4Wl3ICYAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACL0lE + QVQ4T5WTv4/SYBjHe6UiUOB6SBBOfpSjlNLSX9Dyuz/eUoW2ED3/BBfjYpzdb3JSBhcnB+NgTFwYjJOj + iTExcXHQxd2YGC/mLr4GErijnIk3fN7kfZ7v80ne5HkRCCHiOo40cp03I8exXNdB57X/BQHADgzsq7cB + sKE1GPzyXG/fG3sBf3BOVzOxm/s39obDa3dPCzAA7Fu6Yc1aHQ0apn08Gjn3J966hKrKoZ5hWZ7rHpqm + 9WQlmB8A2BkA7LYJ7Fm3b0DdMOH1ifdqMhnj877a1sJDx3muGdaRqrYesIISXRMsAcAOAmDfM8zBka5b + cDyZPOt0DaHb1adavw8FWZnSrLR9embjnT1N2zIMq6ob1odmqwfrjeah3Kh/p1n+ZanCh/35DcESUVJM + QVR+d7oaFMT6F7JUTfgz/xQ0FIWkK7WPvCD/ESUFKmobshz/2Z87UyDX1QLNcJ/oSu2YqXIvkqmMki9Q + M0luwHKFu+PPr10Yjk/nyNK7fLEMeUF+m0nvJqLxOL6dSOKFPfqxJDV+llkpd6aAkdqhfJF+mr5S/FHj + 5W8cL7LLXpQgQuEwHudF+X0mSz7KFunVjqwEuznSS6VJWKY5SNHMQRiPLXZgCYYFUIpmKIoqf40RO4UK + ryxWftEkiEQwmUwdJC5dhgWy9DoUidLROLHxJwhiJ9BsdqZ4LKJWhNaJYE62UK5fCF58iGyhegDDYv7h + JQiCYCiKRlZ3f+C8bBTOy18sbBHhuWUzeQAAAABJRU5ErkJggg== @@ -231,554 +233,554 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABL0lE - QVQ4T7WPuUoDURhG8xxaCHY2Yh+wECREVCRxHBOymMlMZrKYZYxLOhVBCAiCNr5AxFJfwd5C0catEsUm - hYiFxXFCCEq4TmJu5OMU93A58HuAviKUMnw/ftn90zs7tVeuHt5cfjnrJtiK1c4/SVZv3KOdgj9j+6d1 - zMMX1O1bHp8/xNFOwUZsTD3Bq52xWaszuXLBSOCYId9Rb8HWJsrXGHt3DI7vuvxy1m1wNHXJsO+AAe/W - 34KZUgWrUMHMb6Dn1tCyqySsMjHTJqKXCGkF1KU887EcgUiWuXCamUWLadXErxhOoi0ovX8PWsXmucby - OsnGuekyccsmatiEk0UWEjZKPE8w2jg3w2yoee6UksIf1J1EW7BfCKUMQimDUMoglDIIpQxCKYNQ9g6e - L18OKkyOPi51AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABLElE + QVQ4T2P4//8/AzUxhgClGMHBAe8+/fq/Zdmr/5fvfcajikgDYYYtO/z7f3LXNfyGEjIQ2bAJG9//T5/y + 4n940+3/959/x6KaCANBhhmEr/xvnbTpf8Oy9/9di8/91wxa/l/efSYW1UQYCINOJVf/p/be+S9t145H + FQkG6qVd+q/kPvm/lHUjHlVYDMwqrPyfkV/5Pz2v4n9KTtn/pOzS/4kZJf/j0ov+x6QU/o9Myv8fnpD3 + PyQu539QTPb/gKjM/74RGf99wtP/e4am/scwkGJIcwMzCiDeTc0t/58M8m5myf/4jKL/salF/6OSC/6H + JRb9D43P+x8cC/Ju1n+/SIh3vULT/nsGp2DxMpUwhgClGEOAUowhQCnGEKAUYwhQijEEKMUYApRiAF8O + KkwDPuBiAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABMElE - QVQ4T6WQvUsCARjG7y9pa4i2hlpzy0iN7PIUT/Pj8k5NvcM+bOtjqqWxKBCDIhpqLAhqcAoiaBGXw5YW - sS1o/NXhcgdndMmPBx6e4eF5XwEYSq6hF7mGXuQaepFr6EWuoRcJeb2GWq6RK22SLa6TLqyRUqskcgbx - rE40XSayXGIxUWQhXmA+phGQVOYiOfyi8tMyJDb7PwS10p+vrG6QseZrVZKqgawYxDIVllIGYrJEWLbm - 5wlG+/NnxRX84ay9y0nt5A1pq0nIuLfeNRCbdbJ30aXx8IVPufFWMJ2+Qjt4xSo4vv0koN8xJV8yOnPo - WmSzfVpmj7HQKbsNk+3zLtJOmwmxzkvr/W8FFu3OB5OxM/xGk/HgEY9P5sAzbNZJu9NjxLdP/fr5lx8g - fAPOtXjW7jTlPgAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABLElE + QVQ4T6WQu0tCYRyGz1/S1hBtDbXm1onUyE5e8JKXk8dLXg52sa3LVItjUSAGRTTUWBDU4BRE0CIuYkuL + 2BY0PvEhEvQp9CEP7/LA7+XlpwHaKJGEaiShGkmoRhKqkYRqtHSxjJUvk8xtk8huEstsELVKhJM2wUQR + fyyPdzXHcjjLUjDDYiCF02ex4E2iGybaqEhCFc0q9Oab61vExfxUiYhlEzJtAvECK1EbI5LDExLz07j8 + vfnzxhq6J/G375fy6Tu+nTpu+0G8ayiS6HNw2aH2+I3DvFUrmI1dkzp6QxSc3H3hLN4zE7pifK4ysEgS + jVaXCfcZ+7UWuxcdfHtNpowqr42P/xUImu1PpgPn6HadSdcxT8+tgccCSfRptruMOQ6p3rwMPRb8AM61 + eNYtKznlAAAAAElFTkSuQmCC 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 - 8L+D8Bsb4cocWY3wtQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACYklE + QVQ4T6WSXUiTURjHX+jCboo+qKuuCqKbKCqoLjIKt8KPFovEFi0XsU1KNlnaNlJzpujSzaVpW7Qv1OZH + JYqToiE0HH3P2Iw+JJpGrmXt3dycy+If74mFrwsiOvDjwHvO//c87zmHAkD9D2kfGNwDtXDd0qDPooKs + MGf74nWWoLddr+ht1yOFpfE4wsEOxILXMTHWgDIxF/oaBa5q1TDUlDJwFguQoHuQjHQjEe6EvU2B+LQN + ZRKe/+WIEhfO5kIp2oGg+ySmneshEx5CmoAJJyMOtNaegNfTAPpDM6bG1HjnOYV+Ew8SQSY6ytfhmZ5C + 0bEctqDb1vhLQN+EtlyISkUB1MX5OF/Eh0LMg1yUC6kgC02yDURQkJ3JFnSatZijuzAXMiI+WYfQi2L4 + basJPusqeNuW4bEhg4QZsnZvZQvsxlrMhiyYDVQj/uoMYs+PgB5YDp3ViTpjHy5e6YJSa4dcY4JEZYCw + pJ4tMLdoMDNhQGxMjJknuYg+2IZPd9aQcGok578jHEkgMBVGvrQKeYXq3xLKpKsA/boa0UdcRIc3IzK0 + FhNWilRmhvm2m2B0uOAbD5LwvRE/DvBFREK11KvwZfQcIq5NoAdXItSTgfEbFGn72/wPfI0mEPgYhu9t + EJ7R98gWyMHli7D/4GFk7tkLqulSKUIPpaAHV+Bz71JMti+Bv5WCTGMibac6uOZwodk+hP5hP5kZdm3Z + COpyZQl5IKlTTiFWGViV73vekHDPXS8czqcsAUdXcRoyIQ8iPgd5+3aSBea0mX9OVfsTRLDwShZyVFpF + NvyNtOC/8hMb4cocvUYexQAAAABJRU5ErkJggg== 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 + lAGEMIYAqRgAbgzMptd1HX8AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB5ElE - QVQ4T2P4//8/RRjOWHXoq9TKg1+nLD/49ci83V8f9az/klK58AsnsmJsGEyANAPxp7k7vz6uX/LlTuOK - L49bV325U7Hoy+fKRV9S0TUhYzAB1Hxz5vavb9wrH7w3T9jy3Spl2x+H3ONfUyZ/flE458uLwrlfwkDq - lp34auBQdA3IRDNg6YGv98M63v00i57/2yVv/U3T2DXHgPiLWfzm38mTP/9Nn/n5WfbcL5HzDny9ap15 - /D/QQrjXwETD0i97XMvvvFf36rkVULtdBSRmGrsy3zh6+VedgNm/Qjs/Pge65H/WrM//TeK3AqXRXNCw - 8ssh1/J7r9Q8+w4rONQxwyRNYlY4anhPWl02583/6N7P/72b3vzXC10MlEIzoHnlly3e9S++anhPvgk0 - gBUmOWXrV10gBtvs2fTqv1nx/f8aPlOBUmgGFEx/XBrY+uavUeSaX0ADuGGSoACzAvrZJH7bf72QJWDN - qm5dQCk0A3o3fGVLm/z+n2vZ7T/qXpPckRUgBxg2DGeE1Z3PDen48M8iZd9FZAWEMJyhFTCb0b/62kv/ - lg9/HfIvxMT1vVdCVogLo3CAhvD5VN48FdD6+atH9WNnZDlcGKugd8Or0Kjez5HY5NAxVkFSMFZB4vF/ - BgCu1sRwcCvT7QAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB40lE + QVQ4T2P4//8/AyUYzlh16KvUyoNfpyw/+PXIvN1fH/Ws/5JSufALJ7oGdAzXvOrQ109zd359XL/ky53G + FV8et676cqdi0ZfPlYu+pKJrwmbAzZnbv75xr3zw3jxhy3erlG1/HHKPf02Z/PlF4ZwvLwrnfgkDqVt2 + 4quBQ9G1/xgGLD3w9X5Yx7ufZtHzf7vkrb9pGrvmmGnsmi9m8Zt/J0/+/Dd95udn2XO/RM478PWqdebx + /6sOfYV7DUw0LP2yx7X8znt1r55bAbXbVUBiprEr842jl3/VCZj9K7Tz4/PCOV/+Z836/N8kfiumCxpW + fjnkWn7vlZpn32EFhzpmmKRJzApHDe9Jq8vmvPkf3fv5v3fTm/96oYsxDWhe+WWLd/2Lrxrek28qONSx + wiSnbP2qO2XrV7DNnk2v/psV3/+v4TMV04CC6Y9LA1vf/DWKXPNLwaGOGyYJCjCrzOP/TeK3/dcLWQLW + rOrWhWlA74avbGmT3/9zLbv9R91rkjuyAuQAw4bhjLC687khHR/+WaTsu4iuCB+GM7QCZjP6V1976d/y + 4a9D/oWYuL73SuiKsWEUjlbAbD6fypunAlo/f/WofuyMrhgbxhAAYe+GV6FRvZ8j0cWxYQwBUjGGAKkY + AK7WxHD7c7sYAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAACG0lE - QVQ4T51TbUhTYRQ+WVgw29h258012txsLXSOiAJd8UIZSBFkVhAYBUWIYqZhhQ4ug8JWmR+Ykj9CEkaN - pB+lDGQMspDAoqDCws21K0T5Y8Toy5Sn17rIiH54feD8OAfe55znOeelJaHd5aEbm3RKph4l4XVwBC1R - JVWP8lEBdXENtF0WSSmpg/uRDedntNgVEUD+PKaUFdzaquPBqHcLo+5iRl2FjGtm1OZkdNXBqNXG3A+t - OBKz4dSkAdbbYop8xgw/+OPKlyJOvtfj8CsTysfy4I1YsNDVGiqAod8F2wMXDk3aUTGRj7InZuQEhAw/ - eOd6eS1a09m4+EmD6oQeR9/mYu/4epQ+zkdh2Imikb8E+yecKHtuhyNkQ1aLTvGDj90g56BjdhUC39fA - n9agOaVD44wRtR/5ZNNmVCU2LBLsebMZ26MuVI5wP+qzPbSguSGpUUXQk/aiKmoA1a3kBNywUPIm3s0H - 8WK+E6NzLQj/Oo3B2QO489OL3h8b4f9iWiS4/HkfuuUdMEmrFQnc7bbxPgx9GMT9RA8GpiT0TVWjM16B - K7ESSDE7mmTjH4Kzyd2IfG1EcYeYYeK1Ah0F7HxdVkaXLIz8ZkaSyMgnMGrWM7qgZe6QCcfiRXg914+D - wW0pqs1Sd9buuwKefbuH62NnQDUr/jmkJaBp6ByeysOw+MTlnfLxgRPY2V66/M9ENeTh8R/dRL8BDkAX - agnC/hIAAAAASUVORK5CYII= + QVQ4T52TX0jTcRTFbxYWzDa2/dYv14/2c7O10G3IKNAVXygDKYLMCgKjwAiZmGlYoYMxKNaqNZXlmA8h + CaNG0kMpAxmDLCSwKKiwcHNtQZQPI0b/TDmxElmjh+nn8V44l3M4l6gQvAYz3dgqyx8XTHV4I3RBIZo/ + L5i6cQ6tcQmkfYIjf1cQxocizs9KsTvCgZyl7N9twCKjgIWRv4qRz8Sor4KR18DIo2d0VcfIJTLjAw2O + xkScmlZAc4tPk12Zk0fAwhpe8Gh6J8eRlyrUTZTCGhGQvaoJlUMxaIB434DD01rUT5Wh9rEaJW4uJw9/ + FWtLrYcrU4yLnyRoTshx7M0G7JvchJpHZagI61E59lfgwJQetc+00IVEFHXLFvPwmVh7qgQ9c2vg/r4O + zowEXWkZOmaVaPnIo+mDGo2JzUsCe19vw46oAQ1jHKit2ExZz+1JybIE+jNWNEYVoNbV5mxJWCh5E28X + gni+0Ivx+W6Ef53G8NxB3P5phf/HFji/qJYELn/eD19qJ1SOtYsWPHrmmRzAyPth3Ev0Y2jGgYGZZvTG + 63ElVg1HTIvOlPKPwNnkHkS+dsDUw+eEeK1cRm4tI5eG0SWBkVPNyMEzsnOMuuSMLkiZMaTC8XglXs0P + 4lBwe5paipZXa+MdDk+/3cX1iTMg26q8IhVA58g5PEmNQrDzK6vyiaGT2OWtWfkzkY3MZKP/+v4NDkAX + agkV7KYAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACh0lE - QVQ4T4WSyU9TURjF+5+4YOPKYOLGlYmucAEoMSExxoVAwCKCIhEEFYMEtSBCJDRImawgDaARlASVSUFG - FXBoAZmnFspUW9rX937e9jUxkZe4OLn5bu7vnJMvVwf8V7aWg8NbQ8ffY8+yTTaHKaymTv2eONki7hs0 - gX/ls0aZZ9sPw7aBhZ5YcRYz8/oQrrGIF5rAPolkdstA6md3qUmcvQTmDWu2xmMNWRsPKHOdMbhWW5DZ - wu1oJTAvdhzRBvbJnnWD7VILe50WYWIRTSxiRnbkazzWkGSLjp55E26R13IsTtMx6IhTdzB9GV1VwwSV - z8apePoFY80oj01DlBgHeFjWx4NHPRQUdmIuz6W7JQflaz6bjZGsN8WyO5XM8sBZdKb6cRRFQZIVvJKM - e09mxy3jdPmxb0ksOSVm7T6oMsLNLDgfBafDMJw6Ksqh01Wax5AFnFa+iL5kgbjCec4VzOLYkVjZ9DO/ - rg2nXn2uGjwR1SW/wpm8GaJuTRORNcmJDBtrgfQNSYVzMgUcCTEqPGDzcCm1XjUw1n7GJyl4fDIuj8ym - qO7Y8bMsqmslD0156LN60KeYVYPy6hH2BHy3boS8miHuVA9w29QP68MhWCSH4CtFbaQaXvHhp4ckfZ1q - UGYaxu0Vi/P4g+n27VB6wCAg0SIAj87sMTjp4aOAe767SUyqVQ1KKwZxic0HG9SKBlVqg+Fw8QVCcEZp - B+nF7aEGrXR9cxOfWKMalBg/BdOdu/7g4padPmYdPiZXvPxY9DI252X019/0bpH+btxNXEKVahD4MIaS - Xu4VdZF3/y25+e3k5LaRmf2Sa9ebSUu3kCI2rk82k3ixlviEai7EmYICdH8AxXsU+dXRvF8AAAAASUVO - RK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACiUlE + QVQ4T4WS3UtTcRzG95900Y1XYdBNV0Fd2YVaEggRXqSiaTbLJJdWiomVmimJw9x8W5pDV6QlWPlWmk7N + 1Eyn5vvbptPp2tl2ds4ntjMMctDFc/GD5/k8D19+KkD1P1lMYcN75rOfsGoss63HZTbVc78nz5ssprCm + I+ZQ8s5EGRY7ToKjiJXeWHCUsvDuBM7xiNdHzCFl1Vg4qABxgIO1FhD78L93ZrJDmENopvmYvNQVg3PT + hMQeLlsb/vdq56mj5pCyau7iKDfi7jI6N01GxAEjjnIkW0EIcwiJlujohffhRmkrx2jXnYHOeOUG8zdQ + 6ZsmqX45QVXDGNraUZ7rzJRpB3la0c+TZ70UFndhqMylx5SD/L2A3eZItltiOZhLZX3wMipd4wSyLCNK + Mh5RwuWW2HdJ2J0+rHsia3aRRasX9Fq4p4G4KLh4nKILp/GvU1UbxpEkmfTKVVLKVogvXuZK4SK2fZGN + XR/L26HD6luvFMCLhjFEn8yl/AWi7s8ToZnlXKaFLX/7jqiEc7IgLhJilPCgReC6ulEBaOu+4RVlBK+E + U5DYdfqw7ftYtwfD/zSb5wT6ZwRS0gwKoLJmBLdX4mH9CPm1ZvJqBnmgG4Dt4WA48jB8s6QdddFbPk8L + JKfUK4AK3TAuj8S+4Au0Wx3Bdj/AL702EB5dcDM0K/BlWqB3ykVScp0CKK8awukOLqgzk6dXFgyHqw7D + meWdZJR2BBe00f3DRUJSrQIo034NtNsPfIHDrdu9LNq8zG54+LnqYXzJw+ivv+09Uy4+TriIT9QrAP+H + KSrr41FJN/mPP5Bb0EFObjtZ2W+4faeV9AwjaepGUlINJF2rIyGxhqvxuoD8gD/FexT5V1saowAAAABJ + RU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiklE - QVQ4T6WQ0Q2AIAxE2cCRGMVRHMFRHMFRGIERsAUuJFxNqF7yPny5ltRQSvmFKT2Y0oMpPbAQ9cIlbNQn - EULsA8rRyf37oj6JFixATuHTgrtTh4WlEzRYgBOSoGfs1CfRggUI/kumPokWLNBBBWck6pMYwzN6QqQ+ - ifHqTA31Z+HFlB5MuU4JD0dnUwrgCrV/AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgUlE + QVQ4T6WQWw2AMBAE1wGSKgUpSEAKEpBSCZVQ0rSXPoafg0uGj8newqGcs/4A4QXCC4QXCqk83rgkbchD + SGFYOhrJSpCHqGMFNufXgrvhOmEssBNiO2NHHmIusLH/kpCHmAvKYsHOiMhD9OWVckJAHqK/daV+2ppf + hRcILxBeHkdnUwqevR+DAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiElE - QVQ4T6WR0QmAMAxEu4EjOIIjOIKjOJIjdARHcKSYSyiCvA+DBw+8x7UUbGb2C5QVUFZAWYFlZnNUBh23 - KDOz0504rI5blE9OR0Kv4S3KJypiikJblJnFUbmieXCLMrM7Kkc0D25RZnRQRRdFcIsyn62Pgf4Ib1G2 - tr6I4JZkBZQVUH7H2g1WeXFvwrwKSQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgElE + QVQ4T6WRUQ2AMAxE6wAJSEACEpCCJCQgAQlIGjm2EtIjjBtL3kcv15cSLKVkf6BAhQIVClQoOMP8JjPD + 4KyxVxP0WPJlzLFXE+BtRYBrqPdF4Od3LYKhLO+X7akbg5tgLoKlVYBFDBDJApzt3w/wR6j3JhgD2gUK + FKhQoHIAVnlxb1bdEucAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE - QVQ4T92RUQ2AMAxE6wApSJgUJCABSUhAChKQUHrbGjgYH4U/Lnlhd+G6ZRNV/UQzjNAMIzTDCGxEkoGF - szSyRB0yIp0x1h9Xo79kEzx1yBT5jtjd5Rm+3CFT9IMBuLTNQOCXONcMa+6QOTQYPgRgjSyLOmTuwpHz - sc+iDpki7IT3foI7ZIreD4ijsgOjTd7+jqoH+QAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAf0lE + QVQ4T2P4//8/AyUYQ4BUjCFAKsYQIBWjchgY7BkYGEAMGN6PRcwenwH8DAwM+VCF9xkYGPTRxOpBfHwG + ILsCZDu6GIjG64VhYgAo0N5DNcACcT1UDMQmaAAIxCMZAsIgNkgMDIgxAAZATgY7GxkQMgBkEyi+cWEa + GkAOBgCjTd7+r93eSgAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAm0lE - QVQ4T62NUQ7DIAxDe/9LMyclyGauygZ6eh8xtXu11o5qwx1tuKMeOENcA5cJ1M8NOU4PBm6Q7y+4DzUA - MTB7vzzAfahBZ3ks4D7UAPBYeb88wH2oAZgH3F1mUt2uHvxhhzP3xv3ckIPKhcuKzKmfGxL8wPgJ96EG - i4yxgPtQgwVkLOA+1OCFGJuVPpTjhDbc0YY72vB/2/UB43bUVn8JuhoAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAcklE + QVQ4T72QUQrAMAhDvf+lHX50qJFqSSnhDczom52oqtwEChYoWOIgYg+b/lRdyFPhEvgDeYZMhBmQnAgt + Y5mlE+btWulE6A9Uc/jQTlht5LvqHSXMaYUnGV15mrAxK4TrM8L1Pz174QWgYIGCBQqWD+N21FbTYK/z + AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE - QVQ4T82M2w7AIAxC/f+fdrVqAwvNLt3DRljCqdB6759awoolrFjCihnckH3j53aCfTODC8UIZuybKTzV - 5eB44I+iotlQsNWNDQqinLFIqxsbFJIysvMd+75BwLQH0POS3LBvprBFhcVSYd/MwIRj2/OSCPtmDmJA - MRL0fYPC7we/sIQVS1ixhO/d2wE0YN1NDoBJDwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE + QVQ4T92PQQrAMAgE/f+nLfUQdFdiYT0VmZJMyJCau9smJFRIqJBQqeLDmMUnCKMETyTvlSDOGCy/ki6h + O7F3tREsezWI59dgDmQwXs6mIF4sr+lmCuILxugt2AU696PgBiRUSKiQUHkANGDdTeFIubEAAAAASUVO + RK5CYII= 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 - AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABDklE + QVQ4T6WSvY3DMAxG3wpeIbNkBLtwkfZSuLnCgKAijQtDpYs0WsEreIVbwSt4BR14VGH9IBcghQqRH59E + 8iOEwCcnvdBu0Da56JT3RSwTBJhdLoq5L8kX8RLgA9hLIaQ94PtfgFOAX7O4UfjzdQsqtrtCpi4WN1o8 + CriYTwXQXmER8R7vDnq5m1xbBWjRPbayOH3d/uSalwCF2CMOVF4vhvoGQAb3lOLqWt8BHHFw8gtpRU7x + k7yoi0JxpKytA7+BP8Bu2s4t2UReHGDwKlRHwtDALLALzB584oUzwMFgZGDwSHYOvWxlldfhkWzkDDBq + onGHWzE4zU0r9FsVoKLRwFI3zJ8jxRfT9Rz/BalCUid5a6EwAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE - QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn - QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH - f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD - VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp - hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe - hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc - DAdFhtjSAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE + QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe + FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g + j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu + MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx + WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ + BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM + B4HjT5oAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACLklE - QVQ4T82TX0hTURzHV2B/QCGksIegArEMCveQMmbYQ1gucoTZZD2MGvjiHqa0ae1218Pc5W5Luy4NiuaY - FZWWNlg2UUQcFcZABkUFtlxlw4VOKmva+nbONZfKHoReevie8/t9z+/3OYcfHAmAf9KyxNY+FK7lvZOF - lU1jK/zBdD7VskSudnbOfE0gU2qIbJExa6lH96X+0nqqVEBvOS/0QllzAwVKO/YorDHqC7cCSOcvKhWY - 2/rwIzGPh8NvYRCGsfNQIzbsM65Z9L2BMDjPKHJLraR8BaCh2ZdtbvVDy3ahrPo69iodkKuvoLCq7Y3W - dAd63gtVXQd2KzgCtkB74V52CkCensG0+DEZ/474bBKBF3FozD7kHeGwab9pxHjJS+qAL7PzGApN4aTx - PnIPc9RKAUx1fA818DT0CXbPcxzT3UZOMQvS3EABodcTCL76DN49gkpjF7bKGZx1+FgRYHcNTOsae1Be - 0w5phYD8Mg55pRbkyBj6grCee7BwdoKcHbVh2wEGm4vqUaS6nBAB1msDSCZ/YTz6DY+ffYDFFcSOgxT+ - d1Bn2E58jM4gHImhe3AMOr4f+YqFYUpMwiPMzf0kze/h6AhCc9H/nwFI80YKiExMo+/JOzjvjqLC0I1d - ZFYi4PQ590t1/U2UaFohq2qGTNWE7SVslEAy/wDWEcUU1VfHy3UuFJ9qgfS4DVkFtVMigC6rkdPTK/4N - smeo9O71RFk0T1u8ekHyG2jrt2s5yYVVAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMElE + QVQ4T83TX0hTURwH8BXYH1AIKewhSEGsBYV7SBkz9EGsLXKE2ZX1MNrAF/cwxU1r666HucvdpnZdGhRt + Y1ZUs7QLa04SGY4SZSCDogJbrrLhQieVNW19425l1jSIXnr4cTjfc/icH+dweAB4/1K/TMwOf7iRZmdL + ajumfstH1sozAJHM5l74kEC2QBPZIdRv5DJuXJ2vC3CnnGW8kDZcRbHUgn0SU4zLmesBrJVnAIaeIXxO + LOPe6AtomFEUVLZhywHthh85GwiDck2isMqEDKC105Nr6PZBSfZBXH8F+6VWiGQXUVLX81ypuwk1zYJo + 6sVeCYWCSiOU527nrgBmhz9L3+XDbPwT4otJBB7HITd4UHSEwraDunFtO8udiPeLy/CH5nBSeweFh6mV + LjhA10QPpDY9Cr2FxTWBY6obyCsjoW1nWzkg9GwGwafvQDvHUavtw06RHs1WD5kCLPbheVXbAKobHBDU + MOCLKRRVGZEn1HMdhNXU3fTaCQb8o2bsOqTH9tIWlBIXEinAdHkYyeRXTEc/YnDsNYz2IPIrOPznRSlI + N95EFxCOxNA/MgUV/QB8SfoyeTrmPpaWvmBw7BWsvUHIz/v+M0BBurdyQGRmHkMPX8J2axI1mn7sEadf + gnf6jPOJrOUayuXdENZ1Qkh0YHc5Gc2vILO/A5sUpDsmqb80Xa2yo+xUFwTHzcgpbpxLAatb/VPZXN7U + 37C5vFmE2rmZUDtz/gpYr74BaOu3a9KzaF4AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAACG0lE - QVQ4T51TbUhTYRQ+WVgw29h258012txsLXSOiAJd8UIZSBFkVhAYBUWIYqZhhQ4ug8JWmR+Ykj9CEkaN - pB+lDGQMspDAoqDCws21K0T5Y8Toy5Sn17rIiH54feD8OAfe55znOeelJaHd5aEbm3RKph4l4XVwBC1R - JVWP8lEBdXENtF0WSSmpg/uRDedntNgVEUD+PKaUFdzaquPBqHcLo+5iRl2FjGtm1OZkdNXBqNXG3A+t - OBKz4dSkAdbbYop8xgw/+OPKlyJOvtfj8CsTysfy4I1YsNDVGiqAod8F2wMXDk3aUTGRj7InZuQEhAw/ - eOd6eS1a09m4+EmD6oQeR9/mYu/4epQ+zkdh2Imikb8E+yecKHtuhyNkQ1aLTvGDj90g56BjdhUC39fA - n9agOaVD44wRtR/5ZNNmVCU2LBLsebMZ26MuVI5wP+qzPbSguSGpUUXQk/aiKmoA1a3kBNywUPIm3s0H - 8WK+E6NzLQj/Oo3B2QO489OL3h8b4f9iWiS4/HkfuuUdMEmrFQnc7bbxPgx9GMT9RA8GpiT0TVWjM16B - K7ESSDE7mmTjH4Kzyd2IfG1EcYeYYeK1Ah0F7HxdVkaXLIz8ZkaSyMgnMGrWM7qgZe6QCcfiRXg914+D - wW0pqs1Sd9buuwKefbuH62NnQDUr/jmkJaBp6ByeysOw+MTlnfLxgRPY2V66/M9ENeTh8R/dRL8BDkAX - agnC/hIAAAAASUVORK5CYII= + QVQ4T52TX0jTcRTFbxYWzDa2/dYv14/2c7O10G3IKNAVXygDKYLMCgKjwAiZmGlYoYMxKNaqNZXlmA8h + CaNG0kMpAxmDLCSwKKiwcHNtQZQPI0b/TDmxElmjh+nn8V44l3M4l6gQvAYz3dgqyx8XTHV4I3RBIZo/ + L5i6cQ6tcQmkfYIjf1cQxocizs9KsTvCgZyl7N9twCKjgIWRv4qRz8Sor4KR18DIo2d0VcfIJTLjAw2O + xkScmlZAc4tPk12Zk0fAwhpe8Gh6J8eRlyrUTZTCGhGQvaoJlUMxaIB434DD01rUT5Wh9rEaJW4uJw9/ + FWtLrYcrU4yLnyRoTshx7M0G7JvchJpHZagI61E59lfgwJQetc+00IVEFHXLFvPwmVh7qgQ9c2vg/r4O + zowEXWkZOmaVaPnIo+mDGo2JzUsCe19vw46oAQ1jHKit2ExZz+1JybIE+jNWNEYVoNbV5mxJWCh5E28X + gni+0Ivx+W6Ef53G8NxB3P5phf/HFji/qJYELn/eD19qJ1SOtYsWPHrmmRzAyPth3Ev0Y2jGgYGZZvTG + 63ElVg1HTIvOlPKPwNnkHkS+dsDUw+eEeK1cRm4tI5eG0SWBkVPNyMEzsnOMuuSMLkiZMaTC8XglXs0P + 4lBwe5paipZXa+MdDk+/3cX1iTMg26q8IhVA58g5PEmNQrDzK6vyiaGT2OWtWfkzkY3MZKP/+v4NDkAX + agkV7KYAAAAASUVORK5CYII= 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 + zX6th/05/Q8FMcZPXTFPhgAAAABJRU5ErkJggg== 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 + zX6th/05/Q8FMcZPXTFPhgAAAABJRU5ErkJggg== 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 - AElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAnElE + QVQ4T8WSwQ2AMAhF/wpO0o7lSsaDQziSM3gV85vQIFjtxXh4ahAeFIWIwAOAlws+p+aGACDHPomskG0e + ZBlRaElCMQuJ7f4kCQJ29Ykq8fFvBHeJrfhFYM/8RhAwyM0rukgPj+ePWAU55zJmSqlQu5lC/ay3Aia2 + uncJ7AR8/m8C3onuoVtgJ7AFnqaAL1ms//0TQaCSXrSGnBMVP/G8l+xFAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAACTklE - QVQ4T2P4//8/RRirID6clTVDqbs7/dLs2Zn/a2sT2rAqwoXLyrqlmptrTj9+bA3kCv/v7GTYglUhNlxd - 3SbT3l588OVLxf8/fqz5v3Spx9v0dAZ3rIrRcUbGDBmgzbufPzf4/+sX0/+ZM9W+zJ8f3wCSQ1FYUlIq - VljYK19Y2C8LwgUFE2Sys6eqNjWlHXj8WAZo887/ixa5f6+uVk9atcpDBMWAmpo6/ba2rv0dHWU3uroq - rnV0lABxxdX29rJbT59q/f/7l+H/tGlqr5ua0ktOn3YQgukDE+XlFUpdXXMuP3t24//nz6r/P3zg/P/1 - q8D/jx+5gHzl/z9/7v0/Z07y302bPDJgGlEM6O2d9eDRo2NAZhAQb/m/fr3B/2fPZv3fsMH6/6dPG/4v - Wxb4Oi/PJP34cSe4zTAMJqZOzQTa6AHEG/+/fRv3/+7dPcCAiv9/4cJOoO0h//v6GF6kpAgZoGsGYTCx - YMHk/0+f7v3v6xv4X1WV4f+UKX7/793b9H/FiuD/795t+D9rlsGr7GwGS3TNIAwmli6t/n/tmtF/SUl+ - oF93/dfVFf1/6ZLb//fvdwJdFQwMPJ53eXkMoNSD3YAZM2Z+/PJl8+sjR+T+W1qa/peSUvx/5sxqoFQk - MN43/J8wQeFeaioeAxoaOkP37Lm+9f//A0927+Z+d/785rf//6cD8UIgTny/fn3ukg0b4sXRNYMwnFFV - VeK+ZMmyB5s3p37dsKHt67JlEV+XLm37umBB8IeVK7vjXr1ay4isEYYxBEjD/xkAmMvAJtry8/MAAAAA - SUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAACT0lE + QVQ4T6WSXUhTYRzGT931AYV94VgfGjMIpBF1Id5EF7kbA7OgbrQP11FHw9Gaw82QDc7mxkxIxzYHLvEM + tWKnzS5sEw0kLyYoRksCh7g2c3I2dR7aBvLEhAbbzKAufv+L932e358XXgIA8T8UHPyN5mZLqdFIzvf1 + NaG9/T5VENgLhcLI02rV/lCoEsAxdHYSowWhP6FSUXyd7unH1dUSJJNvQNMiliSJqoLgbjQ2Wvhardq7 + siJEOr0fVmvZVn9/fUfmLicolz87KZOZzspkL05naGnp5kskvQKN5vFkKMRHMjmGgYGqnyrVhYcjI6Lj + OQK1+vklijJM6PWKBYNBGdDr5QG9XvlFp1N8C4cvYnubgNlctqbRkHK//1rR797OaG1VlhoM9s+RyAIS + CQHW1w+A445iY+MgEonzSKXGYbc/2na7RY35z9sZJpNtaXn5E4BbAEbhcgkRidjAMJXY3GTgdNasSaVX + yOnp69nNOYLe3iZwnAgc9w4sW4fFRR+s1nrMzY0hlbqNri7iR0NDkTC/nBU4HC8RDo+juroGAgGBnp6b + CAbdGBqqRSzGwGYTRiUSoiK/nBXQtAqBwGUUFx+B3f4B5eUnMD9/A/H4GDiuFmbz4ZhUSmR+z+4Ci8W6 + sbXlWZuaOoOKiqvg8UowM/MawD2k0wy6u88FxeI9BB0dnXd8vq/vgcnvXu+h2OyshwVIFnjFAg/iLteT + QYapP5VfzgoytLXJqwYHnUsej5hjGIpzOu9yNE1xDkft+vCwsS4afbsvv5wj+Fd+AZjLwCbKAcDYAAAA + AElFTkSuQmCC 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 - LEMq/h42+wTylm2njslBVgAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABMElE + QVQ4T6WSsU6EMBjHeQNR38BXAMvXQGA4oU2BQBqYWJgcSJzPzfUmnZ3d5A18BOPqotFBZ2+8taZ3lHDt + JZfT4deQP/1+/GlqCSGs/2AE69Cy5CL0510YgS7SMx0j+LOgaZqroiie0jS9J4TYugAA5gAgBuZbgjzP + 77Is+6aUPsdxLHzf/5oKAOBSDk5kUnIxCgghN+olpfQHYzwe4DDwskOwGAUSzvkt5/yVMbZSm5WgbVtV + faTrus0ezvlJXdeiqqpPzrkdRdGb53l6g49p7Sny/6/LshRJkjzMZrMjz/NWCCFdoA7wEQCOAeCs7/vN + HsaYHQSBkEMIoXfXdZeO42wJBskCAJYS+cGxgVzCMDzFGJ8b9Q65BzrqCu+TGIEu0TMdI1CDanhfCyM4 + lF/ylm2nCccnxwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE - QVQ4T82OUQ7AIAhDuf+l2UA7O4OIH0v2Gj+EtipqSBeD2UbvkIEVMAtmgdav+t3C1YLQWC1Ijb8oSJgK - uIRmCW3L5rlgQ3M8IVMtCChI6shdlB33hDqAY0NE9DKO70MdwLGhgI9+oHoBzyqxa4rWeaEAAAAASUVO - RK5CYII= + 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 + gg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAChElE - QVQ4T52Q3U/SYRiG+Qs6aKutddDcWs220jKwuepArebUFtPFbKCJmYQfkxmakbRyIZFTHJrprCimZWGa - X0hqMHEwTFMLxLIpg+w7NXWkC7zj/f02W5MO7OA+et/rep7nZgBYV/qkgpimrGSQ9BSmhwb89K8037kQ - ScCp8lyM5NOSgB8DhcDdLUXQdg1g9FoeBSuZTPrRYVbBZqrAsKEM1mcKmNplsOgVsPYoMGS4gbEXFdBr - 8zDjLMWb/izIZEWQH2D6UTBWBSs+O3ze5/Au6/HL04blBS1+ztbD7VBB15BOwQ4DH621Mdi8cQNuyk+j - uuQcnxKQ6T6vJSDcoeasgYcMYlRc4SI5NsJFCUaN5fAuGbC8+ARLcw/g+aaGy65EW138GthuysFrswSF - mWwioDsY7C71T+2EZ+Y+Fr/UYv6DCrdua2DRyeF6eX4VHjMJMT0igrlTgAxOFJKOhdMCi+66H36EhY9V - +OEuw6yzhBKsrPjQqGJTsM0ogGswG+/MZ9Fx7wTiD4ciITKMFvS1yrD4+S4e1xegXM6HKCMOOSIx2Ikc - f80MDHalYdIiwLgxFa/0p6CtOoIoVjBiD4bQgl7tVcxP12BmshjfJ6T4Ol6ITzYx3g/nYsoqxNu+NNi6 - uaR1yAq4yE6JQeJRFiWhBF0PL2POXfkX7BzIxER/Ouy9PAx3nIS16TgFkzOiw4NRnBOGiJDttKBNc8l/ - txL97WkwNqegpzEJOk0CntbFUes2lB2CuoRFTSZwpYSFGulu7N25jRa0qC9CnLoPIl4YhJz9OMNmghfL - olomRZFbybpkbalgD6olu6DK34HgoC20YD0SsjaZTOCgrZv+CP4vYPwGutu4vmPLy7gAAAAASUVORK5C - YII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAChUlE + QVQ4T5WT3UvTURyH9xd0ERREFyFEsaC0bDOkulArRI2G0jCm5my5fBkOm2bmoqS5THxhmilWK9GyZppz + zqW2scnGTFNrU8vQMbP3NlNZjrZ94vx+YMQq8uJzdc7zfF84hwGAsZYYpcLY9pxUkPQXCcKCLvwrHbfO + RRFwtioPYwW0JOjS30Lgvs4SqHqHMH4ln4KrWSz6cNKsgM1Ug1F9JaxPymHqlsGiK4e1vxwj+muYeFYD + nSofLkcFXg3mQCYrgXwfC4RdFQT8dvh9T+Hz6vDDo4Z3SYXv7hbMTSqgbRVQ8KSej67GWGxcvw7X5SdR + X3aGTwlIdb/P8kdYo+QGwSN6CWou8ZAaF+mkBOOGKvhW9PAuP8LKwj14vijhtFdD3ZQQBNtNIrw0F6Mo + m0ME9A6G+yrgXeqBx3UXy58asfhOgRs3m2HRyuF8fnYVnjBlYX5MDHOPEJncaCQfiaAFFu1VeFwPsPS+ + Dt/mKuF2lFGCQMCPNgWHgm0GIZzDuXhjPg3NnWNIOBiGxKhwWmDskmH54208bClElZwPcWY8RGIJOElc + MBgMDPdmYMYixJQhHS90J6CqO4RoNhNx+0NpwYDqMhbnG+CaKcXXaSk+TxXhg02Ct6N5mLVm4bUxA7Y+ + Htk6ZIU85KbFIukwm5JQgt77F7EwV/sb7BjKxvSgAPaBFIxqjsPafpSCyRgxEUyUisIRGbqVFqibL8Dt + qMZgdwYMHWnob0uGtjkRj5viqXZbKw9AWcamKhO4tpiNBulO7N6+hRZ0Ks9Dkr4H4pRwZHH34hSHhZQ4 + NrVlsigyK2mXtC0V7kJ98Q4oCraBGbLp11v/Xwlpm1QmcMjmDcGfZq35CbrbuL7aUBONAAAAAElFTkSu + QmCC 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 @@ -797,807 +799,798 @@ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////9NzlhFAAAACXBIWXMAABJxAAAScQHz3HqOAAAAI0lE - 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 - RU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABjElE + QVQ4T2P4//8/Awznzb7/H0Qbh0z/D8Kqbl1gPgwn9F5C4YMwCgdmAAijaybZAGw4uuMchjxYEwxX1Xf8 + r2noBOPKhs7/5bUd/3PKOv/rGZr+j+44+z+s+eT/oPqj/32rDoIxhgtqGjr+v/vy5/+bT3/+v3j/6//D + Vz//b95/7b+phT1YcWDdUUwXgAILYUAnWPOzt7/+33/54/+Nx1//z193+r+mjhFYjU/lAewGwAIM5Ozn + 7379v/8CovnivS//Z6w48V9aThks71ayG9MA5NAuq+38/+Dlj/83H38Daz5z89P/iYuP/xcSkQCrcczf + hmkAMgcUYGt2Xvw/e+2p/1NXnPg/YfHx/70Ljv9nZWMHa7TJ2oTfAHNLu//WDh7/9Y0s/8sra/wXEZcG + a2YAK/vPYJy4Cr8BoGhCV4CMDeKWYcgzRLWf/Q/CIM2gaPKpOvDfo3TPf+fCHf/tc7b8t8rY8N84YeV/ + /dhl/3WiFv/XilgIxxguwBZNyBimCcUFyBxs0URfA8jBANTC0ubgdCQ2AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAtklE - QVQ4T2P4//8/RRjOqKrv+F/T0AnGlUCcU9b5X8/QFCiFXw5uQE1DB0jg/6/ff/9//v4HjE0t7EFCeOWQ - DOgEKvj3P6Dp63/D1LP/7775/V9TxwisCJ8c3ACQ00AmWxY9+q+fdOL/ietP/0vLKYMV4ZODGwDyF0gR - yHSQgm1HL/8XEpEAK8InBzfA3NLuv7WDx399I8v/8soa/0XEpYGyICn8cnADyMVwxmg0DotoJA//ZwAA - qy/GB3Ky9SEAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAA3klE + QVQ4T6WRMQrCQBREcwYJKAS0SKMghgSCBkEtLT2DYGdlIUQCBqvshbyBkMbKwspGsLMTERJ1ZBf5BCRf + jMXAsm947DIaAO2f0GGxjBCEQsUPBaZzgZbt4hsjQRBG8gJJ+sDldldxO31V4lhGIJCkT4xWV9iTLQ7n + FI2m8xbkMxLIp0mzNzvCGseI9ycYVVOVOEYC+S9ZknZZWG92KOkVVeIYCdpeD93BEJbjoWbWoZcNaArz + jARFQwduKo6RgJuKYxlB/lQcIwE3FcdIwE3FMRJwU3GMBEXzcfFrXqsvxgcoH5ClAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMklE - QVQ4T6VT30tTcRT//gm+9OBbL/Xai3vooR9oUVbYjOnmdVyxTalFGxuJa+FljbVCy5WrLTOTvIgNM3Fk - rpb9kCyHrVoMNAqJkRgi9BSBL5885zIf7mW9dOG8fPh+zvmcz/lcEZ+J7N4sxDJhRJ9eRM8TBZFUAMGJ - DgTGvOgYPQuPegqnh5xw3G2BfLsZ0i0bGmMNVPuoAd4X3+HL+iIKa5/xYTWH+R9zeLk8g+mvjzG5OI5k - YQTDn+7hTi6O+EIfet92Q0kHIHltEDSZyPmfH5GaXcLD53moqXn0J19grDAKNT9kwJXMeThVGfWO4xDR - dJAnL6xk+RF9fzYAuzvC5IFcwoB3TvkgDzTjgKUGonuqi2W/Kb7mCb9+A9/XgKNyJ5Nj2agB9z1yw56w - wlRdBRGe9PPOz76lWV5xHcgtA6ZaB5Ovzl0x4O6kC9Y+C3bu2gGhjJ9jw1JLE4gNT7NEmkIPiRyZDW3h - hFG51HY0XDOjcnslhD/pYbdLhpVkl8hkGO1MsmkykdsHT8J8uQ4V2yogvCMuPlU5t4msx1sTMo6FjmgN - ztxv4zuXc5sm63H7DQm1XYe0Bm2DrRyScm6TbD1u62nEQX+N1qCl384JK+c27azHLZdOoNq3X2sgxZtw - M3sd4VdBwxVKhulxc7AOez17tAb0U4QyClwPnBxPShiFhO5MpyK3yTDamWTTZCKb5KqtBoebLlghuW2c - bYonJYxCQnemR/+oerFp7n8UxF+CFapvsjm7iAAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMUlE + QVQ4T6VT30tTcRT//gm+9OBbL/Xai3vooR9oUVbYjOnmdVyxTalFGxuJa+FljXULrVau7jIzyYvYMBNH + 5mqtH5LlsFWLgUYhMYpChJ4i6OUT51zmwy7rpQvn5cP3c87nfM7nCi2rbteyKuKZKGKPzmLgoQI1FUJ4 + ugehST96Jk7Cpx/D8VE3XLc6IN9oh3TdgdZ4C9UuQeQ3pdf4uL6M4toHvP2ex+LXBTxbzWLu0wPMLE8h + WRzH2PvbuJnXoC0N4vKrfijpECS/A4ImE7nw4x1S8yu496QAPbWIoeRTTBYnoBdGTbiSOQ23LqPZdRgi + lg7z5KVvOX5E3+8/gNOrMnk4nzDhvbMByMPt2GNrgOif7WPZL0sveMLPX8CXNeCg3MvkeC5mwgP3vXAm + 7LDU10FEZ4K88+PPaZZXWgfyq4Cl0cXkiwsXTLg36YF90Iat27ZAKFOn2LDUyjTiY3MskabQQyKr85EN + nDAqj96NlktW1G6uhQgmfex22bCy7DKZDKOdSTZNJnL3yFFYzzehZlMNhH/cw6eq5jaRK/HOhIxDkQNG + gxN3uvjO1dymyZW486qExr59RoOukU4OSTW3SXYl7hhoxd5gg9GgY8jJCavmNu1cidvOHUF9YLfRQNLa + cC13BdHnYdMVyoZV4tZwE3b6dhgN6KeIZBR47ro5npQwCgndmU5FbpNhtDPJpslEtsh1Gw32t52xQ/I6 + ONsUT0oYhYTuTI/+Uc0CwH/VX4IVqm9P89ctAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMElE - QVQ4T6WS30uTURjHdx/+AeE/MBR2M3aZV90IXSx0Gl0YkRdFQoFdOMYu6iJsIghpKXNmmzPz53I618YY - U5zODMyKsjZ1plPX+5Y5WsrmPvm+rz9KEiEf+HIe+J7z4TnnfFWOwUmcQ1N0Dr+S1w53BMfgBE9dYZ70 - j2HrDWHtDtLSFeBxp5+mjpc0Orw8tI/IkgGZXIbU1o6slY0sc2tZuoNx7jZ7/vKO+rria6icQxHZGJ3+ - LGs4HJNNSdV1rgMvOBXFPxnDE57nxdgCfaFFBSBNUNPgOVB1nZtb913cuNdHpfk5V4xOLt+xU3a7jYs3 - W7lwvYXiykecv9qoANoHxjmpcjnI7uTY2s6SSmf4vrnN+rdfCqC1J7S37bBEUaS+vp6KigoMBgOODidf - xU2EjS2+rP/k09IPfONzCqD5WYB4PI7FYiGVSsmAaDRKMplEEATyz+ZTXn6JWHyVlaRy2Gw20+9/owCk - bzEajej1ejQaDQUFBaTTaXw+H7W1D8g7k0dpqYEP0QQmk4mqqiq0Wi2FhYUKQPrL5eVl+WAsFpMnsNls - lJSUsJYUFYChjI8LAu/nN4i8W0OtVu9mZuYQcLSsVitFRUXUGE3odDrO7fYNTW28nhMZn00SmF7FPrh3 - hX1AIpGQJQgii4tL9PQO4HJ78QfDuL2jjAQiTMzE6fK+xeGexeb6Y4JT5UACHBdlKYknRlkCSMa/oixN - sO8dG2UJIDX/K9Xu+51CqH4DsLwA5JN+awcAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACJ0lE + QVQ4T6WS30uTYRiGdx7+AeE/IBM8GTtsR50IHRg6jQ6MyIOiQYEdOMYO6iBMEYS0lDkzt5n5c20618YY + Kk5nBmZFrTbdTOdc31fL0VKcu+L7vrISZJAP3Lwv3O9z8bw8t8rmWsAxscjA5Av5tLvD2FzzPHaGeDQ2 + i3VkGstQkO7BAA8H/HTan9Nh83K/f0qWSgLsF/bJ7h7I2szkiaTyDAUT3O7y/OMd9bWVV1A5JsKyMbP0 + UdZkKCabkhpbnYdecDGKfyGGJ7TKs9k1RqfjCkCaoKndc6jGVjc37jq5dmeUBvNTLhkdXLzVT+3NXs5f + 7+Hc1W4qGx5w9nKHAugbn6NYFQqQPyiwu5cnm9vn684e219+KICe4emj7xFFkba2Nurr69Hr9djsDj6L + OwiZXT5tf+fD+jd8cxEF0PUkQCKRoKWlhWw2KwOi0SjpdBpBECg9XUpd3QViiS0200qz2WxmzP9KAUhr + MRqNVFVVUVFRgVqtJpfL4fP5aG6+R8mpEmpq9LyLJjGZTBgMBjQaDeXl5QpA2uXGxobcGIvF5AmsVivV + 1dWk0qIC0Nfyfk3g7WqG8JsUZWVlOCaW/wCOlsViQafT0WQ0odVqOaPT0d7Zy8uIyNxKmsDSFv2uX1/4 + DUgmk7IEQSQeX2d4ZByn24s/GMLtnWEqEGZ+OcGg9zU29wpW518TnCgHEuC4KEtJLBplCXBclKUJikZZ + AkiX/5UKTqafsLwA5EY1M54AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE - QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn - QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH - f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD - VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp - hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe - hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc - DAdFhtjSAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE + QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe + FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g + j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu + MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx + WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ + BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM + B4HjT5oAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACX0lE - QVQ4T6WSa0hTYRjHD/TBvhRdqE99Koi+RFFB9SGjUAsvLYzEjMxFTKVkk6XpSC1N0eVtadqMvAw1b5Uo - KUUiJI7uGs7oIpEauZa1s3nP4tc5RwZNBgW98OPA+77/3/O8D0cA/gufmz3tOXTdzqS1KhVtTMh2X3c8 - CC21RXoJPFQVHMdpr2PSfoORwXySNUEUZeu5ZjRgyk6SCVwsYEZsZs7VxIyzHku5nqnxGpJjVbbXvSlc - OBtKinoH9p6TjHesRxt9SMotEsjhOVcDZTkn6LPmI34qYWzQwAfrKdoqVMRG+VOXto4XRQLxx0K8BU01 - BQsC8RbGtGgy9JEYEiI4Hx+OXqNCpw4lLiqAYu0GRRAZ7O8tqK80Mis2MuswMzWai+NVAraa1QoD1avo - K1/GU5OfEpYJ2L3VW2Ax5zDtqGJ6OIupN2eYfHkEsX05hdUd5JpbuXi1kRSjBV1mBbGpJqIT87wFlaWZ - TIyYmBzUMPEsFPejbXy5u0YJe9bc/E+crhmGx5xExF0iLMYgby8IKgrTEd9m4X4ShLt7M67OtYxUC0pl - eVXe6VEwN3QxMGRXwg96bRwIV8vHglCal8q3/nO4ujYh3luJo9mPoZuC0vaP+V98d0uVPzsZeG/H2v+R - 4CgdQVJ4/8HD+O/Zi1B8OQnH4zgpvIKvLUsZrV2CrUxAK71ZbtvTwXWpgxJLJ23dNuUrs2vLRoQrGYnK - D+KZsgeNNLA/Kz+0vlPCzff7aOh47iUILEw/Lf1hKtThgYTt26kcyNOW3+yp5gtFIA/CF0elacsX/obP - 8L+D8Bsb4cocWY3wtQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACYklE + QVQ4T6WSXUiTURjHX+jCboo+qKuuCqKbKCqoLjIKt8KPFovEFi0XsU1KNlnaNlJzpujSzaVpW7Qv1OZH + JYqToiE0HH3P2Iw+JJpGrmXt3dycy+If74mFrwsiOvDjwHvO//c87zmHAkD9D2kfGNwDtXDd0qDPooKs + MGf74nWWoLddr+ht1yOFpfE4wsEOxILXMTHWgDIxF/oaBa5q1TDUlDJwFguQoHuQjHQjEe6EvU2B+LQN + ZRKe/+WIEhfO5kIp2oGg+ySmneshEx5CmoAJJyMOtNaegNfTAPpDM6bG1HjnOYV+Ew8SQSY6ytfhmZ5C + 0bEctqDb1vhLQN+EtlyISkUB1MX5OF/Eh0LMg1yUC6kgC02yDURQkJ3JFnSatZijuzAXMiI+WYfQi2L4 + basJPusqeNuW4bEhg4QZsnZvZQvsxlrMhiyYDVQj/uoMYs+PgB5YDp3ViTpjHy5e6YJSa4dcY4JEZYCw + pJ4tMLdoMDNhQGxMjJknuYg+2IZPd9aQcGok578jHEkgMBVGvrQKeYXq3xLKpKsA/boa0UdcRIc3IzK0 + FhNWilRmhvm2m2B0uOAbD5LwvRE/DvBFREK11KvwZfQcIq5NoAdXItSTgfEbFGn72/wPfI0mEPgYhu9t + EJ7R98gWyMHli7D/4GFk7tkLqulSKUIPpaAHV+Bz71JMti+Bv5WCTGMibac6uOZwodk+hP5hP5kZdm3Z + COpyZQl5IKlTTiFWGViV73vekHDPXS8czqcsAUdXcRoyIQ8iPgd5+3aSBea0mX9OVfsTRLDwShZyVFpF + NvyNtOC/8hMb4cocvUYexQAAAABJRU5ErkJggg== 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 - RK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAX0lE + QVQ4T72OWwoAIAgEvf+lC0FFt3x8RCN9ZO0oLYakPNprKoZ80O5UyvKpFp4Krh+ngvJj1rfXH4ICEHiJ + 6xX0ggYRwMqDoBKiVvpI7MtPK5iA0UOAU/9voOD0Zxtszyqxa1VmsC8AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABL0lE - QVQ4T7WPuUoDURhG8xxaCHY2Yh+wECREVCRxHBOymMlMZrKYZYxLOhVBCAiCNr5AxFJfwd5C0catEsUm - hYiFxXFCCEq4TmJu5OMU93A58HuAviKUMnw/ftn90zs7tVeuHt5cfjnrJtiK1c4/SVZv3KOdgj9j+6d1 - zMMX1O1bHp8/xNFOwUZsTD3Bq52xWaszuXLBSOCYId9Rb8HWJsrXGHt3DI7vuvxy1m1wNHXJsO+AAe/W - 34KZUgWrUMHMb6Dn1tCyqySsMjHTJqKXCGkF1KU887EcgUiWuXCamUWLadXErxhOoi0ovX8PWsXmucby - OsnGuekyccsmatiEk0UWEjZKPE8w2jg3w2yoee6UksIf1J1EW7BfCKUMQimDUMoglDIIpQxCKYNQ9g6e - L18OKkyOPi51AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABLElE + QVQ4T2P4//8/AzUxhgClGMHBAe8+/fq/Zdmr/5fvfcajikgDYYYtO/z7f3LXNfyGEjIQ2bAJG9//T5/y + 4n940+3/959/x6KaCANBhhmEr/xvnbTpf8Oy9/9di8/91wxa/l/efSYW1UQYCINOJVf/p/be+S9t145H + FQkG6qVd+q/kPvm/lHUjHlVYDMwqrPyfkV/5Pz2v4n9KTtn/pOzS/4kZJf/j0ov+x6QU/o9Myv8fnpD3 + PyQu539QTPb/gKjM/74RGf99wtP/e4am/scwkGJIcwMzCiDeTc0t/58M8m5myf/4jKL/salF/6OSC/6H + JRb9D43P+x8cC/Ju1n+/SIh3vULT/nsGp2DxMpUwhgClGEOAUowhQCnGEKAUYwhQijEEKMUYApRiAF8O + KkwDPuBiAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABMElE - QVQ4T6WQvUsCARjG7y9pa4i2hlpzy0iN7PIUT/Pj8k5NvcM+bOtjqqWxKBCDIhpqLAhqcAoiaBGXw5YW - sS1o/NXhcgdndMmPBx6e4eF5XwEYSq6hF7mGXuQaepFr6EWuoRcJeb2GWq6RK22SLa6TLqyRUqskcgbx - rE40XSayXGIxUWQhXmA+phGQVOYiOfyi8tMyJDb7PwS10p+vrG6QseZrVZKqgawYxDIVllIGYrJEWLbm - 5wlG+/NnxRX84ay9y0nt5A1pq0nIuLfeNRCbdbJ30aXx8IVPufFWMJ2+Qjt4xSo4vv0koN8xJV8yOnPo - WmSzfVpmj7HQKbsNk+3zLtJOmwmxzkvr/W8FFu3OB5OxM/xGk/HgEY9P5sAzbNZJu9NjxLdP/fr5lx8g - fAPOtXjW7jTlPgAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABLElE + QVQ4T6WQu0tCYRyGz1/S1hBtDbXm1onUyE5e8JKXk8dLXg52sa3LVItjUSAGRTTUWBDU4BRE0CIuYkuL + 2BY0PvEhEvQp9CEP7/LA7+XlpwHaKJGEaiShGkmoRhKqkYRqtHSxjJUvk8xtk8huEstsELVKhJM2wUQR + fyyPdzXHcjjLUjDDYiCF02ex4E2iGybaqEhCFc0q9Oab61vExfxUiYhlEzJtAvECK1EbI5LDExLz07j8 + vfnzxhq6J/G375fy6Tu+nTpu+0G8ayiS6HNw2aH2+I3DvFUrmI1dkzp6QxSc3H3hLN4zE7pifK4ysEgS + jVaXCfcZ+7UWuxcdfHtNpowqr42P/xUImu1PpgPn6HadSdcxT8+tgccCSfRptruMOQ6p3rwMPRb8AM61 + eNYtKznlAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAA7ElE - QVQ4T2P4//8/RRhMhDc80vEpPQVkYleED4OJkKb7/z3yDwCZSBJAKUIYrA5EBJZd1nRIXv3fMWmVH8wA - YjGYcM3e8d8ifPp/Y/8OIBe7QlwYqyApGEwE1d/4H1B95b9L9vYudAWEMJwRVHc93SZ2AZAJlQBKEcJg - dSAipOGhj2vW9v+2iUv9YQYQi8GEZ8GB/5YRM/4b+bYAudgV4sJYBUnBYMK/6uJ/3/Jz/x1SVgO52BXi - wnCGX8W5/47pm9LgEkApQhisDqbBo+jIbLPgCWBBUjCY8Cg8CA5Em+iFgegKCGGsgsTj/wwAYWiux7Jg - lFIAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAA00lE + QVQ4T2P4//8/AyUYTIQ3PNLxKT31H12SGAwmQpru//fIP4BiAAMDA4jAi+EGBJZd1nRIXv3fMWmVH7oN + hDCYcM3e8d8ifPp/Y/8Okr2BIUAqBhNB9Tf+B1Rf+e+Svb0LXQEhDGcE1V1Pt4ldAPcCeoBhw3ADQhoe + +rhmbf9vm7jUH90GQhhMeBYc+G8ZMeO/kW/LAAWif9XF/77l5/47pKwm3wV+Fef+O6ZvSoNLYAk0dIxi + gEfRkdlmwRPIc4FH4UFwINpELwxEV0AIYwiQigFhaK7Hy/55VQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAeElE - QVQ4T2P4//8/RRhMFHQfKgDi/yAaXQEhDCZAmkNbnvyXta4CciESLEws//FhmDqYAQUgzUBMngsowVgF - ScFgYjQQsUsQi8FEYsXyAiD+D6LRFRDCYAKk2bPo6H9J40wgFyKBLeCQMUwdzIACkGYgHnKB+J8BAD5Q - tqhi4tzWAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAd0lE + QVQ4T2P4//8/AyUYTBR0Hyoo6D70H0SjKyCEYQb8D2158l/Wuuo/TIKFieU/PoxuQAFIs6x1FXkuoARj + CJCKwcRoIGIKkoLBRGLF8oLEiuX/QTS6AkIYZsB/z6Kj/yWNM8kLRJDNIM2SxpnkuYASjCFAKgYAPlC2 + qCS4LQgAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAQ0lE - QVQ4T+3QMQoAIAxD0WJ7/ytHEBQp6RDdxOF1+GSqAbhCo2Icd0e2j6IFsrlZo1M0KmhU0KigkflPrNFY - efKJsA4bINYHMvlwBwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAQklE + QVQ4T+3QQQoAIAhEUUnvf+UJAiEcDIZ20eK5+IgLDYDdoKBaw91R7UsxAlXu0EUVBRUFFQUVhc5/Yo/C + yaNPnBsg1gfsoRIVAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACZUlE - QVQ4T6WQS0wTURiF2bpjYWKiGxcu1GhMfAQlSASNxUek4oIQGjQ2YqOhKqXWgRbaDmUKSmm10KaDfSBG - qhjBKD4xdmMEDS9TbEGjRSVQVKAqRJQ5zq0ZQ203xsU3yf/POd+9M0kA/ouES0L3k4drXKxB0swaQSnl - K+923EhOlItbEGorVdu9LgZ8mfv2lubcDfQbr5tBu5el/s7GDAKXHAw3E6KJAAib4bHTmA0ZonNfV2fq - wmxMUcBl1X3lxuv4AvNbUK8HmZvsVbDXquFhTdlCNq5MaLSU8wUTmmw6YNwMp0UDjhe56nXgPwm2WqpT - yMaVCWZ9UfRE53kK3JgZ9poSzPNCW7UScyNGGFSHg0I2+uDNGqdVB8Kdm56zjPIgXzTBUXcKc+9q0GCQ - Ye59Nc6VHsFMqBLF0n2DfwT8j1nUZDdg6hXNv6Rx1amFWibGz9Ea3G85iUhQA19rEb68rkDLhUJEAmU4 - nr9zIOYGvERfnL8NE4NaTA+rYdOKMTvCYHJYj6khNSYDFD4HlJgKUhjtOQZpTtqzGAHhMlutjEoGFAj3 - yjH5UovIkB7TgQp89JdhrF+FsZ4TCN7LhWRPii9OQGAtmitE8qFLhtFuOcJ86ZO/FBMvzmDkaSH6rovw - +GI6l7d746OEglavOVl1SEQTSf+tA+htE3P+jhxuoG0vnnsz0dWcBqM87buiQGRLKCC4q3SLNbL9FURy - zbSDe+DI4HzOdNy2bp6npBt+7Nq6GqcLspYK+TgBofyoaEW5PFchyU5t37J22eymVUuQmbJ8UJK1vrEk - L2PdwmxM8d9B0i+k/s5JFmy4DAAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACXUlE + QVQ4T6XQXUySURzHcW+786KtrW666KJara2XWY5cWgt7WZJdOCezFstYTSqR6FFAHh4RpEQsEOZjoPS0 + pGxpK3u15U1La741CLSWUDnAypdSF+X5tcdWS1Fb6+J7cc7+53POTgKAhP8pbuNXHU8ernGxejHHGkEp + ZCvvttxInD0zL1BRqtzucRnAsUYyPsCQumrmjafOgGYPS82ejTvMd6nGQCaCDA8AUQvqHQwmg/rpdXd7 + a/JfAZeV/kIileBYw0/ApgO/djvK4KhQoZ41ZywI1FZpQCJmuO00ELHAWaUGiVrgstEYH2Bgr6BaFwQs + uvzpG53nKZCwBQ5TIaYiZtjLFYiFjNArDwdmAC4brXZaafDduVl/1qA4CBI2o6byFGJvTajWSxF7V45z + RUcwESxFgWSf7zfAscZFboceI68Y8B931amFSirC90ET7jecxFhAjbbGfHx+XYKGC3kY8xfjeM7O3hkv + 4FijriBnG4Z8Woz2q2DXijAZMmC4X4eRPhWG/RQ++RUYCVAY7DwGSabgWdwfXGbLFdNIrxzRLhmGX2ox + 1qfDqL8EH7zFCPcoEe48gcC9LIj3JLXFAXxslfoKj7xvl2KwQ4ZojxIfvUUYenEGoad56L4uxOOLKSR7 + 98ZHcwKNHkui8pCQ4ZGeWwfQ1SQi3pZM0tu0F889aWjnBDDKBF/luUL7nABfXRm9WC3dX8Ij18w7yIOa + VNLmTMFt6+YpSrLh266tq3E6N33pvACf5qhwhUaWJRdnJDdvWbtsctOqJUhLWu4Tp6+vLcxOXffnbNzh + f+0HpP7OSS0WHh0AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB3ElE - QVQ4T6XSX0hTURzA8UXP0lsP9WCPkqv0QaKQKKK0DEmol6IwbDmR1TbDJVo2V9NCDTKICMoigtaIbCTD - JBvOBTaG89+tzD9NFwqaKM6E2f12kuHdTYhLPXzO73c48H06OuC/rBxSoIk/9ftvE+5spOddI6G3DXS/ - qcfncdLmcuB9Zl+hChD/LNag4NekylQgZiIw2NVEPPZerC7NKk1HxUwEAq9rWZp9JdZ7mlWU5ouZCHS2 - XONH9CHEbmlmKzmiBHwvHcyN1LM861zF97q/shnzlEDHCzvT4XKYrNHMVnxYCbQ9t/O1vYDF8QqYqFZE - hW9J9yTlhkNKwCsCXzzZRH17GPHuYsiznVDzRhb6DMjjVyByeY2LhtykgMvOVNdxBpvXMx/UM+1PI3RX - R6Q9B3msEoYvrWEtylEHYiEjQ+6tSE83IIezWAqkEX6wmfinMpAsglXFXHggKSC+pdxvkheDhYy1ZPDh - TgqR+zqGhVF3OrJkhr4LMCBmwvlT+9WB5d6Sn78f4j1Goq27+fh4CwNPNtHdsA7pUSoT7mxmWvOY7zjG - nFB6Yp86UGPJxWE5SK11LzfNO7lhysRZrOf6uXQcZ/VcLdJTdWYbttM7KDuZgUVYDfw7dL8ANy8V6Hlx - kDwAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB1UlE + QVQ4T6XMT0iTcRzH8Uc6h7cOdaij5Kp1iCgkiigtIxLskhSGLSey2ma4RMseV7NCDTKIEEolAueIbCTD + pDWcC2wM578nNc2miwJLlGbC7HlHHvztSYgHPLy+8OUDbwmQ1mPlKKFG/jUUvE+0p4H+tw1E3tTT97qO + gNdFl9uJr01eoQmQHAPCQFCXKkueCIz0NpJMvAPculVaTolA6FUtS3MvgUe6VZSeFIGejpv8ij+BxD3d + HCUnRCDwwsn8ZB3Lc65V/Lj9Xw5zrgj4n8vMRsvha41ujuLjItDVLvO5O4/F6QqYqRbi1fAl5U9Rbjom + Ar52mY/eLOKBA0z69jHu3UmkeRM/B02o09chdm2NK6aclIBb5lvvaUaaN7AQNjAbzCDyUCLWnY06VQkT + V9ewF2VrA4mImXHPdpRn6ajRPSyFMog+3kJytAwUGyh2DWvhkZRAm4w6ZFEXw4VMdRh5/2AjsSaJiSaJ + T55MVMUKg5dh2Lrq0tnD2sDyQMnvv0Oy30y8cz8fWrcx/HQzffVpKC1bmfFk8b0zlwV/PvP+fErPHNIG + amw5OG1HqbUf5K51L3csu3EVG7h1MRPnBQM3igxUnd+B49wuygqM2AqMIrAefwA3LxXoYFHxHAAAAABJ + RU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAByElE - QVQ4T6WQ3y+CURzG/UfmwoUbc2XjwqW5ztyY2bhgY2a2xoXNbFSThaLIbyYppaRIJSwNw+bHGzK5kKTe - 6nHOy5vOsLEunvc95+x8nuf5ngIAeUn49E4/IFfdugd0qsNoGb5Hw+AdJH23qOkJoaqLQ3k7h9KWG5Q0 - XxM0x0DjAEbtGSitachNKfQbePQuJiGdSaBj8g2tmlc0qWKoH4qhThZFUd0eayBKqg2jbTSMRsVHcnV3 - CJUdNyj7TBVVKHF/GUyu+pDJZLJy+S+Y/ZrzSPgn+TSi8TSmDG4UV9R+GYwvuxlg03fG7Ffsh0gQ+IXA - kWgK2mUXazAyv4WDE05I3vSdw7Z7CsvOsZBM4SWrH7MmL/QkmcJj8w7WQKnfYBLXCSyuaW0KR6I8QpEk - zu+SUM3YWAO51swYmJzBLPwST0G/6gb3xAtw4DoB5ZSVNRjQGOEJXMKyTWpvHcGQW5vAtLZ6wQHVrA1K - vRUKnfm7QW6DRYtfeO3H5xSpzUNNZg5cJeA5i8MejEE2YfrdgNaeozMTmCOwOPMH/Arjfgz0/jcDh/dU - qE1h8bVp8gitTWZW6NaFZHr3RwN68F9lDfLRj4d/FwreAXS1HIGEVowqAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB0ElE + QVQ4T6WQ30tTUQDH/Y/Chx56CZ+CeugxejZ8iQjqwaCQCMQehAhKpcW0raZb2rLRptOtzavmTdcqpizR + oPQum3R7cM613Xv3iXPW5g6rB/Hhe35xvp/v95w2oO04kkP/812a1Te6y21Pnu7HP7jycIfOe9+5eDfH + +TsGZ24ZnO7e5tT1LRSAV4ORZBVX3GEwanM/bNE/WaF3vEzP2G9ueA+45i5y+VGRroEC7V3vVUBdvb48 + N0fyXB2qJV/oy3GuZ5uOv6l1nejUDwFjkRTVarWhxfQXZT+9sCrniuVQKDn4wzonz146BDwN6YphLrWh + 7F8nP1G2HPZLDmbBxhdaVAHDwXk+fjZk8lxqk8S7dWJLWZkszK/iaSaiKwTCujQ/CWoqwBV4oyTOLmUb + a1FbmM2CRc6ssLlTwT2eUAGDvhkFEF1Ya5j3SzaBiI7xy5LmzFYZlz+uAh54p1jOfCX2Nsv0/Crh5tqR + Wm3PSw33RAJXIM7Q6EwroLnBZCwtf/vnnk3OtPAENTLfyixvlEiuFRl4Fv0/QNR+Id68Z2OYtdrizTXz + AVMfioj7LQBtZV3WFub6b4vkYVHbL2rPymRx958AcXBUNQDHUcvBUfUHdLUcgRxLqH4AAAAASUVORK5C + YII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACRElE - QVQ4T6WTXUiTcRSHdxkRRBdB0IUREV1ETSKIwoyQAsmV5IUhfaBUoJSUWJbLxAVZWixBRUcrNT8qM1PL - hpmoKGkf2pzOpLlAi9QtndKHzfm084a9uzCKujjv1Z7n/M85v2mA/yrlk3eng8DKKWsn62YLFwob0ec8 - JimrhnhDJbGp5cQkFxOVaGZPgsmPBgi8M/y2Pn8D99Qsw+5ZBj746HL6WLMz/e8ELpsd+6FgbAe1WNts - ClxSP8jqHef/LJDOAjNsYfrpSZ7vXUGr3ceN2jesCgsQyMzzwfJs2wHtTzg7jPbIICzdMxTes7Jye5oq - kIXNB8vM8mzpLPD9B6+p7pwht7yToG3nVIFsew7uHxzhRIZJqY6+T8rM8mzpLHBFmxdjUQvLQ/SqQE4l - sGPIrYCO4XGsA2NsjYjDVPWK0N2HlSqo7qe42Uu2qYFlW1JVgdx5Dn4/6mHo4xee9biosPQSHh1PzZMu - 6pt7/L/WUPDIxcW8OpZuOqsKJCQCj7gm8UxNY3VMYK55y+0GJ/n+eXUxxyi624Txeq0iMVyrYsnGM6pA - Evbd62PMM02fc5KShw6ulvaSaX5JlrmdREM52tAoEvU5xKdcUSSLN6SoAonn6PhXXvS5qGx89wtOz20m - +XItCWmlRMYaFEn4vuOE6uJYFHxaFUi27c4Jyuq6ychvRW9sIDmz2g/eIjYpn+ijl9Dt1xOy6whrN0co - tXB9gED+GJJtiackTEIid5ZTybZlYTKzPFs6C7xg3SlV8O+F5gdwpvLxKZ4mxAAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACQklE + QVQ4T6WTXUiTcRSHdxkRRBdB0IUREV1EKRFEYYuQAklL8sKQPlAqmJSUrCzXEhdkaWGCio5WajorM9ss + E7NQcaR9aHM6k+YCV6TO/KIPm/OJ84a9BkaBF+e9e55z/uf8Xg2gmU8pn/w7rcyu3HIHWTebuFDUgCH3 + MSlZNnSmShLSrMTrS4hNtrAnycwfgsAUf60v32F4Yhrf8DS9H4O0e4Os2Zn+fwK/y437UBiug6E4W1wK + XFrbx+od5/8tkM4C46tj8ulJXuxdQbM7yA37W1ZFzBLIm+eCZWzXgdBfcHYEjpgQ6jqmKLrnZOV2oyqQ + hc0Fy5tlbOks8P0Hb6humyLP2kbItnOqQLY9A/f0DXAiw6xUa/dn5c0ytnQWuKIlQE5xE8vDDapATiWw + p39YAT2+EZy9Q2yNSsRc9Rrt7sNKFVb3UNIYINtcz7ItaapA7jwDfxgco//TV553+qmo6yIyToftSTu1 + jZ1oNBoKH/m5mF/D0k1nVYGEROAB/zhjE5M4PaNYbO+4Xe+lwNpGdPwxiu8+I+e6XZGYrlWxZOMZVSAJ + +xEIMjQ2Sbd3nNKHHq6WdZFpeUWWxUGyyUqoNpZkQy661CuKZPGGVFUg8Rwc+cbLbj+VDe9/w+l5jegv + 20kylhGTYFIkkfuOo41OZFHYaVUg2XZ7Rymv6SCjoBlDTj36zGqSjLdISCkg7uglovcbCN91hLWbo5Ra + uH6WQH4MybbEUxImIZE7y6lk27IwebOMLZ0FXrDulCqYT/0EcKby8bQ2bXwAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABu0lE - QVQ4T52R2S9DQRTG+6d4ImKLNR5IELG/4IEHEgn/jb6IiAe1pLZY0saeltoJtTTllttGW9RapJZK0eUz - c5rbNHrviy/58p3MnPObzIwKAHl2U8Rf61YFTBgsGJnb5+6UeuMdK/iAkjRT6yio6ZCFxAr9mo2FvHpG - DDDuCBJEzZYSAVPLVhbyGphepWHJTImA8cVDRFgRr0gkQmuhUBj9kyZ0a5eQX93OtxIBY/NmhMNhnJw7 - KR0uD4Js0HrmROD7B5azS+gMe8oAtWYWrus7tqKC4LikFJ0eygOrnXJYt6IM+K9jxZzpkE5xex4pHe5b - SpvjinLLLFDmlTWydhnA6MwWBJHdnz2c99lHDyiILvgD3zg4ceHm4R3qPj1S8qtYuwxAw145GAqxMir+ - gK8fX7j1fkB0v+D4/AFdQwvIKm3m24mA3lEji6j46Z+BHzy+fOLC44PV7sW25Ya+Mb1Y4Qp8UxL/9zf/ - F+6f/ATYP72DyXxFgNTCOt6iDNg9smNx/Rha/QYGp9fQO2akQcnJeZW8TR7A/zi3og055a3ILm9BZkkT - Ob2oAWlF9ez0WiRlFLN2GcD/DNUvFQAPI9EcSZQAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABrElE + QVQ4T52RWS8DcRTF56N4IqKINX0gQcT+ggceSCR8G30REQ9qiaWCpo09LbUTamnKYNpoi7ZUEUvb1DIz + R+YmM5FmxoObnJyb/8z5/ZfLAGAkzW1xSJVljcWUzYXx+QNJ3fK/v6U0UkCrjDMbKK7rUoUojXX9PDWn + VN+4DfZdVoYYVAEzK+7UnFJD5jUKy1IFTC4dQUwJiqJIazwvYHDagd7RZRTVdqoDTAtOCIKA00sfudcf + xDcvwH3hQ/LzC66La1hs+9oAg3EO/ts7MAwD1ntNzvmC5IduD/mYZVUb8F8pzbzjiHYJBB/IvYEw+bn3 + hnzbyZIXVjSrn2Bidhss54Mgiog+vdADspwf8eQnDk/9CEXeYRiwIqOoRh1gnHbgm+eVCUgP+Br7QDga + Axd4xsllBD0ji8gtb1UH9E/YlbC0eyL5hYfnBK6CL3B7othxhWiMulKNK0gf5ZLm/hb/wP1jnAAHZ3dw + OG8IkKlv+Buwd+zB0sYJRq2bGDavo99kp6Cs9MJqbYA044KqDuRXtiOvsg05ZS0kXUkTskoakamvR1p2 + qTrgv/oBFQAPI+QT9ewAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAoElE - QVQ4T6WS0Q2DMAxE+e5PR2AERugIFRMwSmdhEkbpKMYPTIXjYhQ46TAk8ssZaETklv8u1ni9HOtl1akG - 8LHqlAE69WQedvfOh4BHP77VT3tEjBCcASb1F5AtsRkcANYohRmhPH1JFwCbtOksAZAUcPYO8gSq8iuw - GZwBOGE7rbUK1CkD0MTPg2mmksQpA5T6zb1XDYAEpHIKgOuWZgYwUWWjtqpGsgAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAnklE + QVQ4T6WS0Q2AIAxE+82PIziCIziCYQJHcRYmYRRHwRyioS3UEC85MTV9PUBKKdEfq8Ko70dfqyxAI4BD + FiALsBBRLN6rd+YuwPmwOR+mCogtKFuA6Hw4ASolfFRWgNKYhLEFOT2nU4CBBPlWLMDXGdgJGrcgE7TP + oBImPNPmsgLKZAHQhJ8HRjNWJGGyAFLvvmuNAJAAqZgU4I8vMFFlo3aSOUkAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAfUlE - QVQ4T+2UQQqAMAwEC/3/myMNTYjjomA8ehjozi5SQRxm9ilSdpCyg5QdpOwgZYcx56zYhp7Ejrx+4IJb - z3WQcsOOcOeZgyz2+Y7YVU6vfCkf4M5zDXHOEo5w47mGOGcJR7jxXIsoaw5HuAkun00bKYG6yUJt/79N - GxsH7EeiiVdcqusAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAdElE + QVQ4T7WTQQrAIAwEBf//5hRKI3ZWRbr1MAc345qLJSLKn0jgIoGLBC4SuEjgUmqtPfHAnKRHPheO3Ps8 + k3ZK6UlhDinO6B9vd1YCCwi914YsoDyCzrnCHOSwP89K6TSXoo0EA7jFavMDX4+BiwQuErhc7EeiiR4r + 8zwAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACC0lE - QVQ4T2P4//8/RRirICkYznAqu8PpWn1X0bX9VZZz79ta6+lft5jP+nXRbOrXfSad77uNK55mGebfsNKK - OyuGYYBP7QMu14bnRXbtbzd5J1246Bd+YI1P+OF8r8ij6S7RpydbFN45qdnz6bli9bM7ysHHKtWs9vCg - GOBSddfetuX1o6CAfbdjQrf4wySRsXnW5YmqqdevSDvtu6dlvjwSJg4mbJpe7DTNv//dz3ldB0wCG1ZN - ubBNxm3vZx3zhWthYmDCtPrpct2Yq9+cLVdnwySwYeX08+vlvHZ/NbScvwQmBiYsim/5a/iduaFmuO0y - TAIbViq5+kbFYeNrK5s5MTAxMGEWd1lZ1f3EAXnrA1/V7bd4wCSRsW722UTl8it/TKwXXbOyXqAJE4cr - 0PQ7YiEecem1tMfBXTAxZKyTf+myWsi+z9a2C9yQxVEUySZfmS2ZcPapht1me2Rxo8xTTprFlz5o+25b - jywOwmBCvP/zR7Xkc84qIQdVpV12vteyXLkRWZFBzukjOtmnv+v7bzPW9FyfJOez+idMDmJA/fP34tmX - v8harn+iYzbvjYH1vHswBSBskHPqhV743s/aLqvfqzst/anqNP8bTA5MyAcdOaFovPq2rvn8T5rWc35o - OC38C1MAwoZJB34be2/4YeS94oeO66L3Og7zHsLk4IrIxVgFicf/GQDTEJf4sarC9QAAAABJRU5ErkJg - gg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB/ElE + QVQ4T2P4//8/AyUYQ4BUDGc4ld3hdK2+q+ja/irLufdtrfX0r1vMZ/26aDb16z6TzvfdxhVPswzzb1hp + xZ0VwzDAp/YBl2vD8yK79rebvJMuXPQLP7DGJ/xwvlfk0XSX6NOTLQrvnNTs+fRcsfrZHeXgY5VqVnt4 + UAxwqbprb9vy+lFQwL7bMaFb/NGdCcLmWZcnqqZevyLttO+elvnySBQDbJpe7DTNv//dz3ldB7pGZKya + cmGbjNvezzrmC9eiGGBa/XS5bszVb86Wq7PRNSFj5fTz6+W8dn81tJy/BMUAi+Jb/hp+Z26oGW67jK4J + GSuVXH2j4rDxtZXNnBgUA8ziLiurup84IG994Ku6/RYPdI0grJt9NlG5/MofE+tF16ysF2iiGADCmn5H + LMQjLr2W9ji4C10zCOvkX7qsFrLvs7XtAjdkcRRFsslXZksmnH2qYbfZHlncKPOUk2bxpQ/avtvWoxsM + JsT7P39USz7nrBJyUFXaZed7LcuVG5EVGeScPqKTffq7vv82Y03P9UlyPqt/ohpQ//y9ePblL7KW65/o + mM17Y2A97x6qAade6IXv/aztsvq9utPSn6pO87+hGCAfdOSEovHq27rm8z9pWs/5oeG08C+yAYZJB34b + e2/4YeS94oeO66L3Og7zHqIYQAnGECAVAwDTEJf4ZU19HwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiElE - QVQ4T+2PUQ6AIAxDuf+lkTbWNIOpmH3al5nB3DO2kd5bEcPEpkwqIXDp5w+4EEhUJgSQlQglKhNOIPEc - 43PwSvgU/g2K7z4IY3wOFEm3hD4TvD9lW0IuZOwI2Wnhjl+45LVQc66MZ8YkREXCjF3GUogSizueMi6h - cIGXwZuMSQhchAr03g5eEHK4HOEqIAAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAeUlE + QVQ4T+3RURKAIAgE0L3/pWmwcGwlFIfP2B9TeeYIACIoigjaoAw1UDOixweMoMagMlCjWAloUBk4RYu/ + ueaeDXBV7TbPjZYg19ceQ1Mgr9ue/ocZMHykDPhqiPKDbrbB40fxUFrLgyPqzO2BFob5gDSoCbC7Bxde + EHK4KrCbLQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAADwklE - QVRIS5WWS0hUURjHx+f4xJFw8rHKrFDRgRYW4jMfBbooeyyEjAq0cCu4UZMWKYSSKFEjPkqSMfMBIQxk - akyUUJvsZa1bBO3aSeK//3fnzu3OnXPVDvxmzv3Od77/nO9859xxsCGE0+mEy+VCWloakpKSDLsQExOD - 9PR0pKamRiB2s68NwU5ycjK6urowNzeHqakpNDc3Iy4uThsrKChAR0cHVlZWsLCwgMXFxTCWl5eRn5+P - 6upqJCQkmIObcSAzMxPDw8Pwer2YmZlBUVER+vv7UVhYiLq6OqyurmJpaQnz8/OakODz+TA+Po7JyUmN - 2dlZ+P1+DAwMqESEYCc+Pl77zs3NRV9fH7q7u1FTU6OlMzY21jxBo76+HoFAQMuACE1MTGjC8mPGxsYi - /B1ZWVkwNzGOjIwYDltbW/pIeJOVh3xkNdPT00ExWd3TpxhlhkLjGm63W58abGLs7OzUn/bXiouLMTg4 - iNlnz/CYqxoeGsLrqiqsSSZSUtRCvb29eu//WlNTE2739MD75An8LApGx3emvuzwYbWQqnk8Hm2/hMrK - SrS0tOgj/9r29jYu3LiB+ywgEVk/cQLvz5zBSZb/nkKNjY2Ijo4OOiqQKjW330xZHu1D169rqXtdXg5f - WxsSJX12Qq2trcrgVh48fBicwEqlQUPsn3gs1ii2WVuLdNkrq9DOzo4m0sXyLikpMQLuxui9e4aIILa3 - V6/iVUUFPvIYuOTgq1Ykjgss32OhjdwH/DDwkbLjx/H+1Cl7IffBg+jharyPHiHr6FEj0F60EHYMongV - bVDEVkgmPWeJfqXITfatAe2oIuwYxLMAPnCfPnGPbIX8vFBfML/Iy0MKn61BVdQSdsKFmLp3ly7BlZio - FvpMB6mYjYYGOHYpbzNWISffBl8Zp620FA5V1cmkTV1omSd8k8/WoCo8hB0DXqL4wXN4RfqCSmisvR1v - eQOskXWKBc6dw8XTpxETmmQhmrBjsE6OkFvE8FMJVfDa6L98GW945YhYgLyR++vQIZzl29fDt3ABf3EZ - ++LfSEQghNja9W8Dq1AsjeJcTruIbfC+eiGrYypfsoJkhV+Y2m9klGJndX8zSSRMRFCtiB/4RTw8Uwf4 - f+AXA0phfGT6ZIOHeHkmcvw8+an7h+gjESKCnZCwTQLiJEj1CVFRcPNcyPgfEvIV7pKw4GZ2E/of7pCI - 4GZUQrIKdvaNbbrM5OTk6BLBJsYEIvVfT2hQ8pk0kGskIqgaB7Kzs5GRkQERtQzCrZNhIpMoK8sWB/4C - O706Ewj1hikAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAADtElE + QVRIS5WUXUibVxjHjx/RaBKSUIy+elXrHBo00As7iuZN3nwomIvWbb0I1NEV1OKt4I1xsotFGEpDZKwR + o50oSa0fMIRAnTpSWmG9mW1Xt+tdDHq3O5n4L8/R2OTkvOoO/Ig573Oe3/s854mMMYYclZWVsNlssFqt + qK6uPtsnysrKYLfbYbFYiqD9/FgdTv4wmUwYGxvD6uoqFhcXEQ6HYTAY+LPW1laMjIxge3sb6+vr2NjY + KGBrawstLS3wer0wGo2i4KOorq4O8XgciUQC6XQabW1tmJychNPpRCAQwM7ODjY3N7G2tsZFRCqVQjKZ + xMLCAmdlZQWZTAZTU1OioLCiiooK/tnY2IhoNIpIJAKfz8fbWV5eLh5CMBhENpvlHSDR/Pw8F9PLzM3N + FcUzRVGQv2hzZmbmLODw8LDgeW5R5bkYqmZ5eflERtU9eYLZeLxQ5HA4ChLQ5ujoaMHeRau9vR3T09NY + efoUPyWTiMdieO7xYJc6YTbLRRMTEwXfL7v6+vrw7fg4EktLyHi99Mb4y+dD57VrcpFsuVwufl+Eqqro + 7+8XQ3B0dIQvhobwg9PJJXs3buBVTw8+s1guFoVCIZSWlhZf7Ck0pfnr31gMTYwhdv8+b93zri6kBgdR + Re3TEw0MDBQllvHjo0cnB6JRXglB+28CAex6PDjw+2GnuxJFx8fHXDIWiaCjo6MosYzZhw/PJDnRy3v3 + 8KvbjdfBIGz0wxdFtChwPZ3Gp7mLvAT5ohRj6Lx+Ha80TV/kqK3FeCSCxOPHUJqbixLq0S/ISoxG7AeD + +iI69PPSEt41N+OBJKEeHkFUYTbj90AAb/x+fVEmHMYztxtoaoJZklSGXybSNPx25w5sVVVy0VtN4xOz + 39sLds54nyeqNJnwTtMwePMmmGzq6NDBqWjL68WBJKkMlyBiioK/QyF8lYuRieaGh/FSVbGrqtjzepG9 + fRtfdnejTCIgSgXJHmP4hDF8kx8nE7ktFkzevYsXPh+XZVUVL+j/19WruGW1wmWzoVVR0Gm18viQWA1j + GBZfSBSVnwZ3ORxctt/Tg2dUnceDX/x+XuEfmoY/NQ2zioJbgoSoFiUyEW1S8Hvqe20trtjteK8ofDBe + d3fzC44NDaGKMXzOGP4RJFFRcJGIOGIM2VwgTR9RUgKHwcCf/ydIvheTX1b0f/hOTCwiE1EVYqLz0G1X + Pg0NDUUiI2N8/oOSpDneMoZexvC1mFAfhvr6etTU1ICkYoDjlJo86vQm6xw+ADu9OhO8z9GhAAAAAElF + TkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACJ0lE + QVQ4T6WS30uTYRiGdx7+AeE/IBM8GTtsR50IHRg6jQ6MyIOiQYEdOMYO6iBMEYS0lDkzt5n5c20618YY + Kk5nBmZFrTbdTOdc31fL0VKcu+L7vrISZJAP3Lwv3O9z8bw8t8rmWsAxscjA5Av5tLvD2FzzPHaGeDQ2 + i3VkGstQkO7BAA8H/HTan9Nh83K/f0qWSgLsF/bJ7h7I2szkiaTyDAUT3O7y/OMd9bWVV1A5JsKyMbP0 + UdZkKCabkhpbnYdecDGKfyGGJ7TKs9k1RqfjCkCaoKndc6jGVjc37jq5dmeUBvNTLhkdXLzVT+3NXs5f + 7+Hc1W4qGx5w9nKHAugbn6NYFQqQPyiwu5cnm9vn684e219+KICe4emj7xFFkba2Nurr69Hr9djsDj6L + OwiZXT5tf+fD+jd8cxEF0PUkQCKRoKWlhWw2KwOi0SjpdBpBECg9XUpd3QViiS0200qz2WxmzP9KAUhr + MRqNVFVVUVFRgVqtJpfL4fP5aG6+R8mpEmpq9LyLJjGZTBgMBjQaDeXl5QpA2uXGxobcGIvF5AmsVivV + 1dWk0qIC0Nfyfk3g7WqG8JsUZWVlOCaW/wCOlsViQafT0WQ0odVqOaPT0d7Zy8uIyNxKmsDSFv2uX1/4 + DUgmk7IEQSQeX2d4ZByn24s/GMLtnWEqEGZ+OcGg9zU29wpW518TnCgHEuC4KEtJLBplCXBclKUJikZZ + AkiX/5UKTqafsLwA5EY1M54AAAAASUVORK5CYII= + + + + + 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 - AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABDklE + QVQ4T6WSvY3DMAxG3wpeIbNkBLtwkfZSuLnCgKAijQtDpYs0WsEreIVbwSt4BR14VGH9IBcghQqRH59E + 8iOEwCcnvdBu0Da56JT3RSwTBJhdLoq5L8kX8RLgA9hLIaQ94PtfgFOAX7O4UfjzdQsqtrtCpi4WN1o8 + CriYTwXQXmER8R7vDnq5m1xbBWjRPbayOH3d/uSalwCF2CMOVF4vhvoGQAb3lOLqWt8BHHFw8gtpRU7x + k7yoi0JxpKytA7+BP8Bu2s4t2UReHGDwKlRHwtDALLALzB584oUzwMFgZGDwSHYOvWxlldfhkWzkDDBq + onGHWzE4zU0r9FsVoKLRwFI3zJ8jxRfT9Rz/BalCUid5a6EwAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE - QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn - QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH - f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD - VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp - hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe - hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc - DAdFhtjSAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE + QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe + FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g + j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu + MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx + WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ + BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM + B4HjT5oAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB+ElE - QVQ4T2P4//8/RRirIAxP3vItZvLmrzvm7f76aPnBr0dWHvw6ZdWhr1LIalA0IOO+DV93APGf7nVfnzeu - +PK4fsmXO3N3fn0MNOATsiFwDd2rXv1fduKrAZi97uuy/o3ffqdOevfGpeDEb+vU7X/ME7Z8d6+4+3Hm - 9q9vgAbcRDEAKMDZuOTl/3kHvl6tX/G1YcKmb3/iep7/cy04/t8uY/cv09g1x13ytz60jF/+J6zj3c+l - B77eRzEAhItnPv+fNevz/8I5X/5H9nx8YZW85a9F4oYfprEr80HyAbXbVQwjFr9wLb/9vmHplz0YBiT1 - Pfvv3fTmf3Tv5/9lc9781/CetNokZoUjTF7BoY7ZLuvQb9eyO68bVn45BBOHGxDU/PS/WfH9/55Nr8Au - Sex59L9u8VtLmDzQAFa7zEN/veqefWte+WULTBxugFPF4/8ORdf+W2Ue/28Sv+2/YdTa/xo+U4FSEHmz - uPVKtpkH/wW0vP5bMP1xKUwcbgA6BgUsMl/da5K7a9ntP2mT3//r3fCVDSYOV0AIW6TsuxjS8eFfWN35 - XGRxFEXYcFzfeyWH/Asx/i0f/vlVXvmmFTCbEVkeRTE27FH92Nm/5dMvj5KLP42jVnmhy6NwsOGo3s+R - ziXXGk1j1olik8cQIBVjFSQe/2cAAG4MzKZBtgOMAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB60lE + QVQ4T2P4//8/AyUYQwAZT97yLWby5q875u3++mj5wa9HVh78OmXVoa9SRBnQt+Hrjr4NX/90r/v6vHHF + l8f1S77cmbvz6+NVh75+QjYErqF71av/y058NQCz131d1r/x2+/USe/euBSc+G2duv2PecKW7+4Vdz/O + 3P71zapDX2+iGLDq0FfOxiUv/8878PVq/YqvDRM2ffsT1/P8n2vB8f92Gbt/mcauOe6Sv/WhZfzyP2Ed + 734uPfD1PoYLimc+/5816/P/wjlf/kf2fHxhlbzlr0Xihh+msSvzQfIBtdtVDCMWv3Atv/2+YemXPRgG + JPU9++/d9OZ/dO/n/2Vz3vzX8J602iRmhSNMXsGhjtku69Bv17I7rxtWfjmEYUBQ89P/ZsX3/3s2vQK7 + JLHn0f+6xW8tkQxgtcs89Ner7tm35pVftmAY4FTx+L9D0bX/VpnH/5vEb/tvGLX2v4bP1P8webO49Uq2 + mQf/BbS8/lsw/XEphgHoGBSwyHx1r0nurmW3/6RNfv+vd8NXNoIGoGOLlH0XQzo+/AurO5+LLI6hEB3H + 9b1Xcsi/EOPf8uGfX+WVb1oBsxlJMsCj+rGzf8unXx4lF38aR63yQpfH0ICOo3o/RzqXXGs0jVknii5H + lAGEMIYAqRgAbgzMptd1HX8AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB5ElE - QVQ4T2P4//8/RRjOWHXoq9TKg1+nLD/49ci83V8f9az/klK58AsnsmJsGEyANAPxp7k7vz6uX/LlTuOK - L49bV325U7Hoy+fKRV9S0TUhYzAB1Hxz5vavb9wrH7w3T9jy3Spl2x+H3ONfUyZ/flE458uLwrlfwkDq - lp34auBQdA3IRDNg6YGv98M63v00i57/2yVv/U3T2DXHgPiLWfzm38mTP/9Nn/n5WfbcL5HzDny9ap15 - /D/QQrjXwETD0i97XMvvvFf36rkVULtdBSRmGrsy3zh6+VedgNm/Qjs/Pge65H/WrM//TeK3AqXRXNCw - 8ssh1/J7r9Q8+w4rONQxwyRNYlY4anhPWl02583/6N7P/72b3vzXC10MlEIzoHnlly3e9S++anhPvgk0 - gBUmOWXrV10gBtvs2fTqv1nx/f8aPlOBUmgGFEx/XBrY+uavUeSaX0ADuGGSoACzAvrZJH7bf72QJWDN - qm5dQCk0A3o3fGVLm/z+n2vZ7T/qXpPckRUgBxg2DGeE1Z3PDen48M8iZd9FZAWEMJyhFTCb0b/62kv/ - lg9/HfIvxMT1vVdCVogLo3CAhvD5VN48FdD6+atH9WNnZDlcGKugd8Or0Kjez5HY5NAxVkFSMFZB4vF/ - BgCu1sRwcCvT7QAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB40lE + QVQ4T2P4//8/AyUYzlh16KvUyoNfpyw/+PXIvN1fH/Ws/5JSufALJ7oGdAzXvOrQ109zd359XL/ky53G + FV8et676cqdi0ZfPlYu+pKJrwmbAzZnbv75xr3zw3jxhy3erlG1/HHKPf02Z/PlF4ZwvLwrnfgkDqVt2 + 4quBQ9G1/xgGLD3w9X5Yx7ufZtHzf7vkrb9pGrvmmGnsmi9m8Zt/J0/+/Dd95udn2XO/RM478PWqdebx + /6sOfYV7DUw0LP2yx7X8znt1r55bAbXbVUBiprEr842jl3/VCZj9K7Tz4/PCOV/+Z836/N8kfiumCxpW + fjnkWn7vlZpn32EFhzpmmKRJzApHDe9Jq8vmvPkf3fv5v3fTm/96oYsxDWhe+WWLd/2Lrxrek28qONSx + wiSnbP2qO2XrV7DNnk2v/psV3/+v4TMV04CC6Y9LA1vf/DWKXPNLwaGOGyYJCjCrzOP/TeK3/dcLWQLW + rOrWhWlA74avbGmT3/9zLbv9R91rkjuyAuQAw4bhjLC687khHR/+WaTsu4iuCB+GM7QCZjP6V1976d/y + 4a9D/oWYuL73SuiKsWEUjlbAbD6fypunAlo/f/WofuyMrhgbxhAAYe+GV6FRvZ8j0cWxYQwBUjGGAKkY + AK7WxHD7c7sYAAAAAElFTkSuQmCC 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 - RK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAX0lE + QVQ4T72OWwoAIAgEvf+lC0FFt3x8RCN9ZO0oLYakPNprKoZ80O5UyvKpFp4Krh+ngvJj1rfXH4ICEHiJ + 6xX0ggYRwMqDoBKiVvpI7MtPK5iA0UOAU/9voOD0Zxtszyqxa1VmsC8AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACh0lE - QVQ4T4WSyU9TURjF+5+4YOPKYOLGlYmucAEoMSExxoVAwCKCIhEEFYMEtSBCJDRImawgDaARlASVSUFG - FXBoAZmnFspUW9rX937e9jUxkZe4OLn5bu7vnJMvVwf8V7aWg8NbQ8ffY8+yTTaHKaymTv2eONki7hs0 - gX/ls0aZZ9sPw7aBhZ5YcRYz8/oQrrGIF5rAPolkdstA6md3qUmcvQTmDWu2xmMNWRsPKHOdMbhWW5DZ - wu1oJTAvdhzRBvbJnnWD7VILe50WYWIRTSxiRnbkazzWkGSLjp55E26R13IsTtMx6IhTdzB9GV1VwwSV - z8apePoFY80oj01DlBgHeFjWx4NHPRQUdmIuz6W7JQflaz6bjZGsN8WyO5XM8sBZdKb6cRRFQZIVvJKM - e09mxy3jdPmxb0ksOSVm7T6oMsLNLDgfBafDMJw6Ksqh01Wax5AFnFa+iL5kgbjCec4VzOLYkVjZ9DO/ - rg2nXn2uGjwR1SW/wpm8GaJuTRORNcmJDBtrgfQNSYVzMgUcCTEqPGDzcCm1XjUw1n7GJyl4fDIuj8ym - qO7Y8bMsqmslD0156LN60KeYVYPy6hH2BHy3boS8miHuVA9w29QP68MhWCSH4CtFbaQaXvHhp4ckfZ1q - UGYaxu0Vi/P4g+n27VB6wCAg0SIAj87sMTjp4aOAe767SUyqVQ1KKwZxic0HG9SKBlVqg+Fw8QVCcEZp - B+nF7aEGrXR9cxOfWKMalBg/BdOdu/7g4padPmYdPiZXvPxY9DI252X019/0bpH+btxNXEKVahD4MIaS - Xu4VdZF3/y25+e3k5LaRmf2Sa9ebSUu3kCI2rk82k3ixlviEai7EmYICdH8AxXsU+dXRvF8AAAAASUVO - RK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACiUlE + QVQ4T4WS3UtTcRzG95900Y1XYdBNV0Fd2YVaEggRXqSiaTbLJJdWiomVmimJw9x8W5pDV6QlWPlWmk7N + 1Eyn5vvbptPp2tl2ds4ntjMMctDFc/GD5/k8D19+KkD1P1lMYcN75rOfsGoss63HZTbVc78nz5ssprCm + I+ZQ8s5EGRY7ToKjiJXeWHCUsvDuBM7xiNdHzCFl1Vg4qABxgIO1FhD78L93ZrJDmENopvmYvNQVg3PT + hMQeLlsb/vdq56mj5pCyau7iKDfi7jI6N01GxAEjjnIkW0EIcwiJlujohffhRmkrx2jXnYHOeOUG8zdQ + 6ZsmqX45QVXDGNraUZ7rzJRpB3la0c+TZ70UFndhqMylx5SD/L2A3eZItltiOZhLZX3wMipd4wSyLCNK + Mh5RwuWW2HdJ2J0+rHsia3aRRasX9Fq4p4G4KLh4nKILp/GvU1UbxpEkmfTKVVLKVogvXuZK4SK2fZGN + XR/L26HD6luvFMCLhjFEn8yl/AWi7s8ToZnlXKaFLX/7jqiEc7IgLhJilPCgReC6ulEBaOu+4RVlBK+E + U5DYdfqw7ftYtwfD/zSb5wT6ZwRS0gwKoLJmBLdX4mH9CPm1ZvJqBnmgG4Dt4WA48jB8s6QdddFbPk8L + JKfUK4AK3TAuj8S+4Au0Wx3Bdj/AL702EB5dcDM0K/BlWqB3ykVScp0CKK8awukOLqgzk6dXFgyHqw7D + meWdZJR2BBe00f3DRUJSrQIo034NtNsPfIHDrdu9LNq8zG54+LnqYXzJw+ivv+09Uy4+TriIT9QrAP+H + KSrr41FJN/mPP5Bb0EFObjtZ2W+4faeV9AwjaepGUlINJF2rIyGxhqvxuoD8gD/FexT5V1saowAAAABJ + RU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAfUlE - QVQ4T+2UQQqAMAwEC/3/myMNTYjjomA8ehjozi5SQRxm9ilSdpCyg5QdpOwgZYcx56zYhp7Ejrx+4IJb - z3WQcsOOcOeZgyz2+Y7YVU6vfCkf4M5zDXHOEo5w47mGOGcJR7jxXIsoaw5HuAkun00bKYG6yUJt/79N - GxsH7EeiiVdcqusAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAdElE + QVQ4T7WTQQrAIAwEBf//5hRKI3ZWRbr1MAc345qLJSLKn0jgIoGLBC4SuEjgUmqtPfHAnKRHPheO3Ps8 + k3ZK6UlhDinO6B9vd1YCCwi914YsoDyCzrnCHOSwP89K6TSXoo0EA7jFavMDX4+BiwQuErhc7EeiiR4r + 8zwAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE - QVQ4T82OUQ7AIAhDuf+l2UA7O4OIH0v2Gj+EtipqSBeD2UbvkIEVMAtmgdav+t3C1YLQWC1Ijb8oSJgK - uIRmCW3L5rlgQ3M8IVMtCChI6shdlB33hDqAY0NE9DKO70MdwLGhgI9+oHoBzyqxa4rWeaEAAAAASUVO - RK5CYII= + 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 - gg== + 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 + qTrgv/oBFQAPI+QT9ewAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAChElE - QVQ4T52Q3U/SYRiG+Qs6aKutddDcWs220jKwuepArebUFtPFbKCJmYQfkxmakbRyIZFTHJrprCimZWGa - X0hqMHEwTFMLxLIpg+w7NXWkC7zj/f02W5MO7OA+et/rep7nZgBYV/qkgpimrGSQ9BSmhwb89K8037kQ - ScCp8lyM5NOSgB8DhcDdLUXQdg1g9FoeBSuZTPrRYVbBZqrAsKEM1mcKmNplsOgVsPYoMGS4gbEXFdBr - 8zDjLMWb/izIZEWQH2D6UTBWBSs+O3ze5/Au6/HL04blBS1+ztbD7VBB15BOwQ4DH621Mdi8cQNuyk+j - uuQcnxKQ6T6vJSDcoeasgYcMYlRc4SI5NsJFCUaN5fAuGbC8+ARLcw/g+aaGy65EW138GthuysFrswSF - mWwioDsY7C71T+2EZ+Y+Fr/UYv6DCrdua2DRyeF6eX4VHjMJMT0igrlTgAxOFJKOhdMCi+66H36EhY9V - +OEuw6yzhBKsrPjQqGJTsM0ogGswG+/MZ9Fx7wTiD4ciITKMFvS1yrD4+S4e1xegXM6HKCMOOSIx2Ikc - f80MDHalYdIiwLgxFa/0p6CtOoIoVjBiD4bQgl7tVcxP12BmshjfJ6T4Ol6ITzYx3g/nYsoqxNu+NNi6 - uaR1yAq4yE6JQeJRFiWhBF0PL2POXfkX7BzIxER/Ouy9PAx3nIS16TgFkzOiw4NRnBOGiJDttKBNc8l/ - txL97WkwNqegpzEJOk0CntbFUes2lB2CuoRFTSZwpYSFGulu7N25jRa0qC9CnLoPIl4YhJz9OMNmghfL - olomRZFbybpkbalgD6olu6DK34HgoC20YD0SsjaZTOCgrZv+CP4vYPwGutu4vmPLy7gAAAAASUVORK5C - YII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAChUlE + QVQ4T5WT3UvTURyH9xd0ERREFyFEsaC0bDOkulArRI2G0jCm5my5fBkOm2bmoqS5THxhmilWK9GyZppz + zqW2scnGTFNrU8vQMbP3NlNZjrZ94vx+YMQq8uJzdc7zfF84hwGAsZYYpcLY9pxUkPQXCcKCLvwrHbfO + RRFwtioPYwW0JOjS30Lgvs4SqHqHMH4ln4KrWSz6cNKsgM1Ug1F9JaxPymHqlsGiK4e1vxwj+muYeFYD + nSofLkcFXg3mQCYrgXwfC4RdFQT8dvh9T+Hz6vDDo4Z3SYXv7hbMTSqgbRVQ8KSej67GWGxcvw7X5SdR + X3aGTwlIdb/P8kdYo+QGwSN6CWou8ZAaF+mkBOOGKvhW9PAuP8LKwj14vijhtFdD3ZQQBNtNIrw0F6Mo + m0ME9A6G+yrgXeqBx3UXy58asfhOgRs3m2HRyuF8fnYVnjBlYX5MDHOPEJncaCQfiaAFFu1VeFwPsPS+ + Dt/mKuF2lFGCQMCPNgWHgm0GIZzDuXhjPg3NnWNIOBiGxKhwWmDskmH54208bClElZwPcWY8RGIJOElc + MBgMDPdmYMYixJQhHS90J6CqO4RoNhNx+0NpwYDqMhbnG+CaKcXXaSk+TxXhg02Ct6N5mLVm4bUxA7Y+ + Htk6ZIU85KbFIukwm5JQgt77F7EwV/sb7BjKxvSgAPaBFIxqjsPafpSCyRgxEUyUisIRGbqVFqibL8Dt + qMZgdwYMHWnob0uGtjkRj5viqXZbKw9AWcamKhO4tpiNBulO7N6+hRZ0Ks9Dkr4H4pRwZHH34hSHhZQ4 + NrVlsigyK2mXtC0V7kJ98Q4oCraBGbLp11v/Xwlpm1QmcMjmDcGfZq35CbrbuL7aUBONAAAAAElFTkSu + QmCC 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 - agnC/hIAAAAASUVORK5CYII= + QVQ4T52TX0jTcRTFbxYWzDa2/dYv14/2c7O10G3IKNAVXygDKYLMCgKjwAiZmGlYoYMxKNaqNZXlmA8h + CaNG0kMpAxmDLCSwKKiwcHNtQZQPI0b/TDmxElmjh+nn8V44l3M4l6gQvAYz3dgqyx8XTHV4I3RBIZo/ + L5i6cQ6tcQmkfYIjf1cQxocizs9KsTvCgZyl7N9twCKjgIWRv4qRz8Sor4KR18DIo2d0VcfIJTLjAw2O + xkScmlZAc4tPk12Zk0fAwhpe8Gh6J8eRlyrUTZTCGhGQvaoJlUMxaIB434DD01rUT5Wh9rEaJW4uJw9/ + FWtLrYcrU4yLnyRoTshx7M0G7JvchJpHZagI61E59lfgwJQetc+00IVEFHXLFvPwmVh7qgQ9c2vg/r4O + zowEXWkZOmaVaPnIo+mDGo2JzUsCe19vw46oAQ1jHKit2ExZz+1JybIE+jNWNEYVoNbV5mxJWCh5E28X + gni+0Ivx+W6Ef53G8NxB3P5phf/HFji/qJYELn/eD19qJ1SOtYsWPHrmmRzAyPth3Ev0Y2jGgYGZZvTG + 63ElVg1HTIvOlPKPwNnkHkS+dsDUw+eEeK1cRm4tI5eG0SWBkVPNyMEzsnOMuuSMLkiZMaTC8XglXs0P + 4lBwe5paipZXa+MdDk+/3cX1iTMg26q8IhVA58g5PEmNQrDzK6vyiaGT2OWtWfkzkY3MZKP/+v4NDkAX + agkV7KYAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABJklE - QVQ4T6WSvZHCMBCFtwVaoBZKEAEB6RGQXOAZRgGJAw+hAyfbAi3QwrVAC9eC71vJDFpLcwnBs/Xe/kj7 - I/M8fwRPJDzAptRKYNNKc0QCn+FWaoXty+yV7khKoCBuS32x/Yp8c1zpjki45QR6X+mXnHz6v4QkSHzm - JP0+87DJwR3Qqj+OJEHCTmQ05+fCedXB+GXtm+xNUU5LKSN/uz3+tPwMTdFAEE1LDQVaNfWFpmjgZho3 - WXBzrC80RQMJeEFqHIhWiqEeryMS9oujbSTCBFfOSrLI38o5ukmsgzmcNTsO6elwxjhwmLb8sanbhTIB - N5+pW3G8Irxnzhix6d1ux+YmUiYg2JaoA8eqcdnWk+TwcLoj0pFkbC9M2kjbi3731mf5A6lCUicKFTV6 - AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABDklE + QVQ4T6WSvY3DMAxG3wpeIbNkBLtwkfZSuLnCgKAijQtDpYs0WsEreIVbwSt4BR14VGH9IBcghQqRH59E + 8iOEwCcnvdBu0Da56JT3RSwTBJhdLoq5L8kX8RLgA9hLIaQ94PtfgFOAX7O4UfjzdQsqtrtCpi4WN1o8 + CriYTwXQXmER8R7vDnq5m1xbBWjRPbayOH3d/uSalwCF2CMOVF4vhvoGQAb3lOLqWt8BHHFw8gtpRU7x + k7yoi0JxpKytA7+BP8Bu2s4t2UReHGDwKlRHwtDALLALzB584oUzwMFgZGDwSHYOvWxlldfhkWzkDDBq + onGHWzE4zU0r9FsVoKLRwFI3zJ8jxRfT9Rz/BalCUid5a6EwAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE - QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn - QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH - f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD - VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp - hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe - hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc - DAdFhtjSAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE + QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe + FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g + j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu + MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx + WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ + BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM + B4HjT5oAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB+ElE - QVQ4T2P4//8/RRirIAxP3vItZvLmrzvm7f76aPnBr0dWHvw6ZdWhr1LIalA0IOO+DV93APGf7nVfnzeu - +PK4fsmXO3N3fn0MNOATsiFwDd2rXv1fduKrAZi97uuy/o3ffqdOevfGpeDEb+vU7X/ME7Z8d6+4+3Hm - 9q9vgAbcRDEAKMDZuOTl/3kHvl6tX/G1YcKmb3/iep7/cy04/t8uY/cv09g1x13ytz60jF/+J6zj3c+l - B77eRzEAhItnPv+fNevz/8I5X/5H9nx8YZW85a9F4oYfprEr80HyAbXbVQwjFr9wLb/9vmHplz0YBiT1 - Pfvv3fTmf3Tv5/9lc9781/CetNokZoUjTF7BoY7ZLuvQb9eyO68bVn45BBOHGxDU/PS/WfH9/55Nr8Au - Sex59L9u8VtLmDzQAFa7zEN/veqefWte+WULTBxugFPF4/8ORdf+W2Ue/28Sv+2/YdTa/xo+U4FSEHmz - uPVKtpkH/wW0vP5bMP1xKUwcbgA6BgUsMl/da5K7a9ntP2mT3//r3fCVDSYOV0AIW6TsuxjS8eFfWN35 - XGRxFEXYcFzfeyWH/Asx/i0f/vlVXvmmFTCbEVkeRTE27FH92Nm/5dMvj5KLP42jVnmhy6NwsOGo3s+R - ziXXGk1j1olik8cQIBVjFSQe/2cAAG4MzKZBtgOMAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB60lE + QVQ4T2P4//8/AyUYQwAZT97yLWby5q875u3++mj5wa9HVh78OmXVoa9SRBnQt+Hrjr4NX/90r/v6vHHF + l8f1S77cmbvz6+NVh75+QjYErqF71av/y058NQCz131d1r/x2+/USe/euBSc+G2duv2PecKW7+4Vdz/O + 3P71zapDX2+iGLDq0FfOxiUv/8878PVq/YqvDRM2ffsT1/P8n2vB8f92Gbt/mcauOe6Sv/WhZfzyP2Ed + 734uPfD1PoYLimc+/5816/P/wjlf/kf2fHxhlbzlr0Xihh+msSvzQfIBtdtVDCMWv3Atv/2+YemXPRgG + JPU9++/d9OZ/dO/n/2Vz3vzX8J602iRmhSNMXsGhjtku69Bv17I7rxtWfjmEYUBQ89P/ZsX3/3s2vQK7 + JLHn0f+6xW8tkQxgtcs89Ner7tm35pVftmAY4FTx+L9D0bX/VpnH/5vEb/tvGLX2v4bP1P8webO49Uq2 + mQf/BbS8/lsw/XEphgHoGBSwyHx1r0nurmW3/6RNfv+vd8NXNoIGoGOLlH0XQzo+/AurO5+LLI6hEB3H + 9b1Xcsi/EOPf8uGfX+WVb1oBsxlJMsCj+rGzf8unXx4lF38aR63yQpfH0ICOo3o/RzqXXGs0jVknii5H + lAGEMIYAqRgAbgzMptd1HX8AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB5ElE - QVQ4T2P4//8/RRjOWHXoq9TKg1+nLD/49ci83V8f9az/klK58AsnsmJsGEyANAPxp7k7vz6uX/LlTuOK - L49bV325U7Hoy+fKRV9S0TUhYzAB1Hxz5vavb9wrH7w3T9jy3Spl2x+H3ONfUyZ/flE458uLwrlfwkDq - lp34auBQdA3IRDNg6YGv98M63v00i57/2yVv/U3T2DXHgPiLWfzm38mTP/9Nn/n5WfbcL5HzDny9ap15 - /D/QQrjXwETD0i97XMvvvFf36rkVULtdBSRmGrsy3zh6+VedgNm/Qjs/Pge65H/WrM//TeK3AqXRXNCw - 8ssh1/J7r9Q8+w4rONQxwyRNYlY4anhPWl02583/6N7P/72b3vzXC10MlEIzoHnlly3e9S++anhPvgk0 - gBUmOWXrV10gBtvs2fTqv1nx/f8aPlOBUmgGFEx/XBrY+uavUeSaX0ADuGGSoACzAvrZJH7bf72QJWDN - qm5dQCk0A3o3fGVLm/z+n2vZ7T/qXpPckRUgBxg2DGeE1Z3PDen48M8iZd9FZAWEMJyhFTCb0b/62kv/ - lg9/HfIvxMT1vVdCVogLo3CAhvD5VN48FdD6+atH9WNnZDlcGKugd8Or0Kjez5HY5NAxVkFSMFZB4vF/ - BgCu1sRwcCvT7QAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB40lE + QVQ4T2P4//8/AyUYzlh16KvUyoNfpyw/+PXIvN1fH/Ws/5JSufALJ7oGdAzXvOrQ109zd359XL/ky53G + FV8et676cqdi0ZfPlYu+pKJrwmbAzZnbv75xr3zw3jxhy3erlG1/HHKPf02Z/PlF4ZwvLwrnfgkDqVt2 + 4quBQ9G1/xgGLD3w9X5Yx7ufZtHzf7vkrb9pGrvmmGnsmi9m8Zt/J0/+/Dd95udn2XO/RM478PWqdebx + /6sOfYV7DUw0LP2yx7X8znt1r55bAbXbVUBiprEr842jl3/VCZj9K7Tz4/PCOV/+Z836/N8kfiumCxpW + fjnkWn7vlZpn32EFhzpmmKRJzApHDe9Jq8vmvPkf3fv5v3fTm/96oYsxDWhe+WWLd/2Lrxrek28qONSx + wiSnbP2qO2XrV7DNnk2v/psV3/+v4TMV04CC6Y9LA1vf/DWKXPNLwaGOGyYJCjCrzOP/TeK3/dcLWQLW + rOrWhWlA74avbGmT3/9zLbv9R91rkjuyAuQAw4bhjLC687khHR/+WaTsu4iuCB+GM7QCZjP6V1976d/y + 4a9D/oWYuL73SuiKsWEUjlbAbD6fypunAlo/f/WofuyMrhgbxhAAYe+GV6FRvZ8j0cWxYQwBUjGGAKkY + AK7WxHD7c7sYAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiklE - QVQ4T6WQ0Q2AIAxE2cCRGMVRHMFRHMFRGIERsAUuJFxNqF7yPny5ltRQSvmFKT2Y0oMpPbAQ9cIlbNQn - EULsA8rRyf37oj6JFixATuHTgrtTh4WlEzRYgBOSoGfs1CfRggUI/kumPokWLNBBBWck6pMYwzN6QqQ+ - ifHqTA31Z+HFlB5MuU4JD0dnUwrgCrV/AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgUlE + QVQ4T6WQWw2AMBAE1wGSKgUpSEAKEpBSCZVQ0rSXPoafg0uGj8newqGcs/4A4QXCC4QXCqk83rgkbchD + SGFYOhrJSpCHqGMFNufXgrvhOmEssBNiO2NHHmIusLH/kpCHmAvKYsHOiMhD9OWVckJAHqK/daV+2ppf + hRcILxBeHkdnUwqevR+DAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiElE - QVQ4T6WR0QmAMAxEu4EjOIIjOIKjOJIjdARHcKSYSyiCvA+DBw+8x7UUbGb2C5QVUFZAWYFlZnNUBh23 - KDOz0504rI5blE9OR0Kv4S3KJypiikJblJnFUbmieXCLMrM7Kkc0D25RZnRQRRdFcIsyn62Pgf4Ib1G2 - tr6I4JZkBZQVUH7H2g1WeXFvwrwKSQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgElE + QVQ4T6WRUQ2AMAxE6wAJSEACEpCCJCQgAQlIGjm2EtIjjBtL3kcv15cSLKVkf6BAhQIVClQoOMP8JjPD + 4KyxVxP0WPJlzLFXE+BtRYBrqPdF4Od3LYKhLO+X7akbg5tgLoKlVYBFDBDJApzt3w/wR6j3JhgD2gUK + FKhQoHIAVnlxb1bdEucAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE - QVQ4T92RUQ2AMAxE6wApSJgUJCABSUhAChKQUHrbGjgYH4U/Lnlhd+G6ZRNV/UQzjNAMIzTDCGxEkoGF - szSyRB0yIp0x1h9Xo79kEzx1yBT5jtjd5Rm+3CFT9IMBuLTNQOCXONcMa+6QOTQYPgRgjSyLOmTuwpHz - sc+iDpki7IT3foI7ZIreD4ijsgOjTd7+jqoH+QAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAf0lE + QVQ4T2P4//8/AyUYQ4BUjCFAKsYQIBWjchgY7BkYGEAMGN6PRcwenwH8DAwM+VCF9xkYGPTRxOpBfHwG + ILsCZDu6GIjG64VhYgAo0N5DNcACcT1UDMQmaAAIxCMZAsIgNkgMDIgxAAZATgY7GxkQMgBkEyi+cWEa + GkAOBgCjTd7+r93eSgAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE - QVQ4T82M2w7AIAxC/f+fdrVqAwvNLt3DRljCqdB6759awoolrFjCihnckH3j53aCfTODC8UIZuybKTzV - 5eB44I+iotlQsNWNDQqinLFIqxsbFJIysvMd+75BwLQH0POS3LBvprBFhcVSYd/MwIRj2/OSCPtmDmJA - MRL0fYPC7we/sIQVS1ixhO/d2wE0YN1NDoBJDwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE + QVQ4T92PQQrAMAgE/f+nLfUQdFdiYT0VmZJMyJCau9smJFRIqJBQqeLDmMUnCKMETyTvlSDOGCy/ki6h + O7F3tREsezWI59dgDmQwXs6mIF4sr+lmCuILxugt2AU696PgBiRUSKiQUHkANGDdTeFIubEAAAAASUVO + RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAm0lE - QVQ4T62NUQ7DIAxDe/9LMyclyGauygZ6eh8xtXu11o5qwx1tuKMeOENcA5cJ1M8NOU4PBm6Q7y+4DzUA - MTB7vzzAfahBZ3ks4D7UAPBYeb88wH2oAZgH3F1mUt2uHvxhhzP3xv3ckIPKhcuKzKmfGxL8wPgJ96EG - i4yxgPtQgwVkLOA+1OCFGJuVPpTjhDbc0YY72vB/2/UB43bUVn8JuhoAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAcklE + QVQ4T72QUQrAMAhDvf+lHX50qJFqSSnhDczom52oqtwEChYoWOIgYg+b/lRdyFPhEvgDeYZMhBmQnAgt + Y5mlE+btWulE6A9Uc/jQTlht5LvqHSXMaYUnGV15mrAxK4TrM8L1Pz174QWgYIGCBQqWD+N21FbTYK/z + AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAfUlE - QVQ4T+2UQQqAMAwEC/3/myMNTYjjomA8ehjozi5SQRxm9ilSdpCyg5QdpOwgZYcx56zYhp7Ejrx+4IJb - z3WQcsOOcOeZgyz2+Y7YVU6vfCkf4M5zDXHOEo5w47mGOGcJR7jxXIsoaw5HuAkun00bKYG6yUJt/79N - GxsH7EeiiVdcqusAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAdElE + QVQ4T7WTQQrAIAwEBf//5hRKI3ZWRbr1MAc345qLJSLKn0jgIoGLBC4SuEjgUmqtPfHAnKRHPheO3Ps8 + k3ZK6UlhDinO6B9vd1YCCwi914YsoDyCzrnCHOSwP89K6TSXoo0EA7jFavMDX4+BiwQuErhc7EeiiR4r + 8zwAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACC0lE - QVQ4T2P4//8/RRirICkYznAqu8PpWn1X0bX9VZZz79ta6+lft5jP+nXRbOrXfSad77uNK55mGebfsNKK - OyuGYYBP7QMu14bnRXbtbzd5J1246Bd+YI1P+OF8r8ij6S7RpydbFN45qdnz6bli9bM7ysHHKtWs9vCg - GOBSddfetuX1o6CAfbdjQrf4wySRsXnW5YmqqdevSDvtu6dlvjwSJg4mbJpe7DTNv//dz3ldB0wCG1ZN - ubBNxm3vZx3zhWthYmDCtPrpct2Yq9+cLVdnwySwYeX08+vlvHZ/NbScvwQmBiYsim/5a/iduaFmuO0y - TAIbViq5+kbFYeNrK5s5MTAxMGEWd1lZ1f3EAXnrA1/V7bd4wCSRsW722UTl8it/TKwXXbOyXqAJE4cr - 0PQ7YiEecem1tMfBXTAxZKyTf+myWsi+z9a2C9yQxVEUySZfmS2ZcPapht1me2Rxo8xTTprFlz5o+25b - jywOwmBCvP/zR7Xkc84qIQdVpV12vteyXLkRWZFBzukjOtmnv+v7bzPW9FyfJOez+idMDmJA/fP34tmX - v8harn+iYzbvjYH1vHswBSBskHPqhV743s/aLqvfqzst/anqNP8bTA5MyAcdOaFovPq2rvn8T5rWc35o - OC38C1MAwoZJB34be2/4YeS94oeO66L3Og7zHsLk4IrIxVgFicf/GQDTEJf4sarC9QAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMElE - QVQ4T6WS30uTURjHdx/+AeE/MBR2M3aZV90IXSx0Gl0YkRdFQoFdOMYu6iJsIghpKXNmmzPz53I618YY - U5zODMyKsjZ1plPX+5Y5WsrmPvm+rz9KEiEf+HIe+J7z4TnnfFWOwUmcQ1N0Dr+S1w53BMfgBE9dYZ70 - j2HrDWHtDtLSFeBxp5+mjpc0Orw8tI/IkgGZXIbU1o6slY0sc2tZuoNx7jZ7/vKO+rria6icQxHZGJ3+ - LGs4HJNNSdV1rgMvOBXFPxnDE57nxdgCfaFFBSBNUNPgOVB1nZtb913cuNdHpfk5V4xOLt+xU3a7jYs3 - W7lwvYXiykecv9qoANoHxjmpcjnI7uTY2s6SSmf4vrnN+rdfCqC1J7S37bBEUaS+vp6KigoMBgOODidf - xU2EjS2+rP/k09IPfONzCqD5WYB4PI7FYiGVSsmAaDRKMplEEATyz+ZTXn6JWHyVlaRy2Gw20+9/owCk - bzEajej1ejQaDQUFBaTTaXw+H7W1D8g7k0dpqYEP0QQmk4mqqiq0Wi2FhYUKQPrL5eVl+WAsFpMnsNls - lJSUsJYUFYChjI8LAu/nN4i8W0OtVu9mZuYQcLSsVitFRUXUGE3odDrO7fYNTW28nhMZn00SmF7FPrh3 - hX1AIpGQJQgii4tL9PQO4HJ78QfDuL2jjAQiTMzE6fK+xeGexeb6Y4JT5UACHBdlKYknRlkCSMa/oixN - sO8dG2UJIDX/K9Xu+51CqH4DsLwA5JN+awcAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAtklE - QVQ4T2P4//8/RRjOqKrv+F/T0AnGlUCcU9b5X8/QFCiFXw5uQE1DB0jg/6/ff/9//v4HjE0t7EFCeOWQ - DOgEKvj3P6Dp63/D1LP/7775/V9TxwisCJ8c3ACQ00AmWxY9+q+fdOL/ietP/0vLKYMV4ZODGwDyF0gR - yHSQgm1HL/8XEpEAK8InBzfA3NLuv7WDx399I8v/8soa/0XEpYGyICn8cnADyMVwxmg0DotoJA//ZwAA - qy/GB3Ky9SEAAAAASUVORK5CYII= - - - - - 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 + hRcILxBeHkdnUwqevR+DAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiElE - QVQ4T6WR0QmAMAxEu4EjOIIjOIKjOJIjdARHcKSYSyiCvA+DBw+8x7UUbGb2C5QVUFZAWYFlZnNUBh23 - KDOz0504rI5blE9OR0Kv4S3KJypiikJblJnFUbmieXCLMrM7Kkc0D25RZnRQRRdFcIsyn62Pgf4Ib1G2 - tr6I4JZkBZQVUH7H2g1WeXFvwrwKSQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgElE + QVQ4T6WRUQ2AMAxE6wAJSEACEpCCJCQgAQlIGjm2EtIjjBtL3kcv15cSLKVkf6BAhQIVClQoOMP8JjPD + 4KyxVxP0WPJlzLFXE+BtRYBrqPdF4Od3LYKhLO+X7akbg5tgLoKlVYBFDBDJApzt3w/wR6j3JhgD2gUK + FKhQoHIAVnlxb1bdEucAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE - QVQ4T92RUQ2AMAxE6wApSJgUJCABSUhAChKQUHrbGjgYH4U/Lnlhd+G6ZRNV/UQzjNAMIzTDCGxEkoGF - szSyRB0yIp0x1h9Xo79kEzx1yBT5jtjd5Rm+3CFT9IMBuLTNQOCXONcMa+6QOTQYPgRgjSyLOmTuwpHz - sc+iDpki7IT3foI7ZIreD4ijsgOjTd7+jqoH+QAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAf0lE + QVQ4T2P4//8/AyUYQ4BUjCFAKsYQIBWjchgY7BkYGEAMGN6PRcwenwH8DAwM+VCF9xkYGPTRxOpBfHwG + ILsCZDu6GIjG64VhYgAo0N5DNcACcT1UDMQmaAAIxCMZAsIgNkgMDIgxAAZATgY7GxkQMgBkEyi+cWEa + GkAOBgCjTd7+r93eSgAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE - QVQ4T82M2w7AIAxC/f+fdrVqAwvNLt3DRljCqdB6759awoolrFjCihnckH3j53aCfTODC8UIZuybKTzV - 5eB44I+iotlQsNWNDQqinLFIqxsbFJIysvMd+75BwLQH0POS3LBvprBFhcVSYd/MwIRj2/OSCPtmDmJA - MRL0fYPC7we/sIQVS1ixhO/d2wE0YN1NDoBJDwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE + QVQ4T92PQQrAMAgE/f+nLfUQdFdiYT0VmZJMyJCau9smJFRIqJBQqeLDmMUnCKMETyTvlSDOGCy/ki6h + O7F3tREsezWI59dgDmQwXs6mIF4sr+lmCuILxugt2AU696PgBiRUSKiQUHkANGDdTeFIubEAAAAASUVO + RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAm0lE - QVQ4T62NUQ7DIAxDe/9LMyclyGauygZ6eh8xtXu11o5qwx1tuKMeOENcA5cJ1M8NOU4PBm6Q7y+4DzUA - MTB7vzzAfahBZ3ks4D7UAPBYeb88wH2oAZgH3F1mUt2uHvxhhzP3xv3ckIPKhcuKzKmfGxL8wPgJ96EG - i4yxgPtQgwVkLOA+1OCFGJuVPpTjhDbc0YY72vB/2/UB43bUVn8JuhoAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAcklE + QVQ4T72QUQrAMAhDvf+lHX50qJFqSSnhDczom52oqtwEChYoWOIgYg+b/lRdyFPhEvgDeYZMhBmQnAgt + Y5mlE+btWulE6A9Uc/jQTlht5LvqHSXMaYUnGV15mrAxK4TrM8L1Pz174QWgYIGCBQqWD+N21FbTYK/z + AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE - QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn - QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH - f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD - VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp - hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe - hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc - DAdFhtjSAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE + QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe + FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g + j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu + MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx + WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ + BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM + B4HjT5oAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACX0lE - QVQ4T6WSa0hTYRjHD/TBvhRdqE99Koi+RFFB9SGjUAsvLYzEjMxFTKVkk6XpSC1N0eVtadqMvAw1b5Uo - KUUiJI7uGs7oIpEauZa1s3nP4tc5RwZNBgW98OPA+77/3/O8D0cA/gufmz3tOXTdzqS1KhVtTMh2X3c8 - CC21RXoJPFQVHMdpr2PSfoORwXySNUEUZeu5ZjRgyk6SCVwsYEZsZs7VxIyzHku5nqnxGpJjVbbXvSlc - OBtKinoH9p6TjHesRxt9SMotEsjhOVcDZTkn6LPmI34qYWzQwAfrKdoqVMRG+VOXto4XRQLxx0K8BU01 - BQsC8RbGtGgy9JEYEiI4Hx+OXqNCpw4lLiqAYu0GRRAZ7O8tqK80Mis2MuswMzWai+NVAraa1QoD1avo - K1/GU5OfEpYJ2L3VW2Ax5zDtqGJ6OIupN2eYfHkEsX05hdUd5JpbuXi1kRSjBV1mBbGpJqIT87wFlaWZ - TIyYmBzUMPEsFPejbXy5u0YJe9bc/E+crhmGx5xExF0iLMYgby8IKgrTEd9m4X4ShLt7M67OtYxUC0pl - eVXe6VEwN3QxMGRXwg96bRwIV8vHglCal8q3/nO4ujYh3luJo9mPoZuC0vaP+V98d0uVPzsZeG/H2v+R - 4CgdQVJ4/8HD+O/Zi1B8OQnH4zgpvIKvLUsZrV2CrUxAK71ZbtvTwXWpgxJLJ23dNuUrs2vLRoQrGYnK - D+KZsgeNNLA/Kz+0vlPCzff7aOh47iUILEw/Lf1hKtThgYTt26kcyNOW3+yp5gtFIA/CF0elacsX/obP - 8L+D8Bsb4cocWY3wtQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACYklE + QVQ4T6WSXUiTURjHX+jCboo+qKuuCqKbKCqoLjIKt8KPFovEFi0XsU1KNlnaNlJzpujSzaVpW7Qv1OZH + JYqToiE0HH3P2Iw+JJpGrmXt3dycy+If74mFrwsiOvDjwHvO//c87zmHAkD9D2kfGNwDtXDd0qDPooKs + MGf74nWWoLddr+ht1yOFpfE4wsEOxILXMTHWgDIxF/oaBa5q1TDUlDJwFguQoHuQjHQjEe6EvU2B+LQN + ZRKe/+WIEhfO5kIp2oGg+ySmneshEx5CmoAJJyMOtNaegNfTAPpDM6bG1HjnOYV+Ew8SQSY6ytfhmZ5C + 0bEctqDb1vhLQN+EtlyISkUB1MX5OF/Eh0LMg1yUC6kgC02yDURQkJ3JFnSatZijuzAXMiI+WYfQi2L4 + basJPusqeNuW4bEhg4QZsnZvZQvsxlrMhiyYDVQj/uoMYs+PgB5YDp3ViTpjHy5e6YJSa4dcY4JEZYCw + pJ4tMLdoMDNhQGxMjJknuYg+2IZPd9aQcGok578jHEkgMBVGvrQKeYXq3xLKpKsA/boa0UdcRIc3IzK0 + FhNWilRmhvm2m2B0uOAbD5LwvRE/DvBFREK11KvwZfQcIq5NoAdXItSTgfEbFGn72/wPfI0mEPgYhu9t + EJ7R98gWyMHli7D/4GFk7tkLqulSKUIPpaAHV+Bz71JMti+Bv5WCTGMibac6uOZwodk+hP5hP5kZdm3Z + COpyZQl5IKlTTiFWGViV73vekHDPXS8czqcsAUdXcRoyIQ8iPgd5+3aSBea0mX9OVfsTRLDwShZyVFpF + NvyNtOC/8hMb4cocvUYexQAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/VlnFlexGrid.cs b/PROMS/Volian.Controls.Library/VlnFlexGrid.cs index 046af0aa..c3a3910c 100644 --- a/PROMS/Volian.Controls.Library/VlnFlexGrid.cs +++ b/PROMS/Volian.Controls.Library/VlnFlexGrid.cs @@ -166,6 +166,13 @@ namespace Volian.Controls.Library { if (this.TableCellEditor.Text.Contains("")) return false; + //C2025-023 - Electronic Procedures - Modifications to PROMS + //To handle if EP designation changed so will save in the DB + if (IsUserDataDirty) + { + IsUserDataDirty = false; + return true; + } XmlDocument XdOld = new XmlDocument(); oldXml = _ReplaceTextFont.Replace(oldXml, "$1" + FontChangeFmt + "$4"); // B2021-032: use original font XdOld.LoadXml(AdjustHeightAndWidthForDPI(oldXml)); @@ -328,7 +335,7 @@ namespace Volian.Controls.Library XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Styles/Style/Definition"); string data = string.Empty; foreach (XmlNode xn in nl) - { + { string str = xn.InnerText; string[] splStr = str.Split(';'); foreach (string s in splStr) @@ -852,7 +859,10 @@ namespace Volian.Controls.Library if (Row >= cr.r1 && Row <= cr.r2) { int cellHeight = GetCellHeight(Row, c); - int dataHeight = (cr.UserData == null) ? cellHeight : (int)cr.UserData; + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Userdata will now contain: height, EP Designation + string tmpUD = $"{cr.UserData}"; + int dataHeight = (cr.UserData == null) ? cellHeight : int.Parse(tmpUD.Split(',')[0]); int ud = dataHeight / (Rows.DefaultSize - 3); //if (cellHeight < dataHeight) // Console.WriteLine("r {0}, c {1}, cell{2}, data{3}", Row, c, cellHeight, dataHeight); @@ -1243,11 +1253,24 @@ namespace Volian.Controls.Library if (_tableCellEditor._initializingEdit || !_tableCellEditor.Visible) return; int curHeight = GetCellHeight(Row, Col);//(Rows[Row].Height == -1) ? Rows.DefaultSize : Rows[Row].Height; CellRange cr = GetMergedRange(Row, Col); - int oH = cr.UserData == null ? curHeight : (int)cr.UserData; + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Userdata will now contain: height, EP Designation + string tmpUD = $"{cr.UserData}"; + int oH = cr.UserData == null ? curHeight : int.Parse(tmpUD.Split(',')[0]); int nH = _tableCellEditor.Height; //.ContentsRectangle.Height; int nW = _tableCellEditor.Width; // Width int Hadj = (nH - curHeight);//oH); - cr.UserData = _tableCellEditor.Height; //.ContentsRectangle.Height; + string tmp = $"{cr.UserData}"; + int comma = tmp.IndexOf(','); + if (comma != -1) + { + cr.UserData = $"{_tableCellEditor.Height},{tmp.Substring(comma + 1)}"; + } + else + { + cr.UserData = _tableCellEditor.Height; + } + //int cellHeight = GetCellHeight(Row, Col); //int cellheightNLines = cellHeight / (Rows.DefaultSize - 3); //int nHNLines = nH / (Rows.DefaultSize - 3); @@ -1371,7 +1394,18 @@ namespace Volian.Controls.Library { _rtf.Width = e.Bounds.Width - 1; // This has also been -3 which matchs the rener command CellRange cr = GetMergedRange(e.Row, e.Col); - cr.UserData = _rtf.Height; + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Userdata will now contain: height, EP Designation + string tmp = $"{cr.UserData}"; + int comma = tmp.IndexOf(','); + if (comma != -1) + { + cr.UserData = $"{_rtf.Height},{tmp.Substring(comma + 1)}"; + } + else + { + cr.UserData = _rtf.Height; + } int hAdjust = 0; int hDiff = e.Bounds.Height - _rtf.Height; if (hDiff < 0) @@ -2612,6 +2646,84 @@ namespace Volian.Controls.Library CellRange cr = this.Selection; cr.Clear(ClearFlags.Content); } + + public enum EPinputtype + { + none, + textbox, + checkbox, + multi + }; + private bool IsUserDataDirty = false; + + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Userdata will now contain: height, EP Designation + //For Electronic Procedures to set the Electronic Procedure input type + //for when cells in a table will need a textbox or checkbox in the EP viewer + public void SetEPinputtype(EPinputtype EPtype) + { + CellRange cr = this.Selection; + + for (int r = cr.r1; r <= cr.r2; r++) + for (int c = cr.c1; c <= cr.c2; c++) + { + CellRange cr_single = GetCellRange(r, c); + string tmpUD = $"{cr_single.UserData}"; + string height = cr_single.UserData == null ? $"{GetCellHeight(r, c)}" : tmpUD.Split(',')[0]; + + if (EPtype == EPinputtype.none) + cr_single.UserData = int.Parse(height); + else + cr_single.UserData = $"{height},{EPtype}"; + } + + //save the changes + Select(cr); + IsUserDataDirty = true; + } + + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Userdata will now contain: height, EP Designation + //For Electronic Procedures get the Electronic Procedure input type + //for when cells in a table will need a textbox or checkbox in the EP viewer + public EPinputtype GetEPinputtype() + { + EPinputtype result = EPinputtype.none; + + CellRange cr = this.Selection; + + for (int r = cr.r1; r <= cr.r2; r++) + for (int c = cr.c1; c <= cr.c2; c++) + { + CellRange cr_single = GetCellRange(r, c); + string tmpUD = $"{cr_single.UserData}"; + int comma = tmpUD.IndexOf(','); + if (comma != -1) + { + EPinputtype newresult = (EPinputtype) Enum.Parse(typeof(EPinputtype), tmpUD.Substring(comma + 1)); + //if first cell, overwrite none + if (result == EPinputtype.none && r == cr.r1 && c == cr.c1) + { + result = newresult; + } + else if (result != newresult) + { + result = EPinputtype.multi; + return result; + } + + } + else if (result != EPinputtype.none) + { + result = EPinputtype.multi; + return result; + } + } + + return result; + + } + public void SetupCellUserData() { for (int r = 0; r < Rows.Count; r++) @@ -2625,7 +2737,19 @@ namespace Volian.Controls.Library _rtf.Width = Cols[c].Width; _rtf.Rtf = rtfText; CellRange cr = GetCellRange(r, c); - cr.UserData = _rtf.ContentsRectangle.Height; + + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Userdata will now contain: height, EP Designation + string tmp = $"{cr.UserData}"; + int comma = tmp.IndexOf(','); + if (comma != -1) + { + cr.UserData = $"{_rtf.ContentsRectangle.Height},{tmp.Substring(comma + 1)}"; + } + else + { + cr.UserData = _rtf.ContentsRectangle.Height; + } } } } diff --git a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj index 1510659d..61b2eb86 100644 --- a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj +++ b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj @@ -243,6 +243,12 @@ frmEnhanced.cs + + Form + + + frmEPAnnotationDetails.cs + Form @@ -474,6 +480,10 @@ frmEnhanced.cs + + frmEPAnnotationDetails.cs + Designer + frmImportWordContents.cs diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.Designer.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.Designer.cs new file mode 100644 index 00000000..6628fe2c --- /dev/null +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.Designer.cs @@ -0,0 +1,111 @@ +namespace Volian.Controls.Library +{ + partial class frmEPAnnotationDetails + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnOk = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.panel_btns = new System.Windows.Forms.Panel(); + this.panelEP = new System.Windows.Forms.TableLayoutPanel(); + this.panel_btns.SuspendLayout(); + this.SuspendLayout(); + // + // btnOk + // + this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOk.Location = new System.Drawing.Point(9, 7); + this.btnOk.Margin = new System.Windows.Forms.Padding(2); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(56, 19); + this.btnOk.TabIndex = 0; + this.btnOk.Text = "OK"; + this.btnOk.UseVisualStyleBackColor = true; + this.btnOk.Click += new System.EventHandler(this.btnOk_Click); + // + // btnCancel + // + this.btnCancel.Location = new System.Drawing.Point(82, 7); + this.btnCancel.Margin = new System.Windows.Forms.Padding(2); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(56, 19); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // panel_btns + // + this.panel_btns.Controls.Add(this.btnCancel); + this.panel_btns.Controls.Add(this.btnOk); + this.panel_btns.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel_btns.Location = new System.Drawing.Point(0, 512); + this.panel_btns.Name = "panel_btns"; + this.panel_btns.Size = new System.Drawing.Size(762, 30); + this.panel_btns.TabIndex = 2; + // + // panelEP + // + this.panelEP.AutoScroll = true; + this.panelEP.ColumnCount = 2; + this.panelEP.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.panelEP.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.panelEP.Dock = System.Windows.Forms.DockStyle.Fill; + this.panelEP.Location = new System.Drawing.Point(0, 0); + this.panelEP.Name = "panelEP"; + this.panelEP.RowCount = 1; + this.panelEP.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.panelEP.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 512F)); + this.panelEP.Size = new System.Drawing.Size(762, 512); + this.panelEP.TabIndex = 3; + // + // frmEPAnnotationDetails + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.ClientSize = new System.Drawing.Size(762, 542); + this.Controls.Add(this.panelEP); + this.Controls.Add(this.panel_btns); + this.Margin = new System.Windows.Forms.Padding(2); + this.Name = "frmEPAnnotationDetails"; + this.Text = "Electronic Procedure Details"; + this.TopMost = true; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmEPAnnotationDetails_FormClosing); + this.panel_btns.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnOk; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Panel panel_btns; + private System.Windows.Forms.TableLayoutPanel panelEP; + } +} \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs new file mode 100644 index 00000000..630bd961 --- /dev/null +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -0,0 +1,234 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using VEPROMS.CSLA.Library; +using Volian.Controls.Library; +using System.Linq; + +namespace Volian.Controls.Library +{ + //C2025-023 - Electronic Procedures - Modifications to PROMS + //Form for Dynamic Showing of EP detail controls and entry + public partial class frmEPAnnotationDetails : Form + { + private AnnotationInfo _CurrentAnnotation; + private EPFields myEPFields; + private AnnotationConfig MyConfig; + + private StepTabRibbon _MyStepTabRibbon; + private Dictionary _DicStepRtb; + private Dictionary _DicCheckBox; + private Dictionary _DicComboBox; + private Dictionary _DicSingleRO; + + public frmEPAnnotationDetails(AnnotationInfo currAnn) + { + InitializeComponent(); + _DicStepRtb = new Dictionary(); + _DicCheckBox = new Dictionary(); + _DicComboBox = new Dictionary(); + _DicSingleRO = new Dictionary(); + InitializeSpecificControls(currAnn); + _MyStepTabRibbon = new StepTabRibbon(); + } + + private void InitializeSpecificControls(AnnotationInfo currAnn) + { + _CurrentAnnotation = currAnn; + myEPFields = _CurrentAnnotation.MyItem.GetValidEPFields(_CurrentAnnotation.TypeID); + MyConfig = new AnnotationConfig(currAnn.Config); + + int MaxCharsInLabel = myEPFields.Max(x => x.label.Length); + //font size 8 - make labels slightly bigger than largest label + panelEP.ColumnStyles[0].SizeType = SizeType.Absolute; + panelEP.ColumnStyles[0].Width = (8 * MaxCharsInLabel) + 5; + + int RowCount = 0; + foreach (EPField EP in myEPFields) + { + RowCount += 1; + panelEP.RowCount = RowCount; + panelEP.Top = 20; + panelEP.RowStyles.Insert(0, new RowStyle(SizeType.AutoSize)); + + Label wlbl = new Label(); + wlbl.Text = EP.label; + wlbl.Visible = true; + wlbl.TextAlign = ContentAlignment.MiddleLeft; + wlbl.Anchor = AnchorStyles.Left | AnchorStyles.Top; + panelEP.Controls.Add(wlbl, 0, panelEP.RowCount - 1); + + if (EP.type.ToLower() == "text") + { + StepRTB tb = new StepRTB(); + tb.Font = tb.FormatFont = new Font("Arial", 8); + tb.FieldToEdit = E_FieldToEdit.PSI; //use same right click menu as PSI + tb.BorderStyle = BorderStyle.FixedSingle; + //aligning to both left and right stretches the textbox to the width of the form + tb.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; + tb.Enter += new System.EventHandler(this.FieldStepRTB_Enter); + + string val = MyConfig.GetValue("EP", EP.name).Replace("\\u8209?", "-"); + DisplayText dt = new DisplayText(val, new VE_Font("Arial", 10, E_Style.None, 12), false); + StringBuilder sb = new StringBuilder(); + sb.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Arial;}"); + sb.Append(@"{\f1\fnil\fcharset0 Arial;}}{\colortbl ;\red255\green0\blue0;}"); //C2017-036 changed to just Arial because Microsoft removed Arial Unicode MS with Word16 + sb.Append(@"\viewkind4\uc1\pard\sl-240\slmult0\fs" + (int)(this.Font.SizeInPoints * 2) + " " + dt.StartText + @"}"); + tb.Rtf = sb.ToString(); + tb.Visible = true; + tb.Height = EP.numlines * tb.Font.Height + 1 + tb.Margin.Vertical; + tb.MinimumSize = new Size(0, EP.numlines * tb.Font.Height + 1 + tb.Margin.Vertical); + if (EP.numlines > 1) + { + tb.Multiline = true; + tb.ScrollBars = RichTextBoxScrollBars.Both; + } + + _DicStepRtb.Add(EP.name, tb); + panelEP.Controls.Add(tb, 1, panelEP.RowCount - 1); + } + if (EP.type.ToLower() == "logical") + { + CheckBox cb = new CheckBox(); + cb.Text = EP.text; + cb.Visible = true; + string val = MyConfig.GetValue("EP", EP.name); + cb.Checked = val != null && val != "" && val.ToUpper()[0] == 'Y'; + _DicCheckBox.Add(EP.name, cb); + cb.AutoSize = true; + panelEP.Controls.Add(cb, 1, panelEP.RowCount - 1); + } + if (EP.type.ToLower() == "combo") + { + ComboBox cmb = new ComboBox(); + cmb.Visible = true; + string tmp = EP.text; + string[] tmps = tmp.Split(",".ToCharArray()); + foreach (string t in tmps) cmb.Items.Add(t); + string val = MyConfig.GetValue("EP", EP.name); + if (val != null && val != "") cmb.SelectedItem = val; + _DicComboBox.Add(EP.name, cmb); + panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1); + } + if (EP.type.ToLower() == "rosingle") + { + ComboBox cmb = new ComboBox(); + cmb.Visible = true; + cmb.DisplayMember = "Value"; + cmb.ValueMember = "Key"; + Dictionary tmps = EP.getROList(currAnn); + //foreach (var t in tmps) + // cmb.Items.Add(t); + + tmps.Add(-1, ""); + cmb.DataSource = new BindingSource(tmps, null); + string val = MyConfig.GetValue("EP", EP.name); + if (val != null && val != "" && int.TryParse(val, out int n)) + cmb.SelectedValue = n; + else + cmb.SelectedValue = -1; + //cmb.SelectedItem = null; + + _DicSingleRO.Add(EP.name, cmb); + panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1); + } + } + } + + private void FieldStepRTB_Enter(object sender, EventArgs e) + { + _MyStepTabRibbon.MyStepRTB = (StepRTB)sender; + } + private void btnOk_Click(object sender, EventArgs e) + { + + // loop through all of the fields + bool isDirty = false; + foreach (EPField EP in myEPFields) + { + if (EP.type.ToLower() == "text") + { + StepRTB cur = _DicStepRtb[EP.name]; + string rtf = cur.Rtf; + string newval = DisplayText.StaticStripRtfCommands(rtf, false); // C2020-001: added 'false' + // compare to original and if different, save in proc config. + string oldval = MyConfig.GetValue("EP", EP.name); + if (oldval != newval) + { + isDirty = true; + MyConfig.SetValue("EP", EP.name, newval.Replace("\\u8209?","-")); + } + } + else if (EP.type.ToLower() == "logical") + { + CheckBox cur = _DicCheckBox[EP.name]; + string newval = cur.Checked ? "Y" : "N"; + string oldval = MyConfig.GetValue("EP", EP.name); + if (newval != oldval) + { + isDirty = true; + MyConfig.SetValue("EP", EP.name, newval); + } + } + else if (EP.type.ToLower() == "combo") + { + ComboBox cmbcur = _DicComboBox[EP.name]; + string newval = cmbcur.Text; + string oldval = MyConfig.GetValue("EP", EP.name); + if (newval != oldval) + { + isDirty = true; + MyConfig.SetValue("EP", EP.name, newval); + } + } + else if (EP.type.ToLower() == "rosingle") + { + ComboBox cmbcur = _DicSingleRO[EP.name]; + string newval = cmbcur.SelectedValue.ToString(); + string oldval = MyConfig.GetValue("EP", EP.name); + if (newval != oldval) + { + isDirty = true; + MyConfig.SetValue("EP", EP.name, newval); + } + } + } + if (isDirty) + { + using (Annotation annotation = _CurrentAnnotation.Get()) + { + if (annotation != null) + { + annotation.Config = MyConfig.ToString(); + annotation.DTS = DateTime.Now; + annotation.UserID = Volian.Base.Library.VlnSettings.UserID; + annotation.Save(); + } + } + + + } + DialogResult = DialogResult.OK; + Close(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + Close(); + } + + //remove events so no memory loss + private void frmEPAnnotationDetails_FormClosing(object sender, FormClosingEventArgs e) + { + foreach (StepRTB tb in _DicStepRtb.Values) + { + tb.Enter -= FieldStepRTB_Enter; + } + } + } +} \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.resx b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.resx new file mode 100644 index 00000000..d58980a3 --- /dev/null +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file From 389b9e382b02856d4946525961f6dd5d50b85a24 Mon Sep 17 00:00:00 2001 From: mschill Date: Wed, 9 Apr 2025 15:22:36 -0400 Subject: [PATCH 02/30] C2025-023 - Electronic Procedures - Modifications to PROMS - checkin #2 --- .../Format/EPFormatFile.cs | 24 ++++- .../frmEPAnnotationDetails.cs | 99 +++++++++++++++---- 2 files changed, 99 insertions(+), 24 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs index df6b3a42..83d70871 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs @@ -316,10 +316,10 @@ namespace VEPROMS.CSLA.Library } //return a list of items based on the ROsource specified in the EPFormat File - public Dictionary getROList(AnnotationInfo currAnn) + public List getROList(AnnotationInfo currAnn, bool includeblank) { if (string.IsNullOrEmpty(rosource)) - return new Dictionary(); + return new List(); try { @@ -329,8 +329,11 @@ namespace VEPROMS.CSLA.Library string roid = FormatRoidKey(rosource, false); rochild[] children = lookup.GetRoChildrenByRoid(roid); - - return children.Select(x => new { x.ID, x.title }).ToDictionary(t => t.ID, t => t.title); + List mylist = children.Select(x => new ROListItem(x.title, x.ID)).ToList(); + if (includeblank) + mylist.Insert(0, new ROListItem("", -1)); + + return mylist; } catch (Exception Ex) { @@ -339,5 +342,18 @@ namespace VEPROMS.CSLA.Library } } #endregion + //C2025-023 - Electronic Procedures - Modifications to PROMS + // class to handle return of RO Lists + #region EPFormatFiles + public class ROListItem + { + public string Text { get; private set; } + public int Value { get; private set; } + public ROListItem(string _text, int _value) + { + Text = _text; Value = _value; + } + } + #endregion } diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 630bd961..0f260f1a 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -24,6 +24,9 @@ namespace Volian.Controls.Library private Dictionary _DicCheckBox; private Dictionary _DicComboBox; private Dictionary _DicSingleRO; + private Dictionary _DicMultiRO; + + private string multiseparator = ","; public frmEPAnnotationDetails(AnnotationInfo currAnn) { @@ -32,6 +35,7 @@ namespace Volian.Controls.Library _DicCheckBox = new Dictionary(); _DicComboBox = new Dictionary(); _DicSingleRO = new Dictionary(); + _DicMultiRO = new Dictionary(); InitializeSpecificControls(currAnn); _MyStepTabRibbon = new StepTabRibbon(); } @@ -108,9 +112,11 @@ namespace Volian.Controls.Library cmb.Visible = true; string tmp = EP.text; string[] tmps = tmp.Split(",".ToCharArray()); - foreach (string t in tmps) cmb.Items.Add(t); + foreach (string t in tmps) cmb.Items.Add(t.Trim()); string val = MyConfig.GetValue("EP", EP.name); if (val != null && val != "") cmb.SelectedItem = val; + cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Length).First(), cmb.Font).Width + SystemInformation.VerticalScrollBarWidth; + cmb.Width = cmb.DropDownWidth; _DicComboBox.Add(EP.name, cmb); panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1); } @@ -118,28 +124,70 @@ namespace Volian.Controls.Library { ComboBox cmb = new ComboBox(); cmb.Visible = true; - cmb.DisplayMember = "Value"; - cmb.ValueMember = "Key"; - Dictionary tmps = EP.getROList(currAnn); - //foreach (var t in tmps) - // cmb.Items.Add(t); - tmps.Add(-1, ""); - cmb.DataSource = new BindingSource(tmps, null); - string val = MyConfig.GetValue("EP", EP.name); - if (val != null && val != "" && int.TryParse(val, out int n)) - cmb.SelectedValue = n; - else - cmb.SelectedValue = -1; - //cmb.SelectedItem = null; + List tmps = EP.getROList(currAnn, true); + cmb.DisplayMember = "Text"; + cmb.ValueMember = "Value"; + cmb.DataSource = tmps; + cmb.DropDownStyle = ComboBoxStyle.DropDownList; + cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).First().Text, cmb.Font).Width + SystemInformation.VerticalScrollBarWidth; + cmb.Width = cmb.DropDownWidth; _DicSingleRO.Add(EP.name, cmb); panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1); } + if (EP.type.ToLower() == "romulti") + { + ListBox lb = new ListBox(); + lb.Visible = true; + + List tmps = EP.getROList(currAnn, false); + lb.DisplayMember = "Text"; + lb.ValueMember = "Value"; + + lb.Width = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).First().Text, lb.Font).Width + SystemInformation.VerticalScrollBarWidth; + lb.SelectionMode = SelectionMode.MultiSimple; + //lb.IsSynchronizedWithCurrentItem = false; + + lb.DataSource = tmps; + _DicMultiRO.Add(EP.name, lb); + panelEP.Controls.Add(lb, 1, panelEP.RowCount - 1); + + } } + + Load += new EventHandler(Form1Load_setDefaults); } - private void FieldStepRTB_Enter(object sender, EventArgs e) + void Form1Load_setDefaults(object sender, EventArgs e) + { + foreach (KeyValuePair pair in _DicSingleRO) + { + string val = MyConfig.GetValue("EP", pair.Key); + if (val != null && val != "" && int.TryParse(val, out int n)) + pair.Value.SelectedValue = n; + else + pair.Value.SelectedValue = -1; + } + + foreach (KeyValuePair pair in _DicMultiRO) + { + pair.Value.ClearSelected(); + string val = MyConfig.GetValue("EP", pair.Key); + if (val != null && val != "") + { + var selectedvalues = val.Split(multiseparator.ToCharArray()); + foreach (string item in selectedvalues) + if (int.TryParse(item, out int n)) + { + string text = ((List)pair.Value.DataSource).First(x => x.Value == n).Text; + pair.Value.SetSelected(pair.Value.FindString(text), true); + } + } + } + } + + private void FieldStepRTB_Enter(object sender, EventArgs e) { _MyStepTabRibbon.MyStepRTB = (StepRTB)sender; } @@ -154,8 +202,7 @@ namespace Volian.Controls.Library { StepRTB cur = _DicStepRtb[EP.name]; string rtf = cur.Rtf; - string newval = DisplayText.StaticStripRtfCommands(rtf, false); // C2020-001: added 'false' - // compare to original and if different, save in proc config. + string newval = DisplayText.StaticStripRtfCommands(rtf, false); string oldval = MyConfig.GetValue("EP", EP.name); if (oldval != newval) { @@ -190,12 +237,24 @@ namespace Volian.Controls.Library ComboBox cmbcur = _DicSingleRO[EP.name]; string newval = cmbcur.SelectedValue.ToString(); string oldval = MyConfig.GetValue("EP", EP.name); + if (newval == "-1") newval = ""; if (newval != oldval) { isDirty = true; MyConfig.SetValue("EP", EP.name, newval); } } + else if (EP.type.ToLower() == "romulti") + { + ListBox lbcur = _DicMultiRO[EP.name]; + string newvalues = String.Join(multiseparator, lbcur.SelectedItems.OfType().Select(item => item.Value)); + string oldvalues = MyConfig.GetValue("EP", EP.name); + if (newvalues != oldvalues) + { + isDirty = true; + MyConfig.SetValue("EP", EP.name, newvalues); + } + } } if (isDirty) { @@ -209,8 +268,6 @@ namespace Volian.Controls.Library annotation.Save(); } } - - } DialogResult = DialogResult.OK; Close(); @@ -229,6 +286,8 @@ namespace Volian.Controls.Library { tb.Enter -= FieldStepRTB_Enter; } - } + + Load -= Form1Load_setDefaults; + } } } \ No newline at end of file From d392131005a0436a8efff309ef74b08a9cc16157 Mon Sep 17 00:00:00 2001 From: mschill Date: Thu, 10 Apr 2025 08:53:27 -0400 Subject: [PATCH 03/30] C2025-023 - Electronic Procedures - Modifications to PROMS (checkin #3 - fix winforms select first item bug in listboxes) --- PROMS/Volian.Controls.Library/ListBoxMulti.cs | 44 +++++++++++++++++++ .../Volian.Controls.Library.csproj | 3 ++ .../frmEPAnnotationDetails.cs | 24 +++++----- 3 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 PROMS/Volian.Controls.Library/ListBoxMulti.cs diff --git a/PROMS/Volian.Controls.Library/ListBoxMulti.cs b/PROMS/Volian.Controls.Library/ListBoxMulti.cs new file mode 100644 index 00000000..51582552 --- /dev/null +++ b/PROMS/Volian.Controls.Library/ListBoxMulti.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Volian.Controls.Library +{ + public partial class ListBoxMulti : ListBox + { + public ListBoxMulti() + { + Visible = true; + SelectionMode = SelectionMode.MultiSimple; + + SelectedIndexChanged += lb_SelectedIndexChanged; + + Disposed += ListBoxMulti_Disposed; + } + + public int singleselectedindex { get; set; } + + private void lb_SelectedIndexChanged(object sender, EventArgs e) + { + ListBoxMulti tmp = (ListBoxMulti)sender; + + if (tmp.SelectedItems.Count == 1 && tmp.singleselectedindex == 0) + { + tmp.ClearSelected(); + } + else if (tmp.SelectedItems.Count == 1) + tmp.singleselectedindex = tmp.SelectedIndex; + else + tmp.singleselectedindex = -1; + + } + + private void ListBoxMulti_Disposed(object sender, EventArgs e) + { + SelectedIndexChanged -= lb_SelectedIndexChanged; + } + } +} diff --git a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj index 61b2eb86..87305e39 100644 --- a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj +++ b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj @@ -280,6 +280,9 @@ ImageItem.cs + + Component + Form diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 0f260f1a..44c3cada 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -24,7 +24,7 @@ namespace Volian.Controls.Library private Dictionary _DicCheckBox; private Dictionary _DicComboBox; private Dictionary _DicSingleRO; - private Dictionary _DicMultiRO; + private Dictionary _DicMultiRO; private string multiseparator = ","; @@ -35,7 +35,7 @@ namespace Volian.Controls.Library _DicCheckBox = new Dictionary(); _DicComboBox = new Dictionary(); _DicSingleRO = new Dictionary(); - _DicMultiRO = new Dictionary(); + _DicMultiRO = new Dictionary(); InitializeSpecificControls(currAnn); _MyStepTabRibbon = new StepTabRibbon(); } @@ -138,16 +138,12 @@ namespace Volian.Controls.Library } if (EP.type.ToLower() == "romulti") { - ListBox lb = new ListBox(); - lb.Visible = true; + ListBoxMulti lb = new ListBoxMulti(); List tmps = EP.getROList(currAnn, false); lb.DisplayMember = "Text"; lb.ValueMember = "Value"; - lb.Width = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).First().Text, lb.Font).Width + SystemInformation.VerticalScrollBarWidth; - lb.SelectionMode = SelectionMode.MultiSimple; - //lb.IsSynchronizedWithCurrentItem = false; lb.DataSource = tmps; _DicMultiRO.Add(EP.name, lb); @@ -170,7 +166,7 @@ namespace Volian.Controls.Library pair.Value.SelectedValue = -1; } - foreach (KeyValuePair pair in _DicMultiRO) + foreach (KeyValuePair pair in _DicMultiRO) { pair.Value.ClearSelected(); string val = MyConfig.GetValue("EP", pair.Key); @@ -184,7 +180,10 @@ namespace Volian.Controls.Library pair.Value.SetSelected(pair.Value.FindString(text), true); } } - } + pair.Value.singleselectedindex = -1; + } + + } private void FieldStepRTB_Enter(object sender, EventArgs e) @@ -246,7 +245,7 @@ namespace Volian.Controls.Library } else if (EP.type.ToLower() == "romulti") { - ListBox lbcur = _DicMultiRO[EP.name]; + ListBoxMulti lbcur = _DicMultiRO[EP.name]; string newvalues = String.Join(multiseparator, lbcur.SelectedItems.OfType().Select(item => item.Value)); string oldvalues = MyConfig.GetValue("EP", EP.name); if (newvalues != oldvalues) @@ -287,6 +286,11 @@ namespace Volian.Controls.Library tb.Enter -= FieldStepRTB_Enter; } + foreach (ListBoxMulti lb in _DicMultiRO.Values) + { + lb.Dispose(); + } + Load -= Form1Load_setDefaults; } } From 9fdbdb05f45ef0e655dfa15bc8803e8c344a0c30 Mon Sep 17 00:00:00 2001 From: mschill Date: Thu, 10 Apr 2025 09:05:42 -0400 Subject: [PATCH 04/30] C2025-023 - Electronic Procedures - Modifications to PROMS (checkin 4 - added some comments) --- PROMS/Volian.Controls.Library/ListBoxMulti.cs | 10 +++++++++- .../Volian.Controls.Library/frmEPAnnotationDetails.cs | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/PROMS/Volian.Controls.Library/ListBoxMulti.cs b/PROMS/Volian.Controls.Library/ListBoxMulti.cs index 51582552..74acaa54 100644 --- a/PROMS/Volian.Controls.Library/ListBoxMulti.cs +++ b/PROMS/Volian.Controls.Library/ListBoxMulti.cs @@ -7,6 +7,8 @@ using System.Windows.Forms; namespace Volian.Controls.Library { + //Class to handle bug in Windows WinForms ListBox + // that autoselects first item when no items are selected public partial class ListBoxMulti : ListBox { public ListBoxMulti() @@ -19,8 +21,13 @@ namespace Volian.Controls.Library Disposed += ListBoxMulti_Disposed; } + //singleselectedindex + // will help to fix bug in Winforms ListBox + // that autoselects first item when no items are selected + // -1 = multi or set to this after 1st initialization + // if this = 0 and only 1 item selected, + // that means item was autoselected, so clear all items. public int singleselectedindex { get; set; } - private void lb_SelectedIndexChanged(object sender, EventArgs e) { ListBoxMulti tmp = (ListBoxMulti)sender; @@ -36,6 +43,7 @@ namespace Volian.Controls.Library } + //remove event when get rid of object private void ListBoxMulti_Disposed(object sender, EventArgs e) { SelectedIndexChanged -= lb_SelectedIndexChanged; diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 44c3cada..6b66749e 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -168,6 +168,7 @@ namespace Volian.Controls.Library foreach (KeyValuePair pair in _DicMultiRO) { + //clear all items at start in case items were autoselected - bug in Winforms ListBox pair.Value.ClearSelected(); string val = MyConfig.GetValue("EP", pair.Key); if (val != null && val != "") @@ -180,6 +181,10 @@ namespace Volian.Controls.Library pair.Value.SetSelected(pair.Value.FindString(text), true); } } + + //set this to -1 after initial setting of values + //this will help to fix bug in Winforms ListBox + //that autoselects first item when no items are selected pair.Value.singleselectedindex = -1; } From 8ef08c53b3339018b123fdfeda45309f73472df7 Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 11 Apr 2025 10:12:37 -0400 Subject: [PATCH 05/30] C2025-023 - Electronic Procedures - Modifications to PROMS 1. undo changes to store checkbox/textbox in cell grid 2. change to use roid as key for RO listbox items --- .../Format/EPFormatFile.cs | 8 +- .../Volian.Controls.Library/StepTabRibbon.cs | 74 +- .../StepTabRibbon.designer.cs | Bin 671144 -> 575428 bytes .../StepTabRibbon.resx | 1959 +++++++++-------- PROMS/Volian.Controls.Library/VlnFlexGrid.cs | 136 +- .../frmEPAnnotationDetails.cs | 9 +- 6 files changed, 999 insertions(+), 1187 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs index 83d70871..75595fe1 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs @@ -329,9 +329,9 @@ namespace VEPROMS.CSLA.Library string roid = FormatRoidKey(rosource, false); rochild[] children = lookup.GetRoChildrenByRoid(roid); - List mylist = children.Select(x => new ROListItem(x.title, x.ID)).ToList(); + List mylist = children.Select(x => new ROListItem(x.title, x.roid)).ToList(); if (includeblank) - mylist.Insert(0, new ROListItem("", -1)); + mylist.Insert(0, new ROListItem("", "")); return mylist; } @@ -348,8 +348,8 @@ namespace VEPROMS.CSLA.Library public class ROListItem { public string Text { get; private set; } - public int Value { get; private set; } - public ROListItem(string _text, int _value) + public string Value { get; private set; } + public ROListItem(string _text, string _value) { Text = _text; Value = _value; } diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs index 46743631..9834448d 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs @@ -603,10 +603,6 @@ namespace Volian.Controls.Library } public void SetGridContextMenu() { - //C2025-023 - Electronic Procedures - Modifications to PROMS - //Only show EP menu if an EP Annotation Type Exists - btnEPDesignation.Visible = EPFormatFile.IsEPAnnotationType(); - if (rtabTableGridTools.Visible) _ContextMenuBar.SetContextMenuEx(MyFlexGrid, btnCMGrid); } @@ -774,43 +770,6 @@ namespace Volian.Controls.Library //C1.Win.C1FlexGrid.CellRange cr = MyFlexGrid.GetEvenSelection(); //rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid.MyBorders, cr.r1, cr.c1, cr.r2, cr.c2); rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid, MyFlexGrid.Selection); - - SetEPbuttonImages(); - - } - - //C2025-023 - Electronic Procedures - Modifications to PROMS - //Set which EP items are selected to show in the UI - void SetEPbuttonImages() - { - if (EPFormatFile.IsEPAnnotationType()) - { - VlnFlexGrid.EPinputtype myEPInput = MyFlexGrid.GetEPinputtype(); - Bitmap cb_Btmp = createTextBitmap('\u2713'); - switch (myEPInput) - { - case VlnFlexGrid.EPinputtype.none: - btnEP_None.Image = cb_Btmp; - btnEP_Text.Image = null; - btnEP_Check.Image = null; - break; - case VlnFlexGrid.EPinputtype.textbox: - btnEP_None.Image = null; - btnEP_Text.Image = cb_Btmp; - btnEP_Check.Image = null; - break; - case VlnFlexGrid.EPinputtype.checkbox: - btnEP_None.Image = null; - btnEP_Text.Image = null; - btnEP_Check.Image = cb_Btmp; - break; - case VlnFlexGrid.EPinputtype.multi: - btnEP_None.Image = null; - btnEP_Text.Image = null; - btnEP_Check.Image = null; - break; - } - } } void _MyEditItem_Leave(object sender, EventArgs e) { @@ -4589,35 +4548,6 @@ namespace Volian.Controls.Library //MyFlexGrid.ListStyles(); } } - - //C2025-023 - Electronic Procedures - Modifications to PROMS - //if button selected, set the Cell's UserData - //then save the Grid - - private void btnEP_None_Click(object sender, EventArgs e) - { - MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.none); - SetEPbuttonImages(); - GridItem tmp = MyEditItem as GridItem; - tmp.SaveContents(); - } - - private void btnEP_Text_Click(object sender, EventArgs e) - { - MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.textbox); - SetEPbuttonImages(); - GridItem tmp = MyEditItem as GridItem; - tmp.SaveContents(); - } - - private void btnEP_check_Click(object sender, EventArgs e) - { - MyFlexGrid.SetEPinputtype(VlnFlexGrid.EPinputtype.checkbox); - SetEPbuttonImages(); - GridItem tmp = MyEditItem as GridItem; - tmp.SaveContents(); - } - #endregion #region Table Grid Border private void btnTblDgnTableBorderNone_Click(object sender, EventArgs e) @@ -4878,8 +4808,8 @@ namespace Volian.Controls.Library if (MyEditItem != null) MyEditItem.SaveCurrentAndContents(); OnTimeCriticalActionSummaryRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure)); } - } - public class StepTabRibbonEventArgs : EventArgs + } + public class StepTabRibbonEventArgs : EventArgs { public StepTabRibbonEventArgs() { ; } public StepTabRibbonEventArgs(ItemInfo proc) diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs index b71685206345aaa3ef97fa5cdcebd2df2e76a7a2..33fc65fe5b524d2adb6f050cb1c1792c6312116d 100644 GIT binary patch literal 575428 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�O{=9O~hO`3k zv3267^qgR1jwE_}9Of?<3ygrgsC_D4xUG=08#Vk&!>v1a~ZlT;YxZmiD~TzWmFdX&bqiyJsmL=C3kEbLD4z z2|nhocQ_YQAD&9^ew@o1ss6XmI8WDxJ;#S)^~|R)tGDa1n7<-Z7eu8#l&0O-Fre@ZJ$-JD&Iy=n0{syn-u?HCz7)?C|>&tpNJ zi|Z9D^+C0dR-XsTf;W_}IeR#4|3lvs&T1W%zrk1WrZ4O--(rI90^Zb}r;{Gz)(B(V zZqX@oc5ZuedSY6g+V7_`BF@iROpe#@70F_Gi_O28iEnV*Q13nJO+|PJd5+p+V~Q8S zN*oQ-HZJa5Z=bE@rBBPX=Dhu4g&(_bT2~0$tAuKs&-QP*nwRC5>8r_GW99gG+E);A z^S0J0F5cEB<{$NNZ=3(IP5(2U==bE4lbYwb+&pJY*#3|fxWzf~fZss2~^^f3L+iNmcPss%8efpeDckg}NETOrrSKrb8 z@(!;r_NQb~#(S-*6!;c-qo4=0wIJIDEl^Ijzq_$EINrIRx{iZ# zD}PO;ao?O1>gow&ac6hTejNJ#AP()%UoV$-;q1?$-BEJt2*w=I9ib*p?ZUM@w|1ea zk7K*gZ6DY6p%;r@qBSo`cS_M^DUX{vU#Ixlih_wzx!<<4F&?^Y=L zb8a1@AK%vgsnfB9eyva~&$AVl`Z%`2wtf8Cg+1ohTmG(TM1wMOlu@!s$4QMMtdQR}rJ9pYWK#*4XryLD%c zk&*@TYQh#|%V@*DZ+yY8DdGShubiDav|$^zZPJFVeU3fPWAlgkv|?+0rJ8a68FptI zm%FcHpQq#UYWt1L<8|DA9KNsD%Eg)sL+x6;!a9_@>qtX* zyN*&HXII#k;Opy^uPG}uHFA7~Zd>`iyMmb8kIg5R(dKoHrJO$PRlPm4r~CHSd%CfL zFt4r+zbVex)@OS?-FRXCtjSV)cj37h#~1C6?8@))N7r*Uho>9#^m%%^{grR8r`x4W z@zxF3ldVzvXvtso_H^42)Tkp{kPh*5TjRxCzuik_jggWC^Ln~1$d=KOQ5E7NdAU!k z^K)B}ZIfA1hzgX8jk9k(Cn z@9Wia`JW3z?R;Nh9m@4}q#;_pj#3}TSJ;;4_XQ_w#Wc#(;2dkf`6)LAZYU(y{=Hw|=3vH{LAnWnh@fTWG9!y{KqG3?( z2~~JFY48W{7gu;4YlW#*rRMcl5mr6n|7-PAsaKrCIpbbhOL56Mzp?y=E3|MmmVG+G8~XX0TD@vy&f)4m>35%qkD!kF8TI=>|F>n3 zHSZGj$CXaMCU{>FC&a(t9xodHani_AsgGN}CK;b`VsloWS$NdWO8Q(St@0j0!}w*b z{w~EaZ__L551X3C?eCe(IBv`jHFFMWWk>e zY*ui0b%SU&pI_;@;(5zoju^i_xMJ9@4t}d(eW7kDWBWT}YcqXy7tPU7>@ImLcly=E zx=?-VZRdmOz3z{__8D!hvJQ$-DbTfsCnQ<90__>S1pqnE_Eq?PLpfiuN86#gds0CU zuS6UrctIE3A@6Q)?{kZM>_Gq8TRpB&D}e5_N0>aifG)pQv@5+}OTQqw73vYwof_q? zG1sZ%^vtpLnpbMkR+_)+X|npUC4u*+)GNrEO1sXlt-)t8GAd@+dXYVE$RVs&DZXH} zjialgz4aRfwWzpeB;EkTIn2Qe=muOG{<3%kNNuew>|)ENX^Ru&?6lR7HHLS@mENyH z&*V+g%w1@dX6%u~{)KM(k=FW%Rs~$4vN2-`woi^8Dg2GCO4!sgW(ec0LKxfL!FWkn zI3oL4W{2IiA=p!tVq-z%jCWhW4ir55PuQOWF zi6iyIkM$|jCndZCo&|sJ9}|92LHK7HU9mkz?8G`pahxPIzwfu`k~j}&4ba-l| zS1#lWTj>7&*cwq^{YU+1bx7OkR~PG3^+hStyfkN@)4f&Sbu+-mc%4*uea$(Jth;?p z9-!mKqJnJ7%cPgp`6p3jP#ea>3`*n|w0kYJ2l5Z#^$gzz`i6doNXy>pZ}bV-aLBO8 zgQE1UQCYiN%?ue6@G-zTh0mccSJst=Bf?J#?ZNi^w5>Fhcj>l$b~E%;)sx|oUgvYd z`XiW%(mGyxZDZxOj_pfKLk#^#^rlih2GqwdOZomG z_)_2<0~ZkdhJHl&`H?I8kxuUVJX#Ci8oYV?^f$O6`~N~O-I{I%Fa@p8JyAjf@VMbF zHmpJM*0INtbt3j5N{%V4mHGW-z_(<(g`Z^~+WE2Sue+=3LK8hCe*}JCvo*nfmhYw{*H;d-F)hnqcoaej}m(Smyaj7aCUpBv~|CIg0uY_-NpCPktGY`K<(&v5S zbsvNKGA_SrY?@(_XO|id$d2M0TnFdz$bP(Bs6%u;)-|r2kLgoD-xH(w9Ovxlc>PY1 z_V?FUa-MXI94~^qbD#n3oq}L`FG3oo`DCTYyS0ZA%zx!PHhzVykT|k;LVj4>{gP-L zdlKMV5IK5EC-@_cqnOqRm+y0sNZI9)pXJ_!G%dvPR56;O-EJ*e$C%nrnqJwMUWAax zkHhCwX7uB8+Q0u!=@@#WgkKItd=#Ev&58b|fcFFBuruVr$htIs7UL+R>ki*DD$Gw#? zyh-lZ_h@9;z^L~LYD?9d$n$HsBm11YpJ&M(FV?QyZ+$u`_cFO-x%eLQ1iIr6IgL*m zdPrBTY2%%#b@o4@?yCGZ~PoomYu-O~`Rz8udVCk53~T+fGYYR>1+=IeH)8eOR$%IAf61p+!@ z+8gDz-+rGIa(J-2LvndsIqvVI#apL5i_7p>cSU3J*>pbOP(GU;xs=cPBc-@lo4oW# z;JP4k6RL!_rpHM^H79RPLpL>V4Q*!4y^snAr5x6_nd`}R>}UU`cPQp!;CL|}H>8)B z=is-^I~PAo!%)i4P6;oNz!-7U_&jr~oW}hSi-jKsUfCCP0}1{Y)C(VevtqouYAL9Z z$$i>DuhkCSm-P@x)nVm8s=J|^7__PxZ^6un1x@5JS|?;m^D=&(jKDzMG2k!tNy8K zW9p5!&(v5IHCboBK{u?+=<@dsT^}|ll{1L#T0(dq0MUG|Od{`C@Y`@W8(hZ(r~PW{ zn_U*?3UxXQQz z)l=>0n^I!UzysnqMNHhg`d`FyJK`+D?tyiFHVood`uSLF}! zHKqnB5!I9i8J`-KfJ5K?4cAm}t$EkxOK0p@^s#h(_z=fqX|s1p&$-@cI-!>1%8!_G z=GJCo2x46}Y?Ibx!G|-stMM{k6XN@`cUoPG$)p`8WY114>O|VpWya2)KPcE-4_?bFPgRS%Wly0w-MK&T#NT3CD-DXkZVKUOSDJyE6=#^ zLWFNyq6%R?m9@!<^+m1WKN9uBXTQFvz2xJ=KF`b<)E}R7n!`TJTbT;KZE3~)UuDCR zlEB`RetTfq)^)5h)R^7fLNpD0eR})Sopo;O(x027IP#|M3-UUi&=2c! zxZd+dZbF(}CHx*V^$bcqrJyLpOJ(#QR(~e$^3TlsB9N_!jmA5y@)viwy6jCCclZo_ zo#VLwNuN-g91`scz3zLLDj{B@`5w@p+pAyG-(Qmz_mDo_pzq+Z{x#KfxJ%#PZN9xn zR>5`p%>5ox`(0}7bImrak7a8j&xw8dUACr+izzHkws?0NyH`H@T45VLLJ1wpiG0is zwK~Oi&#^jPoGQO$swzD(2hD5Nm45oz1dS%OxC zPi6N}x%YE=!7bDy=AcpK0GH3g$fZ!54=#B=?VT5!-KVx3o@Mu}`F+OlOkp?hauHrX z#4BUanEjW!+OlihzOXPJH7E6TLhndntF5Xt!^@sK)h7A7SE!8Zgy5|eSrg>5M7BC_A+TdrS>Y6jCQ+H3cxM1J^F!nK|Eu~X?;b| zGOTt!hDul)4)Gi!MuXec$oQ0(E3cCFe?YZAVeuk|7IVW^pYp8GFOYCbvcxd56^wDYBVANq*x zb=g#qq9=_Ejr9smNExM>{4S)>`AVfX`qVGC8A?~`@>!lkV)NW8y?Ew%yx)y!*zDcOrB#ZX^GKGi`tny45#LGMXlcO!o7 zmQ4z8b4PyT)sK~19FP2%>>5N|RrWq_JT-Mjfw_JhSEC7iw`zr__7QQIWh22c{>O?3 z-=;V;XU%rSgJT%#hziGWh1#pVuPGhYZap+R8MoP>h2=zv;}vNviuK8IKS1me(lK{P z>X+pw#}K9>#_f5|);Ro@AFuNY>C@md@cQ}tW&7QSXdN0~aWMmF5#HbHy9d@-psVrk z0wUAb!Y%wxmnnwq^7ZuI_oo%$%g!ruXSVgjI;cpcTkcw(G+x2?jlcOR(LP?P;jB4{ zko2X0d$b+OzLq@d{YLw;t)N`^L++o~&*v`XSPSib@zXD_6}f&)w~lU~*tgd63$>`} z&zSP(%V&Az(daftzg>z;b7(zpDQd0XlkTo`sTjBq!!n-r6b$(uc7FuhoBe|FX;VBq zO+%qibR3!JKaf5x znCJh0MH%X$XWESpBTwNK{gI6L&ABDBCO@gZwcx(_f~*<#f}c@8X}?5`&Agbfi?KN4 z*ZsEqJWb`{cA+Zubi3R_HK9_erakMIX)dhG#E4x8mXT*R1o_g;?Vplm_p)S}J5rk@ z({?%MPFv5HZ=}5Rah4SGVe})c^~o@Wc3ugl^XAB}$AHL|KJi{*@dS4!&A5+b7V}aZw>L(a6Pui?DE<5={?z|m}DtG2f951P>SLX1u3Q@FrsvWcuw<1}b*=3;K)*WZLpbpQXpm z2-^~ij(0rtrK&e9z2+KX((%b0D=K}B?o!`sXrwzT9Yaw|Tsnp<)Y?<~o6=-b?T1FE zZxDC5+u%DdJ{_-2`90yVLGfvf0WW1XZ)@d>?`+e=e|!m zIPS&u>H96|qJX(iUzQ}`xP5x#m4U-vJs+Is3P~nLpV_frCsb$Wn4(B=MVz@fjq>xD zi`T(%=Ep?M>vm%w%q!B;N_lnMOTAI9-}Wg{qw9^so$>aZYis0X;scBgw*q2*Y#{Di z(`_<=E)}(S6zI0?`yNW-cn4GRHf~w7R6Qh_guA=QY5UaN&-QE1F;>$y|CG^no_pS? z#G^*q;f^?bZ9mbUBl-+p2Yn$YQt@buA{BCGLJLu_0J>lt$Q>}jgirmp^vR>GG-tL) zO}Ez*oj3D#SP;2uc|cN0-mUn?JJsOQCygG(9)Pa;4!JY_zVVK}rF%6W=npcu|3UP^ zb4VUZyYE%{Ty5@kaHT)4IG)ND%7rcD-+BFfsxGIe@Emo`x*N!(=_&p)YqDL~R&EEI z7`$y;bXebN&EbHq7UK7wLZ=O9SVp%^Ly@oJrpKsB*A1ae>AWuj{-PYMjXpx&nQoin zm+2nctPA^C&-G^TOQ?tde?@Zm=Zl)bsC2%JULCGOvp!32>R}{)SHQ2_BmSDJM1Sme z<2y6Zq~TxO6zJ10wn(4$R~Kjh_}}+AJ+9y3S537#Thn^b=+eG`-)Z@r z?S+tz6c;ty4Q={Hn*XY1*w%lCVqdSw))y=PN>fkqfd00$8=q!#X9#WRHhBCQ>{H=N zIgZ`sU?J`W$${wI8EJ9Hj^)@lgTx-q^~~R+d0tZ;M$X=_?-^TgE@OQ$Ze95Et**Fl zP1cq`m$I^QYtW;&TSUcqzb#3i0@ksT!`PI#YWuJP|n&d0XdOS>(VTW$H4Bh9*W&E2N<>#IhN zA5tU`^)w)R>dh4)?+sqgD04`K-zkJy{dAqZ1 z@eaw9%i(RVt|0xUh;iuH%jnnE{P`NT)w?DgTj5J-+4r+z89GkL0WCU7@jR<7w89gL z8saRuwj1jv`T1W8A^R5|(|EPjrtIP>vIc&GWSJ<2z%Z}AEwl2SBp5 z-&n8C*m`Lh4W&7~J$kx*zP9ME>2gE{!ZppO4Tm$=s2PVahBBgzW>eCmY?Sz{b@iW5 zdk*pSIcw5sT-0GD+kDd1WaJJ>4)3)3O`%l_Os?OUHL7`DR%Vy`uFsP#E1OrhmRWPO>TkD5tCn@el3u>?PmImU zyR-rsE6v^QantSdHEEgqa_G>yn)$S6owG*0S)mL0e=b$}6yArj!dOthnddkIpR<;% zl%iPJ7X4W7N$2oHSGH@9)GESi9Bld9?ZPsTQAIs>nJomhM zEM8n*Q)OOM1mk*79qg zIClu44{Ya^-&5e+oS^o+H#K z4=I=PJ=G#W{j=ZF&-e5{WOu%zn-5$&7Psg5-F3VhjvD5B^nX;9|3v@ix7hi9&>4M) zH`#Yqs6M}G?oXUHuW;jcs8WC0R7pCb-nf~MIX}?fxJ!6SH}qd5YC5-LO;=QtrWs>C zrE})pn~TQ_Icgi0QhcZuH^KkM`~s5;u` zr>6>iC=RwoPv!gDQj02wC%IaI-y3|W?&=RAys8~?KJ9$^t`A9f-3q_Gn+aT#UK>K0 z(rO=Pc~ZmCLhhTUM4$I5$4&Q$_1XF|PJMjLt2y%AxZ8(&cn4(voi!HP`r_RISZ}b_ z@^5`@(|eUZ?qj`@zgKMZp}^YeF!1|C{AMLy#yh3`#T#%rQXU*d3W(9l< zAIauFrt$Y03VVHCA-Vm=X!jgaJ6Z3KGM~4rJNMU-(vVmlv0It+8It++AH?-E8Q)>*Y)fiaK7-v>*$$`PBZVG^td3i7)U=3qsW!$~$`BMCIj; zM_UKTkqV+!l<+O-!>>5(Uhu11^gga_{iWBZ@{=JbJ@E(4d&_53{|FV_aQ;udDppTP zCwoJjb)UZHmnLo(!^jz5@GIbC|9q~`?Gh!It~T_3#kAy8$P`-KcKCIM>E+fMV@-9* z7bESRb!~c;KsmUud)Dv8(p6$NkYj{s>go9z^Iwxe)kmB`SXgeH6`$R{_`g&^w@+va zTcHnao;&F-4itj?OhmhXO};c2Lfen_EX#}LjuXmUdry6SsuIy|y$zl-#lh5GGe{@s zmNC)fe;)n;Y`< zkYpt!E^G``Iu~C!UOBy%)N$i|uQQILtGDIOeexA_pJ*K=Ep?<#$!IUg0}b4tk$r+_ zBQzKGhFm4P25&LKYxj;k)z}%1RG`h*^nc&x*`aU4(V!JEpT;+D$qqWBo+%s6+EGLT z_Ab0B8{+go6D;u4yk6B%gIjPuwImeV52u6ub5}0@#dq*IVHY=aW`Lb_bFu_F{0^2n z_&cO2_FDB^>@DPjMw{N#PKB*c&v$=KZ6Ry%HtEOnS)dQ^tW;Ko@)^5-h1&nB)em;% zoI>C+`++eXt~jcj{4 zN7qQ>%g!~6{RHZxs?TFE1qSL^uWG|>J2+od%cf>XV!VdKw43j*kbW+%pAcV%jJACi zZCK#Q((uTZy~cmVw)B+cQKj-U(dU+rZb8F9zKeBYSe9&B^2pn$Z~2&&O}Ar3t!`vR ztZW$Sh*{aNg|Jh8U4MSMz6BsFPBeuvQ`;ukM*rPM-r&SE2WUIy-LiSd2OBCJ#~;@ zr;Rt{l&sWGWC_dbgyrYk8Vj83?_~4Bx;jXl!Mv4({57YSe>zKX7y4`J(LU6>v>|`v zDfy4^y2d_ncu*Rm3f7OVpZi0EJL6V+iBEYQ6xy}o@caH4 zsCm69T1)dZ#Y3uZ?ePi!R6*vrK1TTR^KDbNZ&@teJ=yT;!N12ht{{>_(sr@adhft!{ z76I{he(E@goG@?`#DQ?eSZ-S}2l%o$nxL&Es-W=`j;GWXW$^K8$>;vuOxk^!9JNa%TIr0Q_D_wwlIg_ zYx0$DNTQ-%&?owYjDa;}=HNaMZmFUI(VBE=0qPZrR4Ok9Vl`ntUXj zb$}cNjK%R{+)8v?BVz&cA|pt$84k!w=ieafp*w%zJ+*-j51jz9hM(zgWGUb`@TKUt zeg*{33|nEJR)n6fDJP&ly};c;*hQhY)&1V*4x!!6|M&Mdj?1{?wMF;s(Q_nq83fzm zn=4%tyoR_xgUpsQ(rbrAEpWqx?>FIgNcxUbDU4&*k-53L)5KNqZz>n86uwYimi5m$ zD^pOj`tL8FKd)>DT;FERp1sq?>O7{}eW<_pF*D;*|2NGDW*&~+~# zEwmu^s}o9=sQSzhi{-2miHdBJ=R3qB<0NN>2PB)}Ef;L!mj+ zWd1vnsBJfVq@V5+DlJ0)IZAl>;7z$pf@N&oxkoWG6AlgN64YO%IAEDLarU+ z%je53rG@nQjO3^0lk?8X9q#-c_D8vTz9PnT`RayA@;fBISx)XYckz9!_Sd*V9K$j^ zqcZ@_oKN90vCU~#q;eIf_aoUBmwAm+1!l=Lww+Qt(LyiN-Cj_G4qEKL$RZdOV?C zvmKVGO+~StFTdg1(_Cj7l)IrHP&Pb1@5vj)blsnRMS~hc^Lj$?wdX3wdp1s%ay;(8 z@{^T^xcoo12XIFZ{fxwh0s6rBHVM@6y^xYILaMyTdnUXoKuD~DEG7C zyrV9hFP$G9pO~@ipgR{jy00I1VPtt*$T}ObJruV}+eC5Op*hgk$np?x;+LztEw-jT zx7ZcT@5{3zK{x&_Q`c50%YKe&(AGwGleWCI#?S-LvwUd$Iq+s|g1Fz<8kl+zUCdZn zrG59n8Y`WlI>-9drV~B57JJ8{kfAn9muynW8{%GhVAmKm=P!sfjis`C-=C>_&Wh8l z8$2TI_>erfe<8i*9m!}^D{0I4%UewyxeaZwhLWm_!ctPJt6!YA;AZdSR{-dqC*O1s_^{r|NWUmov{4$h9hjl*^Ob=(=zwTg*-bUe`o25ZCgWK=QW13 z{j`SdeX34Lk+9b^CpDfWJg3?M-ir_9;eCBki9*`?E6O>imeo~$R;^LC;k?>#FMnpm zA}>9=UF)gq{MyjApJA(yPxYyDZ1tSxEZZ~58D%+eh5U`EI^_C0MDC)R${RZ4{@V!t zD($lkKWHj$oO7z%`fFaXSR=z~@TcI^c_gl=o;1dtU4z%g$naHLd^fhtE`wE?-VqB2 zb*xxVdpqrl=O1~Th?k#URA(4B7Ldjvdrao4U(yB#Y8ef!V3HpHUoisZIl0uS9Im!l zf$XznAEmR>+t1(9o_Se^*!r>_ygn=0(DDWmqSkg!P57<^^eOO@GkQsZ^JdbSsO|Wv z!B3yYQK*x(t;N?$MoW- z;k3Q^*Aw2jww;Re>g81UdpMP5b-8@{Z99fMPGrX@jl~+|lD>U=huNbi>k`^f=@$0V zvu^jS*&`6Ha!H>%y!&`v2e*SZiF2L8u=+0Qu=QiS+BXLu1o6XeS_);7jS-)db&p!} zExHhwQ{SVL`F?YegT7t~7YOgw{jtgJmwLSG#!RBs+KVL~GVbt_P|f#4 zLYQ;zZ)l%%#t!HGYRhq7@5{Th;m$smEtG$2!<~IP8|Zp-dxI^s>n+(m@qUC-CZ_$= z*^XQ8G_PIEaeJd|jbcajwY{djzu{7d>d*CQ%QmWvi}ZjcJ(Yik2v4kE{7~-+j##5V9~M`tCOK>I z?Y@0?eM@`ueOTu6-@EfJudVvrHP%$!@6%eU+Y0#*L#lG%2JhYTo6=vdZntRK;jA@f z(7U^AYXDy+H2{BIVa^9embbU@YR>DxGZ0FZuK%Yw_~r7g`#Z9o-t=z%o7V2S=pg)F z>7sj9c;(@J`;mM(nps$zhLW?6C$x@FjSY21H;3`g9>3$JH_G}(_UzGi$S;aa65Llq zJ*`xAj2zfQ?%mxd#nHQa##wLmWE~temXe>+(YJBZun+CS8X z!c*4u|FTo49Q*RwL^(96>#u|N*t;9jXPRg0?uUJLR^e$6Tcpl**e;Gha7A%_!%!j- zplV<9_-&T%VV$d-HCz4Sbz7}cYq#2>juF=};oRF!Hf^N%NDjVIePf)ZTBh)}A)g{%?!X%!?;G4eUY)F-)8BjagZEA$5e`U> zA^K^xjpIo%x12f}DKoCA9tk3cKBb58$nP3ID%v5Q$n`OisdYjtM6FED+TuEz@;z|z zGku5HdssnJPt?A5lHQUI504&VSZ-vq#+sU;e2ck97mnRCp!_XGk?`LgHM$Y9UdM@J z3WO@9`$jKO*X>^jdP>gS+lA;+8B!^5|=i^ifEh zrQ?+Xh2;~ADPa50wc_1caUJV(XhAJ zSYy?;@5pw2-Ehh8$wECUtknhzki5^(uW4gq=@_rj>{yz8&iyQzb9sGU`CP2W%Xex0 zU0Mu{=iWV!=H6;~!2lUbf;W{HeIqU4vSU?36R2!$s4a%8J;gVKysay=PSoOrFAb3; z(#q#*aI#zw_WPex4k5#gS*irs! z_pJF|RJh9cUewg@sG*RVte% zE)n8#>Zkn7%a z==7Ro%>n)3rqzBUhj?y|LLh(R9eo4JKwBPD^ghHWYP?q!?pYj{Sg(9MOH?z)St%`# zAE5|WQyQP(Q-_twzU506w^z+l#fMYxtg_ZPwM0qHo+C|Ced~}UK6JJedEOyK{4s0^ z;?)KcR)Ne6In%(=ce=itwwy!eWKhgkI?$&z&wop0mrcxjSj+Q{~R z+~65pi3GWUOc0hN8nb3whHsI^wd5D4XpvzOE|YL!D^IE zE>*;G$=^qjO5u*SMa}*3$CpO#_@$BvnT@YV-+0t$6$hEOeEmMK-k^&hzmzE~=S`S! z44ads->(lLkF#jP7AYhAB6Sa zt$x#df=+jkh-PzMr?6&HnWVdY&HM{NGDcWrr z^UBBPbbWk5*MikDh?U}|p_qQu?XTUYx@q9G=PIFacr||_%FKV~lTWnUFGb;LZBx#P zKT4=?TCKY1#UJrmqwTcuYqxzng}W_d3TM9k{DQs}t7Q<^N#Xw5ZK|u4!llwl3ICQp zDa!t1C-2q~QdBK1y68jNSDyCxohH3fZ1uf@8SSR)Bdbf*mH7BQpcC}ZE zdhc~ouRBJHezi>(eQ3)Z8rIhBRIKe{I%W#KcR|6D?TdO0XJl2wK7QNW_$h&XT&>)NDsU`^Oy%WYEjagiVo+*)|T}-+-NQ64`0E=XgSM!nU=c zXs5cio@pJutydQXw)Jg4PinoX9&|042YA-tqS(n&%*PzwUhM#N^BnO6Bf8{%p42W32shGgTzFRI$vMaBts1iUIE* zX_tU|cgNvv=Gf*v`uC7H1Y$&2o0ex(WrF{=N4LLm+YA5SrRozm=oA0IpWoGnR=lQL7sWtA>$j?-G!fAU& znuOf>zt_+Zq&rjEU8)Q|*4&8Gyrz*)sd56c)$md|qVDhpmvbfEe~cz0za(15O-#@S z?z2Kmnil@}jk)pXQ@Wo1{NF61YSb_k8tpyQwseYxPpx(w$OHQDTaJ19DygDlCz6uA_^67mp2%jAsF^#^HK0TYt%b%Hzn69vio~{{X6p@h~lpzoj`r zE92t#1z`#L5$ekJ$Msi4Z(J*CI_UVdbHoOPnz0M0B;T$ByKnLEt?BSCv2E{&KTRtN zpQ_z>H> zuuqivj_kVkR22_r`5jqsIs0JsQ~oFreoNzmiuyrvttTYcNP7=)g~|p$6C}vjbtBFF zAiLfZvg;j?T_-!HA4E5LLUhA`2pm|nyZ#W}>kG(tt>^Rr>A~>b&-aXV-uS-W$}W!VQPM80yQV;i0nm^byfBw2;0K_2tgHWOJ}@>i9yY-pr(bkkH@6?ZWFD7C+aPjI%yR!=F#eIz%jdM6(fi5uGLeK zcE8c~kiQQ9{LdG>6gDPg;5zZ6t4@u8iUh+(z`I7nMnL_mVI$mJrRzzg&t|ya{qB&a z#}9dvMqJm;K1!U$=c*~&RBkYY6adWqqWKAXcJDr@9=1B)jo^{h3)k1jlpb-1?gDXy z>^)&XrIBs-r)bvV0_nCscJpu&?p&FDLeKcx{J|G2G6ChjTa_*Ng2uoQo;#Jd7V&3-Ba!O@6hd{4*C?YW)9{ zo|_w~v1KFTHTSp9#sk#3vhh~2Y#biLvT>ao$x8L!#+^bGE_bJH7w^>Y7@v*n+(=)l z_crbnqLjHib*Ffz{{QyAt+%clNq4{Y0nUFAa$Xz^CexBEJ8obe9L2XD``E{J(hq|{ z!xvd`M^e<1lGqu{e?RrDQmJ@fBo`Og+MR}Ads~|<7K>jMi$${7W)Czh@7$fxSnX{b zE$rgvj@G^6(Q30t9F}+fPI0{cHjWtjoj+zMZF>bdvB?%Y=`pG2?RCYx6zs=u=ctv% zljA!}X~~4V#Io}Sv2n{=iO0Ev54(LHBA=PawU8)Xu5BUj9&t+Cg~>ma5gWH@ab-TC zv5n(a5?e+u%f~GgUv6=BWuNZc_cHL1g=FznPG168>K1o}ZK@^x&hs|I+`*s9vDdc~ z-ddcpi)`F5ms zTJPfF76!k~Qm;*UCl$i|3GMjDO4=NbS&{H=Ki>zpDV11`ygmMK4?=t8v6422V|@+n zlbd%;ZE7X`&D*yL_ae0a5i4nPIM(0L-iO`-w`qlYi@QXe1t;x&<*bx)Y58_Ex2D}A zl}>Jbe?EOoeiH74Aqv2E!|XP~QVWk>-abUEt}m5XNt;8JLae;s>t|%^koN{&1oQ(p zQ}XVfh1;lKN#7n;(s_PFJTe~R%J2Cr@)R-FxKSWIx8)fgab(hiKMl_dufIcrXLRZn znTRg3;s|L9$VkNW`J`^%9c8I=i+n(2GWtl|oX}@v96^NQ?&g5#;(zJ8&O%4`xN*Ao zh!FBK(L)c%X>i7zbJ8WO;x6fhm9s(4xHbF}eS+*H6N;Hx>5tcWQo`qk$E5azTEgpk zpQr`AzK$CrxC@KiIUfdT;GSG9ZH)FB-)=mlKEEV+ez-Fr1{;se zcAu_$AIlV*#sIuH8m$xkx@M>FmZJb9r9%kJ-I|X^8{%=`UMtJ4f{`lHs_#$Fe z(poHNVJ|60W6UzKo|V}puCvy&A)=GQuD+c|HpBKjdU-Cn!2^ZV~&u2g=e zKld*~{3;v+d@y7+LNx91U=`le*ue|AMZZDp4RVuSAgTf18WB&Ntgu%yUp%bZnMsXZlW=vxKALrGt4&N$P14NoDh?5AP76m`B^ zV5_HU(j!PHM29k-~{`( zGuWGV^y%ko4*|CKjMg=H0ULV*J7i0r5C4Nj#yJ3qom^5$+0%59ImTamA2dF~rCw=B zqB2UgdL;F8Q7Yw2uq1U-@mrOWl&)(*YTKxNK{!Gl<+A}Lp|hW9TnN<|esLZEXHejs zVFpL;T%IrCHSxD`{GwJ1^eUHgqF7pKfnN1-YVoTSauKXGN)V>C@=&bhYg-XH+emIf zH)MfT|6pHXQE}%0SjNf0+CI#QL*=d>i4y5AL!Z=w4}x=Z&~(m1ZoU|s+WS{auC!8K zf|ME`2PtW0zG4LRh|z{x&y7rJ-MB9!WlH4W>QN1i_Ba+U>ai<(O=Z}XT4`%3rN-qf zC6~clsP$aDY27&9q)dq%T)frLXpcAHq8@LuXD42E8SdQLEo`SxGi5{F(m5*wx6U#s zPjQipcArKZ^={d5^t(0ub0dNpb8S{bx4mXOq1pS=SUXPF5UfkWLWp%%TZ$E$tjqYSZj z-4@o|rMLuI<2>Zz)uj+etX*;(QFeLX!s2_Z+xVuJ8K>iSNy}Skk6P{n?}ydn7RcbU zMrD}QdZr~}Ti9>6NADpc7Am(E9#dpBy!WANMU($HuC&znh-=v~JfS4V0%EW8gd%7r z{W;L|Y=}`X7N+0{9suvtl_E-Owm-eio(c1niaMF)a>m@`dCj>9WVZ-spRmi1`Gd9H&;fetBEMAuH|I@#n`L(Ze(! zxgJ=EN_@8TOV`QET|)?6%$8!c>L|CLH(CE4-`Lc56V?#0t7STf8f(`&=F#+daOD`uTjaf4t^)yT7NYO06 zj4u=8AQ#Ja{Wylra^u)FORxF<<1wu^_yuj8rIoX`e1Zq-VY45X^!>A}TW4l1Ut`U0 zZApe#CFMNEwIkd@yu5nxH1;`<24BuU)C!s$803qO<0kH|NJyf5gtkhGj#=O`I& zGygJte@b30PJSXnj+NzCL-y7yI_sp_2EL-tAzDD*->F@!C}Zc}Yx)K5kSPFpjIOAS zDOn+QDVq}BqC#$^1LrQ)H0eJeiQ%p-Wc`RfDbA5Q>72NibCF|N4{BtTT05E=U~^{c z!?gZC8_vsoq=>@L^k@1g;hn7ZqvTrLa#^>Ond^~{ag&$BVlMmgnnw6)z&ElM;7#`< z^3Q*vzhSx8U}yT;Tb0L}d(Zm}e#9{cC9%4gYo?r#^SN2`sw%{7@AXughaB%SM8UO& zvGI=CyjXeP3zOFI(mK2Y#JtO?&b3~8LD6{d_2YzSgBg#{*Dd(CX3b?*H8BoyaOL+P zj4HQWdi34WKBAOooXh9De>rPNtq1S6J)%td^{a1xf2Isme*I;TmF6QCUm+@Sl=-E{ zvF6wD5hrDyk@ey|vpTx%F(;hqZeAVou+lmid^u!`$w!=BFSe&`mrBddF6)m4e~&fk z*ewQ^QhVv!E!0UK_D;^!X-=^G5eV0hjYPO~dPKr?{E_*dZ1EA@_uHW!ac;9Zy6wja z=W>qe2P<@uwQyTMYLbPmY^p5yc6gLtZ_gCC2(_MT+qG`oqDz@^BuPmh zm-q&^@!YpoH0r_LtlgjXC=?Fs5ohP}%Y6?;PTjb*+n;apTZoUWTXuYe-5P6-cZYJ? zm*n3=?kC)dKD)`@hwK{pr+xhT$mNl9(#Myw8>@0NM(%ho1BRn9VVUGv&rp9tb6lug z99f~#+lH!=-0yyWk)0YNz_|eYztu+i**{8Jh7FRLcc0c?X6A=n4np{urW4o?$m@Nm z?Yl{R@@36$nBx2&@4dt_8>-Aht%hDg70KF2&)34-nZ)nY{%TMDgn3QvmW<{63sdar zb&YW_=6Qwd`*U=toQxY^_o6P%qOf73>H5?>DCL zfmh9z)f=0Ga=poa@vTH}La)8m%6AUU;gK%Yosj2{_5V?08Rc z4eZ3OCHJDs+0-*9h;m9Vg%gyG+Jf z!?Ja)J4R`{axVhIu4feLYs|if%DUMSfoopppI)yC@^deOKa5U`+>1UfM9bvVQW;Mn zt?Xy3r{z+_xg*>OfGr8<)wSv8=U#+_U5{9Gt3LOlto+vzq0!)=U%@>O;2TibUMC&vnc z_vhnKPfNxeR9)=g_9WhfDy7pNJHkl|>|lQ}&ujE$in{G~lVkLAMi-ovj0KJJWAFX{Gkg7DI2PN?4*-W`oC zKA}}OZp+~wbQwkwO<5YFHV-uz1%*6}?pMgi#ppC?x5uf;&t=8!i;$JB-;v#=H^bA` zl>KzaHhCDG#%^3o#qo`)nce_Q>_QYGZ2;CinseBj|;P%P&`5 zlC`}cn~S%8%B(KhSla5^Jk(fSP{>2@L4|x=tJ_NM?NJ=&tPPUuV`A{_({`BGYV{~y zK1#-YR86Wuac-mxZIx*`D2Gt|miB>bEeB}MgJ7GhHt4O7qG4s3YhCUZjteL=_Tf1l zQKp4U`px}e|Mw;N(VQpv)^G{}cW`hwsU))pa){twzfk|r&3_S<{~qQf|6DNtW^66_ z^~81ly-D@===H(Ub$%$`XXjx)yq1%#RV8cwuP4m&UuWa%>q2~iva9#s(FubWbZ+}4 zA>oj)_KH5+{T@fa9Gd?fc`xkEyt^KaHkyBL!pPjq9+`WEG6ZFJWN@11SJGCzGbS=9 z8yQe-ZM70n^X%^-;2HjKKMJ&Bk~^e9CQ?J<6I@Hk-2iUH#xZg|J-i`ZIqHMPKUe0iw&_ z(0W*I*l8TUHYZw`nz>p=Zix3cRy=%4HMCcPo~GABl9xCqE3x)jyga6_YY~<}-%|rF z59RA2rjV!UW$}Kd>|$7Co|g+cCiV6(wP|sIdA8F@hkxexEf~CwdEO}C2IJL&miG8;^lP}RKthfY5B*>---P# zL?PCm!4rHgnZpz9Z$l1E@afL6HF&r6d8+QXmSc<~*VFH<>$(p6XD-cW!x;gUh zDjPmBOfYYMr3j{EVb*r+n>%?U{*tU;>DwsG1J|5u#D%(Ro82+wa=D`S`+a4YDFRvI-Jk-BrCL+Ov4xEpe1T(ZW|gN(u{FTGY7Jb*WkgdKNlkG zHpVbvmd+hPvrY^bW|=y=+lGw?*YDI!@hV&zb7919XACE9jodMH>&5WmmaC_~J-ES2 z1-SzBrg)i6@$0w8OQ?-FR{YZAuAwTIt}<pZW@6INY~t(5nU4Gy$lc@S zIj^6cd|L2WKMpsA@e*EX&UA42&z$L}qnTnf@)omYVO+YmaE^ylac{{FJK6k+e!eGk zAomRJdh_{6WU0OwetSv3!Fax<|Kp9)&-DKn!*_g77W-XC!;Nvop)RQo_DA1c|4uo6 zMfb|l-U(&oQGUYrmBPJn?R=437t{sS#ET=3yvCe)$x{Dv-7%zPuZ9b7s*HB(hCiE~;=eV=4qh9KzhQ_r1t|0D# zrPdzGXUz!b-ry^{zZbf@#(12X1Dz>{@Q8DLJJ);Jn5{7zvR4P&&EIm4x*ut#-=S|& z{w1AV$N%6JLPy{yoY8MS4z=;p=%u4E`B51}$m(q|4PFbfm9c)q!}*ys zIy^6j5D0G4NRph}WflTd^Q>A~?mOmJFfCTCp2zm9SmC9GeLys{9xKQsm9i1=ZcB4> zgQMJ$Ez73Gl--f7=du0B3NLL&wmx$fV%+egT3P{6OkqW0(P|6J>;dTK*@LoNUn~n3 zHOi%0Y@6Q_dtIM{YHx$MevVu* zdgW$kF45ikj8;HX+BQmd_Am+xr>;xJG#^OY(K&#KW*~B!=~1c^H_|`&;DJe%b=g9%Vk;r(Q99qTX5Tc z%zduf=y!b-0`q9va>K8gmO-7{$Q%2z2m(`fHN6$b?Z-dNSsM)0#~9rhrSfW~;N8P-Ue?9EL`4Nls%AM)w z_>w4DGV)B>9eL%lE~`0HZ9nqLmuOPC&ZnbNc?d|;2(9?iHR26>|#~gz?l$^EZWix#{yH_T<>om zM9-Y1DSkWblb=(DRlEdows}nc1M;5yK(zHV+nvb1c^U0iJg0VzUJn_39$us4x8XD+ zkYSIVTE%n^T+5g$UDtw(x_2}VJi>@se!6)_CmxYa@dQ1_Em7Ww!k#wr?!Bk~f1=Eo zKMZF#j_H5cvHF+Izti7m^gq1&gUrd08(s)PUfW;j6EqGv%RvD&FE+R6H$M!z_Z97Q z#r5*9*?idN`ocOE+V#WD#T@;L)tz&%47`PGx4#>Kk}({`Ip408;laecrh|!lO$W64 zp0ct$AWtYY&xA+SkEucvv0A(EtWyc<>tmG|hwV9a%G{Xj9z&*s^BanrZ^KI~=xMI4FN@AHWfw=K zr%!ag4r3eK&xIA1^j5LobfG$EF{J!r~3QwW)q*$+^5(G)rz=AP#rLlEfB zg&^gx4UXy~Gw=e^ks0&tky07vMq6@@e zWDjs(z@`Np{+-&zJ;T_!{Mx>){k<4L?s6~2Cp3 zDld19P}gJI#!S~{*Pe}W<;Iix+aHa&|K4A)QEaJ9)?tams0ghbkohZTwu;qF`%;f+ zBFfdw&_+fR}PVS@uZ;m3gD;)@m0|^(ng+ zSo8D>&+*apsjb%=mVTWMw;AE-!jC$q**8Ca$^BIddi%AWh8el6r-I1EDfI_C3-wg) zlSgt)p5^P|u68{gMB#AT^@?Q7c{S^4JsW%^?5hZ^%j6ox$E0gpcvmZo?wE~sM_#Z~ zqR)yOsXb<=c||6r$Mi5nU-O0VYU7y3M0emW*~ zAzVdut?~N)Yw%{!& zVSSElO{|3_UafND`?dO=J-)e~t=4CmP1RziQmV^b%kDwSzje7T(}d}*ZL?O~A5JPy zi|@GdM{Xa!Khi=|czh6v(zm$k^hMC<&f_5j)M|{%vyJX3y*e$@`t|yxG-@l^T~Y2^dS8ra)x$PeRC;w-)cW;EP#QH@)Y@%0aIx5$eqSsq_wBK0+wV4b zv}x91(xy?53Y$(1Hf;*+IB_vLS3CW%YI*`}>008Ief+5iWh$kZG$TYc2#{9CBfL5f zah)lxZKwas{eDV*C9=Y|@Kl-N%bUA-EoqvVuk(Hd8?HUz-}8=*je>F?*p_J<9g-26 zqDw-R}rkD!nO4R4VmoP#QI8)Y@%0 za1q&>{t~FvKFonj)0Vfwrb%-eK21tf5Mt7)!>LK39Vb3s=V@md+?su9iCsHhJr%V! zwNkv=wQG=JQz%2HUAIN+E+R2Mo|6~JcmDN!T8p-Nq0*KT=QiLIJkwDL+Lt69+{&&) zqDcX_Y-)4SyC;rpy33uCGx;!IGgppcZ)~J{G`_AhTh7O;S!>OA-$EzNIRa6?*5kgj zPh7IHvt{Pm5c6Am9Ac|F{|+zrEKkE?wexJd$t|~P^K7ov;w|~;jFqjSz70_hmLp40 zcNWUAY0}ZCa0;Cp=@-uUdnq7_qV;US zIiWvS^ye|1InIs#*!+*{gIT^-O55Nsi2j@X<#lbn*I?3O%U$9zn6-V6!Ti=9m$8+1 zyr)va|83;67xQ!i5ix`bkD)0 z$ta(WBc@Z1Bhx>s8wY8*3{6~XT8l24+V!O$rc9ovBg@V*QHLsPP%t)w%EcjtT! z+n(-=v1D#h)^y}m)9mWV!T*Nr^+#&&m~s|rjW4O}1@-rmR#!jMCu9k}q!N$l-z)2l z;agmdVCX*b9!!GL=UyOe<$TO0~Bgxj@rBaCJOY+8!VEi&J&heR3c@ zQ?vDy*kb)E(zcRJ6(@*bPhd&fQr5VXyH=e`3pD%UKVC-4G`6+p>c=ga0XRIuWB!ee z^Bk*KMlo*{=xWK+f_1oC7haF(t?3u??9(qZn$B|KAYGaN>B`9Oyb_ZCYsZ zIYk3aI<;D8(wL?#CM7@m{F+uYE$R2xNV9kIXr=m5?Q~LU)@kI+iDPEAzg~S*E~jXt zQmNHNr7%rXluk$wTaIaOE!3Ws>R{ZjPQA<)_HT3aGu7U)KhHs5wXMg>9;njw?eA%2Z})tgSN0|%1^GGFvPPq7JetD^Yr;_9*16UX zaXM|qAEM~b0X3so>*<6!a$^AP$Ge}$6Y629*HbbgW_zu5)}&phxAm(>vu*S9`gPaj zwr*u&QZPSH(_NEN3;i|e`74&g36TSnviW(AmoLpzQ)WcZY}foer!K4K)>@O5a-AO6 zuRcxLnOv+ft`O#Rx(=KDc2{5}wqEJ9&|jq%(%$wXzRVn~y)4z-_&PWB+V&i=2Y#V@ z{qKpUB<9ausnRigr|N9;8G>)<+z`LNetNSb*(x?*(l#yJ9Q0M&dc+=}7r)QggWdCO zjy;&@Y#Dn9(XH`)zL^kv2=lN;&nLv`wAe$4qCW?Wc|Rd4vALm!mhbtrAMbvCPe@v& zUQdY>&Do^IipAvLq+O@C^|6OIA8XfLQ)+eVmU!PwS1vJ1E%evyXGn+V82e@P*zDgHUiEq5PX%k0o@9P)^qIQAkOt@hV|N=fLLvTrpLnKbi!Mdiz^J4GivATzX|uT5yL!Y* zU#22S==gp;BX+KS_s6X%_vxs8M)vt)@GQiRTvldC4^hI|moEP`#;0a8I?j^5R0g`j%5msUKG|XJ~!3Epwlx3bk2l zC7;o1>lLlNO6G2<(>l7LbYn=A5@VQ?a{d}&eRn2=S7ab8JvZ=->ReGqo)enk%IosT zBcsph@ZR-FMjjL4*4HGaW{*sI4J5SC^BVl2-nwUBvxoki*Y6hmV~VU?&`lw%5pdQC z*={x7l8%JieHhbBjERi_|CW$V(OrEBuR8{}Wfa@{tDHIc@r?}MRc8w}HMR`%s_E_R zu1PyS!dhy4Jhbd~*kJ5uosfo(x~;zk4w|9vkZRIeB@#{L?w=6zjU3vTs*g;tGH{GVcX}d9^GMYs0`s@8flb= z>x_?FxZW~oALk_(@i9tq)Q4--%g;rBYx?cAAk5)3O|bp>axJjyk86NkK5z8wI?EwH z&PNIAT`FnB+okK|6+(Ioy7M61=Bysw_DZu1*>>Id-tIH&k-CiC$cuK3yUxye(Jq^8aCNy&52d>0jZNT@)r;W2^*yZ8KggugD@dRH&Wq9-J zr!A>)sr77rL(v8;E7D8h+Am$#f-CLsXh-SA<^i3bfvoRS6!$?!MA+wMj$Jgrm3r&r z-@JrXV;3DGW#xm?sWHF?DAvF8k%z+5Mm3l<@)~gH=e*HW| zXua|A(y}rVDI4LJu4}2!DsQ3=w{P-#6~Ji)ii? zm+v2%wNse$`#g?0zs{Qdu4BR#&I@DD=QGWb?z<+Yq%P_EXY}evjvo|~f~$EZZCkEk z52%LMIL5;d_+Z|KwpQ1r;c6Hc3*5Bq@}N z&xXCqk92Yb=WJim|9%_1>whP&PjZj~YnQYSiPw9++PH5;Nu67p-Oa(~kF;C4v)QA6 z|46SpwdB-Yeb@BY)|9EJbaiq%N4@n*=g5D&tfV!gfzwbQ3F**A-LZzhinpbq4;NJ8 z^RULQJ^dM?g<0%7=9>MpG4A)W zPu7f4+V}jrd9_Tf)IXlx9+UO1mCS^~d0>5XwXZL^2c2Dj`k9nf%S=u$$eis1# zwQqauKEymKyOe+X!v5Z-680&~8mSp2EN!4_&G#OGA@I1wiAT5P+_M8*&z+m>ak57? zJ~nQQAw^{zAE}pp!#wP70Y1RvGWf7t&c_GprSP#I^;6982bB~)TqW`>V2SI-6Bi)#jvN~{(ClXcQSluelF$Uh-|1SQO>@BcrSMCFNQc^Y$qd6 znoozA9^!}Cz4;IN^Z8n8Uu+(3?rrXnhjU1$YYsPeH~&h1f4ljbe*dquTX>H=&0YF* zpFTaHKlt`O*~NYO%=I49Z+5A4j>UlOJR;1zrarwbM$Ubb_Z3O%)pdOGi1@_55%-H@ zqAnWpc8(s>DBqzzVCQI;`t~robL8`Y_}6>lfl+9;_m=^q@2SMEB>At1E=Kiq_#CIi zp2^@M7Q;xy`VW znj*&wvK#yw5N_JxCORZHl_pD)?`DJERU?YuHysx~o%)3O+@`;X9i9#rs)n9_;}80B zN~nb0;k_!cjVHwMlOcME)4>?GEBgN#wT)Sv?>uAI|H~p9_9an$Kvdq}(7F}XzY@%e z7xO)_c2-^usq^vy@o#5dF@%m$@iK-{YCkTs8gt8+w44pd`z zs9&rfVi)FVk!L2f_Lk-@++aT+yh_eDF;APJUYb^5o>tlWc{1SSl#l{#fIl>^d}FQ7 z(_b^9r#Zr45<0-w=NIw8Rd5f<~U+ctrZ$;owmo64E{!zSdMdO7)#v zY}fB}TR6YfvS+3hGW8XHt?jQ)m0{g@u8oiTguE-#?>^%#xd-~Rh7r_D<0aX&545IuKllv&+U?(BUq1wQUt9YkV`CZiGI4%}Gi;Tw(8gNSouPin z={x5`N0ylP(e9jc|MmPp2>b~zohfl{aSlX z>jT7bFNZmY<4XNnM+9ARw)SZib{Y5QzoC8~(dQpK%9^qKm?G@28n#-ya^TZx?W8`1 zkG+QS7_+80z1FVRD$Y0Wd%p%$@sBRib)v>Jp^1nl$vF?+;a{v3yLdg5Xw>I11 zw{C90DhjCnme%9#cu9>luiJXHhQ8svO}oB5A~dCPEbP$Orc0PUHfLdI$6ZSDSUD~c zH|5p3n+L34pO=cCqTd=rmCQ2z`psi4dth>6s!#imNat{hu}^D^Fr578*d`t%XE1R&Ax=jWw?ufnHLP!VFQ0FLwd-MBWaXQ|3%F07 zKregEQDANtXX?$oU32<9+%ESN^Tg7US4;Pj?0P$HQr4Aape^@owe6a$4(&_XTb6t4 z9o+GemJ=B8$j%#Ltc9KDvmvcH8<)vT${_H(p)AH*`>1b=u)A*?K?i}vNuSpVfa5XLq?3}fXsZ2*iYmUZc@ZdUADeey9-pQI!!O@u3 ztM=)m)OyC8&XHKu)?=8$5B3f0Gv50R(GzPK^9J%3oZak4_c)Q{x4KMUZ+DRJ70Fh1 zEcPi%hj+o--!aS|-#Z=p?2qqVtJOJ9y8CS+J4ieGn=j#A$|SH%yUS?NF6ClbroRUZ zwY!WC?NSDuW#s(zLhasLq+Ptvu!NlZoIUpKBr-BC)8Cf*JKgKEvCTiVlDv>2z| z-d&%-Lk^#IBN1y+yb(FaDVb2(wH%u(O<$;et7d;gXLU8FOuL?%ZN^UO&fTtkhU0lt z45daAcaU*T_Bp-IfK!I;q?&3K?FoYWw1}L3*f)IFbiXjwN8FtJiFT__hj!cUTBX{> zF4^1R{O!ALC_=;(_K$CxwHr~6$6^o2&S1DhJ(C-g_BW<3x8oxvZ_F`EoKks4H{6y% z7FckRT^d-~eyb+nNdd8`V0bU?ID4(9~|={u$1e{W!!HKi!-s+M(ZtziGLWDsSEPO{UFF<*m2eSuAh8rTr{# zy`>c`Z@r~0EpNT$36ApCTiWyT)>~Tj^452oTKAgvm$i3oPo>rLzopH4IqX!vr4qo&z8oHjWznfJ!G0d@9?Xf;w2d@hvs)gYh=e2i!xENDN5zhZFRwW!TKn%6 zjBC&w(fe2|%$;v^)J!SaBiJ9;IPds3n*A;PdKH+UeppCVYPTl94r%+GFxA2EoAawdb8~iE8Z)pBj%;AJf~iOuJtrS zb~<-$3cY2m{WNIGIlV`P48lw3ug?o?DCCD(rQPV%%LexMm`*pelujL1YQ5W5STRRt z9f&bGGCwbi8}V(h5DejmUY3PFG@YOpeSkTNXVgS972zWeIU+o%2&c9`L7S z{V~5x{4>6_E8Y^s`mNTke5bWqzXG1t?%qP@d-oQ~C$zWeF^l@B+FK~E&z^I>caED9 zesA}ip2Lb+tWdkPah+*ewBPiUZApJy#(7HGt&Jj2m2+)8d1|}MSdIOKtj4}$H7;lk zRDZuIA6K^*>hHlqv*5u(v*5u(w_FYuntczN;%fT+aytu|oF84n$G+1A`8d;pwMD<4 za*L-oEt-4m^UK+79WlXkiqrRRSx*o3Z(DlZGv<3pac)7Gw2y!Lp41I-G3N=$*bM99 zP|>i|n7ADDJ}qmGjLS>!vzaMgmN?%R=7+VXzxB}3VGjC6oKv#sAC*&^=1OHfIKd37 zC%xy#i@*BsZPVDN;8vHgV`lqH+Aij!x1BIsUCuU`Tr6o9%>C{8bvjX@Y<)#}&HD6H+j~s6sC&0*?n1U} zyY=oUWYlY2BCjRA7;N{un|CC7&9>4$Zdu{hJ5K4p?{=q2TE`m`zmUEo&o1YbG5h~- zn}4G<{RMr~{zM2Yo<_L;O!EJ8L#;q2khjCRR(H z%%KxTc`de_%~JN9t&O}(+V{?u-S!ib-Eyrvt4`Da!$4a=ZEHP)4bU{M_V%I z#MT+7ftBJMe1z@A+hL{JUcxb3ftmgljVo@X&e2P;v%Iz!+3%1?^R{z)xEK8mMIh$r zWlFkOJz?d9_(D7Heyqhy^52fBzZc}awrkb24W^zx8v2KrP`@`J4(T<&S2UUz)VAO1 zG`~39PqoL~_m;D2UW=yp(8B-EYt{CP=eW57D};Sxtagqlr38 zKhV!P#X?{yk&|qPzDLdc)j&#jOfLBSmei{w%Fi5lLzEC6`uXNBgz}bid`bfIv^YH) z@shN>Wwyo|>`xozl+;b!;SD;>8SU(L*w=7Z+%3K5+`c}d)jM`~+VwTnGFHF9_c6^J zzcp+#jHS2NQR9b0greo_&$jL@(RKZ*3$lwGFMc?99Bum{E5{9SU&a~s+i{mY e&dpr2`fEZ(+*@qnNll;M)SLXD4g3oJ`~L&&rPnP0 literal 671144 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 diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.resx b/PROMS/Volian.Controls.Library/StepTabRibbon.resx index 4a1e760c..cf608a76 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.resx +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.resx @@ -121,46 +121,45 @@ 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 - zX6th/05/Q8FMcZPXTFPhgAAAABJRU5ErkJggg== + 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 @@ -169,62 +168,61 @@ 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 - zX6th/05/Q8FMcZPXTFPhgAAAABJRU5ErkJggg== + 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 @@ -233,554 +231,554 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABLElE - QVQ4T2P4//8/AzUxhgClGMHBAe8+/fq/Zdmr/5fvfcajikgDYYYtO/z7f3LXNfyGEjIQ2bAJG9//T5/y - 4n940+3/959/x6KaCANBhhmEr/xvnbTpf8Oy9/9di8/91wxa/l/efSYW1UQYCINOJVf/p/be+S9t145H - FQkG6qVd+q/kPvm/lHUjHlVYDMwqrPyfkV/5Pz2v4n9KTtn/pOzS/4kZJf/j0ov+x6QU/o9Myv8fnpD3 - PyQu539QTPb/gKjM/74RGf99wtP/e4am/scwkGJIcwMzCiDeTc0t/58M8m5myf/4jKL/salF/6OSC/6H - JRb9D43P+x8cC/Ju1n+/SIh3vULT/nsGp2DxMpUwhgClGEOAUowhQCnGEKAUYwhQijEEKMUYApRiAF8O - KkwDPuBiAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABL0lE + QVQ4T7WPuUoDURhG8xxaCHY2Yh+wECREVCRxHBOymMlMZrKYZYxLOhVBCAiCNr5AxFJfwd5C0catEsUm + hYiFxXFCCEq4TmJu5OMU93A58HuAviKUMnw/ftn90zs7tVeuHt5cfjnrJtiK1c4/SVZv3KOdgj9j+6d1 + zMMX1O1bHp8/xNFOwUZsTD3Bq52xWaszuXLBSOCYId9Rb8HWJsrXGHt3DI7vuvxy1m1wNHXJsO+AAe/W + 34KZUgWrUMHMb6Dn1tCyqySsMjHTJqKXCGkF1KU887EcgUiWuXCamUWLadXErxhOoi0ovX8PWsXmucby + OsnGuekyccsmatiEk0UWEjZKPE8w2jg3w2yoee6UksIf1J1EW7BfCKUMQimDUMoglDIIpQxCKYNQ9g6e + L18OKkyOPi51AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABLElE - QVQ4T6WQu0tCYRyGz1/S1hBtDbXm1onUyE5e8JKXk8dLXg52sa3LVItjUSAGRTTUWBDU4BRE0CIuYkuL - 2BY0PvEhEvQp9CEP7/LA7+XlpwHaKJGEaiShGkmoRhKqkYRqtHSxjJUvk8xtk8huEstsELVKhJM2wUQR - fyyPdzXHcjjLUjDDYiCF02ex4E2iGybaqEhCFc0q9Oab61vExfxUiYhlEzJtAvECK1EbI5LDExLz07j8 - vfnzxhq6J/G375fy6Tu+nTpu+0G8ayiS6HNw2aH2+I3DvFUrmI1dkzp6QxSc3H3hLN4zE7pifK4ysEgS - jVaXCfcZ+7UWuxcdfHtNpowqr42P/xUImu1PpgPn6HadSdcxT8+tgccCSfRptruMOQ6p3rwMPRb8AM61 - eNYtKznlAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABMElE + QVQ4T6WQvUsCARjG7y9pa4i2hlpzy0iN7PIUT/Pj8k5NvcM+bOtjqqWxKBCDIhpqLAhqcAoiaBGXw5YW + sS1o/NXhcgdndMmPBx6e4eF5XwEYSq6hF7mGXuQaepFr6EWuoRcJeb2GWq6RK22SLa6TLqyRUqskcgbx + rE40XSayXGIxUWQhXmA+phGQVOYiOfyi8tMyJDb7PwS10p+vrG6QseZrVZKqgawYxDIVllIGYrJEWLbm + 5wlG+/NnxRX84ay9y0nt5A1pq0nIuLfeNRCbdbJ30aXx8IVPufFWMJ2+Qjt4xSo4vv0koN8xJV8yOnPo + WmSzfVpmj7HQKbsNk+3zLtJOmwmxzkvr/W8FFu3OB5OxM/xGk/HgEY9P5sAzbNZJu9NjxLdP/fr5lx8g + fAPOtXjW7jTlPgAAAABJRU5ErkJggg== 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 - NvyNtOC/8hMb4cocvUYexQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACX0lE + QVQ4T6WSa0hTYRjHD/TBvhRdqE99Koi+RFFB9SGjUAsvLYzEjMxFTKVkk6XpSC1N0eVtadqMvAw1b5Uo + KUUiJI7uGs7oIpEauZa1s3nP4tc5RwZNBgW98OPA+77/3/O8D0cA/gufmz3tOXTdzqS1KhVtTMh2X3c8 + CC21RXoJPFQVHMdpr2PSfoORwXySNUEUZeu5ZjRgyk6SCVwsYEZsZs7VxIyzHku5nqnxGpJjVbbXvSlc + OBtKinoH9p6TjHesRxt9SMotEsjhOVcDZTkn6LPmI34qYWzQwAfrKdoqVMRG+VOXto4XRQLxx0K8BU01 + BQsC8RbGtGgy9JEYEiI4Hx+OXqNCpw4lLiqAYu0GRRAZ7O8tqK80Mis2MuswMzWai+NVAraa1QoD1avo + K1/GU5OfEpYJ2L3VW2Ax5zDtqGJ6OIupN2eYfHkEsX05hdUd5JpbuXi1kRSjBV1mBbGpJqIT87wFlaWZ + TIyYmBzUMPEsFPejbXy5u0YJe9bc/E+crhmGx5xExF0iLMYgby8IKgrTEd9m4X4ShLt7M67OtYxUC0pl + eVXe6VEwN3QxMGRXwg96bRwIV8vHglCal8q3/nO4ujYh3luJo9mPoZuC0vaP+V98d0uVPzsZeG/H2v+R + 4CgdQVJ4/8HD+O/Zi1B8OQnH4zgpvIKvLUsZrV2CrUxAK71ZbtvTwXWpgxJLJ23dNuUrs2vLRoQrGYnK + D+KZsgeNNLA/Kz+0vlPCzff7aOh47iUILEw/Lf1hKtThgYTt26kcyNOW3+yp5gtFIA/CF0elacsX/obP + 8L+D8Bsb4cocWY3wtQAAAABJRU5ErkJggg== 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 - lAGEMIYAqRgAbgzMptd1HX8AAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB+ElE + QVQ4T2P4//8/RRirIAxP3vItZvLmrzvm7f76aPnBr0dWHvw6ZdWhr1LIalA0IOO+DV93APGf7nVfnzeu + +PK4fsmXO3N3fn0MNOATsiFwDd2rXv1fduKrAZi97uuy/o3ffqdOevfGpeDEb+vU7X/ME7Z8d6+4+3Hm + 9q9vgAbcRDEAKMDZuOTl/3kHvl6tX/G1YcKmb3/iep7/cy04/t8uY/cv09g1x13ytz60jF/+J6zj3c+l + B77eRzEAhItnPv+fNevz/8I5X/5H9nx8YZW85a9F4oYfprEr80HyAbXbVQwjFr9wLb/9vmHplz0YBiT1 + Pfvv3fTmf3Tv5/9lc9781/CetNokZoUjTF7BoY7ZLuvQb9eyO68bVn45BBOHGxDU/PS/WfH9/55Nr8Au + Sex59L9u8VtLmDzQAFa7zEN/veqefWte+WULTBxugFPF4/8ORdf+W2Ue/28Sv+2/YdTa/xo+U4FSEHmz + uPVKtpkH/wW0vP5bMP1xKUwcbgA6BgUsMl/da5K7a9ntP2mT3//r3fCVDSYOV0AIW6TsuxjS8eFfWN35 + XGRxFEXYcFzfeyWH/Asx/i0f/vlVXvmmFTCbEVkeRTE27FH92Nm/5dMvj5KLP42jVnmhy6NwsOGo3s+R + ziXXGk1j1olik8cQIBVjFSQe/2cAAG4MzKZBtgOMAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB40lE - QVQ4T2P4//8/AyUYzlh16KvUyoNfpyw/+PXIvN1fH/Ws/5JSufALJ7oGdAzXvOrQ109zd359XL/ky53G - FV8et676cqdi0ZfPlYu+pKJrwmbAzZnbv75xr3zw3jxhy3erlG1/HHKPf02Z/PlF4ZwvLwrnfgkDqVt2 - 4quBQ9G1/xgGLD3w9X5Yx7ufZtHzf7vkrb9pGrvmmGnsmi9m8Zt/J0/+/Dd95udn2XO/RM478PWqdebx - /6sOfYV7DUw0LP2yx7X8znt1r55bAbXbVUBiprEr842jl3/VCZj9K7Tz4/PCOV/+Z836/N8kfiumCxpW - fjnkWn7vlZpn32EFhzpmmKRJzApHDe9Jq8vmvPkf3fv5v3fTm/96oYsxDWhe+WWLd/2Lrxrek28qONSx - wiSnbP2qO2XrV7DNnk2v/psV3/+v4TMV04CC6Y9LA1vf/DWKXPNLwaGOGyYJCjCrzOP/TeK3/dcLWQLW - rOrWhWlA74avbGmT3/9zLbv9R91rkjuyAuQAw4bhjLC687khHR/+WaTsu4iuCB+GM7QCZjP6V1976d/y - 4a9D/oWYuL73SuiKsWEUjlbAbD6fypunAlo/f/WofuyMrhgbxhAAYe+GV6FRvZ8j0cWxYQwBUjGGAKkY - AK7WxHD7c7sYAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB5ElE + QVQ4T2P4//8/RRjOWHXoq9TKg1+nLD/49ci83V8f9az/klK58AsnsmJsGEyANAPxp7k7vz6uX/LlTuOK + L49bV325U7Hoy+fKRV9S0TUhYzAB1Hxz5vavb9wrH7w3T9jy3Spl2x+H3ONfUyZ/flE458uLwrlfwkDq + lp34auBQdA3IRDNg6YGv98M63v00i57/2yVv/U3T2DXHgPiLWfzm38mTP/9Nn/n5WfbcL5HzDny9ap15 + /D/QQrjXwETD0i97XMvvvFf36rkVULtdBSRmGrsy3zh6+VedgNm/Qjs/Pge65H/WrM//TeK3AqXRXNCw + 8ssh1/J7r9Q8+w4rONQxwyRNYlY4anhPWl02583/6N7P/72b3vzXC10MlEIzoHnlly3e9S++anhPvgk0 + gBUmOWXrV10gBtvs2fTqv1nx/f8aPlOBUmgGFEx/XBrY+uavUeSaX0ADuGGSoACzAvrZJH7bf72QJWDN + qm5dQCk0A3o3fGVLm/z+n2vZ7T/qXpPckRUgBxg2DGeE1Z3PDen48M8iZd9FZAWEMJyhFTCb0b/62kv/ + lg9/HfIvxMT1vVdCVogLo3CAhvD5VN48FdD6+atH9WNnZDlcGKugd8Or0Kjez5HY5NAxVkFSMFZB4vF/ + BgCu1sRwcCvT7QAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAACG0lE - QVQ4T52TX0jTcRTFbxYWzDa2/dYv14/2c7O10G3IKNAVXygDKYLMCgKjwAiZmGlYoYMxKNaqNZXlmA8h - CaNG0kMpAxmDLCSwKKiwcHNtQZQPI0b/TDmxElmjh+nn8V44l3M4l6gQvAYz3dgqyx8XTHV4I3RBIZo/ - L5i6cQ6tcQmkfYIjf1cQxocizs9KsTvCgZyl7N9twCKjgIWRv4qRz8Sor4KR18DIo2d0VcfIJTLjAw2O - xkScmlZAc4tPk12Zk0fAwhpe8Gh6J8eRlyrUTZTCGhGQvaoJlUMxaIB434DD01rUT5Wh9rEaJW4uJw9/ - FWtLrYcrU4yLnyRoTshx7M0G7JvchJpHZagI61E59lfgwJQetc+00IVEFHXLFvPwmVh7qgQ9c2vg/r4O - zowEXWkZOmaVaPnIo+mDGo2JzUsCe19vw46oAQ1jHKit2ExZz+1JybIE+jNWNEYVoNbV5mxJWCh5E28X - gni+0Ivx+W6Ef53G8NxB3P5phf/HFji/qJYELn/eD19qJ1SOtYsWPHrmmRzAyPth3Ev0Y2jGgYGZZvTG - 63ElVg1HTIvOlPKPwNnkHkS+dsDUw+eEeK1cRm4tI5eG0SWBkVPNyMEzsnOMuuSMLkiZMaTC8XglXs0P - 4lBwe5paipZXa+MdDk+/3cX1iTMg26q8IhVA58g5PEmNQrDzK6vyiaGT2OWtWfkzkY3MZKP/+v4NDkAX - agkV7KYAAAAASUVORK5CYII= + QVQ4T51TbUhTYRQ+WVgw29h258012txsLXSOiAJd8UIZSBFkVhAYBUWIYqZhhQ4ug8JWmR+Ykj9CEkaN + pB+lDGQMspDAoqDCws21K0T5Y8Toy5Sn17rIiH54feD8OAfe55znOeelJaHd5aEbm3RKph4l4XVwBC1R + JVWP8lEBdXENtF0WSSmpg/uRDedntNgVEUD+PKaUFdzaquPBqHcLo+5iRl2FjGtm1OZkdNXBqNXG3A+t + OBKz4dSkAdbbYop8xgw/+OPKlyJOvtfj8CsTysfy4I1YsNDVGiqAod8F2wMXDk3aUTGRj7InZuQEhAw/ + eOd6eS1a09m4+EmD6oQeR9/mYu/4epQ+zkdh2Imikb8E+yecKHtuhyNkQ1aLTvGDj90g56BjdhUC39fA + n9agOaVD44wRtR/5ZNNmVCU2LBLsebMZ26MuVI5wP+qzPbSguSGpUUXQk/aiKmoA1a3kBNywUPIm3s0H + 8WK+E6NzLQj/Oo3B2QO489OL3h8b4f9iWiS4/HkfuuUdMEmrFQnc7bbxPgx9GMT9RA8GpiT0TVWjM16B + K7ESSDE7mmTjH4Kzyd2IfG1EcYeYYeK1Ah0F7HxdVkaXLIz8ZkaSyMgnMGrWM7qgZe6QCcfiRXg914+D + wW0pqs1Sd9buuwKefbuH62NnQDUr/jmkJaBp6ByeysOw+MTlnfLxgRPY2V66/M9ENeTh8R/dRL8BDkAX + agnC/hIAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACiUlE - QVQ4T4WS3UtTcRzG95900Y1XYdBNV0Fd2YVaEggRXqSiaTbLJJdWiomVmimJw9x8W5pDV6QlWPlWmk7N - 1Eyn5vvbptPp2tl2ds4ntjMMctDFc/GD5/k8D19+KkD1P1lMYcN75rOfsGoss63HZTbVc78nz5ssprCm - I+ZQ8s5EGRY7ToKjiJXeWHCUsvDuBM7xiNdHzCFl1Vg4qABxgIO1FhD78L93ZrJDmENopvmYvNQVg3PT - hMQeLlsb/vdq56mj5pCyau7iKDfi7jI6N01GxAEjjnIkW0EIcwiJlujohffhRmkrx2jXnYHOeOUG8zdQ - 6ZsmqX45QVXDGNraUZ7rzJRpB3la0c+TZ70UFndhqMylx5SD/L2A3eZItltiOZhLZX3wMipd4wSyLCNK - Mh5RwuWW2HdJ2J0+rHsia3aRRasX9Fq4p4G4KLh4nKILp/GvU1UbxpEkmfTKVVLKVogvXuZK4SK2fZGN - XR/L26HD6luvFMCLhjFEn8yl/AWi7s8ToZnlXKaFLX/7jqiEc7IgLhJilPCgReC6ulEBaOu+4RVlBK+E - U5DYdfqw7ftYtwfD/zSb5wT6ZwRS0gwKoLJmBLdX4mH9CPm1ZvJqBnmgG4Dt4WA48jB8s6QdddFbPk8L - JKfUK4AK3TAuj8S+4Au0Wx3Bdj/AL702EB5dcDM0K/BlWqB3ykVScp0CKK8awukOLqgzk6dXFgyHqw7D - meWdZJR2BBe00f3DRUJSrQIo034NtNsPfIHDrdu9LNq8zG54+LnqYXzJw+ivv+09Uy4+TriIT9QrAP+H - KSrr41FJN/mPP5Bb0EFObjtZ2W+4faeV9AwjaepGUlINJF2rIyGxhqvxuoD8gD/FexT5V1saowAAAABJ - RU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACh0lE + QVQ4T4WSyU9TURjF+5+4YOPKYOLGlYmucAEoMSExxoVAwCKCIhEEFYMEtSBCJDRImawgDaARlASVSUFG + FXBoAZmnFspUW9rX937e9jUxkZe4OLn5bu7vnJMvVwf8V7aWg8NbQ8ffY8+yTTaHKaymTv2eONki7hs0 + gX/ls0aZZ9sPw7aBhZ5YcRYz8/oQrrGIF5rAPolkdstA6md3qUmcvQTmDWu2xmMNWRsPKHOdMbhWW5DZ + wu1oJTAvdhzRBvbJnnWD7VILe50WYWIRTSxiRnbkazzWkGSLjp55E26R13IsTtMx6IhTdzB9GV1VwwSV + z8apePoFY80oj01DlBgHeFjWx4NHPRQUdmIuz6W7JQflaz6bjZGsN8WyO5XM8sBZdKb6cRRFQZIVvJKM + e09mxy3jdPmxb0ksOSVm7T6oMsLNLDgfBafDMJw6Ksqh01Wax5AFnFa+iL5kgbjCec4VzOLYkVjZ9DO/ + rg2nXn2uGjwR1SW/wpm8GaJuTRORNcmJDBtrgfQNSYVzMgUcCTEqPGDzcCm1XjUw1n7GJyl4fDIuj8ym + qO7Y8bMsqmslD0156LN60KeYVYPy6hH2BHy3boS8miHuVA9w29QP68MhWCSH4CtFbaQaXvHhp4ckfZ1q + UGYaxu0Vi/P4g+n27VB6wCAg0SIAj87sMTjp4aOAe767SUyqVQ1KKwZxic0HG9SKBlVqg+Fw8QVCcEZp + B+nF7aEGrXR9cxOfWKMalBg/BdOdu/7g4padPmYdPiZXvPxY9DI252X019/0bpH+btxNXEKVahD4MIaS + Xu4VdZF3/y25+e3k5LaRmf2Sa9ebSUu3kCI2rk82k3ixlviEai7EmYICdH8AxXsU+dXRvF8AAAAASUVO + RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgUlE - QVQ4T6WQWw2AMBAE1wGSKgUpSEAKEpBSCZVQ0rSXPoafg0uGj8newqGcs/4A4QXCC4QXCqk83rgkbchD - SGFYOhrJSpCHqGMFNufXgrvhOmEssBNiO2NHHmIusLH/kpCHmAvKYsHOiMhD9OWVckJAHqK/daV+2ppf - hRcILxBeHkdnUwqevR+DAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiklE + QVQ4T6WQ0Q2AIAxE2cCRGMVRHMFRHMFRGIERsAUuJFxNqF7yPny5ltRQSvmFKT2Y0oMpPbAQ9cIlbNQn + EULsA8rRyf37oj6JFixATuHTgrtTh4WlEzRYgBOSoGfs1CfRggUI/kumPokWLNBBBWck6pMYwzN6QqQ+ + ifHqTA31Z+HFlB5MuU4JD0dnUwrgCrV/AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgElE - QVQ4T6WRUQ2AMAxE6wAJSEACEpCCJCQgAQlIGjm2EtIjjBtL3kcv15cSLKVkf6BAhQIVClQoOMP8JjPD - 4KyxVxP0WPJlzLFXE+BtRYBrqPdF4Od3LYKhLO+X7akbg5tgLoKlVYBFDBDJApzt3w/wR6j3JhgD2gUK - FKhQoHIAVnlxb1bdEucAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiElE + QVQ4T6WR0QmAMAxEu4EjOIIjOIKjOJIjdARHcKSYSyiCvA+DBw+8x7UUbGb2C5QVUFZAWYFlZnNUBh23 + KDOz0504rI5blE9OR0Kv4S3KJypiikJblJnFUbmieXCLMrM7Kkc0D25RZnRQRRdFcIsyn62Pgf4Ib1G2 + tr6I4JZkBZQVUH7H2g1WeXFvwrwKSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAf0lE - QVQ4T2P4//8/AyUYQ4BUjCFAKsYQIBWjchgY7BkYGEAMGN6PRcwenwH8DAwM+VCF9xkYGPTRxOpBfHwG - ILsCZDu6GIjG64VhYgAo0N5DNcACcT1UDMQmaAAIxCMZAsIgNkgMDIgxAAZATgY7GxkQMgBkEyi+cWEa - GkAOBgCjTd7+r93eSgAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE + QVQ4T92RUQ2AMAxE6wApSJgUJCABSUhAChKQUHrbGjgYH4U/Lnlhd+G6ZRNV/UQzjNAMIzTDCGxEkoGF + szSyRB0yIp0x1h9Xo79kEzx1yBT5jtjd5Rm+3CFT9IMBuLTNQOCXONcMa+6QOTQYPgRgjSyLOmTuwpHz + sc+iDpki7IT3foI7ZIreD4ijsgOjTd7+jqoH+QAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAcklE - QVQ4T72QUQrAMAhDvf+lHX50qJFqSSnhDczom52oqtwEChYoWOIgYg+b/lRdyFPhEvgDeYZMhBmQnAgt - Y5mlE+btWulE6A9Uc/jQTlht5LvqHSXMaYUnGV15mrAxK4TrM8L1Pz174QWgYIGCBQqWD+N21FbTYK/z - AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAm0lE + QVQ4T62NUQ7DIAxDe/9LMyclyGauygZ6eh8xtXu11o5qwx1tuKMeOENcA5cJ1M8NOU4PBm6Q7y+4DzUA + MTB7vzzAfahBZ3ks4D7UAPBYeb88wH2oAZgH3F1mUt2uHvxhhzP3xv3ckIPKhcuKzKmfGxL8wPgJ96EG + i4yxgPtQgwVkLOA+1OCFGJuVPpTjhDbc0YY72vB/2/UB43bUVn8JuhoAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE - QVQ4T92PQQrAMAgE/f+nLfUQdFdiYT0VmZJMyJCau9smJFRIqJBQqeLDmMUnCKMETyTvlSDOGCy/ki6h - O7F3tREsezWI59dgDmQwXs6mIF4sr+lmCuILxugt2AU696PgBiRUSKiQUHkANGDdTeFIubEAAAAASUVO - RK5CYII= + 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 + AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE - QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe - FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g - j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu - MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx - WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ - BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM - B4HjT5oAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE + QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn + QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH + f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD + VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp + hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe + hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc + DAdFhtjSAAAAAElFTkSuQmCC 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 - agkV7KYAAAAASUVORK5CYII= + QVQ4T51TbUhTYRQ+WVgw29h258012txsLXSOiAJd8UIZSBFkVhAYBUWIYqZhhQ4ug8JWmR+Ykj9CEkaN + pB+lDGQMspDAoqDCws21K0T5Y8Toy5Sn17rIiH54feD8OAfe55znOeelJaHd5aEbm3RKph4l4XVwBC1R + JVWP8lEBdXENtF0WSSmpg/uRDedntNgVEUD+PKaUFdzaquPBqHcLo+5iRl2FjGtm1OZkdNXBqNXG3A+t + OBKz4dSkAdbbYop8xgw/+OPKlyJOvtfj8CsTysfy4I1YsNDVGiqAod8F2wMXDk3aUTGRj7InZuQEhAw/ + eOd6eS1a09m4+EmD6oQeR9/mYu/4epQ+zkdh2Imikb8E+yecKHtuhyNkQ1aLTvGDj90g56BjdhUC39fA + n9agOaVD44wRtR/5ZNNmVCU2LBLsebMZ26MuVI5wP+qzPbSguSGpUUXQk/aiKmoA1a3kBNywUPIm3s0H + 8WK+E6NzLQj/Oo3B2QO489OL3h8b4f9iWiS4/HkfuuUdMEmrFQnc7bbxPgx9GMT9RA8GpiT0TVWjM16B + K7ESSDE7mmTjH4Kzyd2IfG1EcYeYYeK1Ah0F7HxdVkaXLIz8ZkaSyMgnMGrWM7qgZe6QCcfiRXg914+D + wW0pqs1Sd9buuwKefbuH62NnQDUr/jmkJaBp6ByeysOw+MTlnfLxgRPY2V66/M9ENeTh8R/dRL8BDkAX + agnC/hIAAAAASUVORK5CYII= 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 - zX6th/05/Q8FMcZPXTFPhgAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAI0UlE + QVRYR53XSWwb1xkH8JElS+i50KUIempB9FyguQRoiya2gSyHOEWQADnkFtRxmwRBENcIigZx0sDNVsCJ + d1mSZcv0EluS7aS2JFv7QslaSIkUd3KG+zILZx/y3++RVBzvTgf4YzhDit/vfe89YsSx41/79nN79/yj + 9ejBEz/vOtLb2XWkp7PrKOVYIydYjnffThdds/z43vGezu4TvZ09J04209d5svtUZy+d93/62c8unh+s + 17rvMdh3k+s/fPmXKyPpq4GJ4mJwpugJe0qe6FLJE/eWPIn1socPlD1CqOxJRURPOip6MjE6s9DrVIS9 + V/LwwaIn4S94Yms5T2Q16wkupT1+D+8ZuTL951K8yrW0tDQr3nVc7p3k3Ie+dwVuyKnYjIXkgoXUio3s + uo180EEx6qCcqEISapDTNShZoJID1HzjrGTZ/SrElINS0kI+qiMTUiH4ZcS9ZUwNL+2ChAcDhnonuDOH + vnP5RyUhOmUiMW9CWLaQ8VnIBQgRtlGMESLpEKJaL8aKVhIaKhnnNiLDEDYhTORjDFEBH5Awc2N5FzQ0 + q93nGOwZ5/oPfudaHxEJYCA+b4BfMpH2Wsj6aUQhBmBf7EAUCJGhkS/zMD/8DMapoUYnCpQ8IbLUqbSN + smCikCBERMHc+Mou2I8EXHWtDYtCZJIAcwaStwykvCYBaDQhC4UoARLsiwlAI9aOnYVxqA/64E1oORta + ie5R1CJNUZ66RPfEDCF4DZ4pAuBhgO6xJqBMAB2xOb0JMJAhQC5IXxS1mgC7DjA+/gr6ue+hzaxBK9jQ + RUCXGtHEGtQyTU2REFkdi7OrDwcMMMA3DUB4UiOARgAdwioDGMiFGMCsL7AyzbFErTY+ovYfPQXzP0eg + FwwYSg1mBTDVZio16EoVFdHE0sJjAE5/c8XlGy7dCfDSHNYBBgoxAvAWxLQFqUSArw7D2vtPWJ9+AUO2 + YWo1WHoNjgk4ViO2RZ/TLKwsex8OuNR9swkoEkBFbF5FYkmD4NOQCejIhQ0U4wZKtLDErAmZWqyfG4Kz + bQfs/V/ANGuwzSocu4ZqtYZajcrRwc62bcPr/QmA0GSlDkgu0z5eI8CGVt/XxaSBctqg9ptQJAf6og+1 + X/0aztFjoLpwHIeKV6koAzQFdLD7jwQM9BDgIAMUhNAUATyVOiC1rtJeJkBMo9HrEHMG5JIBVTah58uo + PvscnCtXaIc1Cm0iNiE/HTBSEMJTCmILCpKrFaT8KrIRFYWkhnJGg1TUUZEMaJoJM51B7ckn4XzyCWwq + yFp9PwS79vl8jwLcIMBll2+UADMK4osKeF8F6WAFuZiKYkqFmNegiDrUig6dilk08urTT6P64ouwBQE2 + FbobsQl4dAd6CXCIADfyQmSOfr+XZAjrCjJhBflkBaWsSitfRUXRaPQE0DQ4b70Fu6sLzjvvwPn6a1jN + LtyNeLxFuNkBBpiXkViVkdqQkY0pKKQUlAsVKLIKVVWhGbTnV1Zo/p+FGYnAXFhA9YUXYPl890U8FuBi + zyh36uCQyzuaE8JzEgEkpIIycgkZxawCqazQ6Ct1gEoAa98+2O++C51hTBM2daD66quwksl7EJZlPUYH + To5ypw8PuXw3c0LEIyHpJUBIQp6XUSrIkCUCVCqoUOu1cBjOjh0wJiagUfE6QpbhfPABqq+8Asvvh0Vz + b7NQVZMQPr//Lw9fA30jXP+RIdfaRFaI3hLBr4vIRCUU0hLEEgGogKIoUAhgfvkl7DfegEbXmq43EDRa + o1SCs3cvak89BbuvD/boKJyBAdi9vSi+/HJvjeN2EuE3lC33UAZOE+DYkGt9KivEVkQIGyKySRHFnARJ + lOoAmXWARm8//zy08XGorDitftYJ68gR2NQBZ/duVHfuRHXbNtSeeAK1Z56B8/77ELdvP09F/075N+UP + DHAHYrB/hDtzfNDln80I7AkmFS4jJ4goFUVIEiEoDGB8/jksKqLOz0Pv74d54ADM48dhXL0KY3kZBs/X + p8PI5WBfuFAvblMKO3ceog78lor+rpmWOwHuYe7MiUFXYD4j0PMf0tEy8pkyymURIgNQcYVWvvXSS9Au + XoQ6PQ01GESF2s46odI0sN3BpkSnsIVp0NybNGUGfS69Z88BAjxHRX9P+dM9iKGzw5y7e9C1sZAWkoES + MokSCjkCsOI0KimRgPHee9Bp/lknZNoNCpuSZuq7g21RKsgAdURzh7BF6l1fry/CZtE/UnZQbq+FoXME + 6CHArZTABwnAl1AslCGPjUEZHITa0wPztdcg0zaT2Hpopr4wKT+GMMQmhCHY69XVxvNAnmpR0TbKVlb8 + B8Dl89e5s70DruBSShDCRWSFAuTePqg0x9LMDCxaWMp/r0GUFYgiTQubms3QdX2himy7Eoo+U//NqDQw + DLUJeOBx+QIB+giwIghCvITyyTPQ3n4bZfp1M15/Her+/SgWWVeKKOaLND2FO1LM0X1KKU9/S50T2eIt + 30YtL9FT8cMAVy5e586dGnCFvIKQCmWgvvk3SN9+C233X6HSqs/Hk8hmcsimssgIGZqie5Pls9S5LHKp + HPLpPP2CNkAsiwuLjwE4TQAfL6SiWZSPd6OyZw+kDz+iR7IgUnwaQlwAH+PBR5uJ3BW6J0QFpGIppONp + ZJIZ2sq5ejyznkcALm0CkkIymqEvSdLDSAB8nEcimkQinEA8FEcsGENsgxK4N/FAHPGNOBLBBJKhJPjw + bdDs5OyjANe48/0MkEglQikkIknEI4l6wWggiog/gvB6GOE1ii+MkDf0Q8JeusdC9yO+CKJrUUTXo4j7 + CbORqIOmx6ffhPMAQEdHB3e69xx39GD3L6bHPAfnpxfPzk7NuWcmZtzTY9PuqZtT7snRSffkyKR7Ynii + kesT7vHr443ztfH6681r9v7k8KR7amTKPX1j2j0zNuO+dOHS9hyfa1a862hra+O2tm/l2tvbW9raW9u3 + drR1tLa1dmxp3dLR0trS0bKlEa6F66CP/79ppdznn1OO+x8FMcZP/Ws5zwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAI8klE - QVRYR53XSWwb1xkH8CdLttBzoUsR9NSC6LlAcwnQFs1iwEkOUYogAXLILaijNgmCwK5hFA2yNHCTOAXs - yPEiS7IsmV5iS7KcNJZkW6slStZCSpS4kzPD4ZCcfZ/h/IsZUnW9xHL6gD+GHALz/fC97xEkIYSQf3x0 - iBzY/7fmE52nf9p1vLet63hPW9eJnrauk/Wc9nOq+266eur533unetq6T/e29Zw+00hf25nus229p/va - Dn362U8uXxzySz18DfXdJANfX/35yljx2sZkdTExW42kInwks8RHclE+kl8XItSGEKGTQoRJi5FiRoyw - WTFS9JMRI0za/4yPUIlqJB+vRLJrXCS9WookloqReISKjI3M/JHP1UhTU9P9pevrau8UCR/7LrRxQ2ay - szYKCzaYFQeldQflhItqxoWQr0GiPchFD0oJUDlAK9evSsm/X4PIuOALNsoZA2xSAx2XkYsKmB5d2gsJ - PwwY7p0k5459G4qPS3Rm2kJ+3gK9bION2eA2HJRTDqpZF0LBhUTXgmJ+UTWvQ2XduwjWRzjgCxbKWR+h - gtqQMHtjeS903F/27hrqmSADnd+G1sdEOjNtIjdvglqyUIzaKMVtlJM+wH+wC5F2IbGAukzB+uAzmGeH - 652oAGrZg1yqQSo6EGgLlbwBNq1gbmJlL5xtAddCa6MinZ4ykZszUbhjgolaKMUtlJM2KhkHfN5/sAuJ - A/ST52Ee64MxdBM650DnEUSrelDKNcicA5G1UKF0RKZX9gKPAnTfagAEOj1lIDtnNAAm2LgFLmGhkrEb - ACcAmB9/CePCd9Bn16BXHBgiYEj16KIHTXChVh2IJQOLt1cfDRj0AV/VAakpHdk5HYU7BuhVH2CCS/oA - KxgwgXEglT2YH34G88RZWP86DqNiwlQ8WCpgaY2oHgylBlW0sLTwGID+r0ZCsVH+XkDUaABMVLIWeMqG - WLQh8R7ML7+GfeDvsD/9AqbswNI92IYH1wJcux7H9mDqNlaWo48GXOm+2QBU6dSUhuy8hvySDjqmg90w - wKVMVHMmeNqCWLIgix6MC8Nwn90N59AXsCwPjlWD63io1Tx4HoLlXx3HQTT6IwDJKTUAFJY10Gs62E09 - ONfVggmhaEIqW1AkF8ZiDN4vfgn3xEk4HuC6Lmq1GjzPBzQEqN/fFjDYc5P0d/qACp2cVpGNqAGAWdfA - JnWUszp42oDImZB5E5pswSgLqO15Hu7ICJxGoS3EFuTHA8YqdGpaQXZBQWFVBRPXUEprqBR0CKwOqWpA - lUzougWryMJ78km4n3wCp1YLWv0whP8+FottB7hB+juvhmLjFTo1qyC3qICKqSgmVHBZDVVGg1jWoYgG - NNWA4TiwR0ZQe/pp1F56CQ5Nw3HdBxBbgO070HuD9B+7GordKNPpORm5JRn0ugI2paBcUMGXNEi8BlXR - oesGDF2H+/bbcLq64L77LtyjR2E3unA/4vGGcKsDPmBeRn5VBrMpo5RVUGEUCBUViqxB0zTopglzZQW1 - PXtgpdOwFhZQe/FF2LHYQxGPBbjcM07Odg6HouMcnZqTkF+VwCRkcHkZ1ZICSVCgKmoA0EwT9kcfwXnv - PRg+xrLgHD2K2muvwS4UHkDYtr094MqZcdL/9XAodpOj0xEJhagEJimhTMngKzJkSYGqqlB1HXoqBXf3 - bpiTk9Atq46QZbgHD6L26quw43HYngfHDwDLH8J4/E+PBAz2jZGB48OhtckSnbkjgloXwWYkVIoSRF6G - LMtQFAWKrsM6fBjOm29CVxTohlFHOA5Mnod74AC8p56C09cHZ3wc7uAgnN5eVF95pdcjpB2E/AqE7HiA - Mtg/RgZODofWp0t0dkUEvSmiVBBR5SRIohQAZL8DqRScF16APjEBzS9O00En7OPH4Rw8CLejA7X2dtSe - fRbeE0/Ae+YZuPv2QXzuuYsg5K8g5J8g5Hc+4B7E0MAYOXdqKBS/zdL+LxgmJYCjRfBVEZIkBfEB5uef - w+7ogDY/D2NgANaRI7BOnYJ57RrM5WWYFBVsh8lxcC5dCoo7+/ah0t5+zCPk1yDkN4003QsIj5Jzp4dC - G/MsnV8XUMwIKLMCBEGE6ANUFcrKCuyXX4Z++TK0mRloiQRUng86oVlWcDr8LTEMIxhM03Vh6TrMRALF - /fuPeIQ8D0J+C0L+8ABi+PwoCXcPhTYXinRhgweb51HhBAh+cYqClM/DfP99GIcPB52QNQ2KvyWNBKfD - P6K6HgACROOE+EMaXV8PhrBR9PcgZPc9szB8YZSEe4ZCm3cYmkrwYCke1YoA+dYtKEND0Hp6YL3+OuRC - AZI/D40Eg6k0TkgD4iO2ID7Cf726Wv89UK7vfQsI2XnPHFy9eJ2c7x0MJZYYmk5VUaIrkHv7oB05Aml2 - FnZ7O5R/fw9RViCKIkR/a7YiivVBFf3jKkORG98Zah3jo7YAP7iuXrpOzvcNhhIrNE3neAhnzkF/5x0I - sRjMN96AdugQqlW/K1VUy1VUuMo9qXLVIHyZh1ARIPrDK9xFLS8tPxowcvk6uXB2MJSM0jSTZKG99RdI - 33wDvePP0Do6UM4VUGI5lJgSWJoFSz2YElVCiS6BYziUi2VUS3WQn8WFxccA9A+GkjGKZjIlCKe6oe7f - D+mDD8HGE2CoIugcDSpLgco0kr4vGQp0hgaTZVDMFcEWWHA0FyRyO7IN4MoWoEAXMiyYbAHM+gaoHIV8 - poB8Ko9cModsIovsZhbZjQeT28ght5lDPpFHIVkAlboLuj11ezvA9+TigA/IM/kkg3y6gFw6HxTMbGSQ - jqeRWk8htZZCKpZCMpr8b1LRVD2xFNKxNDJrGWTWM8jFc8hv5gPQzMTMW3B/ANDa2kr6ey+QE53dP5u5 - Femcn1k8f3t6Ljw7ORueuTUTnr45HZ4anwpPjU2FJ0cn67k+GZ64PlG/fj8RvN56738+NToVnh6bDs/c - mAnP3poNX7l05TmO4u4vXV8tLS1k566dZNeuXU0tu5p37WxtaW1uaW7d0byjtam5qbVpRz2kibT63v8z - zX6th/05/Q8FMcZPXTFPhgAAAABJRU5ErkJggg== + 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 + AElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAACT0lE - QVQ4T6WSXUhTYRzGT931AYV94VgfGjMIpBF1Id5EF7kbA7OgbrQP11FHw9Gaw82QDc7mxkxIxzYHLvEM - tWKnzS5sEw0kLyYoRksCh7g2c3I2dR7aBvLEhAbbzKAufv+L932e358XXgIA8T8UHPyN5mZLqdFIzvf1 - NaG9/T5VENgLhcLI02rV/lCoEsAxdHYSowWhP6FSUXyd7unH1dUSJJNvQNMiliSJqoLgbjQ2Wvhardq7 - siJEOr0fVmvZVn9/fUfmLicolz87KZOZzspkL05naGnp5kskvQKN5vFkKMRHMjmGgYGqnyrVhYcjI6Lj - OQK1+vklijJM6PWKBYNBGdDr5QG9XvlFp1N8C4cvYnubgNlctqbRkHK//1rR797OaG1VlhoM9s+RyAIS - CQHW1w+A445iY+MgEonzSKXGYbc/2na7RY35z9sZJpNtaXn5E4BbAEbhcgkRidjAMJXY3GTgdNasSaVX - yOnp69nNOYLe3iZwnAgc9w4sW4fFRR+s1nrMzY0hlbqNri7iR0NDkTC/nBU4HC8RDo+juroGAgGBnp6b - CAbdGBqqRSzGwGYTRiUSoiK/nBXQtAqBwGUUFx+B3f4B5eUnMD9/A/H4GDiuFmbz4ZhUSmR+z+4Ci8W6 - sbXlWZuaOoOKiqvg8UowM/MawD2k0wy6u88FxeI9BB0dnXd8vq/vgcnvXu+h2OyshwVIFnjFAg/iLteT - QYapP5VfzgoytLXJqwYHnUsej5hjGIpzOu9yNE1xDkft+vCwsS4afbsvv5wj+Fd+AZjLwCbKAcDYAAAA - AElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAACTklE + QVQ4T2P4//8/RRirID6clTVDqbs7/dLs2Zn/a2sT2rAqwoXLyrqlmptrTj9+bA3kCv/v7GTYglUhNlxd + 3SbT3l588OVLxf8/fqz5v3Spx9v0dAZ3rIrRcUbGDBmgzbufPzf4/+sX0/+ZM9W+zJ8f3wCSQ1FYUlIq + VljYK19Y2C8LwgUFE2Sys6eqNjWlHXj8WAZo887/ixa5f6+uVk9atcpDBMWAmpo6/ba2rv0dHWU3uroq + rnV0lABxxdX29rJbT59q/f/7l+H/tGlqr5ua0ktOn3YQgukDE+XlFUpdXXMuP3t24//nz6r/P3zg/P/1 + q8D/jx+5gHzl/z9/7v0/Z07y302bPDJgGlEM6O2d9eDRo2NAZhAQb/m/fr3B/2fPZv3fsMH6/6dPG/4v + Wxb4Oi/PJP34cSe4zTAMJqZOzQTa6AHEG/+/fRv3/+7dPcCAiv9/4cJOoO0h//v6GF6kpAgZoGsGYTCx + YMHk/0+f7v3v6xv4X1WV4f+UKX7/793b9H/FiuD/795t+D9rlsGr7GwGS3TNIAwmli6t/n/tmtF/SUl+ + oF93/dfVFf1/6ZLb//fvdwJdFQwMPJ53eXkMoNSD3YAZM2Z+/PJl8+sjR+T+W1qa/peSUvx/5sxqoFQk + MN43/J8wQeFeaioeAxoaOkP37Lm+9f//A0927+Z+d/785rf//6cD8UIgTny/fn3ukg0b4sXRNYMwnFFV + VeK+ZMmyB5s3p37dsKHt67JlEV+XLm37umBB8IeVK7vjXr1ay4isEYYxBEjD/xkAmMvAJtry8/MAAAAA + SUVORK5CYII= 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 - lF/ylm2nCccnxwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABNklE + QVQ4T6WQu06EQBSG9w1EfQNfAeQSCBTIJVwCIVDRUFmQWK+d7VZaW9vJG/gIxtZGo4XWbrnteM7A2Z3d + jLdYfJPD/8//zzAzxti/kIsgI7uzDKlIfBckpCLxp4K2bc+KorhL0/Q6iiKFm0KBaZpzgE3MSedLnudX + WZa9x3F8HwQBs237jZtTAQROMYjz9I0lJzhzAU68IBNKPizLgnGr4EFSsMCZC0hVVZfAY5IkK9pMBV3X + 0dXX9H0/7oHQQdM0rK7rV5gVz/OeDMMYzc0NXqYgv7YI/v95WZYsDMMb3/f3ILzSdR28rQJ6wFtgHzga + hmHcA1dWHMdhGAKeNU1bqqo6mlMBAqEFsETwQNL54rruITzcMYlrUyj4CqmIYJjY9USkIvFTGJGLwsni + LEMq/h42+wTylm2njslBVgAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAX0lE - QVQ4T72OWwoAIAgEvf+lC0FFt3x8RCN9ZO0oLYakPNprKoZ80O5UyvKpFp4Krh+ngvJj1rfXH4ICEHiJ - 6xX0ggYRwMqDoBKiVvpI7MtPK5iA0UOAU/9voOD0Zxtszyqxa1VmsC8AAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE + QVQ4T82OUQ7AIAhDuf+l2UA7O4OIH0v2Gj+EtipqSBeD2UbvkIEVMAtmgdav+t3C1YLQWC1Ijb8oSJgK + uIRmCW3L5rlgQ3M8IVMtCChI6shdlB33hDqAY0NE9DKO70MdwLGhgI9+oHoBzyqxa4rWeaEAAAAASUVO + RK5CYII= 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 - gg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAC+klE + QVQ4T42S+0+TZxiG+V/MYkycidHpNP7gIaTooAbQDwsC4qilHMqhYC1yKNKPOhmjtANKELSVTSbBMVo/ + goeI4AFD0GWZAw8YNZxMLZiJqQf0sq/LPlyyLPvhfvIm73tfb57nuaMAVaX1yvqIZGtdYKjcpczbm/uf + H6rzX805csZmtHWu/fTt31IPZQ19eRVu5YFvcIgLD0ZRJvvwTVRRoBiQ5BNklvrG9WWnDJ+ahT6Ww04l + V/YqL7vvnOPWn78z9mqakp4anPfLyf5Fy1ZHLSnyMMnW9oUMS9s/IFGWusC6cndgomXERd+sl4G5EUYX + 7jAWDtI15cfgcaDx/MEGdw8bm/RIhfXje4ua1XYEoLrap+C5XUvThAXvEze+SQfNv/nI+bELY0uIlLpH + rDqdyIofYtlsz2dPXoNNBRQf6x1sCTxGVpzk3txJ4UgcZq+Vkg4F+fjPyK52rLX1pLuyWdmoYeWxBBKN + tQMqoMDRE2o9/wpbayva0xq+UpLRN7toPOXn4uBVZoLPeDIbpONsL2llJpbVxKDNlEMqwGTvDrkCYQ53 + BEm36olt/RpzRzX9lwcj9/B2EV6E3zE9t4i7/QybTInsSK9cAuQe6RoobHqI6fhrjK4JEkpNVLi/Zepp + UDXPPn/L3ak3+IfGSUxLJTrZutRCdtVPtpyjV8j8/iUZzjmS7dc4dFRm8mnoL/P8YsT8muG7YVq6h4mX + ktgimZeGKBImQrK/5ha6b2bRVI0g2c309l9mZj7y8/QbbtwLc250gTxLJXHSvvnq8uI2FSCKSFiaxbew + p+Iaq4odrDankmUuoq0zQM/QGJ6zw+QdrCRJt5tOZyq9nvz3DXKJXQUIiYTp8hvHtxe4iNbnoDU6kLJs + SHv3kyDpSEmKx23exsxJDe+uZ+D9rkhAtCpASCRMhETsWaxKTFsMTPScoo22ZMWt5dfKL5j0bCHkT+Kg + YeeS+f8oAthliF3DJcuXHIj5HF3s+vh/ffhfEpBNq5cTs/GzXUDUB9hlsqaYQE4mAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAChUlE - QVQ4T5WT3UvTURyH9xd0ERREFyFEsaC0bDOkulArRI2G0jCm5my5fBkOm2bmoqS5THxhmilWK9GyZppz - zqW2scnGTFNrU8vQMbP3NlNZjrZ94vx+YMQq8uJzdc7zfF84hwGAsZYYpcLY9pxUkPQXCcKCLvwrHbfO - RRFwtioPYwW0JOjS30Lgvs4SqHqHMH4ln4KrWSz6cNKsgM1Ug1F9JaxPymHqlsGiK4e1vxwj+muYeFYD - nSofLkcFXg3mQCYrgXwfC4RdFQT8dvh9T+Hz6vDDo4Z3SYXv7hbMTSqgbRVQ8KSej67GWGxcvw7X5SdR - X3aGTwlIdb/P8kdYo+QGwSN6CWou8ZAaF+mkBOOGKvhW9PAuP8LKwj14vijhtFdD3ZQQBNtNIrw0F6Mo - m0ME9A6G+yrgXeqBx3UXy58asfhOgRs3m2HRyuF8fnYVnjBlYX5MDHOPEJncaCQfiaAFFu1VeFwPsPS+ - Dt/mKuF2lFGCQMCPNgWHgm0GIZzDuXhjPg3NnWNIOBiGxKhwWmDskmH54208bClElZwPcWY8RGIJOElc - MBgMDPdmYMYixJQhHS90J6CqO4RoNhNx+0NpwYDqMhbnG+CaKcXXaSk+TxXhg02Ct6N5mLVm4bUxA7Y+ - Htk6ZIU85KbFIukwm5JQgt77F7EwV/sb7BjKxvSgAPaBFIxqjsPafpSCyRgxEUyUisIRGbqVFqibL8Dt - qMZgdwYMHWnob0uGtjkRj5viqXZbKw9AWcamKhO4tpiNBulO7N6+hRZ0Ks9Dkr4H4pRwZHH34hSHhZQ4 - NrVlsigyK2mXtC0V7kJ98Q4oCraBGbLp11v/Xwlpm1QmcMjmDcGfZq35CbrbuL7aUBONAAAAAElFTkSu - QmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAChElE + QVQ4T52Q3U/SYRiG+Qs6aKutddDcWs220jKwuepArebUFtPFbKCJmYQfkxmakbRyIZFTHJrprCimZWGa + X0hqMHEwTFMLxLIpg+w7NXWkC7zj/f02W5MO7OA+et/rep7nZgBYV/qkgpimrGSQ9BSmhwb89K8037kQ + ScCp8lyM5NOSgB8DhcDdLUXQdg1g9FoeBSuZTPrRYVbBZqrAsKEM1mcKmNplsOgVsPYoMGS4gbEXFdBr + 8zDjLMWb/izIZEWQH2D6UTBWBSs+O3ze5/Au6/HL04blBS1+ztbD7VBB15BOwQ4DH621Mdi8cQNuyk+j + uuQcnxKQ6T6vJSDcoeasgYcMYlRc4SI5NsJFCUaN5fAuGbC8+ARLcw/g+aaGy65EW138GthuysFrswSF + mWwioDsY7C71T+2EZ+Y+Fr/UYv6DCrdua2DRyeF6eX4VHjMJMT0igrlTgAxOFJKOhdMCi+66H36EhY9V + +OEuw6yzhBKsrPjQqGJTsM0ogGswG+/MZ9Fx7wTiD4ciITKMFvS1yrD4+S4e1xegXM6HKCMOOSIx2Ikc + f80MDHalYdIiwLgxFa/0p6CtOoIoVjBiD4bQgl7tVcxP12BmshjfJ6T4Ol6ITzYx3g/nYsoqxNu+NNi6 + uaR1yAq4yE6JQeJRFiWhBF0PL2POXfkX7BzIxER/Ouy9PAx3nIS16TgFkzOiw4NRnBOGiJDttKBNc8l/ + txL97WkwNqegpzEJOk0CntbFUes2lB2CuoRFTSZwpYSFGulu7N25jRa0qC9CnLoPIl4YhJz9OMNmghfL + olomRZFbybpkbalgD6olu6DK34HgoC20YD0SsjaZTOCgrZv+CP4vYPwGutu4vmPLy7gAAAAASUVORK5C + YII= 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 @@ -799,798 +797,807 @@ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////9NzlhFAAAACXBIWXMAABJxAAAScQHz3HqOAAAAHklE - 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 + RU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAA3klE - QVQ4T6WRMQrCQBREcwYJKAS0SKMghgSCBkEtLT2DYGdlIUQCBqvshbyBkMbKwspGsLMTERJ1ZBf5BCRf - jMXAsm947DIaAO2f0GGxjBCEQsUPBaZzgZbt4hsjQRBG8gJJ+sDldldxO31V4lhGIJCkT4xWV9iTLQ7n - FI2m8xbkMxLIp0mzNzvCGseI9ycYVVOVOEYC+S9ZknZZWG92KOkVVeIYCdpeD93BEJbjoWbWoZcNaArz - jARFQwduKo6RgJuKYxlB/lQcIwE3FcdIwE3FMRJwU3GMBEXzcfFrXqsvxgcoH5ClAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAtklE + QVQ4T2P4//8/RRjOqKrv+F/T0AnGlUCcU9b5X8/QFCiFXw5uQE1DB0jg/6/ff/9//v4HjE0t7EFCeOWQ + DOgEKvj3P6Dp63/D1LP/7775/V9TxwisCJ8c3ACQ00AmWxY9+q+fdOL/ietP/0vLKYMV4ZODGwDyF0gR + yHSQgm1HL/8XEpEAK8InBzfA3NLuv7WDx399I8v/8soa/0XEpYGyICn8cnADyMVwxmg0DotoJA//ZwAA + qy/GB3Ky9SEAAAAASUVORK5CYII= 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 - AkiX/5UKTqafsLwA5EY1M54AAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMElE + QVQ4T6WS30uTURjHdx/+AeE/MBR2M3aZV90IXSx0Gl0YkRdFQoFdOMYu6iJsIghpKXNmmzPz53I618YY + U5zODMyKsjZ1plPX+5Y5WsrmPvm+rz9KEiEf+HIe+J7z4TnnfFWOwUmcQ1N0Dr+S1w53BMfgBE9dYZ70 + j2HrDWHtDtLSFeBxp5+mjpc0Orw8tI/IkgGZXIbU1o6slY0sc2tZuoNx7jZ7/vKO+rria6icQxHZGJ3+ + LGs4HJNNSdV1rgMvOBXFPxnDE57nxdgCfaFFBSBNUNPgOVB1nZtb913cuNdHpfk5V4xOLt+xU3a7jYs3 + W7lwvYXiykecv9qoANoHxjmpcjnI7uTY2s6SSmf4vrnN+rdfCqC1J7S37bBEUaS+vp6KigoMBgOODidf + xU2EjS2+rP/k09IPfONzCqD5WYB4PI7FYiGVSsmAaDRKMplEEATyz+ZTXn6JWHyVlaRy2Gw20+9/owCk + bzEajej1ejQaDQUFBaTTaXw+H7W1D8g7k0dpqYEP0QQmk4mqqiq0Wi2FhYUKQPrL5eVl+WAsFpMnsNls + lJSUsJYUFYChjI8LAu/nN4i8W0OtVu9mZuYQcLSsVitFRUXUGE3odDrO7fYNTW28nhMZn00SmF7FPrh3 + hX1AIpGQJQgii4tL9PQO4HJ78QfDuL2jjAQiTMzE6fK+xeGexeb6Y4JT5UACHBdlKYknRlkCSMa/oixN + sO8dG2UJIDX/K9Xu+51CqH4DsLwA5JN+awcAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE - QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe - FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g - j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu - MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx - WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ - BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM - B4HjT5oAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE + QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn + QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH + f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD + VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp + hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe + hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc + DAdFhtjSAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACYklE - QVQ4T6WSXUiTURjHX+jCboo+qKuuCqKbKCqoLjIKt8KPFovEFi0XsU1KNlnaNlJzpujSzaVpW7Qv1OZH - JYqToiE0HH3P2Iw+JJpGrmXt3dycy+If74mFrwsiOvDjwHvO//c87zmHAkD9D2kfGNwDtXDd0qDPooKs - MGf74nWWoLddr+ht1yOFpfE4wsEOxILXMTHWgDIxF/oaBa5q1TDUlDJwFguQoHuQjHQjEe6EvU2B+LQN - ZRKe/+WIEhfO5kIp2oGg+ySmneshEx5CmoAJJyMOtNaegNfTAPpDM6bG1HjnOYV+Ew8SQSY6ytfhmZ5C - 0bEctqDb1vhLQN+EtlyISkUB1MX5OF/Eh0LMg1yUC6kgC02yDURQkJ3JFnSatZijuzAXMiI+WYfQi2L4 - basJPusqeNuW4bEhg4QZsnZvZQvsxlrMhiyYDVQj/uoMYs+PgB5YDp3ViTpjHy5e6YJSa4dcY4JEZYCw - pJ4tMLdoMDNhQGxMjJknuYg+2IZPd9aQcGok578jHEkgMBVGvrQKeYXq3xLKpKsA/boa0UdcRIc3IzK0 - FhNWilRmhvm2m2B0uOAbD5LwvRE/DvBFREK11KvwZfQcIq5NoAdXItSTgfEbFGn72/wPfI0mEPgYhu9t - EJ7R98gWyMHli7D/4GFk7tkLqulSKUIPpaAHV+Bz71JMti+Bv5WCTGMibac6uOZwodk+hP5hP5kZdm3Z - COpyZQl5IKlTTiFWGViV73vekHDPXS8czqcsAUdXcRoyIQ8iPgd5+3aSBea0mX9OVfsTRLDwShZyVFpF - NvyNtOC/8hMb4cocvUYexQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACX0lE + QVQ4T6WSa0hTYRjHD/TBvhRdqE99Koi+RFFB9SGjUAsvLYzEjMxFTKVkk6XpSC1N0eVtadqMvAw1b5Uo + KUUiJI7uGs7oIpEauZa1s3nP4tc5RwZNBgW98OPA+77/3/O8D0cA/gufmz3tOXTdzqS1KhVtTMh2X3c8 + CC21RXoJPFQVHMdpr2PSfoORwXySNUEUZeu5ZjRgyk6SCVwsYEZsZs7VxIyzHku5nqnxGpJjVbbXvSlc + OBtKinoH9p6TjHesRxt9SMotEsjhOVcDZTkn6LPmI34qYWzQwAfrKdoqVMRG+VOXto4XRQLxx0K8BU01 + BQsC8RbGtGgy9JEYEiI4Hx+OXqNCpw4lLiqAYu0GRRAZ7O8tqK80Mis2MuswMzWai+NVAraa1QoD1avo + K1/GU5OfEpYJ2L3VW2Ax5zDtqGJ6OIupN2eYfHkEsX05hdUd5JpbuXi1kRSjBV1mBbGpJqIT87wFlaWZ + TIyYmBzUMPEsFPejbXy5u0YJe9bc/E+crhmGx5xExF0iLMYgby8IKgrTEd9m4X4ShLt7M67OtYxUC0pl + eVXe6VEwN3QxMGRXwg96bRwIV8vHglCal8q3/nO4ujYh3luJo9mPoZuC0vaP+V98d0uVPzsZeG/H2v+R + 4CgdQVJ4/8HD+O/Zi1B8OQnH4zgpvIKvLUsZrV2CrUxAK71ZbtvTwXWpgxJLJ23dNuUrs2vLRoQrGYnK + D+KZsgeNNLA/Kz+0vlPCzff7aOh47iUILEw/Lf1hKtThgYTt26kcyNOW3+yp5gtFIA/CF0elacsX/obP + 8L+D8Bsb4cocWY3wtQAAAABJRU5ErkJggg== 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 + RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABLElE - QVQ4T2P4//8/AzUxhgClGMHBAe8+/fq/Zdmr/5fvfcajikgDYYYtO/z7f3LXNfyGEjIQ2bAJG9//T5/y - 4n940+3/959/x6KaCANBhhmEr/xvnbTpf8Oy9/9di8/91wxa/l/efSYW1UQYCINOJVf/p/be+S9t145H - FQkG6qVd+q/kPvm/lHUjHlVYDMwqrPyfkV/5Pz2v4n9KTtn/pOzS/4kZJf/j0ov+x6QU/o9Myv8fnpD3 - PyQu539QTPb/gKjM/74RGf99wtP/e4am/scwkGJIcwMzCiDeTc0t/58M8m5myf/4jKL/salF/6OSC/6H - JRb9D43P+x8cC/Ju1n+/SIh3vULT/nsGp2DxMpUwhgClGEOAUowhQCnGEKAUYwhQijEEKMUYApRiAF8O - KkwDPuBiAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABL0lE + QVQ4T7WPuUoDURhG8xxaCHY2Yh+wECREVCRxHBOymMlMZrKYZYxLOhVBCAiCNr5AxFJfwd5C0catEsUm + hYiFxXFCCEq4TmJu5OMU93A58HuAviKUMnw/ftn90zs7tVeuHt5cfjnrJtiK1c4/SVZv3KOdgj9j+6d1 + zMMX1O1bHp8/xNFOwUZsTD3Bq52xWaszuXLBSOCYId9Rb8HWJsrXGHt3DI7vuvxy1m1wNHXJsO+AAe/W + 34KZUgWrUMHMb6Dn1tCyqySsMjHTJqKXCGkF1KU887EcgUiWuXCamUWLadXErxhOoi0ovX8PWsXmucby + OsnGuekyccsmatiEk0UWEjZKPE8w2jg3w2yoee6UksIf1J1EW7BfCKUMQimDUMoglDIIpQxCKYNQ9g6e + L18OKkyOPi51AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABLElE - QVQ4T6WQu0tCYRyGz1/S1hBtDbXm1onUyE5e8JKXk8dLXg52sa3LVItjUSAGRTTUWBDU4BRE0CIuYkuL - 2BY0PvEhEvQp9CEP7/LA7+XlpwHaKJGEaiShGkmoRhKqkYRqtHSxjJUvk8xtk8huEstsELVKhJM2wUQR - fyyPdzXHcjjLUjDDYiCF02ex4E2iGybaqEhCFc0q9Oab61vExfxUiYhlEzJtAvECK1EbI5LDExLz07j8 - vfnzxhq6J/G375fy6Tu+nTpu+0G8ayiS6HNw2aH2+I3DvFUrmI1dkzp6QxSc3H3hLN4zE7pifK4ysEgS - jVaXCfcZ+7UWuxcdfHtNpowqr42P/xUImu1PpgPn6HadSdcxT8+tgccCSfRptruMOQ6p3rwMPRb8AM61 - eNYtKznlAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABMElE + QVQ4T6WQvUsCARjG7y9pa4i2hlpzy0iN7PIUT/Pj8k5NvcM+bOtjqqWxKBCDIhpqLAhqcAoiaBGXw5YW + sS1o/NXhcgdndMmPBx6e4eF5XwEYSq6hF7mGXuQaepFr6EWuoRcJeb2GWq6RK22SLa6TLqyRUqskcgbx + rE40XSayXGIxUWQhXmA+phGQVOYiOfyi8tMyJDb7PwS10p+vrG6QseZrVZKqgawYxDIVllIGYrJEWLbm + 5wlG+/NnxRX84ay9y0nt5A1pq0nIuLfeNRCbdbJ30aXx8IVPufFWMJ2+Qjt4xSo4vv0koN8xJV8yOnPo + WmSzfVpmj7HQKbsNk+3zLtJOmwmxzkvr/W8FFu3OB5OxM/xGk/HgEY9P5sAzbNZJu9NjxLdP/fr5lx8g + fAPOtXjW7jTlPgAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAA00lE - QVQ4T2P4//8/AyUYTIQ3PNLxKT31H12SGAwmQpru//fIP4BiAAMDA4jAi+EGBJZd1nRIXv3fMWmVH7oN - hDCYcM3e8d8ifPp/Y/8Okr2BIUAqBhNB9Tf+B1Rf+e+Svb0LXQEhDGcE1V1Pt4ldAPcCeoBhw3ADQhoe - +rhmbf9vm7jUH90GQhhMeBYc+G8ZMeO/kW/LAAWif9XF/77l5/47pKwm3wV+Fef+O6ZvSoNLYAk0dIxi - gEfRkdlmwRPIc4FH4UFwINpELwxEV0AIYwiQigFhaK7Hy/55VQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAA7ElE + QVQ4T2P4//8/RRhMhDc80vEpPQVkYleED4OJkKb7/z3yDwCZSBJAKUIYrA5EBJZd1nRIXv3fMWmVH8wA + YjGYcM3e8d8ifPp/Y/8OIBe7QlwYqyApGEwE1d/4H1B95b9L9vYudAWEMJwRVHc93SZ2AZAJlQBKEcJg + dSAipOGhj2vW9v+2iUv9YQYQi8GEZ8GB/5YRM/4b+bYAudgV4sJYBUnBYMK/6uJ/3/Jz/x1SVgO52BXi + wnCGX8W5/47pm9LgEkApQhisDqbBo+jIbLPgCWBBUjCY8Cg8CA5Em+iFgegKCGGsgsTj/wwAYWiux7Jg + lFIAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAd0lE - QVQ4T2P4//8/AyUYTBR0Hyoo6D70H0SjKyCEYQb8D2158l/Wuuo/TIKFieU/PoxuQAFIs6x1FXkuoARj - CJCKwcRoIGIKkoLBRGLF8oLEiuX/QTS6AkIYZsB/z6Kj/yWNM8kLRJDNIM2SxpnkuYASjCFAKgYAPlC2 - qCS4LQgAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAeElE + QVQ4T2P4//8/RRhMFHQfKgDi/yAaXQEhDCZAmkNbnvyXta4CciESLEws//FhmDqYAQUgzUBMngsowVgF + ScFgYjQQsUsQi8FEYsXyAiD+D6LRFRDCYAKk2bPo6H9J40wgFyKBLeCQMUwdzIACkGYgHnKB+J8BAD5Q + tqhi4tzWAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAQklE - QVQ4T+3QQQoAIAhEUUnvf+UJAiEcDIZ20eK5+IgLDYDdoKBaw91R7UsxAlXu0EUVBRUFFQUVhc5/Yo/C - yaNPnBsg1gfsoRIVAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAQ0lE + QVQ4T+3QMQoAIAxD0WJ7/ytHEBQp6RDdxOF1+GSqAbhCo2Icd0e2j6IFsrlZo1M0KmhU0KigkflPrNFY + efKJsA4bINYHMvlwBwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACXUlE - QVQ4T6XQXUySURzHcW+786KtrW666KJara2XWY5cWgt7WZJdOCezFstYTSqR6FFAHh4RpEQsEOZjoPS0 - pGxpK3u15U1La741CLSWUDnAypdSF+X5tcdWS1Fb6+J7cc7+53POTgKAhP8pbuNXHU8ernGxejHHGkEp - ZCvvttxInD0zL1BRqtzucRnAsUYyPsCQumrmjafOgGYPS82ejTvMd6nGQCaCDA8AUQvqHQwmg/rpdXd7 - a/JfAZeV/kIileBYw0/ApgO/djvK4KhQoZ41ZywI1FZpQCJmuO00ELHAWaUGiVrgstEYH2Bgr6BaFwQs - uvzpG53nKZCwBQ5TIaYiZtjLFYiFjNArDwdmAC4brXZaafDduVl/1qA4CBI2o6byFGJvTajWSxF7V45z - RUcwESxFgWSf7zfAscZFboceI68Y8B931amFSirC90ET7jecxFhAjbbGfHx+XYKGC3kY8xfjeM7O3hkv - 4FijriBnG4Z8Woz2q2DXijAZMmC4X4eRPhWG/RQ++RUYCVAY7DwGSabgWdwfXGbLFdNIrxzRLhmGX2ox - 1qfDqL8EH7zFCPcoEe48gcC9LIj3JLXFAXxslfoKj7xvl2KwQ4ZojxIfvUUYenEGoad56L4uxOOLKSR7 - 98ZHcwKNHkui8pCQ4ZGeWwfQ1SQi3pZM0tu0F889aWjnBDDKBF/luUL7nABfXRm9WC3dX8Ij18w7yIOa - VNLmTMFt6+YpSrLh266tq3E6N33pvACf5qhwhUaWJRdnJDdvWbtsctOqJUhLWu4Tp6+vLcxOXffnbNzh - f+0HpP7OSS0WHh0AAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACZUlE + QVQ4T6WQS0wTURiF2bpjYWKiGxcu1GhMfAQlSASNxUek4oIQGjQ2YqOhKqXWgRbaDmUKSmm10KaDfSBG + qhjBKD4xdmMEDS9TbEGjRSVQVKAqRJQ5zq0ZQ203xsU3yf/POd+9M0kA/ouES0L3k4drXKxB0swaQSnl + K+923EhOlItbEGorVdu9LgZ8mfv2lubcDfQbr5tBu5el/s7GDAKXHAw3E6KJAAib4bHTmA0ZonNfV2fq + wmxMUcBl1X3lxuv4AvNbUK8HmZvsVbDXquFhTdlCNq5MaLSU8wUTmmw6YNwMp0UDjhe56nXgPwm2WqpT + yMaVCWZ9UfRE53kK3JgZ9poSzPNCW7UScyNGGFSHg0I2+uDNGqdVB8Kdm56zjPIgXzTBUXcKc+9q0GCQ + Ye59Nc6VHsFMqBLF0n2DfwT8j1nUZDdg6hXNv6Rx1amFWibGz9Ea3G85iUhQA19rEb68rkDLhUJEAmU4 + nr9zIOYGvERfnL8NE4NaTA+rYdOKMTvCYHJYj6khNSYDFD4HlJgKUhjtOQZpTtqzGAHhMlutjEoGFAj3 + yjH5UovIkB7TgQp89JdhrF+FsZ4TCN7LhWRPii9OQGAtmitE8qFLhtFuOcJ86ZO/FBMvzmDkaSH6rovw + +GI6l7d746OEglavOVl1SEQTSf+tA+htE3P+jhxuoG0vnnsz0dWcBqM87buiQGRLKCC4q3SLNbL9FURy + zbSDe+DI4HzOdNy2bp6npBt+7Nq6GqcLspYK+TgBofyoaEW5PFchyU5t37J22eymVUuQmbJ8UJK1vrEk + L2PdwmxM8d9B0i+k/s5JFmy4DAAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB1UlE - QVQ4T6XMT0iTcRzH8Uc6h7cOdaij5Kp1iCgkiigtIxLskhSGLSey2ma4RMseV7NCDTKIEEolAueIbCTD - pDWcC2wM578nNc2miwJLlGbC7HlHHvztSYgHPLy+8OUDbwmQ1mPlKKFG/jUUvE+0p4H+tw1E3tTT97qO - gNdFl9uJr01eoQmQHAPCQFCXKkueCIz0NpJMvAPculVaTolA6FUtS3MvgUe6VZSeFIGejpv8ij+BxD3d - HCUnRCDwwsn8ZB3Lc65V/Lj9Xw5zrgj4n8vMRsvha41ujuLjItDVLvO5O4/F6QqYqRbi1fAl5U9Rbjom - Ar52mY/eLOKBA0z69jHu3UmkeRM/B02o09chdm2NK6aclIBb5lvvaUaaN7AQNjAbzCDyUCLWnY06VQkT - V9ewF2VrA4mImXHPdpRn6ajRPSyFMog+3kJytAwUGyh2DWvhkZRAm4w6ZFEXw4VMdRh5/2AjsSaJiSaJ - T55MVMUKg5dh2Lrq0tnD2sDyQMnvv0Oy30y8cz8fWrcx/HQzffVpKC1bmfFk8b0zlwV/PvP+fErPHNIG - amw5OG1HqbUf5K51L3csu3EVG7h1MRPnBQM3igxUnd+B49wuygqM2AqMIrAefwA3LxXoYFHxHAAAAABJ - RU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB3ElE + QVQ4T6XSX0hTURzA8UXP0lsP9WCPkqv0QaKQKKK0DEmol6IwbDmR1TbDJVo2V9NCDTKICMoigtaIbCTD + JBvOBTaG89+tzD9NFwqaKM6E2f12kuHdTYhLPXzO73c48H06OuC/rBxSoIk/9ftvE+5spOddI6G3DXS/ + qcfncdLmcuB9Zl+hChD/LNag4NekylQgZiIw2NVEPPZerC7NKk1HxUwEAq9rWZp9JdZ7mlWU5ouZCHS2 + XONH9CHEbmlmKzmiBHwvHcyN1LM861zF97q/shnzlEDHCzvT4XKYrNHMVnxYCbQ9t/O1vYDF8QqYqFZE + hW9J9yTlhkNKwCsCXzzZRH17GPHuYsiznVDzRhb6DMjjVyByeY2LhtykgMvOVNdxBpvXMx/UM+1PI3RX + R6Q9B3msEoYvrWEtylEHYiEjQ+6tSE83IIezWAqkEX6wmfinMpAsglXFXHggKSC+pdxvkheDhYy1ZPDh + TgqR+zqGhVF3OrJkhr4LMCBmwvlT+9WB5d6Sn78f4j1Goq27+fh4CwNPNtHdsA7pUSoT7mxmWvOY7zjG + nFB6Yp86UGPJxWE5SK11LzfNO7lhysRZrOf6uXQcZ/VcLdJTdWYbttM7KDuZgUVYDfw7dL8ANy8V6Hlx + kDwAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB0ElE - QVQ4T6WQ30tTUQDH/Y/Chx56CZ+CeugxejZ8iQjqwaCQCMQehAhKpcW0raZb2rLRptOtzavmTdcqpizR - oPQum3R7cM613Xv3iXPW5g6rB/Hhe35xvp/v95w2oO04kkP/812a1Te6y21Pnu7HP7jycIfOe9+5eDfH - +TsGZ24ZnO7e5tT1LRSAV4ORZBVX3GEwanM/bNE/WaF3vEzP2G9ueA+45i5y+VGRroEC7V3vVUBdvb48 - N0fyXB2qJV/oy3GuZ5uOv6l1nejUDwFjkRTVarWhxfQXZT+9sCrniuVQKDn4wzonz146BDwN6YphLrWh - 7F8nP1G2HPZLDmbBxhdaVAHDwXk+fjZk8lxqk8S7dWJLWZkszK/iaSaiKwTCujQ/CWoqwBV4oyTOLmUb - a1FbmM2CRc6ssLlTwT2eUAGDvhkFEF1Ya5j3SzaBiI7xy5LmzFYZlz+uAh54p1jOfCX2Nsv0/Crh5tqR - Wm3PSw33RAJXIM7Q6EwroLnBZCwtf/vnnk3OtPAENTLfyixvlEiuFRl4Fv0/QNR+Id68Z2OYtdrizTXz - AVMfioj7LQBtZV3WFub6b4vkYVHbL2rPymRx958AcXBUNQDHUcvBUfUHdLUcgRxLqH4AAAAASUVORK5C - YII= + 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 - qTrgv/oBFQAPI+QT9ewAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABu0lE + QVQ4T52R2S9DQRTG+6d4ImKLNR5IELG/4IEHEgn/jb6IiAe1pLZY0saeltoJtTTllttGW9RapJZK0eUz + c5rbNHrviy/58p3MnPObzIwKAHl2U8Rf61YFTBgsGJnb5+6UeuMdK/iAkjRT6yio6ZCFxAr9mo2FvHpG + DDDuCBJEzZYSAVPLVhbyGphepWHJTImA8cVDRFgRr0gkQmuhUBj9kyZ0a5eQX93OtxIBY/NmhMNhnJw7 + KR0uD4Js0HrmROD7B5azS+gMe8oAtWYWrus7tqKC4LikFJ0eygOrnXJYt6IM+K9jxZzpkE5xex4pHe5b + SpvjinLLLFDmlTWydhnA6MwWBJHdnz2c99lHDyiILvgD3zg4ceHm4R3qPj1S8qtYuwxAw145GAqxMir+ + gK8fX7j1fkB0v+D4/AFdQwvIKm3m24mA3lEji6j46Z+BHzy+fOLC44PV7sW25Ya+Mb1Y4Qp8UxL/9zf/ + F+6f/ATYP72DyXxFgNTCOt6iDNg9smNx/Rha/QYGp9fQO2akQcnJeZW8TR7A/zi3og055a3ILm9BZkkT + Ob2oAWlF9ez0WiRlFLN2GcD/DNUvFQAPI9EcSZQAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAnklE - QVQ4T6WS0Q2AIAxE+82PIziCIziCYQJHcRYmYRRHwRyioS3UEC85MTV9PUBKKdEfq8Ko70dfqyxAI4BD - FiALsBBRLN6rd+YuwPmwOR+mCogtKFuA6Hw4ASolfFRWgNKYhLEFOT2nU4CBBPlWLMDXGdgJGrcgE7TP - oBImPNPmsgLKZAHQhJ8HRjNWJGGyAFLvvmuNAJAAqZgU4I8vMFFlo3aSOUkAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAoElE + QVQ4T6WS0Q2DMAxE+e5PR2AERugIFRMwSmdhEkbpKMYPTIXjYhQ46TAk8ssZaETklv8u1ni9HOtl1akG + 8LHqlAE69WQedvfOh4BHP77VT3tEjBCcASb1F5AtsRkcANYohRmhPH1JFwCbtOksAZAUcPYO8gSq8iuw + GZwBOGE7rbUK1CkD0MTPg2mmksQpA5T6zb1XDYAEpHIKgOuWZgYwUWWjtqpGsgAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAdElE - QVQ4T7WTQQrAIAwEBf//5hRKI3ZWRbr1MAc345qLJSLKn0jgIoGLBC4SuEjgUmqtPfHAnKRHPheO3Ps8 - k3ZK6UlhDinO6B9vd1YCCwi914YsoDyCzrnCHOSwP89K6TSXoo0EA7jFavMDX4+BiwQuErhc7EeiiR4r - 8zwAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAfUlE + QVQ4T+2UQQqAMAwEC/3/myMNTYjjomA8ehjozi5SQRxm9ilSdpCyg5QdpOwgZYcx56zYhp7Ejrx+4IJb + z3WQcsOOcOeZgyz2+Y7YVU6vfCkf4M5zDXHOEo5w47mGOGcJR7jxXIsoaw5HuAkun00bKYG6yUJt/79N + GxsH7EeiiVdcqusAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB/ElE - QVQ4T2P4//8/AyUYQ4BUDGc4ld3hdK2+q+ja/irLufdtrfX0r1vMZ/26aDb16z6TzvfdxhVPswzzb1hp - xZ0VwzDAp/YBl2vD8yK79rebvJMuXPQLP7DGJ/xwvlfk0XSX6NOTLQrvnNTs+fRcsfrZHeXgY5VqVnt4 - UAxwqbprb9vy+lFQwL7bMaFb/NGdCcLmWZcnqqZevyLttO+elvnySBQDbJpe7DTNv//dz3ldB7pGZKya - cmGbjNvezzrmC9eiGGBa/XS5bszVb86Wq7PRNSFj5fTz6+W8dn81tJy/BMUAi+Jb/hp+Z26oGW67jK4J - GSuVXH2j4rDxtZXNnBgUA8ziLiurup84IG994Ku6/RYPdI0grJt9NlG5/MofE+tF16ysF2iiGADCmn5H - LMQjLr2W9ji4C10zCOvkX7qsFrLvs7XtAjdkcRRFsslXZksmnH2qYbfZHlncKPOUk2bxpQ/avtvWoxsM - JsT7P39USz7nrBJyUFXaZed7LcuVG5EVGeScPqKTffq7vv82Y03P9UlyPqt/ohpQ//y9ePblL7KW65/o - mM17Y2A97x6qAade6IXv/aztsvq9utPSn6pO87+hGCAfdOSEovHq27rm8z9pWs/5oeG08C+yAYZJB34b - e2/4YeS94oeO66L3Og7zHqIYQAnGECAVAwDTEJf4ZU19HwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACC0lE + QVQ4T2P4//8/RRirICkYznAqu8PpWn1X0bX9VZZz79ta6+lft5jP+nXRbOrXfSad77uNK55mGebfsNKK + OyuGYYBP7QMu14bnRXbtbzd5J1246Bd+YI1P+OF8r8ij6S7RpydbFN45qdnz6bli9bM7ysHHKtWs9vCg + GOBSddfetuX1o6CAfbdjQrf4wySRsXnW5YmqqdevSDvtu6dlvjwSJg4mbJpe7DTNv//dz3ldB0wCG1ZN + ubBNxm3vZx3zhWthYmDCtPrpct2Yq9+cLVdnwySwYeX08+vlvHZ/NbScvwQmBiYsim/5a/iduaFmuO0y + TAIbViq5+kbFYeNrK5s5MTAxMGEWd1lZ1f3EAXnrA1/V7bd4wCSRsW722UTl8it/TKwXXbOyXqAJE4cr + 0PQ7YiEecem1tMfBXTAxZKyTf+myWsi+z9a2C9yQxVEUySZfmS2ZcPapht1me2Rxo8xTTprFlz5o+25b + jywOwmBCvP/zR7Xkc84qIQdVpV12vteyXLkRWZFBzukjOtmnv+v7bzPW9FyfJOez+idMDmJA/fP34tmX + v8harn+iYzbvjYH1vHswBSBskHPqhV743s/aLqvfqzst/anqNP8bTA5MyAcdOaFovPq2rvn8T5rWc35o + OC38C1MAwoZJB34be2/4YeS94oeO66L3Og7zHsLk4IrIxVgFicf/GQDTEJf4sarC9QAAAABJRU5ErkJg + gg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAeUlE - QVQ4T+3RURKAIAgE0L3/pWmwcGwlFIfP2B9TeeYIACIoigjaoAw1UDOixweMoMagMlCjWAloUBk4RYu/ - ueaeDXBV7TbPjZYg19ceQ1Mgr9ue/ocZMHykDPhqiPKDbrbB40fxUFrLgyPqzO2BFob5gDSoCbC7Bxde - EHK4KrCbLQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiElE + QVQ4T+2PUQ6AIAxDuf+lkTbWNIOpmH3al5nB3DO2kd5bEcPEpkwqIXDp5w+4EEhUJgSQlQglKhNOIPEc + 43PwSvgU/g2K7z4IY3wOFEm3hD4TvD9lW0IuZOwI2Wnhjl+45LVQc66MZ8YkREXCjF3GUogSizueMi6h + cIGXwZuMSQhchAr03g5eEHK4HOEqIAAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAADtElE - QVRIS5WUXUibVxjHjx/RaBKSUIy+elXrHBo00As7iuZN3nwomIvWbb0I1NEV1OKt4I1xsotFGEpDZKwR - o50oSa0fMIRAnTpSWmG9mW1Xt+tdDHq3O5n4L8/R2OTkvOoO/Ig573Oe3/s854mMMYYclZWVsNlssFqt - qK6uPtsnysrKYLfbYbFYiqD9/FgdTv4wmUwYGxvD6uoqFhcXEQ6HYTAY+LPW1laMjIxge3sb6+vr2NjY - KGBrawstLS3wer0wGo2i4KOorq4O8XgciUQC6XQabW1tmJychNPpRCAQwM7ODjY3N7G2tsZFRCqVQjKZ - xMLCAmdlZQWZTAZTU1OioLCiiooK/tnY2IhoNIpIJAKfz8fbWV5eLh5CMBhENpvlHSDR/Pw8F9PLzM3N - FcUzRVGQv2hzZmbmLODw8LDgeW5R5bkYqmZ5eflERtU9eYLZeLxQ5HA4ChLQ5ujoaMHeRau9vR3T09NY - efoUPyWTiMdieO7xYJc6YTbLRRMTEwXfL7v6+vrw7fg4EktLyHi99Mb4y+dD57VrcpFsuVwufl+Eqqro - 7+8XQ3B0dIQvhobwg9PJJXs3buBVTw8+s1guFoVCIZSWlhZf7Ck0pfnr31gMTYwhdv8+b93zri6kBgdR - Re3TEw0MDBQllvHjo0cnB6JRXglB+28CAex6PDjw+2GnuxJFx8fHXDIWiaCjo6MosYzZhw/PJDnRy3v3 - 8KvbjdfBIGz0wxdFtChwPZ3Gp7mLvAT5ohRj6Lx+Ha80TV/kqK3FeCSCxOPHUJqbixLq0S/ISoxG7AeD - +iI69PPSEt41N+OBJKEeHkFUYTbj90AAb/x+fVEmHMYztxtoaoJZklSGXybSNPx25w5sVVVy0VtN4xOz - 39sLds54nyeqNJnwTtMwePMmmGzq6NDBqWjL68WBJKkMlyBiioK/QyF8lYuRieaGh/FSVbGrqtjzepG9 - fRtfdnejTCIgSgXJHmP4hDF8kx8nE7ktFkzevYsXPh+XZVUVL+j/19WruGW1wmWzoVVR0Gm18viQWA1j - GBZfSBSVnwZ3ORxctt/Tg2dUnceDX/x+XuEfmoY/NQ2zioJbgoSoFiUyEW1S8Hvqe20trtjteK8ofDBe - d3fzC44NDaGKMXzOGP4RJFFRcJGIOGIM2VwgTR9RUgKHwcCf/ydIvheTX1b0f/hOTCwiE1EVYqLz0G1X - Pg0NDUUiI2N8/oOSpDneMoZexvC1mFAfhvr6etTU1ICkYoDjlJo86vQm6xw+ADu9OhO8z9GhAAAAAElF - TkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACJ0lE - QVQ4T6WS30uTYRiGdx7+AeE/IBM8GTtsR50IHRg6jQ6MyIOiQYEdOMYO6iBMEYS0lDkzt5n5c20618YY - Kk5nBmZFrTbdTOdc31fL0VKcu+L7vrISZJAP3Lwv3O9z8bw8t8rmWsAxscjA5Av5tLvD2FzzPHaGeDQ2 - i3VkGstQkO7BAA8H/HTan9Nh83K/f0qWSgLsF/bJ7h7I2szkiaTyDAUT3O7y/OMd9bWVV1A5JsKyMbP0 - UdZkKCabkhpbnYdecDGKfyGGJ7TKs9k1RqfjCkCaoKndc6jGVjc37jq5dmeUBvNTLhkdXLzVT+3NXs5f - 7+Hc1W4qGx5w9nKHAugbn6NYFQqQPyiwu5cnm9vn684e219+KICe4emj7xFFkba2Nurr69Hr9djsDj6L - OwiZXT5tf+fD+jd8cxEF0PUkQCKRoKWlhWw2KwOi0SjpdBpBECg9XUpd3QViiS0200qz2WxmzP9KAUhr - MRqNVFVVUVFRgVqtJpfL4fP5aG6+R8mpEmpq9LyLJjGZTBgMBjQaDeXl5QpA2uXGxobcGIvF5AmsVivV - 1dWk0qIC0Nfyfk3g7WqG8JsUZWVlOCaW/wCOlsViQafT0WQ0odVqOaPT0d7Zy8uIyNxKmsDSFv2uX1/4 - DUgmk7IEQSQeX2d4ZByn24s/GMLtnWEqEGZ+OcGg9zU29wpW518TnCgHEuC4KEtJLBplCXBclKUJikZZ - AkiX/5UKTqafsLwA5EY1M54AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAA3klE - QVQ4T6WRMQrCQBREcwYJKAS0SKMghgSCBkEtLT2DYGdlIUQCBqvshbyBkMbKwspGsLMTERJ1ZBf5BCRf - jMXAsm947DIaAO2f0GGxjBCEQsUPBaZzgZbt4hsjQRBG8gJJ+sDldldxO31V4lhGIJCkT4xWV9iTLQ7n - FI2m8xbkMxLIp0mzNzvCGseI9ycYVVOVOEYC+S9ZknZZWG92KOkVVeIYCdpeD93BEJbjoWbWoZcNaArz - jARFQwduKo6RgJuKYxlB/lQcIwE3FcdIwE3FMRJwU3GMBEXzcfFrXqsvxgcoH5ClAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMUlE - QVQ4T6VT30tTcRT//gm+9OBbL/Xai3vooR9oUVbYjOnmdVyxTalFGxuJa+FljXULrVau7jIzyYvYMBNH - 5mqtH5LlsFWLgUYhMYpChJ4i6OUT51zmwy7rpQvn5cP3c87nfM7nCi2rbteyKuKZKGKPzmLgoQI1FUJ4 - ugehST96Jk7Cpx/D8VE3XLc6IN9oh3TdgdZ4C9UuQeQ3pdf4uL6M4toHvP2ex+LXBTxbzWLu0wPMLE8h - WRzH2PvbuJnXoC0N4vKrfijpECS/A4ImE7nw4x1S8yu496QAPbWIoeRTTBYnoBdGTbiSOQ23LqPZdRgi - lg7z5KVvOX5E3+8/gNOrMnk4nzDhvbMByMPt2GNrgOif7WPZL0sveMLPX8CXNeCg3MvkeC5mwgP3vXAm - 7LDU10FEZ4K88+PPaZZXWgfyq4Cl0cXkiwsXTLg36YF90Iat27ZAKFOn2LDUyjTiY3MskabQQyKr85EN - nDAqj96NlktW1G6uhQgmfex22bCy7DKZDKOdSTZNJnL3yFFYzzehZlMNhH/cw6eq5jaRK/HOhIxDkQNG - gxN3uvjO1dymyZW486qExr59RoOukU4OSTW3SXYl7hhoxd5gg9GgY8jJCavmNu1cidvOHUF9YLfRQNLa - cC13BdHnYdMVyoZV4tZwE3b6dhgN6KeIZBR47ro5npQwCgndmU5FbpNhtDPJpslEtsh1Gw32t52xQ/I6 - ONsUT0oYhYTuTI/+Uc0CwH/VX4IVqm9P89ctAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAADwklE + QVRIS5WWS0hUURjHx+f4xJFw8rHKrFDRgRYW4jMfBbooeyyEjAq0cCu4UZMWKYSSKFEjPkqSMfMBIQxk + akyUUJvsZa1bBO3aSeK//3fnzu3OnXPVDvxmzv3Od77/nO9859xxsCGE0+mEy+VCWloakpKSDLsQExOD + 9PR0pKamRiB2s68NwU5ycjK6urowNzeHqakpNDc3Iy4uThsrKChAR0cHVlZWsLCwgMXFxTCWl5eRn5+P + 6upqJCQkmIObcSAzMxPDw8Pwer2YmZlBUVER+vv7UVhYiLq6OqyurmJpaQnz8/OakODz+TA+Po7JyUmN + 2dlZ+P1+DAwMqESEYCc+Pl77zs3NRV9fH7q7u1FTU6OlMzY21jxBo76+HoFAQMuACE1MTGjC8mPGxsYi + /B1ZWVkwNzGOjIwYDltbW/pIeJOVh3xkNdPT00ExWd3TpxhlhkLjGm63W58abGLs7OzUn/bXiouLMTg4 + iNlnz/CYqxoeGsLrqiqsSSZSUtRCvb29eu//WlNTE2739MD75An8LApGx3emvuzwYbWQqnk8Hm2/hMrK + SrS0tOgj/9r29jYu3LiB+ywgEVk/cQLvz5zBSZb/nkKNjY2Ijo4OOiqQKjW330xZHu1D169rqXtdXg5f + WxsSJX12Qq2trcrgVh48fBicwEqlQUPsn3gs1ii2WVuLdNkrq9DOzo4m0sXyLikpMQLuxui9e4aIILa3 + V6/iVUUFPvIYuOTgq1Ykjgss32OhjdwH/DDwkbLjx/H+1Cl7IffBg+jharyPHiHr6FEj0F60EHYMongV + bVDEVkgmPWeJfqXITfatAe2oIuwYxLMAPnCfPnGPbIX8vFBfML/Iy0MKn61BVdQSdsKFmLp3ly7BlZio + FvpMB6mYjYYGOHYpbzNWISffBl8Zp620FA5V1cmkTV1omSd8k8/WoCo8hB0DXqL4wXN4RfqCSmisvR1v + eQOskXWKBc6dw8XTpxETmmQhmrBjsE6OkFvE8FMJVfDa6L98GW945YhYgLyR++vQIZzl29fDt3ABf3EZ + ++LfSEQghNja9W8Dq1AsjeJcTruIbfC+eiGrYypfsoJkhV+Y2m9klGJndX8zSSRMRFCtiB/4RTw8Uwf4 + f+AXA0phfGT6ZIOHeHkmcvw8+an7h+gjESKCnZCwTQLiJEj1CVFRcPNcyPgfEvIV7pKw4GZ2E/of7pCI + 4GZUQrIKdvaNbbrM5OTk6BLBJsYEIvVfT2hQ8pk0kGskIqgaB7Kzs5GRkQERtQzCrZNhIpMoK8sWB/4C + O706Ewj1hikAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABDklE - QVQ4T6WSvY3DMAxG3wpeIbNkBLtwkfZSuLnCgKAijQtDpYs0WsEreIVbwSt4BR14VGH9IBcghQqRH59E - 8iOEwCcnvdBu0Da56JT3RSwTBJhdLoq5L8kX8RLgA9hLIaQ94PtfgFOAX7O4UfjzdQsqtrtCpi4WN1o8 - CriYTwXQXmER8R7vDnq5m1xbBWjRPbayOH3d/uSalwCF2CMOVF4vhvoGQAb3lOLqWt8BHHFw8gtpRU7x - k7yoi0JxpKytA7+BP8Bu2s4t2UReHGDwKlRHwtDALLALzB584oUzwMFgZGDwSHYOvWxlldfhkWzkDDBq - onGHWzE4zU0r9FsVoKLRwFI3zJ8jxRfT9Rz/BalCUid5a6EwAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABJklE + QVQ4T6WSvZHCMBCFtwVaoBZKEAEB6RGQXOAZRgGJAw+hAyfbAi3QwrVAC9eC71vJDFpLcwnBs/Xe/kj7 + I/M8fwRPJDzAptRKYNNKc0QCn+FWaoXty+yV7khKoCBuS32x/Yp8c1zpjki45QR6X+mXnHz6v4QkSHzm + JP0+87DJwR3Qqj+OJEHCTmQ05+fCedXB+GXtm+xNUU5LKSN/uz3+tPwMTdFAEE1LDQVaNfWFpmjgZho3 + WXBzrC80RQMJeEFqHIhWiqEeryMS9oujbSTCBFfOSrLI38o5ukmsgzmcNTsO6elwxjhwmLb8sanbhTIB + N5+pW3G8Irxnzhix6d1ux+YmUiYg2JaoA8eqcdnWk+TwcLoj0pFkbC9M2kjbi3731mf5A6lCUicKFTV6 + AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE - QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe - FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g - j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu - MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx - WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ - BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM - B4HjT5oAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE + QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn + QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH + f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD + VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp + hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe + hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc + DAdFhtjSAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB60lE - QVQ4T2P4//8/AyUYQwAZT97yLWby5q875u3++mj5wa9HVh78OmXVoa9SRBnQt+Hrjr4NX/90r/v6vHHF - l8f1S77cmbvz6+NVh75+QjYErqF71av/y058NQCz131d1r/x2+/USe/euBSc+G2duv2PecKW7+4Vdz/O - 3P71zapDX2+iGLDq0FfOxiUv/8878PVq/YqvDRM2ffsT1/P8n2vB8f92Gbt/mcauOe6Sv/WhZfzyP2Ed - 734uPfD1PoYLimc+/5816/P/wjlf/kf2fHxhlbzlr0Xihh+msSvzQfIBtdtVDCMWv3Atv/2+YemXPRgG - JPU9++/d9OZ/dO/n/2Vz3vzX8J602iRmhSNMXsGhjtku69Bv17I7rxtWfjmEYUBQ89P/ZsX3/3s2vQK7 - JLHn0f+6xW8tkQxgtcs89Ner7tm35pVftmAY4FTx+L9D0bX/VpnH/5vEb/tvGLX2v4bP1P8webO49Uq2 - mQf/BbS8/lsw/XEphgHoGBSwyHx1r0nurmW3/6RNfv+vd8NXNoIGoGOLlH0XQzo+/AurO5+LLI6hEB3H - 9b1Xcsi/EOPf8uGfX+WVb1oBsxlJMsCj+rGzf8unXx4lF38aR63yQpfH0ICOo3o/RzqXXGs0jVknii5H - lAGEMIYAqRgAbgzMptd1HX8AAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB+ElE + QVQ4T2P4//8/RRirIAxP3vItZvLmrzvm7f76aPnBr0dWHvw6ZdWhr1LIalA0IOO+DV93APGf7nVfnzeu + +PK4fsmXO3N3fn0MNOATsiFwDd2rXv1fduKrAZi97uuy/o3ffqdOevfGpeDEb+vU7X/ME7Z8d6+4+3Hm + 9q9vgAbcRDEAKMDZuOTl/3kHvl6tX/G1YcKmb3/iep7/cy04/t8uY/cv09g1x13ytz60jF/+J6zj3c+l + B77eRzEAhItnPv+fNevz/8I5X/5H9nx8YZW85a9F4oYfprEr80HyAbXbVQwjFr9wLb/9vmHplz0YBiT1 + Pfvv3fTmf3Tv5/9lc9781/CetNokZoUjTF7BoY7ZLuvQb9eyO68bVn45BBOHGxDU/PS/WfH9/55Nr8Au + Sex59L9u8VtLmDzQAFa7zEN/veqefWte+WULTBxugFPF4/8ORdf+W2Ue/28Sv+2/YdTa/xo+U4FSEHmz + uPVKtpkH/wW0vP5bMP1xKUwcbgA6BgUsMl/da5K7a9ntP2mT3//r3fCVDSYOV0AIW6TsuxjS8eFfWN35 + XGRxFEXYcFzfeyWH/Asx/i0f/vlVXvmmFTCbEVkeRTE27FH92Nm/5dMvj5KLP42jVnmhy6NwsOGo3s+R + ziXXGk1j1olik8cQIBVjFSQe/2cAAG4MzKZBtgOMAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB40lE - QVQ4T2P4//8/AyUYzlh16KvUyoNfpyw/+PXIvN1fH/Ws/5JSufALJ7oGdAzXvOrQ109zd359XL/ky53G - FV8et676cqdi0ZfPlYu+pKJrwmbAzZnbv75xr3zw3jxhy3erlG1/HHKPf02Z/PlF4ZwvLwrnfgkDqVt2 - 4quBQ9G1/xgGLD3w9X5Yx7ufZtHzf7vkrb9pGrvmmGnsmi9m8Zt/J0/+/Dd95udn2XO/RM478PWqdebx - /6sOfYV7DUw0LP2yx7X8znt1r55bAbXbVUBiprEr842jl3/VCZj9K7Tz4/PCOV/+Z836/N8kfiumCxpW - fjnkWn7vlZpn32EFhzpmmKRJzApHDe9Jq8vmvPkf3fv5v3fTm/96oYsxDWhe+WWLd/2Lrxrek28qONSx - wiSnbP2qO2XrV7DNnk2v/psV3/+v4TMV04CC6Y9LA1vf/DWKXPNLwaGOGyYJCjCrzOP/TeK3/dcLWQLW - rOrWhWlA74avbGmT3/9zLbv9R91rkjuyAuQAw4bhjLC687khHR/+WaTsu4iuCB+GM7QCZjP6V1976d/y - 4a9D/oWYuL73SuiKsWEUjlbAbD6fypunAlo/f/WofuyMrhgbxhAAYe+GV6FRvZ8j0cWxYQwBUjGGAKkY - AK7WxHD7c7sYAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB5ElE + QVQ4T2P4//8/RRjOWHXoq9TKg1+nLD/49ci83V8f9az/klK58AsnsmJsGEyANAPxp7k7vz6uX/LlTuOK + L49bV325U7Hoy+fKRV9S0TUhYzAB1Hxz5vavb9wrH7w3T9jy3Spl2x+H3ONfUyZ/flE458uLwrlfwkDq + lp34auBQdA3IRDNg6YGv98M63v00i57/2yVv/U3T2DXHgPiLWfzm38mTP/9Nn/n5WfbcL5HzDny9ap15 + /D/QQrjXwETD0i97XMvvvFf36rkVULtdBSRmGrsy3zh6+VedgNm/Qjs/Pge65H/WrM//TeK3AqXRXNCw + 8ssh1/J7r9Q8+w4rONQxwyRNYlY4anhPWl02583/6N7P/72b3vzXC10MlEIzoHnlly3e9S++anhPvgk0 + gBUmOWXrV10gBtvs2fTqv1nx/f8aPlOBUmgGFEx/XBrY+uavUeSaX0ADuGGSoACzAvrZJH7bf72QJWDN + qm5dQCk0A3o3fGVLm/z+n2vZ7T/qXpPckRUgBxg2DGeE1Z3PDen48M8iZd9FZAWEMJyhFTCb0b/62kv/ + lg9/HfIvxMT1vVdCVogLo3CAhvD5VN48FdD6+atH9WNnZDlcGKugd8Or0Kjez5HY5NAxVkFSMFZB4vF/ + BgCu1sRwcCvT7QAAAABJRU5ErkJggg== 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 + RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACiUlE - QVQ4T4WS3UtTcRzG95900Y1XYdBNV0Fd2YVaEggRXqSiaTbLJJdWiomVmimJw9x8W5pDV6QlWPlWmk7N - 1Eyn5vvbptPp2tl2ds4ntjMMctDFc/GD5/k8D19+KkD1P1lMYcN75rOfsGoss63HZTbVc78nz5ssprCm - I+ZQ8s5EGRY7ToKjiJXeWHCUsvDuBM7xiNdHzCFl1Vg4qABxgIO1FhD78L93ZrJDmENopvmYvNQVg3PT - hMQeLlsb/vdq56mj5pCyau7iKDfi7jI6N01GxAEjjnIkW0EIcwiJlujohffhRmkrx2jXnYHOeOUG8zdQ - 6ZsmqX45QVXDGNraUZ7rzJRpB3la0c+TZ70UFndhqMylx5SD/L2A3eZItltiOZhLZX3wMipd4wSyLCNK - Mh5RwuWW2HdJ2J0+rHsia3aRRasX9Fq4p4G4KLh4nKILp/GvU1UbxpEkmfTKVVLKVogvXuZK4SK2fZGN - XR/L26HD6luvFMCLhjFEn8yl/AWi7s8ToZnlXKaFLX/7jqiEc7IgLhJilPCgReC6ulEBaOu+4RVlBK+E - U5DYdfqw7ftYtwfD/zSb5wT6ZwRS0gwKoLJmBLdX4mH9CPm1ZvJqBnmgG4Dt4WA48jB8s6QdddFbPk8L - JKfUK4AK3TAuj8S+4Au0Wx3Bdj/AL702EB5dcDM0K/BlWqB3ykVScp0CKK8awukOLqgzk6dXFgyHqw7D - meWdZJR2BBe00f3DRUJSrQIo034NtNsPfIHDrdu9LNq8zG54+LnqYXzJw+ivv+09Uy4+TriIT9QrAP+H - KSrr41FJN/mPP5Bb0EFObjtZ2W+4faeV9AwjaepGUlINJF2rIyGxhqvxuoD8gD/FexT5V1saowAAAABJ - RU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACh0lE + QVQ4T4WSyU9TURjF+5+4YOPKYOLGlYmucAEoMSExxoVAwCKCIhEEFYMEtSBCJDRImawgDaARlASVSUFG + FXBoAZmnFspUW9rX937e9jUxkZe4OLn5bu7vnJMvVwf8V7aWg8NbQ8ffY8+yTTaHKaymTv2eONki7hs0 + gX/ls0aZZ9sPw7aBhZ5YcRYz8/oQrrGIF5rAPolkdstA6md3qUmcvQTmDWu2xmMNWRsPKHOdMbhWW5DZ + wu1oJTAvdhzRBvbJnnWD7VILe50WYWIRTSxiRnbkazzWkGSLjp55E26R13IsTtMx6IhTdzB9GV1VwwSV + z8apePoFY80oj01DlBgHeFjWx4NHPRQUdmIuz6W7JQflaz6bjZGsN8WyO5XM8sBZdKb6cRRFQZIVvJKM + e09mxy3jdPmxb0ksOSVm7T6oMsLNLDgfBafDMJw6Ksqh01Wax5AFnFa+iL5kgbjCec4VzOLYkVjZ9DO/ + rg2nXn2uGjwR1SW/wpm8GaJuTRORNcmJDBtrgfQNSYVzMgUcCTEqPGDzcCm1XjUw1n7GJyl4fDIuj8ym + qO7Y8bMsqmslD0156LN60KeYVYPy6hH2BHy3boS8miHuVA9w29QP68MhWCSH4CtFbaQaXvHhp4ckfZ1q + UGYaxu0Vi/P4g+n27VB6wCAg0SIAj87sMTjp4aOAe767SUyqVQ1KKwZxic0HG9SKBlVqg+Fw8QVCcEZp + B+nF7aEGrXR9cxOfWKMalBg/BdOdu/7g4padPmYdPiZXvPxY9DI252X019/0bpH+btxNXEKVahD4MIaS + Xu4VdZF3/y25+e3k5LaRmf2Sa9ebSUu3kCI2rk82k3ixlviEai7EmYICdH8AxXsU+dXRvF8AAAAASUVO + RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAdElE - QVQ4T7WTQQrAIAwEBf//5hRKI3ZWRbr1MAc345qLJSLKn0jgIoGLBC4SuEjgUmqtPfHAnKRHPheO3Ps8 - k3ZK6UlhDinO6B9vd1YCCwi914YsoDyCzrnCHOSwP89K6TSXoo0EA7jFavMDX4+BiwQuErhc7EeiiR4r - 8zwAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAfUlE + QVQ4T+2UQQqAMAwEC/3/myMNTYjjomA8ehjozi5SQRxm9ilSdpCyg5QdpOwgZYcx56zYhp7Ejrx+4IJb + z3WQcsOOcOeZgyz2+Y7YVU6vfCkf4M5zDXHOEo5w47mGOGcJR7jxXIsoaw5HuAkun00bKYG6yUJt/79N + GxsH7EeiiVdcqusAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAX0lE - QVQ4T72OWwoAIAgEvf+lC0FFt3x8RCN9ZO0oLYakPNprKoZ80O5UyvKpFp4Krh+ngvJj1rfXH4ICEHiJ - 6xX0ggYRwMqDoBKiVvpI7MtPK5iA0UOAU/9voOD0Zxtszyqxa1VmsC8AAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE + QVQ4T82OUQ7AIAhDuf+l2UA7O4OIH0v2Gj+EtipqSBeD2UbvkIEVMAtmgdav+t3C1YLQWC1Ijb8oSJgK + uIRmCW3L5rlgQ3M8IVMtCChI6shdlB33hDqAY0NE9DKO70MdwLGhgI9+oHoBzyqxa4rWeaEAAAAASUVO + RK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACqklE - QVQ4T32Sa0hTYRzG96lPfexzsaSL9UG7KIHShZaXrBlEtApJWalYICOyBWKZZreJeanVvODmnM7M6WzO - 5po5L3M505giIYKSuYkXTM055zlPvC/tYDj78Bw4h//z+7/8zssDwKtpcUBj6EOV3oZKXTfK6zug0LZD - rmlDiboVZIZEonDFSBQu7p2EPgiABcOFYRms+lgseliExYppwV++nDuyGUC2k6Le4sS71kFU6/tQUW/D - 0OgUBfjLausq0gpHkVAwC/GbtV0cQP3Bzm1fW2fw28tibplF/8gUIi/eIQC8Ni5B0+XD0yYfkormEZ0x - SBJOASq9zUHKqsYvKKvrQYnaivxyC3qdLv8JjpyRjuF2uRenbllwIF6BiBQzwhOb8ihAqetOXWcZeNYY - LKwwmP7FYmIG2Cj3QenX3JAbA9h77i3SHtVJgoVy5pCoxsE7dk2550SqacLjY1Co/IznpWbkvmpF1ksD - BWyUO+72IOSmk8o9fEluChYqwNt9ofGJMF2XM7fow+wSi5/zLMamWYxMsnT7VnIPRt9L4Qtk4O2Iaa69 - +0KfNr/MorLBjjKtDRnPGiF53ID/yd0fldXBF8jsvO0xPZrr2R1dEzPrEErtqDH/QFufG8ZeN1R6Gy0H - kku28wWyo7xtcd9z9l359C00Tnr1fOYQwpMMOC56KA6LFTuUum4Ekts54CZ/J5Xeg0TZpCO/eQUJecNQ - tq9AWu2lkLP3h5Mr3ncikNx2BwVUUUCoqDZSkG5FsWEZWVovEuUM4rPHKaRQbcWSh9kk12SnAHql6T0I - FdWeDkn4iIhkEy0HRRXgZHp/mEJrAZGbXWJEZv4HTi7x8w+AhC+Q7QyKLvLLiSTf5Boz3Assep1TsA64 - OLkttgCAvxCuTFKsMtLBrUJm/gAn/+TAZJ9VRAAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACpUlE + QVQ4T32Se0hTURzH71/91Z/9XZT0sP7QHkqg9CDTlTWDiKyQFEtFA5HIFohlmr0U81Gr+cD5mM7Mx3TO + 5pptPuZypqEiIYKS6cQHpuac895v5xzaxWj1x/fCvZzv53fO5x4OAFfVYoNK24tyjQWl9V0orjVBoW6H + XNWGgopWsgRsXZJiWkIivtOIAAG8GF7gseYSsOQQ4HcmmhXc5csZI+zdHfag02lRYxzE29YBVGp6UVJr + wdDoFAO4yxXmNcTnjiIiZw7Rr9d3iICKZqs4fX2Dx0+ngPkVAX0jUwi8eJsC8Eq3DFWnC08aXYjKW0BI + 8gCNPwOUaSw2Wi5r+ISimm5ybjOyi43oGZx27+DwadkYbhU7cTLBiP1hCgTEGuAf2ZjJAMr6rrgNcm7H + Oo/FVR4zPwRMzAKb5d4v/Jzhc6Mfe869QfzDmiRvqZw/GF5l445eU+4+HqefcLh45Co/4lmhARkvW5H6 + QssA7qPRjNsd8Lk5yOQeuiTXe0sV4HZdaHgsTaxPn19yYW5ZwPcFAWMzAkYmBTadFj3JPRByN3ZnUBa4 + bZKm6jvPNfELRFppnRVFaguSnzYg6VEd/id3X3CqiQCs3FZJt+p6mqlzYnYDUpkVVYZvaOu1Q9djB5HL + yp7k0ukkR7gtoV/T91758MU3VHb1fMoQ/KO0OBb+IJrYtxG58CS3o99O/04cuweRWZO27KZVRGQOQ9m+ + Clmlk0HO3huOKXnXAU9y220MUM4AvuHVgUGJZuRrV5CqdiJSziMsbZxBcsmWlx38X3L1VgYg/d83kUBO + +US8R0CMnpW9gnNwIrHPT6E2gspNK9AhJbtZlEv9/AGgIUK2e4XkueUE0m9ylQH2RYFIm4K5f1qU22Lx + AKDZXKbJL9Oxhf8KAO4XJ//kwGbkeloAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB/ElE - QVQ4T2P4//8/AyUYQ4BUDGc4ld3hdK2+q+ja/irLufdtrfX0r1vMZ/26aDb16z6TzvfdxhVPswzzb1hp - xZ0VwzDAp/YBl2vD8yK79rebvJMuXPQLP7DGJ/xwvlfk0XSX6NOTLQrvnNTs+fRcsfrZHeXgY5VqVnt4 - UAxwqbprb9vy+lFQwL7bMaFb/NGdCcLmWZcnqqZevyLttO+elvnySBQDbJpe7DTNv//dz3ldB7pGZKya - cmGbjNvezzrmC9eiGGBa/XS5bszVb86Wq7PRNSFj5fTz6+W8dn81tJy/BMUAi+Jb/hp+Z26oGW67jK4J - GSuVXH2j4rDxtZXNnBgUA8ziLiurup84IG994Ku6/RYPdI0grJt9NlG5/MofE+tF16ysF2iiGADCmn5H - LMQjLr2W9ji4C10zCOvkX7qsFrLvs7XtAjdkcRRFsslXZksmnH2qYbfZHlncKPOUk2bxpQ/avtvWoxsM - JsT7P39USz7nrBJyUFXaZed7LcuVG5EVGeScPqKTffq7vv82Y03P9UlyPqt/ohpQ//y9ePblL7KW65/o - mM17Y2A97x6qAade6IXv/aztsvq9utPSn6pO87+hGCAfdOSEovHq27rm8z9pWs/5oeG08C+yAYZJB34b - e2/4YeS94oeO66L3Og7zHqIYQAnGECAVAwDTEJf4ZU19HwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACC0lE + QVQ4T2P4//8/RRirICkYznAqu8PpWn1X0bX9VZZz79ta6+lft5jP+nXRbOrXfSad77uNK55mGebfsNKK + OyuGYYBP7QMu14bnRXbtbzd5J1246Bd+YI1P+OF8r8ij6S7RpydbFN45qdnz6bli9bM7ysHHKtWs9vCg + GOBSddfetuX1o6CAfbdjQrf4wySRsXnW5YmqqdevSDvtu6dlvjwSJg4mbJpe7DTNv//dz3ldB0wCG1ZN + ubBNxm3vZx3zhWthYmDCtPrpct2Yq9+cLVdnwySwYeX08+vlvHZ/NbScvwQmBiYsim/5a/iduaFmuO0y + TAIbViq5+kbFYeNrK5s5MTAxMGEWd1lZ1f3EAXnrA1/V7bd4wCSRsW722UTl8it/TKwXXbOyXqAJE4cr + 0PQ7YiEecem1tMfBXTAxZKyTf+myWsi+z9a2C9yQxVEUySZfmS2ZcPapht1me2Rxo8xTTprFlz5o+25b + jywOwmBCvP/zR7Xkc84qIQdVpV12vteyXLkRWZFBzukjOtmnv+v7bzPW9FyfJOez+idMDmJA/fP34tmX + v8harn+iYzbvjYH1vHswBSBskHPqhV743s/aLqvfqzst/anqNP8bTA5MyAcdOaFovPq2rvn8T5rWc35o + OC38C1MAwoZJB34be2/4YeS94oeO66L3Og7zHsLk4IrIxVgFicf/GQDTEJf4sarC9QAAAABJRU5ErkJg + gg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABrElE - QVQ4T52RWS8DcRTF56N4IqKINX0gQcT+ggceSCR8G30REQ9qiaWCpo09LbUTamnKYNpoi7ZUEUvb1DIz - R+YmM5FmxoObnJyb/8z5/ZfLAGAkzW1xSJVljcWUzYXx+QNJ3fK/v6U0UkCrjDMbKK7rUoUojXX9PDWn - VN+4DfZdVoYYVAEzK+7UnFJD5jUKy1IFTC4dQUwJiqJIazwvYHDagd7RZRTVdqoDTAtOCIKA00sfudcf - xDcvwH3hQ/LzC66La1hs+9oAg3EO/ts7MAwD1ntNzvmC5IduD/mYZVUb8F8pzbzjiHYJBB/IvYEw+bn3 - hnzbyZIXVjSrn2Bidhss54Mgiog+vdADspwf8eQnDk/9CEXeYRiwIqOoRh1gnHbgm+eVCUgP+Br7QDga - Axd4xsllBD0ji8gtb1UH9E/YlbC0eyL5hYfnBK6CL3B7othxhWiMulKNK0gf5ZLm/hb/wP1jnAAHZ3dw - OG8IkKlv+Buwd+zB0sYJRq2bGDavo99kp6Cs9MJqbYA044KqDuRXtiOvsg05ZS0kXUkTskoakamvR1p2 - qTrgv/oBFQAPI+QT9ewAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAABu0lE + QVQ4T52R2S9DQRTG+6d4ImKLNR5IELG/4IEHEgn/jb6IiAe1pLZY0saeltoJtTTllttGW9RapJZK0eUz + c5rbNHrviy/58p3MnPObzIwKAHl2U8Rf61YFTBgsGJnb5+6UeuMdK/iAkjRT6yio6ZCFxAr9mo2FvHpG + DDDuCBJEzZYSAVPLVhbyGphepWHJTImA8cVDRFgRr0gkQmuhUBj9kyZ0a5eQX93OtxIBY/NmhMNhnJw7 + KR0uD4Js0HrmROD7B5azS+gMe8oAtWYWrus7tqKC4LikFJ0eygOrnXJYt6IM+K9jxZzpkE5xex4pHe5b + SpvjinLLLFDmlTWydhnA6MwWBJHdnz2c99lHDyiILvgD3zg4ceHm4R3qPj1S8qtYuwxAw145GAqxMir+ + gK8fX7j1fkB0v+D4/AFdQwvIKm3m24mA3lEji6j46Z+BHzy+fOLC44PV7sW25Ya+Mb1Y4Qp8UxL/9zf/ + F+6f/ATYP72DyXxFgNTCOt6iDNg9smNx/Rha/QYGp9fQO2akQcnJeZW8TR7A/zi3og055a3ILm9BZkkT + Ob2oAWlF9ez0WiRlFLN2GcD/DNUvFQAPI9EcSZQAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAChUlE - QVQ4T5WT3UvTURyH9xd0ERREFyFEsaC0bDOkulArRI2G0jCm5my5fBkOm2bmoqS5THxhmilWK9GyZppz - zqW2scnGTFNrU8vQMbP3NlNZjrZ94vx+YMQq8uJzdc7zfF84hwGAsZYYpcLY9pxUkPQXCcKCLvwrHbfO - RRFwtioPYwW0JOjS30Lgvs4SqHqHMH4ln4KrWSz6cNKsgM1Ug1F9JaxPymHqlsGiK4e1vxwj+muYeFYD - nSofLkcFXg3mQCYrgXwfC4RdFQT8dvh9T+Hz6vDDo4Z3SYXv7hbMTSqgbRVQ8KSej67GWGxcvw7X5SdR - X3aGTwlIdb/P8kdYo+QGwSN6CWou8ZAaF+mkBOOGKvhW9PAuP8LKwj14vijhtFdD3ZQQBNtNIrw0F6Mo - m0ME9A6G+yrgXeqBx3UXy58asfhOgRs3m2HRyuF8fnYVnjBlYX5MDHOPEJncaCQfiaAFFu1VeFwPsPS+ - Dt/mKuF2lFGCQMCPNgWHgm0GIZzDuXhjPg3NnWNIOBiGxKhwWmDskmH54208bClElZwPcWY8RGIJOElc - MBgMDPdmYMYixJQhHS90J6CqO4RoNhNx+0NpwYDqMhbnG+CaKcXXaSk+TxXhg02Ct6N5mLVm4bUxA7Y+ - Htk6ZIU85KbFIukwm5JQgt77F7EwV/sb7BjKxvSgAPaBFIxqjsPafpSCyRgxEUyUisIRGbqVFqibL8Dt - qMZgdwYMHWnob0uGtjkRj5viqXZbKw9AWcamKhO4tpiNBulO7N6+hRZ0Ks9Dkr4H4pRwZHH34hSHhZQ4 - NrVlsigyK2mXtC0V7kJ98Q4oCraBGbLp11v/Xwlpm1QmcMjmDcGfZq35CbrbuL7aUBONAAAAAElFTkSu - QmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAChElE + QVQ4T52Q3U/SYRiG+Qs6aKutddDcWs220jKwuepArebUFtPFbKCJmYQfkxmakbRyIZFTHJrprCimZWGa + X0hqMHEwTFMLxLIpg+w7NXWkC7zj/f02W5MO7OA+et/rep7nZgBYV/qkgpimrGSQ9BSmhwb89K8037kQ + ScCp8lyM5NOSgB8DhcDdLUXQdg1g9FoeBSuZTPrRYVbBZqrAsKEM1mcKmNplsOgVsPYoMGS4gbEXFdBr + 8zDjLMWb/izIZEWQH2D6UTBWBSs+O3ze5/Au6/HL04blBS1+ztbD7VBB15BOwQ4DH621Mdi8cQNuyk+j + uuQcnxKQ6T6vJSDcoeasgYcMYlRc4SI5NsJFCUaN5fAuGbC8+ARLcw/g+aaGy65EW138GthuysFrswSF + mWwioDsY7C71T+2EZ+Y+Fr/UYv6DCrdua2DRyeF6eX4VHjMJMT0igrlTgAxOFJKOhdMCi+66H36EhY9V + +OEuw6yzhBKsrPjQqGJTsM0ogGswG+/MZ9Fx7wTiD4ciITKMFvS1yrD4+S4e1xegXM6HKCMOOSIx2Ikc + f80MDHalYdIiwLgxFa/0p6CtOoIoVjBiD4bQgl7tVcxP12BmshjfJ6T4Ol6ITzYx3g/nYsoqxNu+NNi6 + uaR1yAq4yE6JQeJRFiWhBF0PL2POXfkX7BzIxER/Ouy9PAx3nIS16TgFkzOiw4NRnBOGiJDttKBNc8l/ + txL97WkwNqegpzEJOk0CntbFUes2lB2CuoRFTSZwpYSFGulu7N25jRa0qC9CnLoPIl4YhJz9OMNmghfL + olomRZFbybpkbalgD6olu6DK34HgoC20YD0SsjaZTOCgrZv+CP4vYPwGutu4vmPLy7gAAAAASUVORK5C + YII= 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 - agkV7KYAAAAASUVORK5CYII= + QVQ4T51TbUhTYRQ+WVgw29h258012txsLXSOiAJd8UIZSBFkVhAYBUWIYqZhhQ4ug8JWmR+Ykj9CEkaN + pB+lDGQMspDAoqDCws21K0T5Y8Toy5Sn17rIiH54feD8OAfe55znOeelJaHd5aEbm3RKph4l4XVwBC1R + JVWP8lEBdXENtF0WSSmpg/uRDedntNgVEUD+PKaUFdzaquPBqHcLo+5iRl2FjGtm1OZkdNXBqNXG3A+t + OBKz4dSkAdbbYop8xgw/+OPKlyJOvtfj8CsTysfy4I1YsNDVGiqAod8F2wMXDk3aUTGRj7InZuQEhAw/ + eOd6eS1a09m4+EmD6oQeR9/mYu/4epQ+zkdh2Imikb8E+yecKHtuhyNkQ1aLTvGDj90g56BjdhUC39fA + n9agOaVD44wRtR/5ZNNmVCU2LBLsebMZ26MuVI5wP+qzPbSguSGpUUXQk/aiKmoA1a3kBNywUPIm3s0H + 8WK+E6NzLQj/Oo3B2QO489OL3h8b4f9iWiS4/HkfuuUdMEmrFQnc7bbxPgx9GMT9RA8GpiT0TVWjM16B + K7ESSDE7mmTjH4Kzyd2IfG1EcYeYYeK1Ah0F7HxdVkaXLIz8ZkaSyMgnMGrWM7qgZe6QCcfiRXg914+D + wW0pqs1Sd9buuwKefbuH62NnQDUr/jmkJaBp6ByeysOw+MTlnfLxgRPY2V66/M9ENeTh8R/dRL8BDkAX + agnC/hIAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABDklE - QVQ4T6WSvY3DMAxG3wpeIbNkBLtwkfZSuLnCgKAijQtDpYs0WsEreIVbwSt4BR14VGH9IBcghQqRH59E - 8iOEwCcnvdBu0Da56JT3RSwTBJhdLoq5L8kX8RLgA9hLIaQ94PtfgFOAX7O4UfjzdQsqtrtCpi4WN1o8 - CriYTwXQXmER8R7vDnq5m1xbBWjRPbayOH3d/uSalwCF2CMOVF4vhvoGQAb3lOLqWt8BHHFw8gtpRU7x - k7yoi0JxpKytA7+BP8Bu2s4t2UReHGDwKlRHwtDALLALzB584oUzwMFgZGDwSHYOvWxlldfhkWzkDDBq - onGHWzE4zU0r9FsVoKLRwFI3zJ8jxRfT9Rz/BalCUid5a6EwAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABJklE + QVQ4T6WSvZHCMBCFtwVaoBZKEAEB6RGQXOAZRgGJAw+hAyfbAi3QwrVAC9eC71vJDFpLcwnBs/Xe/kj7 + I/M8fwRPJDzAptRKYNNKc0QCn+FWaoXty+yV7khKoCBuS32x/Yp8c1zpjki45QR6X+mXnHz6v4QkSHzm + JP0+87DJwR3Qqj+OJEHCTmQ05+fCedXB+GXtm+xNUU5LKSN/uz3+tPwMTdFAEE1LDQVaNfWFpmjgZho3 + WXBzrC80RQMJeEFqHIhWiqEeryMS9oujbSTCBFfOSrLI38o5ukmsgzmcNTsO6elwxjhwmLb8sanbhTIB + N5+pW3G8Irxnzhix6d1ux+YmUiYg2JaoA8eqcdnWk+TwcLoj0pFkbC9M2kjbi3731mf5A6lCUicKFTV6 + AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE - QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe - FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g - j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu - MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx - WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ - BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM - B4HjT5oAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE + QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn + QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH + f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD + VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp + hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe + hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc + DAdFhtjSAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB60lE - QVQ4T2P4//8/AyUYQwAZT97yLWby5q875u3++mj5wa9HVh78OmXVoa9SRBnQt+Hrjr4NX/90r/v6vHHF - l8f1S77cmbvz6+NVh75+QjYErqF71av/y058NQCz131d1r/x2+/USe/euBSc+G2duv2PecKW7+4Vdz/O - 3P71zapDX2+iGLDq0FfOxiUv/8878PVq/YqvDRM2ffsT1/P8n2vB8f92Gbt/mcauOe6Sv/WhZfzyP2Ed - 734uPfD1PoYLimc+/5816/P/wjlf/kf2fHxhlbzlr0Xihh+msSvzQfIBtdtVDCMWv3Atv/2+YemXPRgG - JPU9++/d9OZ/dO/n/2Vz3vzX8J602iRmhSNMXsGhjtku69Bv17I7rxtWfjmEYUBQ89P/ZsX3/3s2vQK7 - JLHn0f+6xW8tkQxgtcs89Ner7tm35pVftmAY4FTx+L9D0bX/VpnH/5vEb/tvGLX2v4bP1P8webO49Uq2 - mQf/BbS8/lsw/XEphgHoGBSwyHx1r0nurmW3/6RNfv+vd8NXNoIGoGOLlH0XQzo+/AurO5+LLI6hEB3H - 9b1Xcsi/EOPf8uGfX+WVb1oBsxlJMsCj+rGzf8unXx4lF38aR63yQpfH0ICOo3o/RzqXXGs0jVknii5H - lAGEMIYAqRgAbgzMptd1HX8AAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB+ElE + QVQ4T2P4//8/RRirIAxP3vItZvLmrzvm7f76aPnBr0dWHvw6ZdWhr1LIalA0IOO+DV93APGf7nVfnzeu + +PK4fsmXO3N3fn0MNOATsiFwDd2rXv1fduKrAZi97uuy/o3ffqdOevfGpeDEb+vU7X/ME7Z8d6+4+3Hm + 9q9vgAbcRDEAKMDZuOTl/3kHvl6tX/G1YcKmb3/iep7/cy04/t8uY/cv09g1x13ytz60jF/+J6zj3c+l + B77eRzEAhItnPv+fNevz/8I5X/5H9nx8YZW85a9F4oYfprEr80HyAbXbVQwjFr9wLb/9vmHplz0YBiT1 + Pfvv3fTmf3Tv5/9lc9781/CetNokZoUjTF7BoY7ZLuvQb9eyO68bVn45BBOHGxDU/PS/WfH9/55Nr8Au + Sex59L9u8VtLmDzQAFa7zEN/veqefWte+WULTBxugFPF4/8ORdf+W2Ue/28Sv+2/YdTa/xo+U4FSEHmz + uPVKtpkH/wW0vP5bMP1xKUwcbgA6BgUsMl/da5K7a9ntP2mT3//r3fCVDSYOV0AIW6TsuxjS8eFfWN35 + XGRxFEXYcFzfeyWH/Asx/i0f/vlVXvmmFTCbEVkeRTE27FH92Nm/5dMvj5KLP42jVnmhy6NwsOGo3s+R + ziXXGk1j1olik8cQIBVjFSQe/2cAAG4MzKZBtgOMAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB40lE - QVQ4T2P4//8/AyUYzlh16KvUyoNfpyw/+PXIvN1fH/Ws/5JSufALJ7oGdAzXvOrQ109zd359XL/ky53G - FV8et676cqdi0ZfPlYu+pKJrwmbAzZnbv75xr3zw3jxhy3erlG1/HHKPf02Z/PlF4ZwvLwrnfgkDqVt2 - 4quBQ9G1/xgGLD3w9X5Yx7ufZtHzf7vkrb9pGrvmmGnsmi9m8Zt/J0/+/Dd95udn2XO/RM478PWqdebx - /6sOfYV7DUw0LP2yx7X8znt1r55bAbXbVUBiprEr842jl3/VCZj9K7Tz4/PCOV/+Z836/N8kfiumCxpW - fjnkWn7vlZpn32EFhzpmmKRJzApHDe9Jq8vmvPkf3fv5v3fTm/96oYsxDWhe+WWLd/2Lrxrek28qONSx - wiSnbP2qO2XrV7DNnk2v/psV3/+v4TMV04CC6Y9LA1vf/DWKXPNLwaGOGyYJCjCrzOP/TeK3/dcLWQLW - rOrWhWlA74avbGmT3/9zLbv9R91rkjuyAuQAw4bhjLC687khHR/+WaTsu4iuCB+GM7QCZjP6V1976d/y - 4a9D/oWYuL73SuiKsWEUjlbAbD6fypunAlo/f/WofuyMrhgbxhAAYe+GV6FRvZ8j0cWxYQwBUjGGAKkY - AK7WxHD7c7sYAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB5ElE + QVQ4T2P4//8/RRjOWHXoq9TKg1+nLD/49ci83V8f9az/klK58AsnsmJsGEyANAPxp7k7vz6uX/LlTuOK + L49bV325U7Hoy+fKRV9S0TUhYzAB1Hxz5vavb9wrH7w3T9jy3Spl2x+H3ONfUyZ/flE458uLwrlfwkDq + lp34auBQdA3IRDNg6YGv98M63v00i57/2yVv/U3T2DXHgPiLWfzm38mTP/9Nn/n5WfbcL5HzDny9ap15 + /D/QQrjXwETD0i97XMvvvFf36rkVULtdBSRmGrsy3zh6+VedgNm/Qjs/Pge65H/WrM//TeK3AqXRXNCw + 8ssh1/J7r9Q8+w4rONQxwyRNYlY4anhPWl02583/6N7P/72b3vzXC10MlEIzoHnlly3e9S++anhPvgk0 + gBUmOWXrV10gBtvs2fTqv1nx/f8aPlOBUmgGFEx/XBrY+uavUeSaX0ADuGGSoACzAvrZJH7bf72QJWDN + qm5dQCk0A3o3fGVLm/z+n2vZ7T/qXpPckRUgBxg2DGeE1Z3PDen48M8iZd9FZAWEMJyhFTCb0b/62kv/ + lg9/HfIvxMT1vVdCVogLo3CAhvD5VN48FdD6+atH9WNnZDlcGKugd8Or0Kjez5HY5NAxVkFSMFZB4vF/ + BgCu1sRwcCvT7QAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgUlE - QVQ4T6WQWw2AMBAE1wGSKgUpSEAKEpBSCZVQ0rSXPoafg0uGj8newqGcs/4A4QXCC4QXCqk83rgkbchD - SGFYOhrJSpCHqGMFNufXgrvhOmEssBNiO2NHHmIusLH/kpCHmAvKYsHOiMhD9OWVckJAHqK/daV+2ppf - hRcILxBeHkdnUwqevR+DAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiklE + QVQ4T6WQ0Q2AIAxE2cCRGMVRHMFRHMFRGIERsAUuJFxNqF7yPny5ltRQSvmFKT2Y0oMpPbAQ9cIlbNQn + EULsA8rRyf37oj6JFixATuHTgrtTh4WlEzRYgBOSoGfs1CfRggUI/kumPokWLNBBBWck6pMYwzN6QqQ+ + ifHqTA31Z+HFlB5MuU4JD0dnUwrgCrV/AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgElE - QVQ4T6WRUQ2AMAxE6wAJSEACEpCCJCQgAQlIGjm2EtIjjBtL3kcv15cSLKVkf6BAhQIVClQoOMP8JjPD - 4KyxVxP0WPJlzLFXE+BtRYBrqPdF4Od3LYKhLO+X7akbg5tgLoKlVYBFDBDJApzt3w/wR6j3JhgD2gUK - FKhQoHIAVnlxb1bdEucAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiElE + QVQ4T6WR0QmAMAxEu4EjOIIjOIKjOJIjdARHcKSYSyiCvA+DBw+8x7UUbGb2C5QVUFZAWYFlZnNUBh23 + KDOz0504rI5blE9OR0Kv4S3KJypiikJblJnFUbmieXCLMrM7Kkc0D25RZnRQRRdFcIsyn62Pgf4Ib1G2 + tr6I4JZkBZQVUH7H2g1WeXFvwrwKSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAf0lE - QVQ4T2P4//8/AyUYQ4BUjCFAKsYQIBWjchgY7BkYGEAMGN6PRcwenwH8DAwM+VCF9xkYGPTRxOpBfHwG - ILsCZDu6GIjG64VhYgAo0N5DNcACcT1UDMQmaAAIxCMZAsIgNkgMDIgxAAZATgY7GxkQMgBkEyi+cWEa - GkAOBgCjTd7+r93eSgAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE + QVQ4T92RUQ2AMAxE6wApSJgUJCABSUhAChKQUHrbGjgYH4U/Lnlhd+G6ZRNV/UQzjNAMIzTDCGxEkoGF + szSyRB0yIp0x1h9Xo79kEzx1yBT5jtjd5Rm+3CFT9IMBuLTNQOCXONcMa+6QOTQYPgRgjSyLOmTuwpHz + sc+iDpki7IT3foI7ZIreD4ijsgOjTd7+jqoH+QAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE - QVQ4T92PQQrAMAgE/f+nLfUQdFdiYT0VmZJMyJCau9smJFRIqJBQqeLDmMUnCKMETyTvlSDOGCy/ki6h - O7F3tREsezWI59dgDmQwXs6mIF4sr+lmCuILxugt2AU696PgBiRUSKiQUHkANGDdTeFIubEAAAAASUVO - RK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE + QVQ4T82M2w7AIAxC/f+fdrVqAwvNLt3DRljCqdB6759awoolrFjCihnckH3j53aCfTODC8UIZuybKTzV + 5eB44I+iotlQsNWNDQqinLFIqxsbFJIysvMd+75BwLQH0POS3LBvprBFhcVSYd/MwIRj2/OSCPtmDmJA + MRL0fYPC7we/sIQVS1ixhO/d2wE0YN1NDoBJDwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAcklE - QVQ4T72QUQrAMAhDvf+lHX50qJFqSSnhDczom52oqtwEChYoWOIgYg+b/lRdyFPhEvgDeYZMhBmQnAgt - Y5mlE+btWulE6A9Uc/jQTlht5LvqHSXMaYUnGV15mrAxK4TrM8L1Pz174QWgYIGCBQqWD+N21FbTYK/z - AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAm0lE + QVQ4T62NUQ7DIAxDe/9LMyclyGauygZ6eh8xtXu11o5qwx1tuKMeOENcA5cJ1M8NOU4PBm6Q7y+4DzUA + MTB7vzzAfahBZ3ks4D7UAPBYeb88wH2oAZgH3F1mUt2uHvxhhzP3xv3ckIPKhcuKzKmfGxL8wPgJ96EG + i4yxgPtQgwVkLOA+1OCFGJuVPpTjhDbc0YY72vB/2/UB43bUVn8JuhoAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAdElE - QVQ4T7WTQQrAIAwEBf//5hRKI3ZWRbr1MAc345qLJSLKn0jgIoGLBC4SuEjgUmqtPfHAnKRHPheO3Ps8 - k3ZK6UlhDinO6B9vd1YCCwi914YsoDyCzrnCHOSwP89K6TSXoo0EA7jFavMDX4+BiwQuErhc7EeiiR4r - 8zwAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAfUlE + QVQ4T+2UQQqAMAwEC/3/myMNTYjjomA8ehjozi5SQRxm9ilSdpCyg5QdpOwgZYcx56zYhp7Ejrx+4IJb + z3WQcsOOcOeZgyz2+Y7YVU6vfCkf4M5zDXHOEo5w47mGOGcJR7jxXIsoaw5HuAkun00bKYG6yUJt/79N + GxsH7EeiiVdcqusAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAB/ElE - QVQ4T2P4//8/AyUYQ4BUDGc4ld3hdK2+q+ja/irLufdtrfX0r1vMZ/26aDb16z6TzvfdxhVPswzzb1hp - xZ0VwzDAp/YBl2vD8yK79rebvJMuXPQLP7DGJ/xwvlfk0XSX6NOTLQrvnNTs+fRcsfrZHeXgY5VqVnt4 - UAxwqbprb9vy+lFQwL7bMaFb/NGdCcLmWZcnqqZevyLttO+elvnySBQDbJpe7DTNv//dz3ldB7pGZKya - cmGbjNvezzrmC9eiGGBa/XS5bszVb86Wq7PRNSFj5fTz6+W8dn81tJy/BMUAi+Jb/hp+Z26oGW67jK4J - GSuVXH2j4rDxtZXNnBgUA8ziLiurup84IG994Ku6/RYPdI0grJt9NlG5/MofE+tF16ysF2iiGADCmn5H - LMQjLr2W9ji4C10zCOvkX7qsFrLvs7XtAjdkcRRFsslXZksmnH2qYbfZHlncKPOUk2bxpQ/avtvWoxsM - JsT7P39USz7nrBJyUFXaZed7LcuVG5EVGeScPqKTffq7vv82Y03P9UlyPqt/ohpQ//y9ePblL7KW65/o - mM17Y2A97x6qAade6IXv/aztsvq9utPSn6pO87+hGCAfdOSEovHq27rm8z9pWs/5oeG08C+yAYZJB34b - e2/4YeS94oeO66L3Og7zHqIYQAnGECAVAwDTEJf4ZU19HwAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACC0lE + QVQ4T2P4//8/RRirICkYznAqu8PpWn1X0bX9VZZz79ta6+lft5jP+nXRbOrXfSad77uNK55mGebfsNKK + OyuGYYBP7QMu14bnRXbtbzd5J1246Bd+YI1P+OF8r8ij6S7RpydbFN45qdnz6bli9bM7ysHHKtWs9vCg + GOBSddfetuX1o6CAfbdjQrf4wySRsXnW5YmqqdevSDvtu6dlvjwSJg4mbJpe7DTNv//dz3ldB0wCG1ZN + ubBNxm3vZx3zhWthYmDCtPrpct2Yq9+cLVdnwySwYeX08+vlvHZ/NbScvwQmBiYsim/5a/iduaFmuO0y + TAIbViq5+kbFYeNrK5s5MTAxMGEWd1lZ1f3EAXnrA1/V7bd4wCSRsW722UTl8it/TKwXXbOyXqAJE4cr + 0PQ7YiEecem1tMfBXTAxZKyTf+myWsi+z9a2C9yQxVEUySZfmS2ZcPapht1me2Rxo8xTTprFlz5o+25b + jywOwmBCvP/zR7Xkc84qIQdVpV12vteyXLkRWZFBzukjOtmnv+v7bzPW9FyfJOez+idMDmJA/fP34tmX + v8harn+iYzbvjYH1vHswBSBskHPqhV743s/aLqvfqzst/anqNP8bTA5MyAcdOaFovPq2rvn8T5rWc35o + OC38C1MAwoZJB34be2/4YeS94oeO66L3Og7zHsLk4IrIxVgFicf/GQDTEJf4sarC9QAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMElE + QVQ4T6WS30uTURjHdx/+AeE/MBR2M3aZV90IXSx0Gl0YkRdFQoFdOMYu6iJsIghpKXNmmzPz53I618YY + U5zODMyKsjZ1plPX+5Y5WsrmPvm+rz9KEiEf+HIe+J7z4TnnfFWOwUmcQ1N0Dr+S1w53BMfgBE9dYZ70 + j2HrDWHtDtLSFeBxp5+mjpc0Orw8tI/IkgGZXIbU1o6slY0sc2tZuoNx7jZ7/vKO+rria6icQxHZGJ3+ + LGs4HJNNSdV1rgMvOBXFPxnDE57nxdgCfaFFBSBNUNPgOVB1nZtb913cuNdHpfk5V4xOLt+xU3a7jYs3 + W7lwvYXiykecv9qoANoHxjmpcjnI7uTY2s6SSmf4vrnN+rdfCqC1J7S37bBEUaS+vp6KigoMBgOODidf + xU2EjS2+rP/k09IPfONzCqD5WYB4PI7FYiGVSsmAaDRKMplEEATyz+ZTXn6JWHyVlaRy2Gw20+9/owCk + bzEajej1ejQaDQUFBaTTaXw+H7W1D8g7k0dpqYEP0QQmk4mqqiq0Wi2FhYUKQPrL5eVl+WAsFpMnsNls + lJSUsJYUFYChjI8LAu/nN4i8W0OtVu9mZuYQcLSsVitFRUXUGE3odDrO7fYNTW28nhMZn00SmF7FPrh3 + hX1AIpGQJQgii4tL9PQO4HJ78QfDuL2jjAQiTMzE6fK+xeGexeb6Y4JT5UACHBdlKYknRlkCSMa/oixN + sO8dG2UJIDX/K9Xu+51CqH4DsLwA5JN+awcAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAAAtklE + QVQ4T2P4//8/RRjOqKrv+F/T0AnGlUCcU9b5X8/QFCiFXw5uQE1DB0jg/6/ff/9//v4HjE0t7EFCeOWQ + DOgEKvj3P6Dp63/D1LP/7775/V9TxwisCJ8c3ACQ00AmWxY9+q+fdOL/ietP/0vLKYMV4ZODGwDyF0gR + yHSQgm1HL/8XEpEAK8InBzfA3NLuv7WDx399I8v/8soa/0XEpYGyICn8cnADyMVwxmg0DotoJA//ZwAA + qy/GB3Ky9SEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACMklE + QVQ4T6VT30tTcRT//gm+9OBbL/Xai3vooR9oUVbYjOnmdVyxTalFGxuJa+FljbVCy5WrLTOTvIgNM3Fk + rpb9kCyHrVoMNAqJkRgi9BSBL5885zIf7mW9dOG8fPh+zvmcz/lcEZ+J7N4sxDJhRJ9eRM8TBZFUAMGJ + DgTGvOgYPQuPegqnh5xw3G2BfLsZ0i0bGmMNVPuoAd4X3+HL+iIKa5/xYTWH+R9zeLk8g+mvjzG5OI5k + YQTDn+7hTi6O+EIfet92Q0kHIHltEDSZyPmfH5GaXcLD53moqXn0J19grDAKNT9kwJXMeThVGfWO4xDR + dJAnL6xk+RF9fzYAuzvC5IFcwoB3TvkgDzTjgKUGonuqi2W/Kb7mCb9+A9/XgKNyJ5Nj2agB9z1yw56w + wlRdBRGe9PPOz76lWV5xHcgtA6ZaB5Ovzl0x4O6kC9Y+C3bu2gGhjJ9jw1JLE4gNT7NEmkIPiRyZDW3h + hFG51HY0XDOjcnslhD/pYbdLhpVkl8hkGO1MsmkykdsHT8J8uQ4V2yogvCMuPlU5t4msx1sTMo6FjmgN + ztxv4zuXc5sm63H7DQm1XYe0Bm2DrRyScm6TbD1u62nEQX+N1qCl384JK+c27azHLZdOoNq3X2sgxZtw + M3sd4VdBwxVKhulxc7AOez17tAb0U4QyClwPnBxPShiFhO5MpyK3yTDamWTTZCKb5KqtBoebLlghuW2c + bYonJYxCQnemR/+oerFp7n8UxF+CFapvsjm7iAAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgUlE - QVQ4T6WQWw2AMBAE1wGSKgUpSEAKEpBSCZVQ0rSXPoafg0uGj8newqGcs/4A4QXCC4QXCqk83rgkbchD - SGFYOhrJSpCHqGMFNufXgrvhOmEssBNiO2NHHmIusLH/kpCHmAvKYsHOiMhD9OWVckJAHqK/daV+2ppf - hRcILxBeHkdnUwqevR+DAAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiklE + QVQ4T6WQ0Q2AIAxE2cCRGMVRHMFRHMFRGIERsAUuJFxNqF7yPny5ltRQSvmFKT2Y0oMpPbAQ9cIlbNQn + EULsA8rRyf37oj6JFixATuHTgrtTh4WlEzRYgBOSoGfs1CfRggUI/kumPokWLNBBBWck6pMYwzN6QqQ+ + ifHqTA31Z+HFlB5MuU4JD0dnUwrgCrV/AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAgElE - QVQ4T6WRUQ2AMAxE6wAJSEACEpCCJCQgAQlIGjm2EtIjjBtL3kcv15cSLKVkf6BAhQIVClQoOMP8JjPD - 4KyxVxP0WPJlzLFXE+BtRYBrqPdF4Od3LYKhLO+X7akbg5tgLoKlVYBFDBDJApzt3w/wR6j3JhgD2gUK - FKhQoHIAVnlxb1bdEucAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAiElE + QVQ4T6WR0QmAMAxEu4EjOIIjOIKjOJIjdARHcKSYSyiCvA+DBw+8x7UUbGb2C5QVUFZAWYFlZnNUBh23 + KDOz0504rI5blE9OR0Kv4S3KJypiikJblJnFUbmieXCLMrM7Kkc0D25RZnRQRRdFcIsyn62Pgf4Ib1G2 + tr6I4JZkBZQVUH7H2g1WeXFvwrwKSQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAf0lE - QVQ4T2P4//8/AyUYQ4BUjCFAKsYQIBWjchgY7BkYGEAMGN6PRcwenwH8DAwM+VCF9xkYGPTRxOpBfHwG - ILsCZDu6GIjG64VhYgAo0N5DNcACcT1UDMQmaAAIxCMZAsIgNkgMDIgxAAZATgY7GxkQMgBkEyi+cWEa - GkAOBgCjTd7+r93eSgAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE + QVQ4T92RUQ2AMAxE6wApSJgUJCABSUhAChKQUHrbGjgYH4U/Lnlhd+G6ZRNV/UQzjNAMIzTDCGxEkoGF + szSyRB0yIp0x1h9Xo79kEzx1yBT5jtjd5Rm+3CFT9IMBuLTNQOCXONcMa+6QOTQYPgRgjSyLOmTuwpHz + sc+iDpki7IT3foI7ZIreD4ijsgOjTd7+jqoH+QAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAa0lE - QVQ4T92PQQrAMAgE/f+nLfUQdFdiYT0VmZJMyJCau9smJFRIqJBQqeLDmMUnCKMETyTvlSDOGCy/ki6h - O7F3tREsezWI59dgDmQwXs6mIF4sr+lmCuILxugt2AU696PgBiRUSKiQUHkANGDdTeFIubEAAAAASUVO - RK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAjklE + QVQ4T82M2w7AIAxC/f+fdrVqAwvNLt3DRljCqdB6759awoolrFjCihnckH3j53aCfTODC8UIZuybKTzV + 5eB44I+iotlQsNWNDQqinLFIqxsbFJIysvMd+75BwLQH0POS3LBvprBFhcVSYd/MwIRj2/OSCPtmDmJA + MRL0fYPC7we/sIQVS1ixhO/d2wE0YN1NDoBJDwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAcklE - QVQ4T72QUQrAMAhDvf+lHX50qJFqSSnhDczom52oqtwEChYoWOIgYg+b/lRdyFPhEvgDeYZMhBmQnAgt - Y5mlE+btWulE6A9Uc/jQTlht5LvqHSXMaYUnGV15mrAxK4TrM8L1Pz174QWgYIGCBQqWD+N21FbTYK/z - AAAAAElFTkSuQmCC + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAm0lE + QVQ4T62NUQ7DIAxDe/9LMyclyGauygZ6eh8xtXu11o5qwx1tuKMeOENcA5cJ1M8NOU4PBm6Q7y+4DzUA + MTB7vzzAfahBZ3ks4D7UAPBYeb88wH2oAZgH3F1mUt2uHvxhhzP3xv3ckIPKhcuKzKmfGxL8wPgJ96EG + i4yxgPtQgwVkLOA+1OCFGJuVPpTjhDbc0YY72vB/2/UB43bUVn8JuhoAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABZ0lE - QVQ4T6WRz0sCQRiG/XO0sv6HfhD9ooNFJblZdIjw4KmIIDdK6xKIWxREYJduZVBElJGUoEGS0C7uooGe - FgRPrqAovjEDWruuqfTBc/lmvmfemTEAMPwHw3UoDT2cJ+kb7WY9qEBbpGdn/W1JmgpC0TjsTm9LSV3g - j/5AE+zHG2A8MTg4SSXUTUCKDNSqWq2iXC7DtvMGs+UCKwcfdYluAsJvQalUgqIosLpecR6IoXvyDEvu - MJW0TODgJKx6eYQiX5jZDKJr4hSm8WOYxo7IcvME5L7k1FwuB1mWkclkkEqlIIoiPIcBGEd8akGlUkGx - WEShUEA+n4eVDSObzWJ5L4LF3RcsbD+DYYNgXI9w+y7Vgr5hBr1D8zAPWmEemENP/yyNS05NJpNIJBIQ - BAE8z1NUAu2/1pjeuKeRGfYJtq0HFW0Jptbv8P4pwcNd0QEtLQWWtVv60sZRjm7W409BuzQ0OuUbK1wM - B4HjT5oAAAAASUVORK5CYII= + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAABaElE + QVQ4T6WQz0sCQRiG/XO02vof+kH0iw4WleRm0SGig6cigtworUsgblEQgV26lUERUUZSggZJQSsqGrgn + QfC0K7govjkDWbuMaPjBM4eZ+Z7vnTEBaAvTVSgLFs7j7DWrwQgVGIvsOQR/S5KGglD0Aw6nt6mkLvBH + f6EJ9moCA7wnhhUxpRMyE5AiDT9VrVZRLpdh334FZz3H0v57XcJMQPgr0DQNqqrC5nrBWSCGzvFTLLjD + VNI0QS0ylr0SQpEvTG0E0TF2AsvoESwjh+S4cQLyXjK1UCggl8tBlmVkMhkkk0l4DgIwD/n0gkqlglKp + hGKxCEVRYBPCyOfzWNyNYH7nGXNbT+CFIHjXA9y+C72gZ5BH98AsuH4buL4ZdPVO07hkajqdRiKRQDwe + hyRJFJ2ALCwm1+9oZF54hH3zXkdLgom1W7x9puARL2mDkaYC6+oN/WnzsEgvsyD3mM3/gbnZOjB9Aytc + DAdFhtjSAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACYklE - QVQ4T6WSXUiTURjHX+jCboo+qKuuCqKbKCqoLjIKt8KPFovEFi0XsU1KNlnaNlJzpujSzaVpW7Qv1OZH - JYqToiE0HH3P2Iw+JJpGrmXt3dycy+If74mFrwsiOvDjwHvO//c87zmHAkD9D2kfGNwDtXDd0qDPooKs - MGf74nWWoLddr+ht1yOFpfE4wsEOxILXMTHWgDIxF/oaBa5q1TDUlDJwFguQoHuQjHQjEe6EvU2B+LQN - ZRKe/+WIEhfO5kIp2oGg+ySmneshEx5CmoAJJyMOtNaegNfTAPpDM6bG1HjnOYV+Ew8SQSY6ytfhmZ5C - 0bEctqDb1vhLQN+EtlyISkUB1MX5OF/Eh0LMg1yUC6kgC02yDURQkJ3JFnSatZijuzAXMiI+WYfQi2L4 - basJPusqeNuW4bEhg4QZsnZvZQvsxlrMhiyYDVQj/uoMYs+PgB5YDp3ViTpjHy5e6YJSa4dcY4JEZYCw - pJ4tMLdoMDNhQGxMjJknuYg+2IZPd9aQcGok578jHEkgMBVGvrQKeYXq3xLKpKsA/boa0UdcRIc3IzK0 - FhNWilRmhvm2m2B0uOAbD5LwvRE/DvBFREK11KvwZfQcIq5NoAdXItSTgfEbFGn72/wPfI0mEPgYhu9t - EJ7R98gWyMHli7D/4GFk7tkLqulSKUIPpaAHV+Bz71JMti+Bv5WCTGMibac6uOZwodk+hP5hP5kZdm3Z - COpyZQl5IKlTTiFWGViV73vekHDPXS8czqcsAUdXcRoyIQ8iPgd5+3aSBea0mX9OVfsTRLDwShZyVFpF - NvyNtOC/8hMb4cocvUYexQAAAABJRU5ErkJggg== + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr2AAAK9gHCr3ADAAACX0lE + QVQ4T6WSa0hTYRjHD/TBvhRdqE99Koi+RFFB9SGjUAsvLYzEjMxFTKVkk6XpSC1N0eVtadqMvAw1b5Uo + KUUiJI7uGs7oIpEauZa1s3nP4tc5RwZNBgW98OPA+77/3/O8D0cA/gufmz3tOXTdzqS1KhVtTMh2X3c8 + CC21RXoJPFQVHMdpr2PSfoORwXySNUEUZeu5ZjRgyk6SCVwsYEZsZs7VxIyzHku5nqnxGpJjVbbXvSlc + OBtKinoH9p6TjHesRxt9SMotEsjhOVcDZTkn6LPmI34qYWzQwAfrKdoqVMRG+VOXto4XRQLxx0K8BU01 + BQsC8RbGtGgy9JEYEiI4Hx+OXqNCpw4lLiqAYu0GRRAZ7O8tqK80Mis2MuswMzWai+NVAraa1QoD1avo + K1/GU5OfEpYJ2L3VW2Ax5zDtqGJ6OIupN2eYfHkEsX05hdUd5JpbuXi1kRSjBV1mBbGpJqIT87wFlaWZ + TIyYmBzUMPEsFPejbXy5u0YJe9bc/E+crhmGx5xExF0iLMYgby8IKgrTEd9m4X4ShLt7M67OtYxUC0pl + eVXe6VEwN3QxMGRXwg96bRwIV8vHglCal8q3/nO4ujYh3luJo9mPoZuC0vaP+V98d0uVPzsZeG/H2v+R + 4CgdQVJ4/8HD+O/Zi1B8OQnH4zgpvIKvLUsZrV2CrUxAK71ZbtvTwXWpgxJLJ23dNuUrs2vLRoQrGYnK + D+KZsgeNNLA/Kz+0vlPCzff7aOh47iUILEw/Lf1hKtThgYTt26kcyNOW3+yp5gtFIA/CF0elacsX/obP + 8L+D8Bsb4cocWY3wtQAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/VlnFlexGrid.cs b/PROMS/Volian.Controls.Library/VlnFlexGrid.cs index c3a3910c..046af0aa 100644 --- a/PROMS/Volian.Controls.Library/VlnFlexGrid.cs +++ b/PROMS/Volian.Controls.Library/VlnFlexGrid.cs @@ -166,13 +166,6 @@ namespace Volian.Controls.Library { if (this.TableCellEditor.Text.Contains("")) return false; - //C2025-023 - Electronic Procedures - Modifications to PROMS - //To handle if EP designation changed so will save in the DB - if (IsUserDataDirty) - { - IsUserDataDirty = false; - return true; - } XmlDocument XdOld = new XmlDocument(); oldXml = _ReplaceTextFont.Replace(oldXml, "$1" + FontChangeFmt + "$4"); // B2021-032: use original font XdOld.LoadXml(AdjustHeightAndWidthForDPI(oldXml)); @@ -335,7 +328,7 @@ namespace Volian.Controls.Library XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Styles/Style/Definition"); string data = string.Empty; foreach (XmlNode xn in nl) - { + { string str = xn.InnerText; string[] splStr = str.Split(';'); foreach (string s in splStr) @@ -859,10 +852,7 @@ namespace Volian.Controls.Library if (Row >= cr.r1 && Row <= cr.r2) { int cellHeight = GetCellHeight(Row, c); - //C2025-023 - Electronic Procedures - Modifications to PROMS - //Userdata will now contain: height, EP Designation - string tmpUD = $"{cr.UserData}"; - int dataHeight = (cr.UserData == null) ? cellHeight : int.Parse(tmpUD.Split(',')[0]); + int dataHeight = (cr.UserData == null) ? cellHeight : (int)cr.UserData; int ud = dataHeight / (Rows.DefaultSize - 3); //if (cellHeight < dataHeight) // Console.WriteLine("r {0}, c {1}, cell{2}, data{3}", Row, c, cellHeight, dataHeight); @@ -1253,24 +1243,11 @@ namespace Volian.Controls.Library if (_tableCellEditor._initializingEdit || !_tableCellEditor.Visible) return; int curHeight = GetCellHeight(Row, Col);//(Rows[Row].Height == -1) ? Rows.DefaultSize : Rows[Row].Height; CellRange cr = GetMergedRange(Row, Col); - //C2025-023 - Electronic Procedures - Modifications to PROMS - //Userdata will now contain: height, EP Designation - string tmpUD = $"{cr.UserData}"; - int oH = cr.UserData == null ? curHeight : int.Parse(tmpUD.Split(',')[0]); + int oH = cr.UserData == null ? curHeight : (int)cr.UserData; int nH = _tableCellEditor.Height; //.ContentsRectangle.Height; int nW = _tableCellEditor.Width; // Width int Hadj = (nH - curHeight);//oH); - string tmp = $"{cr.UserData}"; - int comma = tmp.IndexOf(','); - if (comma != -1) - { - cr.UserData = $"{_tableCellEditor.Height},{tmp.Substring(comma + 1)}"; - } - else - { - cr.UserData = _tableCellEditor.Height; - } - + cr.UserData = _tableCellEditor.Height; //.ContentsRectangle.Height; //int cellHeight = GetCellHeight(Row, Col); //int cellheightNLines = cellHeight / (Rows.DefaultSize - 3); //int nHNLines = nH / (Rows.DefaultSize - 3); @@ -1394,18 +1371,7 @@ namespace Volian.Controls.Library { _rtf.Width = e.Bounds.Width - 1; // This has also been -3 which matchs the rener command CellRange cr = GetMergedRange(e.Row, e.Col); - //C2025-023 - Electronic Procedures - Modifications to PROMS - //Userdata will now contain: height, EP Designation - string tmp = $"{cr.UserData}"; - int comma = tmp.IndexOf(','); - if (comma != -1) - { - cr.UserData = $"{_rtf.Height},{tmp.Substring(comma + 1)}"; - } - else - { - cr.UserData = _rtf.Height; - } + cr.UserData = _rtf.Height; int hAdjust = 0; int hDiff = e.Bounds.Height - _rtf.Height; if (hDiff < 0) @@ -2646,84 +2612,6 @@ namespace Volian.Controls.Library CellRange cr = this.Selection; cr.Clear(ClearFlags.Content); } - - public enum EPinputtype - { - none, - textbox, - checkbox, - multi - }; - private bool IsUserDataDirty = false; - - //C2025-023 - Electronic Procedures - Modifications to PROMS - //Userdata will now contain: height, EP Designation - //For Electronic Procedures to set the Electronic Procedure input type - //for when cells in a table will need a textbox or checkbox in the EP viewer - public void SetEPinputtype(EPinputtype EPtype) - { - CellRange cr = this.Selection; - - for (int r = cr.r1; r <= cr.r2; r++) - for (int c = cr.c1; c <= cr.c2; c++) - { - CellRange cr_single = GetCellRange(r, c); - string tmpUD = $"{cr_single.UserData}"; - string height = cr_single.UserData == null ? $"{GetCellHeight(r, c)}" : tmpUD.Split(',')[0]; - - if (EPtype == EPinputtype.none) - cr_single.UserData = int.Parse(height); - else - cr_single.UserData = $"{height},{EPtype}"; - } - - //save the changes - Select(cr); - IsUserDataDirty = true; - } - - //C2025-023 - Electronic Procedures - Modifications to PROMS - //Userdata will now contain: height, EP Designation - //For Electronic Procedures get the Electronic Procedure input type - //for when cells in a table will need a textbox or checkbox in the EP viewer - public EPinputtype GetEPinputtype() - { - EPinputtype result = EPinputtype.none; - - CellRange cr = this.Selection; - - for (int r = cr.r1; r <= cr.r2; r++) - for (int c = cr.c1; c <= cr.c2; c++) - { - CellRange cr_single = GetCellRange(r, c); - string tmpUD = $"{cr_single.UserData}"; - int comma = tmpUD.IndexOf(','); - if (comma != -1) - { - EPinputtype newresult = (EPinputtype) Enum.Parse(typeof(EPinputtype), tmpUD.Substring(comma + 1)); - //if first cell, overwrite none - if (result == EPinputtype.none && r == cr.r1 && c == cr.c1) - { - result = newresult; - } - else if (result != newresult) - { - result = EPinputtype.multi; - return result; - } - - } - else if (result != EPinputtype.none) - { - result = EPinputtype.multi; - return result; - } - } - - return result; - - } - public void SetupCellUserData() { for (int r = 0; r < Rows.Count; r++) @@ -2737,19 +2625,7 @@ namespace Volian.Controls.Library _rtf.Width = Cols[c].Width; _rtf.Rtf = rtfText; CellRange cr = GetCellRange(r, c); - - //C2025-023 - Electronic Procedures - Modifications to PROMS - //Userdata will now contain: height, EP Designation - string tmp = $"{cr.UserData}"; - int comma = tmp.IndexOf(','); - if (comma != -1) - { - cr.UserData = $"{_rtf.ContentsRectangle.Height},{tmp.Substring(comma + 1)}"; - } - else - { - cr.UserData = _rtf.ContentsRectangle.Height; - } + cr.UserData = _rtf.ContentsRectangle.Height; } } } diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 6b66749e..03901008 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -160,10 +160,10 @@ namespace Volian.Controls.Library foreach (KeyValuePair pair in _DicSingleRO) { string val = MyConfig.GetValue("EP", pair.Key); - if (val != null && val != "" && int.TryParse(val, out int n)) - pair.Value.SelectedValue = n; + if (val != null && val != "") + pair.Value.SelectedValue = val; else - pair.Value.SelectedValue = -1; + pair.Value.SelectedValue = ""; } foreach (KeyValuePair pair in _DicMultiRO) @@ -175,9 +175,8 @@ namespace Volian.Controls.Library { var selectedvalues = val.Split(multiseparator.ToCharArray()); foreach (string item in selectedvalues) - if (int.TryParse(item, out int n)) { - string text = ((List)pair.Value.DataSource).First(x => x.Value == n).Text; + string text = ((List)pair.Value.DataSource).First(x => x.Value == item).Text; pair.Value.SetSelected(pair.Value.FindString(text), true); } } From 6db9567eb9950e4bc46d8d03ef77088cccae4c58 Mon Sep 17 00:00:00 2001 From: mschill Date: Wed, 23 Apr 2025 07:42:28 -0400 Subject: [PATCH 06/30] C2025-023 - Electronic Procedures - Modifications to PROMS Working on Adding functionality for EP input for tables --- PROMS/Formats/epall/EPFormatTST1.xml | Bin 2646 -> 2890 bytes .../TablePropertiesControl.Designer.cs | 146 ++++++++++++ .../TablePropertiesControl.cs | 207 ++++++++++++++++++ .../TablePropertiesControl.resx | 120 ++++++++++ .../Volian.Controls.Library.csproj | 9 + .../frmEPAnnotationDetails.cs | 7 + 6 files changed, 489 insertions(+) create mode 100644 PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs create mode 100644 PROMS/Volian.Controls.Library/TablePropertiesControl.cs create mode 100644 PROMS/Volian.Controls.Library/TablePropertiesControl.resx diff --git a/PROMS/Formats/epall/EPFormatTST1.xml b/PROMS/Formats/epall/EPFormatTST1.xml index c0d3ce528e2e8aafd4a4c2ad0126c49dd47054d7..eb2888d1672028b5e7d5c1d11698140f0efa1592 100644 GIT binary patch delta 172 zcmca6a!PDN5Tm6lLjXewLn1>GLk>eKLncEWLjgl6P(+DA0Z3K?d8rJxKwb!gBZCuz z4}&X%CxahQPw3=AMqyV^xOxSKG=_YJBA_l;ut~{4-T6S-Oon8jSO8EaAIM5&NCBE& j1f)TxLv5WrkyBeZ1jYl~tj}P_z&Y8TS#@&|BMT=0#Slc1>hM5aVVyCKgTrANT{- diff --git a/PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs b/PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs new file mode 100644 index 00000000..89653836 --- /dev/null +++ b/PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs @@ -0,0 +1,146 @@ + +namespace Volian.Controls.Library +{ + partial class TablePropertiesControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lbl_Rows = new System.Windows.Forms.Label(); + this.lbl_Cols = new System.Windows.Forms.Label(); + this.NumRows = new System.Windows.Forms.NumericUpDown(); + this.NumCols = new System.Windows.Forms.NumericUpDown(); + this.dataview = new System.Windows.Forms.DataGridView(); + this.lbltitle = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.NumRows)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NumCols)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataview)).BeginInit(); + this.SuspendLayout(); + // + // lbl_Rows + // + this.lbl_Rows.AutoSize = true; + this.lbl_Rows.Location = new System.Drawing.Point(0, 34); + this.lbl_Rows.Name = "lbl_Rows"; + this.lbl_Rows.Size = new System.Drawing.Size(89, 13); + this.lbl_Rows.TabIndex = 0; + this.lbl_Rows.Text = "Number of Rows:"; + // + // lbl_Cols + // + this.lbl_Cols.AutoSize = true; + this.lbl_Cols.Location = new System.Drawing.Point(0, 56); + this.lbl_Cols.Name = "lbl_Cols"; + this.lbl_Cols.Size = new System.Drawing.Size(102, 13); + this.lbl_Cols.TabIndex = 1; + this.lbl_Cols.Text = "Number of Columns:"; + // + // NumRows + // + this.NumRows.Location = new System.Drawing.Point(114, 32); + this.NumRows.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NumRows.Name = "NumRows"; + this.NumRows.Size = new System.Drawing.Size(47, 20); + this.NumRows.TabIndex = 3; + this.NumRows.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NumRows.ValueChanged += new System.EventHandler(this.NumRows_ValueChanged); + // + // NumCols + // + this.NumCols.Location = new System.Drawing.Point(114, 54); + this.NumCols.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NumCols.Name = "NumCols"; + this.NumCols.Size = new System.Drawing.Size(47, 20); + this.NumCols.TabIndex = 4; + this.NumCols.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NumCols.ValueChanged += new System.EventHandler(this.NumCols_ValueChanged); + // + // dataview + // + this.dataview.AllowUserToAddRows = false; + this.dataview.AllowUserToDeleteRows = false; + this.dataview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataview.ColumnHeadersVisible = false; + this.dataview.Location = new System.Drawing.Point(3, 73); + this.dataview.Name = "dataview"; + this.dataview.Size = new System.Drawing.Size(240, 150); + this.dataview.TabIndex = 5; + // + // lbltitle + // + this.lbltitle.AutoSize = true; + this.lbltitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbltitle.Location = new System.Drawing.Point(3, 4); + this.lbltitle.Name = "lbltitle"; + this.lbltitle.Size = new System.Drawing.Size(0, 17); + this.lbltitle.TabIndex = 6; + // + // TablePropertiesControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.lbltitle); + this.Controls.Add(this.dataview); + this.Controls.Add(this.NumCols); + this.Controls.Add(this.NumRows); + this.Controls.Add(this.lbl_Cols); + this.Controls.Add(this.lbl_Rows); + this.Name = "TablePropertiesControl"; + this.Size = new System.Drawing.Size(319, 252); + ((System.ComponentModel.ISupportInitialize)(this.NumRows)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NumCols)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataview)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lbl_Rows; + private System.Windows.Forms.Label lbl_Cols; + private System.Windows.Forms.NumericUpDown NumRows; + private System.Windows.Forms.NumericUpDown NumCols; + private System.Windows.Forms.DataGridView dataview; + private System.Windows.Forms.Label lbltitle; + } +} diff --git a/PROMS/Volian.Controls.Library/TablePropertiesControl.cs b/PROMS/Volian.Controls.Library/TablePropertiesControl.cs new file mode 100644 index 00000000..9e02019a --- /dev/null +++ b/PROMS/Volian.Controls.Library/TablePropertiesControl.cs @@ -0,0 +1,207 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Volian.Controls.Library +{ + public partial class TablePropertiesControl : UserControl + { + private DataTable values; + private BindingSource bindingSource = null; + private int totalrows = 1; + private int totalcols = 1; + + //initialization / data will be: + // totalnumrows,totalnumcols;(row,col):value|(row,col):value... + public TablePropertiesControl(string title, string initialvalues) + { + InitializeComponent(); + + lbltitle.Text = title; + initializevalues(initialvalues); + bindingSource = new BindingSource(); + bindingSource.DataSource = values; + dataview.DataSource = bindingSource; + dataview.AutoGenerateColumns = false; + + Load += new EventHandler(FormLoad_setDefaults); + } + + //initialization / data will be: + // totalnumrows,totalnumcols;(row,col):value|(row,col):value... + private void initializevalues(string initialvalues) + { + values = new DataTable(); + + if (!string.IsNullOrEmpty(initialvalues)) + { + string[] grp = initialvalues.Split(';'); + string[] total = grp[0].Split(','); + initializedt(int.Parse(total[0]), int.Parse(total[1])); + + string[] ivs = grp[1].Split('|'); + //pair will be of format: + //(row,col):value + foreach (string pair in ivs) + { + Match m = Regex.Match(pair, @"\(([\d]),([\d])\):([\w])"); + if (m.Success) + { + int row = int.Parse(m.Groups[1].Value); + int col = int.Parse(m.Groups[2].Value); + string v = m.Groups[3].Value; + values.Rows[row][col] = v; + } + + } + } + else + { + initializedt(1, 1); + } + } + + //initialize the blank datatable + private void initializedt(int numrows, int numcols) + { + totalrows = numrows; + totalcols = numcols; + + BindingSource bindingSourceDropDown = new BindingSource(); + bindingSourceDropDown.DataSource = Enum.GetNames(typeof(EPinputtype)); + + var cName = new DataGridViewComboBoxColumn(); + cName.DataSource = bindingSourceDropDown; + + //foreach (string n in Enum.GetNames(typeof(EPinputtype))) cName.Items.Add(n); + cName.DefaultCellStyle.NullValue = "none"; + + for (int c = 0; c < totalcols; c++) + { + dataview.Columns.Add(cName); + values.Columns.Add(); + //dataview.Columns[c].CellTemplate = new DataGridViewComboBoxCell() { DataSource = bindingSourceDropDown }; + } + + //values.Columns.Add(new DataColumn() { DefaultValue = "none" }); + for (int rw = 0; rw < totalrows; rw++) + { + values.Rows.Add(); + } + + } + + void FormLoad_setDefaults(object sender, EventArgs e) + { + BindingSource bindingSourceDropDown = new BindingSource(); + bindingSourceDropDown.DataSource = Enum.GetNames(typeof(EPinputtype)); + + var cName = new DataGridViewComboBoxColumn(); + cName.DataSource = bindingSourceDropDown; + cName.DefaultCellStyle.NullValue = "none"; + + for (int c = 0; c < totalcols; c++) + { + dataview.Columns.RemoveAt(c); + dataview.Columns.Insert(c, cName); + } + } + + //Get storage string for storing table values in db + // data will be: + // totalnumrows,totalnumcols;(row,col):value|(row,col):value... + public string GetStorageValue() + { + StringBuilder bldr = new StringBuilder(); + bldr.Append($"{totalrows},{totalcols}"); + List points = new List(); + for (int rw = 0; rw < values.Rows.Count; rw++) + { + for (int col = 0; col < values.Columns.Count; col++) + { + if ((string) values.Rows[rw][col] != "none") + points.Add($"({rw},{col}):{values.Rows[rw][col]}"); + } + } + + + if (points.Count > 0) + { + bldr.Append(";"); + bldr.Append(string.Join("|", points)); + } + + return bldr.ToString(); + } + + private void NumRows_ValueChanged(object sender, EventArgs e) + { + int endNumRows = (int)NumRows.Value; + int curNumRows = totalrows; + + //remove rows till equal + while (curNumRows > endNumRows) + { + values.Rows.RemoveAt(curNumRows - 1); + curNumRows--; + } + //add rows till equal + while (curNumRows < endNumRows) + { + values.Rows.Add(); + curNumRows++; + } + + totalrows = endNumRows; + } + + private void NumCols_ValueChanged(object sender, EventArgs e) + { + int endNumCols = (int)NumCols.Value; + int curNumCols = totalcols; + + BindingSource bindingSourceDropDown = new BindingSource(); + bindingSourceDropDown.DataSource = Enum.GetNames(typeof(EPinputtype)); + + var cName = new DataGridViewComboBoxColumn(); + cName.DataSource = bindingSourceDropDown; + cName.DefaultCellStyle.NullValue = "none"; + + //remove cols till equal + while (curNumCols > endNumCols) + { + values.Columns.RemoveAt(curNumCols - 1); + dataview.Columns.RemoveAt(curNumCols - 1); + curNumCols--; + } + //add cols till equal + while (curNumCols < endNumCols) + { + values.Columns.Add(new DataColumn() { DefaultValue = "none"}); + if (dataview.Columns.Count > curNumCols) dataview.Columns.RemoveAt(curNumCols); + dataview.Columns.Add(cName); + + curNumCols++; + } + + totalcols = endNumCols; + + } + + public enum EPinputtype + { + none, + textbox, + checkbox + }; + + } + +} \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/TablePropertiesControl.resx b/PROMS/Volian.Controls.Library/TablePropertiesControl.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/PROMS/Volian.Controls.Library/TablePropertiesControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj index 87305e39..ae6f5783 100644 --- a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj +++ b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj @@ -383,6 +383,12 @@ + + UserControl + + + TablePropertiesControl.cs + Component @@ -528,6 +534,9 @@ ResXFileCodeGenerator Resources.Designer.cs + + TablePropertiesControl.cs + vlnExpander.cs Designer diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 03901008..80cf79f5 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -150,6 +150,13 @@ namespace Volian.Controls.Library panelEP.Controls.Add(lb, 1, panelEP.RowCount - 1); } + if (EP.type.ToLower() == "tableinput") + { + TablePropertiesControl tp = new TablePropertiesControl(EP.text, null); + panelEP.Controls.Add(tp, 1, panelEP.RowCount - 1); + + } + } Load += new EventHandler(Form1Load_setDefaults); From 62ae81c7b3ac8257e55b672a9cebfbc736dca094 Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 25 Apr 2025 15:07:29 -0400 Subject: [PATCH 07/30] C2025-023 - Electronic Procedures - Modifications to PROMS Working on Adding functionality for EP input for tables #2 --- .../TablePropertiesControl.Designer.cs | 5 +- .../TablePropertiesControl.cs | 107 ++++++++++++------ .../frmEPAnnotationDetails.cs | 20 +++- 3 files changed, 91 insertions(+), 41 deletions(-) diff --git a/PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs b/PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs index 89653836..b0d7d2c8 100644 --- a/PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs +++ b/PROMS/Volian.Controls.Library/TablePropertiesControl.Designer.cs @@ -98,12 +98,15 @@ namespace Volian.Controls.Library // this.dataview.AllowUserToAddRows = false; this.dataview.AllowUserToDeleteRows = false; + this.dataview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.dataview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataview.ColumnHeadersVisible = false; this.dataview.Location = new System.Drawing.Point(3, 73); this.dataview.Name = "dataview"; - this.dataview.Size = new System.Drawing.Size(240, 150); + this.dataview.Size = new System.Drawing.Size(316, 150); this.dataview.TabIndex = 5; + this.dataview.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataview_CellEndEdit); // // lbltitle // diff --git a/PROMS/Volian.Controls.Library/TablePropertiesControl.cs b/PROMS/Volian.Controls.Library/TablePropertiesControl.cs index 9e02019a..42afccfd 100644 --- a/PROMS/Volian.Controls.Library/TablePropertiesControl.cs +++ b/PROMS/Volian.Controls.Library/TablePropertiesControl.cs @@ -11,34 +11,48 @@ using System.Windows.Forms; namespace Volian.Controls.Library { + //C2025-023 Electronic Procedures + //Control for designating which cells in a table require EP input public partial class TablePropertiesControl : UserControl { + //defines the type of possible inputs from an EP viewer + public enum EPinputtype + { + none, + textbox, + checkbox + }; + private DataTable values; private BindingSource bindingSource = null; private int totalrows = 1; private int totalcols = 1; + public readonly string epname; + private bool IsInitializing; - //initialization / data will be: + //initialization / data will be in the format: // totalnumrows,totalnumcols;(row,col):value|(row,col):value... - public TablePropertiesControl(string title, string initialvalues) + public TablePropertiesControl(string name, string title, string initialvalues) { InitializeComponent(); + IsInitializing = true; + + epname = name; lbltitle.Text = title; initializevalues(initialvalues); - bindingSource = new BindingSource(); - bindingSource.DataSource = values; + bindingSource = new BindingSource(values, ""); dataview.DataSource = bindingSource; dataview.AutoGenerateColumns = false; Load += new EventHandler(FormLoad_setDefaults); } - //initialization / data will be: + //initialization / data will be in the format: // totalnumrows,totalnumcols;(row,col):value|(row,col):value... private void initializevalues(string initialvalues) { - values = new DataTable(); + values = new DataTable("values"); if (!string.IsNullOrEmpty(initialvalues)) { @@ -51,7 +65,7 @@ namespace Volian.Controls.Library //(row,col):value foreach (string pair in ivs) { - Match m = Regex.Match(pair, @"\(([\d]),([\d])\):([\w])"); + Match m = Regex.Match(pair, @"\(([\d]),([\d])\):([\w]+)"); if (m.Success) { int row = int.Parse(m.Groups[1].Value); @@ -61,6 +75,8 @@ namespace Volian.Controls.Library } } + + values.AcceptChanges(); } else { @@ -74,23 +90,11 @@ namespace Volian.Controls.Library totalrows = numrows; totalcols = numcols; - BindingSource bindingSourceDropDown = new BindingSource(); - bindingSourceDropDown.DataSource = Enum.GetNames(typeof(EPinputtype)); - - var cName = new DataGridViewComboBoxColumn(); - cName.DataSource = bindingSourceDropDown; - - //foreach (string n in Enum.GetNames(typeof(EPinputtype))) cName.Items.Add(n); - cName.DefaultCellStyle.NullValue = "none"; - for (int c = 0; c < totalcols; c++) { - dataview.Columns.Add(cName); - values.Columns.Add(); - //dataview.Columns[c].CellTemplate = new DataGridViewComboBoxCell() { DataSource = bindingSourceDropDown }; + values.Columns.Add(new DataColumn($"Column{c}") { DefaultValue = "none" }); } - //values.Columns.Add(new DataColumn() { DefaultValue = "none" }); for (int rw = 0; rw < totalrows; rw++) { values.Rows.Add(); @@ -103,22 +107,50 @@ namespace Volian.Controls.Library BindingSource bindingSourceDropDown = new BindingSource(); bindingSourceDropDown.DataSource = Enum.GetNames(typeof(EPinputtype)); - var cName = new DataGridViewComboBoxColumn(); - cName.DataSource = bindingSourceDropDown; - cName.DefaultCellStyle.NullValue = "none"; - + //in order to achieve a dropdown of possible values need + //to remove the auto-inserted columns + //that were auto-generated of type type text + //when values was bound to the datagrid for (int c = 0; c < totalcols; c++) { dataview.Columns.RemoveAt(c); + var cName = new DataGridViewComboBoxColumn(); + cName.DataSource = bindingSourceDropDown; + cName.DefaultCellStyle.NullValue = "none"; dataview.Columns.Insert(c, cName); } + + NumRows.Value = totalrows; + NumCols.Value = totalcols; + IsInitializing = false; + setDataViewtoValues(); + + } + + //set the display cells to match the values in the datatable for initialization + //and resize of the dataviewgrid + void setDataViewtoValues() + { + if (!IsInitializing) + { + for (int c = 0; c < totalcols; c++) + { + for (int rw = 0; rw < totalrows; rw++) + { + dataview.Rows[rw].Cells[c].Value = values.Rows[rw][c]; + } + } + } } //Get storage string for storing table values in db - // data will be: + // data will be returned in the format: // totalnumrows,totalnumcols;(row,col):value|(row,col):value... public string GetStorageValue() { + //force any in progress editing to commit. + ((BindingSource)dataview.DataSource).EndEdit(); + StringBuilder bldr = new StringBuilder(); bldr.Append($"{totalrows},{totalcols}"); List points = new List(); @@ -160,6 +192,7 @@ namespace Volian.Controls.Library } totalrows = endNumRows; + setDataViewtoValues(); } private void NumCols_ValueChanged(object sender, EventArgs e) @@ -170,10 +203,6 @@ namespace Volian.Controls.Library BindingSource bindingSourceDropDown = new BindingSource(); bindingSourceDropDown.DataSource = Enum.GetNames(typeof(EPinputtype)); - var cName = new DataGridViewComboBoxColumn(); - cName.DataSource = bindingSourceDropDown; - cName.DefaultCellStyle.NullValue = "none"; - //remove cols till equal while (curNumCols > endNumCols) { @@ -184,24 +213,28 @@ namespace Volian.Controls.Library //add cols till equal while (curNumCols < endNumCols) { - values.Columns.Add(new DataColumn() { DefaultValue = "none"}); + values.Columns.Add(new DataColumn($"Column{curNumCols + 1}") { DefaultValue = "none"}); if (dataview.Columns.Count > curNumCols) dataview.Columns.RemoveAt(curNumCols); + var cName = new DataGridViewComboBoxColumn(); + cName.DataSource = bindingSourceDropDown; + cName.DefaultCellStyle.NullValue = "none"; dataview.Columns.Add(cName); curNumCols++; } totalcols = endNumCols; - + setDataViewtoValues(); } - public enum EPinputtype + //set the datatable value to match the changed datagridview value + //for some reason despite being bound, does not automatically update + // (it may be that datatable as a bindingsource does not implement INotifyProperty + // and thus needs manually set like this) + private void dataview_CellEndEdit(object sender, DataGridViewCellEventArgs e) { - none, - textbox, - checkbox - }; - + values.Rows[e.RowIndex][e.ColumnIndex] = (string) dataview.Rows[e.RowIndex].Cells[e.ColumnIndex].Value; + } } } \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 80cf79f5..95253807 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -25,6 +25,7 @@ namespace Volian.Controls.Library private Dictionary _DicComboBox; private Dictionary _DicSingleRO; private Dictionary _DicMultiRO; + private TablePropertiesControl _TablePropControl; private string multiseparator = ","; @@ -150,10 +151,13 @@ namespace Volian.Controls.Library panelEP.Controls.Add(lb, 1, panelEP.RowCount - 1); } - if (EP.type.ToLower() == "tableinput") + //note will allow only 1 tableproperties control since it is a 1:1 match with the table that is in the step + if (EP.type.ToLower() == "tableinput" && _TablePropControl == null) { - TablePropertiesControl tp = new TablePropertiesControl(EP.text, null); - panelEP.Controls.Add(tp, 1, panelEP.RowCount - 1); + string val = MyConfig.GetValue("EP", EP.name); + _TablePropControl = new TablePropertiesControl(EP.name, EP.text, val); + _TablePropControl.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; + panelEP.Controls.Add(_TablePropControl, 1, panelEP.RowCount - 1); } @@ -265,6 +269,16 @@ namespace Volian.Controls.Library MyConfig.SetValue("EP", EP.name, newvalues); } } + else if (EP.type.ToLower() == "tableinput" && EP.name == _TablePropControl.epname) + { + string newvalues = _TablePropControl.GetStorageValue(); + string oldvalues = MyConfig.GetValue("EP", EP.name); + if (newvalues != oldvalues) + { + isDirty = true; + MyConfig.SetValue("EP", EP.name, newvalues); + } + } } if (isDirty) { From f273a8839a5350143c6da21974575e045fcc7721 Mon Sep 17 00:00:00 2001 From: mschill Date: Tue, 29 Apr 2025 10:50:59 -0400 Subject: [PATCH 08/30] C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) Overlapping of textbox controls --- .../Volian.Controls.Library/frmEPAnnotationDetails.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 95253807..540eb713 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -58,7 +58,6 @@ namespace Volian.Controls.Library RowCount += 1; panelEP.RowCount = RowCount; panelEP.Top = 20; - panelEP.RowStyles.Insert(0, new RowStyle(SizeType.AutoSize)); Label wlbl = new Label(); wlbl.Text = EP.label; @@ -91,11 +90,20 @@ namespace Volian.Controls.Library { tb.Multiline = true; tb.ScrollBars = RichTextBoxScrollBars.Both; + panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.Absolute, 50)); + } + else + { + panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.AutoSize)); } _DicStepRtb.Add(EP.name, tb); panelEP.Controls.Add(tb, 1, panelEP.RowCount - 1); } + else + { + panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.AutoSize)); + } if (EP.type.ToLower() == "logical") { CheckBox cb = new CheckBox(); From a417ddda855277c364fafff42e112f135b7d17da Mon Sep 17 00:00:00 2001 From: mschill Date: Wed, 30 Apr 2025 11:25:18 -0400 Subject: [PATCH 09/30] C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) RO Graphics Item Adjustment --- PROMS/Formats/epall/EPFormatTST1.xml | Bin 2890 -> 2884 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/PROMS/Formats/epall/EPFormatTST1.xml b/PROMS/Formats/epall/EPFormatTST1.xml index eb2888d1672028b5e7d5c1d11698140f0efa1592..1aa1e26efd44ea29bc6a291562fcb48201fea14b 100644 GIT binary patch delta 42 ocmX>lc0_E00@LJGY$}`GnB+JF%^3`kpb3NJWLwVNlMT4V0OZ06VgLXD delta 31 ncmX>ic1mo60uv+WWJ4C!%`QxG9Fw&;&rH_i7GvRM;9>v(i&h6R From e9e934cfb1bab26cfbb54e9b9c2c63be2c6814f4 Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 2 May 2025 11:46:55 -0400 Subject: [PATCH 10/30] C2025-023 - Electronic Procedures - Modifications to PROMS RO input functionality --- PROMS/Formats/epall/EPFormatTST1.xml | Bin 2884 -> 2952 bytes .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 3 +- .../Format/EPFormatFile.cs | 75 +++++++++++++++--- 3 files changed, 64 insertions(+), 14 deletions(-) diff --git a/PROMS/Formats/epall/EPFormatTST1.xml b/PROMS/Formats/epall/EPFormatTST1.xml index 1aa1e26efd44ea29bc6a291562fcb48201fea14b..cd99e3c7034a73022cec70157ef5de85e9c9a58b 100644 GIT binary patch delta 88 zcmX>i)*-&Zfm61KA(f$op_HMBA&()MA)g_Kp_svzL5abUL5IO tmpEP = EP.validforsteptypes(); + if (tmpEP.Any(steptypelist.Contains)) filtered.Add(EP); } diff --git a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs index 75595fe1..456f043d 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs @@ -272,6 +272,7 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _text, "@text"); } } + //roid of group item that individual sub-items will be the choices for the list/combobox for ROSINGLE and ROMULTI private LazyLoad _rosource; public string rosource { @@ -280,6 +281,22 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _rosource, "@rosource"); } } + //the columns in the RO that will be included in the exports + private LazyLoad _returncols; + public List returncols() + { + try + { + string tmp = LazyLoad(ref _returncols, "@returncols"); + return tmp.Split(',').Select(p => p.Trim()).ToList(); + } + catch + { + throw new ArgumentException($"Error in returncols for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}"); + } + } + + //number of lines for a multi-line text box to span private LazyLoad _numlines; public int numlines { @@ -295,27 +312,26 @@ namespace VEPROMS.CSLA.Library } //step types that the EPForma Item is valid for (as a list of types) private LazyLoad _validforsteptypes; - public List validforsteptypes + public List validforsteptypes() { - get + try { - try - { - string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes"); - return tmp.Split(',').Select(p => p.Trim()).ToList(); - } - catch - { - throw new ArgumentException($"Error in validforsteptypes for EP file: {((EPFormatFile) MyParentFormat).Name}.xml, field: {name}"); - } + string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes"); + return tmp.Split(',').Select(p => p.Trim()).ToList(); + } + catch + { + throw new ArgumentException($"Error in validforsteptypes for EP file: {((EPFormatFile) MyParentFormat).Name}.xml, field: {name}"); } } public bool IsValidForStepType(string StepType) { - return validforsteptypes.Contains(StepType); + List tmp = validforsteptypes(); + return tmp.Contains(StepType); } //return a list of items based on the ROsource specified in the EPFormat File + //will return all RO items under the Group that's roid = the rosource public List getROList(AnnotationInfo currAnn, bool includeblank) { if (string.IsNullOrEmpty(rosource)) @@ -329,7 +345,7 @@ namespace VEPROMS.CSLA.Library string roid = FormatRoidKey(rosource, false); rochild[] children = lookup.GetRoChildrenByRoid(roid); - List mylist = children.Select(x => new ROListItem(x.title, x.roid)).ToList(); + List mylist = children.Select(x => new ROListItem(x.title, x.roid.Substring(0, 12))).ToList(); if (includeblank) mylist.Insert(0, new ROListItem("", "")); @@ -340,6 +356,39 @@ namespace VEPROMS.CSLA.Library throw new ArgumentException($"Error in rosource for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}"); } } + + + //return a list of values for the specified ROID + //given the EP items return columns + //will return all RO items under the Group that's roid = the rosource + public List getROValuesList(AnnotationInfo currAnn, string roid) + { + if (string.IsNullOrEmpty(roid)) + return new List(); + + List values = new List(); + DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion; + ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion); + rochild ro = lookup.GetRoChild(roid); + + List rtncols = returncols(); + + if (rtncols.Count == 0) + { + values.Add(ro.value); + } + else + { + foreach (string rcol in rtncols) + { + rochild ro_indiv = Array.Find(ro.children, x => x.appid.EndsWith($".{rcol}")); + if (ro_indiv.value != null) values.Add(ro_indiv.value); + } + } + + return values; + + } } #endregion //C2025-023 - Electronic Procedures - Modifications to PROMS From 637cbd9954bd615fc03deefaefbd7dc4005e283f Mon Sep 17 00:00:00 2001 From: mschill Date: Thu, 8 May 2025 10:18:50 -0400 Subject: [PATCH 11/30] C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) RO/table entry - Dev Testing related changes --- PROMS/Formats/epall/EPFormatTST1.xml | Bin 2952 -> 3266 bytes .../Format/EPFormatFile.cs | 6 +++++- .../frmEPAnnotationDetails.cs | 20 +++++++++++------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/PROMS/Formats/epall/EPFormatTST1.xml b/PROMS/Formats/epall/EPFormatTST1.xml index cd99e3c7034a73022cec70157ef5de85e9c9a58b..ac38208e776a535ad21e20d7868c0df4bcfe85ba 100644 GIT binary patch delta 58 zcmeAWKP0(f5+i30Ln1>GLn=eg=9!E)IVUSHEAR#bxycMA44Dl140)4Xx$GxvaSAY+ NPEKSNoqUFC4*=d{5DWkS delta 20 ccmX>k*&)7R6653yW}eLp7_V?nUc(~>08y_8S^xk5 diff --git a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs index 456f043d..0d2253d2 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/EPFormatFile.cs @@ -288,7 +288,11 @@ namespace VEPROMS.CSLA.Library try { string tmp = LazyLoad(ref _returncols, "@returncols"); - return tmp.Split(',').Select(p => p.Trim()).ToList(); + + if (string.IsNullOrEmpty(tmp)) + return new List(); + else + return tmp.Split(',').Select(p => p.Trim()).ToList(); } catch { diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 540eb713..8017d256 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -47,7 +47,7 @@ namespace Volian.Controls.Library myEPFields = _CurrentAnnotation.MyItem.GetValidEPFields(_CurrentAnnotation.TypeID); MyConfig = new AnnotationConfig(currAnn.Config); - int MaxCharsInLabel = myEPFields.Max(x => x.label.Length); + int MaxCharsInLabel = myEPFields.Where(y => y.type.ToLower() != "tableinput").Max(x => x.label.Length); //font size 8 - make labels slightly bigger than largest label panelEP.ColumnStyles[0].SizeType = SizeType.Absolute; panelEP.ColumnStyles[0].Width = (8 * MaxCharsInLabel) + 5; @@ -59,12 +59,16 @@ namespace Volian.Controls.Library panelEP.RowCount = RowCount; panelEP.Top = 20; - Label wlbl = new Label(); - wlbl.Text = EP.label; - wlbl.Visible = true; - wlbl.TextAlign = ContentAlignment.MiddleLeft; - wlbl.Anchor = AnchorStyles.Left | AnchorStyles.Top; - panelEP.Controls.Add(wlbl, 0, panelEP.RowCount - 1); + if (EP.type.ToLower() != "tableinput") + { + Label wlbl = new Label(); + wlbl.Text = EP.label; + wlbl.Visible = true; + wlbl.TextAlign = ContentAlignment.MiddleLeft; + wlbl.Anchor = AnchorStyles.Left | AnchorStyles.Top; + wlbl.Width = (8 * MaxCharsInLabel) + 5; + panelEP.Controls.Add(wlbl, 0, panelEP.RowCount - 1); + } if (EP.type.ToLower() == "text") { @@ -163,7 +167,7 @@ namespace Volian.Controls.Library if (EP.type.ToLower() == "tableinput" && _TablePropControl == null) { string val = MyConfig.GetValue("EP", EP.name); - _TablePropControl = new TablePropertiesControl(EP.name, EP.text, val); + _TablePropControl = new TablePropertiesControl(EP.name, EP.label, val); _TablePropControl.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; panelEP.Controls.Add(_TablePropControl, 1, panelEP.RowCount - 1); From 3e53ec91914d77617b9cfe49acd2207a66841c62 Mon Sep 17 00:00:00 2001 From: mschill Date: Tue, 13 May 2025 07:48:50 -0400 Subject: [PATCH 12/30] C2025-023 - Electronic Procedures - Modifications to PROMS Small change to handle removed items that were selected. --- PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 8017d256..13077a6f 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -183,7 +183,7 @@ namespace Volian.Controls.Library foreach (KeyValuePair pair in _DicSingleRO) { string val = MyConfig.GetValue("EP", pair.Key); - if (val != null && val != "") + if (!string.IsNullOrEmpty(val) && pair.Value.Items.OfType().Any(x=> x.Value == val)) pair.Value.SelectedValue = val; else pair.Value.SelectedValue = ""; @@ -199,8 +199,8 @@ namespace Volian.Controls.Library var selectedvalues = val.Split(multiseparator.ToCharArray()); foreach (string item in selectedvalues) { - string text = ((List)pair.Value.DataSource).First(x => x.Value == item).Text; - pair.Value.SetSelected(pair.Value.FindString(text), true); + string text = ((List)pair.Value.DataSource).Find(x => x.Value == item)?.Text; + if (!string.IsNullOrEmpty(text)) pair.Value.SetSelected(pair.Value.FindString(text), true); } } From 31f608a9ec227609a96eeb935f06d658ee3099ba Mon Sep 17 00:00:00 2001 From: mschill Date: Wed, 14 May 2025 15:05:58 -0400 Subject: [PATCH 13/30] C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) Change to not show open button if using a format that is not attached to an EP format file. --- PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs | 7 +++++++ .../Volian.Controls.Library/AnnotationDetails.Designer.cs | 2 +- PROMS/Volian.Controls.Library/AnnotationDetails.cs | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index c8f681e0..a0dbb7a5 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -2152,6 +2152,13 @@ namespace VEPROMS.CSLA.Library return filtered; } + // C2025-023 - Electronic Procedures - Modifications to PROMS + //return true if any EP Format files attached to the item's + public bool HasEPformat() + { + return ActiveFormat.PlantFormat.EPFormatFiles.Count > 0; + } + // determine if the the current step should automatically be placed on the Continuous Action Summary // Note, this logic only checks the format setting of the step. We will check the value of the Tag's Check Box later on. public bool IncludeOnContActSum diff --git a/PROMS/Volian.Controls.Library/AnnotationDetails.Designer.cs b/PROMS/Volian.Controls.Library/AnnotationDetails.Designer.cs index 68e786bb..19adb53a 100644 --- a/PROMS/Volian.Controls.Library/AnnotationDetails.Designer.cs +++ b/PROMS/Volian.Controls.Library/AnnotationDetails.Designer.cs @@ -155,7 +155,7 @@ namespace Volian.Controls.Library this.btnEPAnnotation.Margin = new System.Windows.Forms.Padding(2); this.btnEPAnnotation.Name = "btnEPAnnotation"; this.btnEPAnnotation.Size = new System.Drawing.Size(53, 20); - this.superTooltip1.SetSuperTooltip(this.btnEPAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Remove Annotation", "", "This will remove the currently selected annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); + this.superTooltip1.SetSuperTooltip(this.btnEPAnnotation, new DevComponents.DotNetBar.SuperTooltipInfo("Open Annotation", "", "This will open Electronic Procedure Details for this Annotation.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.btnEPAnnotation.TabIndex = 5; this.btnEPAnnotation.Text = "Open"; this.btnEPAnnotation.Visible = false; diff --git a/PROMS/Volian.Controls.Library/AnnotationDetails.cs b/PROMS/Volian.Controls.Library/AnnotationDetails.cs index 0d047caa..c486207d 100644 --- a/PROMS/Volian.Controls.Library/AnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/AnnotationDetails.cs @@ -340,7 +340,7 @@ namespace Volian.Controls.Library if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0)) { CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index]; - if (CurrentAnnotation.MyAnnotationType.IsEPAnnotationType) + if (CurrentAnnotation.MyAnnotationType.IsEPAnnotationType && CurrentItem.HasEPformat()) btnEPAnnotation.Visible = true; } else From 04a2da4371d4d993a669bda2ccede492c4df7940 Mon Sep 17 00:00:00 2001 From: mschill Date: Thu, 15 May 2025 10:45:52 -0400 Subject: [PATCH 14/30] C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) Change to not show open button if is an invalid step type --- PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs | 11 +++++++---- PROMS/Volian.Controls.Library/AnnotationDetails.cs | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index a0dbb7a5..64be4c7e 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -2117,11 +2117,14 @@ namespace VEPROMS.CSLA.Library public EPFields GetValidEPFields(int AnnTypeID) { EPFields filtered = new EPFields(); - EPFields unfiltered = ActiveFormat.PlantFormat.EPFormatFiles.First(x => x.AnnotationTypeID == AnnTypeID).FieldList; + + if (ActiveFormat.PlantFormat.EPFormatFiles.Count == 0) return filtered; + if ((int)MyContent.Type < 20000) return filtered; + EPFields unfiltered = ActiveFormat.PlantFormat.EPFormatFiles.FirstOrDefault(x => x.AnnotationTypeID == AnnTypeID)?.FieldList; + if (unfiltered == null) return filtered; //Build list of step type and step type of it's parents List steptypelist = new List(); - if ((int)MyContent.Type < 20000) return filtered; int stepType = ((int)MyContent.Type) % 10000; StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList; if (stepType > sdlist.MaxIndex) @@ -2154,9 +2157,9 @@ namespace VEPROMS.CSLA.Library // C2025-023 - Electronic Procedures - Modifications to PROMS //return true if any EP Format files attached to the item's - public bool HasEPformat() + public bool HasEPformat(int AnnTypeID) { - return ActiveFormat.PlantFormat.EPFormatFiles.Count > 0; + return GetValidEPFields(AnnTypeID).Count > 0; } // determine if the the current step should automatically be placed on the Continuous Action Summary diff --git a/PROMS/Volian.Controls.Library/AnnotationDetails.cs b/PROMS/Volian.Controls.Library/AnnotationDetails.cs index c486207d..d001d92e 100644 --- a/PROMS/Volian.Controls.Library/AnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/AnnotationDetails.cs @@ -340,7 +340,7 @@ namespace Volian.Controls.Library if ((_Annotations != null) && (dgAnnotations.Rows.Count > 0)) { CurrentAnnotation = _Annotations[dgAnnotations.CurrentRow.Index]; - if (CurrentAnnotation.MyAnnotationType.IsEPAnnotationType && CurrentItem.HasEPformat()) + if (CurrentAnnotation.MyAnnotationType.IsEPAnnotationType && CurrentItem.HasEPformat(CurrentAnnotation.MyAnnotationType.TypeID)) btnEPAnnotation.Visible = true; } else From f49c888307429dbd8e42203a1bb641e917286f92 Mon Sep 17 00:00:00 2001 From: mschill Date: Thu, 15 May 2025 10:57:28 -0400 Subject: [PATCH 15/30] C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) Changed linq to use builtin Find method per code analyzer recommendation --- PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 64be4c7e..2dcfd7c5 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -2120,7 +2120,7 @@ namespace VEPROMS.CSLA.Library if (ActiveFormat.PlantFormat.EPFormatFiles.Count == 0) return filtered; if ((int)MyContent.Type < 20000) return filtered; - EPFields unfiltered = ActiveFormat.PlantFormat.EPFormatFiles.FirstOrDefault(x => x.AnnotationTypeID == AnnTypeID)?.FieldList; + EPFields unfiltered = ActiveFormat.PlantFormat.EPFormatFiles.Find(x => x.AnnotationTypeID == AnnTypeID)?.FieldList; if (unfiltered == null) return filtered; //Build list of step type and step type of it's parents From e470ef055308227be483b47d42345a783c052369 Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Tue, 20 May 2025 16:53:16 -0400 Subject: [PATCH 16/30] C2025-023-New-EP-Format-File --- PROMS/Formats/Formats.csproj | 4 ++++ PROMS/Formats/epall/EPFormatTST2.xml | Bin 0 -> 3290 bytes PROMS/Formats/epall/EPFormatTST3.xml | Bin 0 -> 3832 bytes PROMS/Formats/epall/EPFormatTST4.xml | Bin 0 -> 5010 bytes PROMS/Formats/fmtall/EPTST2all.xml | Bin 0 -> 62980 bytes 5 files changed, 4 insertions(+) create mode 100644 PROMS/Formats/epall/EPFormatTST2.xml create mode 100644 PROMS/Formats/epall/EPFormatTST3.xml create mode 100644 PROMS/Formats/epall/EPFormatTST4.xml create mode 100644 PROMS/Formats/fmtall/EPTST2all.xml diff --git a/PROMS/Formats/Formats.csproj b/PROMS/Formats/Formats.csproj index dccc2562..8ca8ceeb 100644 --- a/PROMS/Formats/Formats.csproj +++ b/PROMS/Formats/Formats.csproj @@ -93,6 +93,9 @@ + + + Designer @@ -189,6 +192,7 @@ + diff --git a/PROMS/Formats/epall/EPFormatTST2.xml b/PROMS/Formats/epall/EPFormatTST2.xml new file mode 100644 index 0000000000000000000000000000000000000000..71086ecb16dc9780812fbc11d60572f18794375c GIT binary patch literal 3290 zcmd^>U2jrB5QgX4#Q(5*rHNIbR%3z^O0hOUY6>*o(!+;Dq=W;s{qySc&K^Q3V(5)g z49Q{7na}s#nc4mEy=W!7wr@7HU~}u*#8MmBrH$;ZJ+{0(w;cZg$;cAEcaV;(@6wq~ zt!H~^y>gwBy|ah*z>4;WuY2|hZAE^$%MFVzQ=e0i(nPExN)1l zeL)(mKn?{vU?q)nG=|u;@e-`cbLx4=I4SGYo*_|`g#3e*(HB1D5q+lqCQTt0?hcyD zd4Zrx_U~`y7&1w~vPe`(g=&apAW|DFU1voyVZA`sMP~#9VoEGd!9ULQn&fq8HGG{| z9h;UlU1#XF@~j;YifA7)&V*T>6TE4k2CM@1;yU4bhiDW26>X7)V$XRKZ=K9fioA>O zMNX;5Yp&S5*c$b@d+w6MI?k$n&af%sH4%ku`OP>)Z5seX43WVim=_3`1?Du4&phT)#rZ`gH0ysrpdJX zy{VH{XQ!smjP=aBRHsUusH%q5KK+%2dUe(2c8&fChLz{`lUj2=r3-}YW^J~dc~7;N zD@`VhJnK|Vot+6d;|ZVRK9U1>{EyFl-lD#4Iy!;leQAiby0uK#9cJ-%b6OpNxouZo zPyGz(^0p&p8-CL{_B+q-xqZFD?Mr*}pL5%w@-}zb{kXkbw+H`lRTk;|yEpZCgZ~L= C{1V&% literal 0 HcmV?d00001 diff --git a/PROMS/Formats/epall/EPFormatTST3.xml b/PROMS/Formats/epall/EPFormatTST3.xml new file mode 100644 index 0000000000000000000000000000000000000000..c2d23a6171b3a2bbe0692fed2f3cbce79444f910 GIT binary patch literal 3832 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 Date: Wed, 21 May 2025 09:34:07 -0400 Subject: [PATCH 17/30] C2025-023 - Electronic Procedures - Modifications to PROMS Simplified to textboxes as RTF was impacting possible tags / directories --- .../frmEPAnnotationDetails.cs | 34 ++++++------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs index 13077a6f..a641fd1c 100644 --- a/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs +++ b/PROMS/Volian.Controls.Library/frmEPAnnotationDetails.cs @@ -20,7 +20,7 @@ namespace Volian.Controls.Library private AnnotationConfig MyConfig; private StepTabRibbon _MyStepTabRibbon; - private Dictionary _DicStepRtb; + private Dictionary _DicTB; private Dictionary _DicCheckBox; private Dictionary _DicComboBox; private Dictionary _DicSingleRO; @@ -32,7 +32,7 @@ namespace Volian.Controls.Library public frmEPAnnotationDetails(AnnotationInfo currAnn) { InitializeComponent(); - _DicStepRtb = new Dictionary(); + _DicTB = new Dictionary(); _DicCheckBox = new Dictionary(); _DicComboBox = new Dictionary(); _DicSingleRO = new Dictionary(); @@ -72,28 +72,20 @@ namespace Volian.Controls.Library if (EP.type.ToLower() == "text") { - StepRTB tb = new StepRTB(); - tb.Font = tb.FormatFont = new Font("Arial", 8); - tb.FieldToEdit = E_FieldToEdit.PSI; //use same right click menu as PSI + TextBox tb = new TextBox(); + tb.Font = tb.Font = new Font("Arial", 8); tb.BorderStyle = BorderStyle.FixedSingle; //aligning to both left and right stretches the textbox to the width of the form tb.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; - tb.Enter += new System.EventHandler(this.FieldStepRTB_Enter); - - string val = MyConfig.GetValue("EP", EP.name).Replace("\\u8209?", "-"); - DisplayText dt = new DisplayText(val, new VE_Font("Arial", 10, E_Style.None, 12), false); - StringBuilder sb = new StringBuilder(); - sb.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Arial;}"); - sb.Append(@"{\f1\fnil\fcharset0 Arial;}}{\colortbl ;\red255\green0\blue0;}"); //C2017-036 changed to just Arial because Microsoft removed Arial Unicode MS with Word16 - sb.Append(@"\viewkind4\uc1\pard\sl-240\slmult0\fs" + (int)(this.Font.SizeInPoints * 2) + " " + dt.StartText + @"}"); - tb.Rtf = sb.ToString(); + string val = MyConfig.GetValue("EP", EP.name).Replace("\\u8209?", "-").Replace(@"\u9586?", @"\"); + tb.Text = val; tb.Visible = true; tb.Height = EP.numlines * tb.Font.Height + 1 + tb.Margin.Vertical; tb.MinimumSize = new Size(0, EP.numlines * tb.Font.Height + 1 + tb.Margin.Vertical); if (EP.numlines > 1) { tb.Multiline = true; - tb.ScrollBars = RichTextBoxScrollBars.Both; + tb.ScrollBars = ScrollBars.Both; panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.Absolute, 50)); } else @@ -101,7 +93,7 @@ namespace Volian.Controls.Library panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.AutoSize)); } - _DicStepRtb.Add(EP.name, tb); + _DicTB.Add(EP.name, tb); panelEP.Controls.Add(tb, 1, panelEP.RowCount - 1); } else @@ -226,9 +218,8 @@ namespace Volian.Controls.Library { if (EP.type.ToLower() == "text") { - StepRTB cur = _DicStepRtb[EP.name]; - string rtf = cur.Rtf; - string newval = DisplayText.StaticStripRtfCommands(rtf, false); + TextBox cur = _DicTB[EP.name]; + string newval = cur.Text; string oldval = MyConfig.GetValue("EP", EP.name); if (oldval != newval) { @@ -318,11 +309,6 @@ namespace Volian.Controls.Library //remove events so no memory loss private void frmEPAnnotationDetails_FormClosing(object sender, FormClosingEventArgs e) { - foreach (StepRTB tb in _DicStepRtb.Values) - { - tb.Enter -= FieldStepRTB_Enter; - } - foreach (ListBoxMulti lb in _DicMultiRO.Values) { lb.Dispose(); From ce92031ff7ba44807e5d4bd6fb57b7f6177b65de Mon Sep 17 00:00:00 2001 From: John Jenko Date: Thu, 22 May 2025 15:05:27 -0400 Subject: [PATCH 18/30] F2024-089 - Barakah requested a newly formatted Cover page section style to make room for new Corporate Logo. --- PROMS/Formats/fmtall/BNPP1Newall.xml | Bin 230068 -> 243444 bytes PROMS/Formats/fmtall/BNPP1all.xml | Bin 184796 -> 184806 bytes PROMS/Formats/fmtall/BNPP2all.xml | Bin 198526 -> 199004 bytes PROMS/Formats/fmtall/BNPPalrall.xml | Bin 236750 -> 236928 bytes PROMS/Formats/fmtall/BNPPbckall.xml | Bin 163138 -> 163138 bytes PROMS/Formats/genmacall/BNPP1.svg | Bin 25556 -> 25598 bytes PROMS/Formats/genmacall/BNPP1new.svg | Bin 52496 -> 52496 bytes PROMS/Formats/genmacall/BNPP2.svg | Bin 36814 -> 36856 bytes PROMS/Formats/genmacall/BNPPalr.svg | Bin 13518 -> 14898 bytes PROMS/Formats/genmacall/BNPPbck.svg | Bin 3934 -> 3976 bytes 10 files changed, 0 insertions(+), 0 deletions(-) diff --git a/PROMS/Formats/fmtall/BNPP1Newall.xml b/PROMS/Formats/fmtall/BNPP1Newall.xml index a8c9c4b5f535bb2fd8ee24dd6873ab23825a1015..95276f4217c984caebcdebd59c33df3208539663 100644 GIT binary patch delta 3242 zcmdUyU1(cn7{}l9zRfBUQqnB;!_b{1-I|QHrqR* zR*Y}5o~-ht0sqOi25~eBXhOh;$6L}c#&+YE(YOCI2(o%bTeIAYj@qQw;|DZB1;)!Wzdmz{rAvcX^G=l^f#V^xZ^9A(dQ zgQLuTfQnT-*F9t@d5Nc`))R4myzKd~$4(y+wl?t-W5 zeF?YpqGFcEqR-*3Xb1DbgPiU@kF&UG2R}ZR;7{)uUKr~-B;j%bD|S>F=Y{UmI7^w; zI>@*6zU9*KaPh_Yc-m;^6CFuj=$*q=#a!*-bAi61h>pfY|0*Bjrbt4BtZFav57bdy z!QFLByrvz(m13LnEv#z0B}wPQ9SZLVdidDPozpqvjhrFna|XR@ktInAe)h2h#B_E) zQ%C}i>1>)AL;)qvet;uhwhewXSQg(&$>UO^1lcHShD@A&4yTrAx1__lM&^U7OZ2*w zf?yv@fxJxLgt-CM&Qc@}=l-N;7=8!&FZjrrb%a{>=-Jp%d2poM4=?qJo@i@B(-~2;c8M+zXS)rf8d&{)boLwo{NSfv;sSG~rPb9ESC=y_y_VJ|-_dq>Wrc>Y%(|fTn>pAjAb9E~4cCiw0LPJz12B$s zHir^fr6ExL=;H&c^ipy3M}bDR;u~nXMZyiXpr?vNto?s_rOGwMd0c$Gyo(0Y+wG! zuk?$C{0L+3#{S1`^~`!ltMjfW8hEqR3U5!~1#x_U$@wvzop-xr{KrCu$z|G;e{hgZ Vxr7{7z0I&kWr6&)z3j98{{YK{Mlk>Y delta 623 zcmezJmTyZd-vSXcBFcl_H6?nO!8$p>VlCO>do02DD{FrVCLmpu7}QxA}53glgs z6rL>SB{jK0&SLUC=XpR;GY0d`jV@;yflPCtgFpr>a4Q1xfT06ce#fI|@*MXtu!sdX z0OCB-SdAGBA@ZB=cxW+#xggEL&2nDta$bzv<-C|YwoHEz#B4Qv!9OOK?K3i%SMf}5 z_|2p;eG@mc1hXlF<@82T=EKt`@Gz@@c^mnd&8I&QVAh!~AjGUN{enD@XcJ&oVm4S{ls*MBu&FYVVwPhxm>wv_{1`|n$}wA_TB$a@ftQ(O`ad~l pt?dg+nZsD87nn12;4kRQvRKuk}L>dYt^maq9Wl}V>6rq^fwU66HgJ^6mf?QgIc=p`d z0>M8Z%C?}O2pWn$rUs{orjA!I+J5ih_dMt2eX99CYW{<&sN*>!5`4*EPsX%3oh)45 zW)Tt-JTIZ2$sDfPnn4d&Qdp9PHr{>zk_j!!(HtJwn@2>NTC`#1A%(QG7}Etj3X7=% zEPj??uv)})JKwl0Vn}#RikdvLF``8E+av=eoGQMv6|2yW=i96Bb$mrPG}kfZrPb7A zas#@It37<1xS;M}*qhQ04*6{%z`1!0^36d=ZELozcMtvvI*(n189qWEuUy=BXwkuL nw?pS_89@=FQ^u=0mBGJ;`T~M%RWL?l83X(|L8P&^h5hYcslIJ} delta 361 zcmaF1nETFR?uHh|EldxB7>%Ys3}UKfHefKCo*2xOJiR85NpAX;U?zd-MwLuL)21=8 zOxFu#IyU`42vY>JA%ofUk5ie1K|)`c%^57GxuojHZ`GGT8wwwAj8ql1Z8o#F`Fd9iKiYnn?q!<9IaFZJ>^$ z(M;AL9XVjdzOhW~5XC^&`RQu$Og3PxK;H4`Itfe?%%%*M)Bh(j9iGmW$fN@18749{ zPgihZQkZ@#kx2|6U diff --git a/PROMS/Formats/fmtall/BNPP2all.xml b/PROMS/Formats/fmtall/BNPP2all.xml index bd86f5449289fbc107d29fad6e70ca9921f34501..44e5776885634668ca497557c74a0ceb46c4a554 100644 GIT binary patch delta 1160 zcmb7@KWI~76vf{=FRfBSz%)ZBA%;>g#L_15X&Q}MG**W~k~WR0HnH|~sDmgXLS5{T zK}4)J;t{D^(LvD`3V~AkXDtX~adW7r@6jpJHWAePcNX?g~^aRH8JuhljtC$PWx z!XU!*PUi*8N+~`* z$f2vOS;|$$(?gH(&r}M%GL=joKFO`#jD741I?I|y_HNq7WxSsbONQ^~C5P7Vzg0yW zIrNyKdi-uKUximzE8GnK^NHV@|ME*{2e~jLi?d+J;>bQ!L++|cW_%qhCZ?Ys{cse= s-Fw5Yzrj|$%hKegEXCh$C0TU+&)GhoQvRsk!*zOhaIEz38os~$1u(T|DF6Tf delta 782 zcmaKqze^i&7{>3OYsDc*t5QV55hRGT5-+D-zD+e;DL4ty!x&99cd-cwtzupK1BVVS zEnHU&NOq=w#r+=FbB94W*^|w}6MC=LC0L5v%ja$u5dNiWkOi6)_xQU2YdK z9U&@yTELK=;kQLR;8B2%$g#TO!EES$QG8rZc1y@M;jc=qlY_@lk>cwm**5gt+Ntp2cB+}7n&Psq}v!X4>tq4bH znP^USML1zaTTb5-n6k7T&FQKl(X430ad=uqO1HyT>!DSXi#)6AcequPpABz*XlJQ7-IyNZGQ%C ziHnk0J!V&pVcmyj*%%)ou5APx$oQ37CRv`#$WV) zJm);mIp;nvw?8lreQ2EAQzTw~4UB68>&dJ@{?fChRwx@CR!@4w!Or+)#)ilLdY0R{XqdRNH&GeA~2X z<8z8)$41*p{9{WuTFnJGyH3T))B+r_@6WU|cPu5IXvxPy$Bj&txfbotIlUUj@9fKz z#1?33m^tSV-rcfWapQ1H9`-i}u)=)={cRaawYGCNP>6HxkF=c{ZD-t2DuQ`D1!r2y z@mIB1@!*tOLRB0}D@@zL`q(};i09I(aKvE5`S#V=-62L!8{w2lWuf}_QJ0~`K3tq1siaHGCp#p^Do}q~s-yY-CT%kgc};O$(1%vy zYcPUGf5U9t4Sh)Ejm5QhU|YlU)RD+wCvZ#DlvsP}8R7Itw0Npx9m}ARw9)&EX=-cO zi`SY8v?=`27oc+oP32y^*tnZstC7|VV@_7mqbM#7KD#b}KW*yOhO%+}vpCZ{1J(L~ z5~K#F48_{>o}OuWUBR7gHVkc0@y3>mL{Sz@I@isuBQ)?fTIZo|5Okw;l=h@uRZUN} zgcJ;Q%AS+85!~BZir3p!O5mc2%E9ZM19-IKDWW9jSH2@}XHSGu&h+)p3T455tYT&r zWEnKW6;o??-br8AOTI28?CavCt)McG=sL!Ci9i_?(&X0&B^@@3;4xkz=8y1PF_aEj zidzh~LXOBP2Zsn=;1*#V<;TT*IqX!NNsdB_M+{fOW^wN zY0kVf&J~B7TmvPdBL$MmA1jI;KA`-rF}_xh{tp3?$X^yNiTq{ZV)FZF7HneJ47H2; ze#!(T+S#2VsCj_4E8~3aQurjYmjg?pdO5I|Xus$-gNaPwgc<4==^mfpCNdtHqX*M{ zb%L9h!Y9$a99R;M1& delta 2819 zcmdT^ZA_C_6u$4hrGRMpYM~&OidBl%(!OnJE6Avzd}AqdZe}qh6Gewg2y@#%oF@B2 zoO+yh*`^dFlPEvxa2B0GHkWK!j6t_0OZdaKWLp*!(U|?*cJAAj7SS#HwJc5A_uQWI zoaa2xx$nTInmgAt;ax>MR7%yWs)(O-kVax8Z;*|ogvi82Z1`&=Zz?fHAgS_UtZ2ze zx|CO+pj!C4XfS&_*-H+PUF0Bn9djE=9Sp11K~3dS@LN=%b!a6QJY3(J=_4(qm2Ah1 zHYLlKvT=nY)*;%_xuBmNhKh9{djk+`Qt{Dgng{pOE5Ki(j{+7%0XxWM5iq?jt>Nu;W;>N)np4{60#s^ zxNOy7-eFeyB)6QwTVik14-w`X*qg0CTwS4fva zMNVqsMk>0KYyAAt_cRASFKc=N$vsa3k%V3u{iGN1gfsn!=4Ku;&xk*sLF*QSc#`Ri zA8*(#NnU6#*$M-xdbpjw6ig~D99mJw?AR?jogRt|y-M6!t~(zxNbzU5QXH7CS);Cz z>~Oa&A1Am&{(_lvZ;Sgr}I=~dXy z2}9XKF+1DzO)k=S%6Y4z(2mvC3?r!}NqsZs`x0Zk zGjzLR3k?1>hv0@+!)ywA7i=g!`b1|LZ-hfx)!9-L{F-Kr4X;-QW-_tkVid%NFe)@; za}U&c^g`-z*~^HRyhk!dP84!DGkHF7cDJe(w^a{)wr+%VK&QMH?zuK(CeMqDkNY6@ z5G?L}%%wo>fx)VZOmC7bGOk)2?#GSOajI^R>U9t-Q!S)h>rau1H?~nV8HI4aHV9|a zG|0lMRM@=F^N#~m53^g0@YSX~uvPdGvs>(%Gs(l~_@}n?K){kGIPR{Wf=8x2+#V!8 z?rVrh%!$+zu170^O(S@DJIkZ4mM8 z3pJnhn_%Zwk7N_q6n3`vfx-WxauqIH_rR>b8}7B`jqhx?NVsF-triNHdG8!e%Po(+ zbgRiSvV^3I&yfd#w;u$g$b$eaZ4xT*ho@*KpT0oVeBcb#;=0H@+sA6T?Oj^J!v)O5 z13%LoKDCxPd1#2fe|m`S;Bqt5@+=FJ#nBXV6Ay1MXPbF=n4aRn6sG4{o0(R!@y-yP z;TkntD>?XyQJTwx<*b6+ZX)(nIYXWw&?0Ue#xFxXtK!FsSq=AJr*8>Hg-E7?A2u={ zw~bOWpB$mpsE{M_=LlUcv~qBK`jRhcMj))r;f4$JHa7J+StXx7LoGbyVl_&l2`y2yNAO!*eKi(6v%}+S)PURN6l8AkIU|ck&&Wri zCh6L!_PWR)lXU7ON#-~8>`2_)cN9w_Xla$CSQ$Yp)l%HX{d}y5jR_sMu!G`xAlbnP zI+!L2z31Zo?B_Q|XjJF&CN{$rJ!czPi{cg@F(qH|$HwmzvvAy`U<>Pui~bXzXk{Ly z1l=l*8jMdfy#Er_$IYk|^`}o?#eEHoQPToz)Z#y@@TX;=E0#pjVtbOSlAW3FWLCV2 ztDT&lY|MPRda*-^niu%gBsIs(;b;!tpcTv<33=IQO2lGjJ<|W$tRJ{>oT{EZ#h!N3w5V;}@EGn~0_?_g{V#@6Y%?BRZ0g(BkIDgrJqp-S7qqS7K@;^0hm zgifCwXsJA*X=udP4K!6Gyv*L|+NjQW!V_WUo2(>e#$gSYCebX`F_ICjIwIN)91%5? z((49hWsWr1=Wz>_Jilq-!{k>jBw60(my383Zng2mAB}LTzfx`>vb6-=#dliak)O@fQ4vrpg)=-}im=nJ@b7C}V%0wM&& zr4{L>Zc=;z!O_8?gLrP@_J8Mo=jWdB%pT9|({t+{59?BilE-t!QwoD>U6FTwHD&-p=A1q({$c?P%D?nCyp~5TugwW+alT+<;nozBeMLFOj zR{QuYgEPQ0H%4aiM3*stKcRYtAsr-WN-dJ=Wl#Upp~i@-RW<%j;g-Zbx3s^D8a-y{ OS;}0vQ2b`t+5Q8PBUMZQ diff --git a/PROMS/Formats/genmacall/BNPP1.svg b/PROMS/Formats/genmacall/BNPP1.svg index 57be7a39da4a49709f045ed471053612b78a5c78..b7da28ec7decef4faac15357864107fc7f730c17 100644 GIT binary patch delta 188 zcmca|oblgr#trZICVM$^P5$61Fu9LgVX_jx6tf9~`DAREwV6Aguu8Su$8mE)V@nmH@LM ugAq_p5lq8$m@pVIn1MtYjV2$oah)6>ECjaWnvek4&X+<^nau&hEdc;{Xf-GR delta 183 zcmex&obk$W#trZICQC?&Ozz`Wn5@As#cIl6#9%PFQ9P58b24L$GOG!gpD(05nMoiB zBF1dOU_7}|KoKZs%wRJ4qpb7f4`O_9^(G7!lkZ1Mqq zKA@Pz%pXtYZrVY1bCP#HiO%7n?nS6m+WHO(u6tf9~`Q$*+{K*^aBqkR`@i7|%`Fmv* z!SqAf;K>`rSYUFj#taq=CX@He%0pQjRYH;EEEz1Iav&D6oC$*=gAq_pkc%@_sIfMLX%5$gdm2Q0Sy5f29)|(j3#By fUIF|5s3CG~cYKcs&mQI5jUw diff --git a/PROMS/Formats/genmacall/BNPPalr.svg b/PROMS/Formats/genmacall/BNPPalr.svg index c81be361816570d0a31d6c5cab6e57e1ce762fde..7baaf58d6a42e61e6a342023e0a043e51a1727be 100644 GIT binary patch delta 171 zcmX??xv6A>gwSLkeZI-BI2p2Joy@T&EyXP zN{mL6Hwp$%4&YN`G?|%{pcKNCB&Nq8OeBq5H;5<&u#^NhqM`)KiP JUM8&}2>?|aH^l$| delta 61 zcmV-D0K)&Wbk1q87!s4Z7I?F;93BLdP#cPqupDrc?ji=0P#g}k@)E8Ck`f4$x)uzbCgriF5KJc9F^Rm=q?*a7wY7G8i!!OlD*YpS+J-XtDyc3bP4=(PTj`MOGjU zl&R+q1c?H9#tbHt|8pxcgJ^`P34;Yll+k2zEq5?fzuDx!+{%n*lNEVjBIc79@+dQ# bGnhejicL1*6#(1h&Z`I&58Zr#_XHyV;D9Hd From 8f31532917851028893468efe9768d547967ce4e Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Tue, 27 May 2025 10:56:14 -0400 Subject: [PATCH 19/30] C2025-023-Format2-Update --- PROMS/Formats/epall/EPFormatTST2.xml | Bin 3290 -> 2606 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/PROMS/Formats/epall/EPFormatTST2.xml b/PROMS/Formats/epall/EPFormatTST2.xml index 71086ecb16dc9780812fbc11d60572f18794375c..6f94675f1fb7ea329e5d06da82f438f56e3cf4bb 100644 GIT binary patch literal 2606 zcmds(OK;Oa6otJW5qJiEOuO|2*)WJGPWW?V{Nc zMRLY--)HWe>%V_`I?#cb2Vgfu~<8V!y=4X?Qg9 z$E=nS-}o5uwBhw#SY2b~IFlC98vnNJqSTSo7c^YCaXHpd-(oeu)>&ozEgKTi_Ffl} zPuafxK=Ty5vUkh-tbL~A*6%0$%=n#oaECaKYW4Iu=;PF!yfmW=|Y< lcb+b<<6L(MUr%3un^d~kauTh3_@C~5kEy-+^^?Df{sAhpvH}1A literal 3290 zcmd^>U2jrB5QgX4#Q(5*rHNIbR%3z^O0hOUY6>*o(!+;Dq=W;s{qySc&K^Q3V(5)g z49Q{7na}s#nc4mEy=W!7wr@7HU~}u*#8MmBrH$;ZJ+{0(w;cZg$;cAEcaV;(@6wq~ zt!H~^y>gwBy|ah*z>4;WuY2|hZAE^$%MFVzQ=e0i(nPExN)1l zeL)(mKn?{vU?q)nG=|u;@e-`cbLx4=I4SGYo*_|`g#3e*(HB1D5q+lqCQTt0?hcyD zd4Zrx_U~`y7&1w~vPe`(g=&apAW|DFU1voyVZA`sMP~#9VoEGd!9ULQn&fq8HGG{| z9h;UlU1#XF@~j;YifA7)&V*T>6TE4k2CM@1;yU4bhiDW26>X7)V$XRKZ=K9fioA>O zMNX;5Yp&S5*c$b@d+w6MI?k$n&af%sH4%ku`OP>)Z5seX43WVim=_3`1?Du4&phT)#rZ`gH0ysrpdJX zy{VH{XQ!smjP=aBRHsUusH%q5KK+%2dUe(2c8&fChLz{`lUj2=r3-}YW^J~dc~7;N zD@`VhJnK|Vot+6d;|ZVRK9U1>{EyFl-lD#4Iy!;leQAiby0uK#9cJ-%b6OpNxouZo zPyGz(^0p&p8-CL{_B+q-xqZFD?Mr*}pL5%w@-}zb{kXkbw+H`lRTk;|yEpZCgZ~L= C{1V&% From ac091a7d266bc99f1681f6737677b8fbfa64e2e7 Mon Sep 17 00:00:00 2001 From: mschill Date: Wed, 28 May 2025 14:15:21 -0400 Subject: [PATCH 20/30] C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed. --- PROMS/Formats/fmtall/BASEall.xml | Bin 94778 -> 96092 bytes PROMS/Formats/fmtall/WEP2all.xml | Bin 79150 -> 79944 bytes PROMS/Formats/fmtall/WEPBCKall.xml | Bin 56940 -> 57728 bytes PROMS/Formats/fmtall/WEPSAM2all.xml | Bin 76028 -> 76816 bytes PROMS/Volian.Print.Library/vlnParagraph.cs | 17 +++++++++++++++-- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/PROMS/Formats/fmtall/BASEall.xml b/PROMS/Formats/fmtall/BASEall.xml index 3078bdbb46912565e7cf67f80000450a464f6b69..af378a3a1f0fdbe7b173aaeac8d7b88934990f72 100644 GIT binary patch delta 611 zcmZXQJ4*vW6ou~~ffz8Dun8D^tf>qp!PpoCThS(11g$skg}A$zhop*%|6ssDNg@6K zNs$l~h4fljSV}5uu@xK7%qF17vNLnn3=KkID_Tf3{v0PAe0?a?Kf-LP7r2v~{ z+u}RI=EPZsh1)vS$R?c%YPGP|5m{8kSHP+Mt7;%VMtr0yH7N3^o5)xcM{S0DG(G-m z)Sw(CK(9mRC{hc15gC`#pehyG2&BXSR1S8qo4`q|MP+0Rm9J9;tvW?fw_zfRvra42 z!UzYM8uSw@F;r|SVV!hUP%VR?V`Pz<_^UX}xozn!iQupMEX3y6sR^-^8)}!sb-?8- zxaOq!JoJaaO5^TW*LEH{nKRUNq%8}SmgS9f6?y6*#(Phixb-r>I1jTuK6>_X=Q7D(zt(y8ZjtMKpSW0H uaX$Rq`riS6@IN8>NHHn@tg>w_PG2!t&F delta 23 fcmccfj&;`))`l&NNkZFGgcw~owx5t^oDvQIe834H diff --git a/PROMS/Formats/fmtall/WEP2all.xml b/PROMS/Formats/fmtall/WEP2all.xml index 8f5e5743cba63d2909835827a03dd17c44159199..880a7aa56e21979ff7fd536793b0fe18916a2b74 100644 GIT binary patch delta 188 zcmZ4Yisi%ymJP3RCV#M%n>@)|NYIlZkD-hqlc5-hlNfRsQYW7_RGlp6!83VUy3*uH z1`?ACETksy$&i~YmB}@kB~x$mBQBxI8!YT5uXEvIRGR!ZGj;NjR1s4Qa~KpDJb-4V zGh_f+J`AZqTT+4MD=-8zlmJ-;K$gbj|0_fpH7763k(`_mrZV|~rQGC#G@i);;eL~^ VO%$5^z>15NlK}`fKg{tx0RRS{JL3QV delta 14 WcmX@{fo0t*mJP3RHnSACoB#kky$6y2 diff --git a/PROMS/Formats/fmtall/WEPBCKall.xml b/PROMS/Formats/fmtall/WEPBCKall.xml index 7ffb858a3ca438a797b368c0119c4c77275c7bd0..76e45fd4052c4125ed2a436b20f88582c3b413f3 100644 GIT binary patch delta 190 zcmaE}hq>V}^9H8$$qTe(7%e7$)D#xa-Wsh>>> GetRtf"); + int profileDepth = ProfileTimer.Push(">>>> GetRtf"); _RtfSB = new StringBuilder(); DisplayText vlntxt = new DisplayText(itemInfo, E_EditPrintMode.Print, E_ViewMode.View, true, E_FieldToEdit.StepText, false, prefix, suffix, MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces != null); + + //C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed. + if (itemInfo.IsType("InvisibleHigh")) + { + System.Drawing.Font myHighFont = vlntxt.TextFont.WindowsFont; + _RtfSB.Append(AddFontTable(myHighFont)); + _RtfSB.Append("}"); + string rtfHigh = _RtfSB.ToString(); + ProfileTimer.Pop(profileDepth); + return rtfHigh; + } + // C2021-010: Remove trailing returns/spaces & manual page breaks & allow save. if (DisplayText.RemoveTrailingBlankID > 0 && !MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces.Contains(itemInfo.ItemID)) MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces.Add(DisplayText.RemoveTrailingBlankID); System.Drawing.Font myFont = vlntxt.TextFont.WindowsFont; From 6e9c7e28e68cec427a7733a172623f176881a6ed Mon Sep 17 00:00:00 2001 From: mschill Date: Wed, 28 May 2025 14:37:14 -0400 Subject: [PATCH 21/30] C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed. Make Inactive by Default --- PROMS/Formats/fmtall/BASEall.xml | Bin 96092 -> 96090 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/PROMS/Formats/fmtall/BASEall.xml b/PROMS/Formats/fmtall/BASEall.xml index af378a3a1f0fdbe7b173aaeac8d7b88934990f72..8ca3756eb07244f11ea212a94c792a3cf220be2f 100644 GIT binary patch delta 26 icmccfj`h|%)`l&NO0ts`PI66e5n~M6-XP0(ClUakC<>(j delta 27 jcmcchj`hwv)`l&NO0v_}aWL{tZxdq-*j^{gcqbA7qwETK From e0b628dce9114fe446fc02e054a41452b48ddf9d Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Wed, 28 May 2025 18:19:24 -0400 Subject: [PATCH 22/30] B2025-024-Document-Unit-Print --- PROMS/Volian.Controls.Library/vlnTreeView.cs | 546 ++++++++++--------- 1 file changed, 287 insertions(+), 259 deletions(-) diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs b/PROMS/Volian.Controls.Library/vlnTreeView.cs index 6fbd3093..bdd75d47 100644 --- a/PROMS/Volian.Controls.Library/vlnTreeView.cs +++ b/PROMS/Volian.Controls.Library/vlnTreeView.cs @@ -22,11 +22,11 @@ namespace Volian.Controls.Library public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args); public delegate void vlnTreeViewTimeEvent(object sender, vlnTreeTimeEventArgs args); public delegate void vlnTreeViewStatusEvent(object sender, vlnTreeStatusEventArgs args); - public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args); - public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args); + public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args); + public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args); public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args); public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args); - + public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args); public delegate bool vlnTreeViewItemInfoDeleteFolderEvent(object sender, vlnTreeFolderDeleteEventArgs args); public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args); @@ -57,7 +57,7 @@ namespace Volian.Controls.Library { _MySectionInfo = mySectionInfo; } - public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo,bool isDeleting) + public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo, bool isDeleting) { _MySectionInfo = mySectionInfo; _IsDeleting = isDeleting; @@ -140,7 +140,7 @@ namespace Volian.Controls.Library get { return _Node; } set { _Node = value; } } - private TreeNode _Destination=null; + private TreeNode _Destination = null; public TreeNode Destination { get { return _Destination; } @@ -168,7 +168,7 @@ namespace Volian.Controls.Library //end jcb multiunit #endregion #region Factory Methods - private vlnTreeEventArgs() { ;} + private vlnTreeEventArgs() {; } public vlnTreeEventArgs(TreeNode node) { _Node = node; @@ -192,7 +192,7 @@ namespace Volian.Controls.Library #endregion public override string ToString() { - return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}",NodePath(this.Node),this.Destination, this.Index,this.Unit, this.UnitIndex); + return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}", NodePath(this.Node), this.Destination, this.Index, this.Unit, this.UnitIndex); } private string NodePath(TreeNode node) @@ -215,7 +215,7 @@ namespace Volian.Controls.Library } #endregion #region Factory Methods - private vlnTreeItemInfoEventArgs() { ;} + private vlnTreeItemInfoEventArgs() {; } public vlnTreeItemInfoEventArgs(ItemInfo myItemInfo) { _MyItemInfo = myItemInfo; @@ -231,7 +231,7 @@ namespace Volian.Controls.Library FolderId = folderId; } } - public enum E_InsertType {Before, After, Child}; + public enum E_InsertType { Before, After, Child }; public partial class vlnTreeItemInfoInsertEventArgs { #region Business Methods @@ -267,7 +267,7 @@ namespace Volian.Controls.Library } #endregion #region Factory Methods - private vlnTreeItemInfoInsertEventArgs() { ;} + private vlnTreeItemInfoInsertEventArgs() {; } public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText) { _MyItemInfo = myItemInfo; @@ -314,7 +314,7 @@ namespace Volian.Controls.Library } #endregion #region Factory Methods - private vlnTreeItemInfoPasteEventArgs() { ;} + private vlnTreeItemInfoPasteEventArgs() {; } public vlnTreeItemInfoPasteEventArgs(ItemInfo myItemInfo, int copyStartId, ItemInfo.EAddpingPart pasteType, int? type) { _MyItemInfo = myItemInfo; @@ -322,7 +322,7 @@ namespace Volian.Controls.Library _PasteType = pasteType; _Type = type; } - + #endregion } #endregion @@ -364,7 +364,7 @@ namespace Volian.Controls.Library get { return _SectionConfig; } set { _ConfigObject = _SectionConfig = value; } } - private vlnTreePropertyEventArgs() { ;} + private vlnTreePropertyEventArgs() {; } public vlnTreePropertyEventArgs(string title, FolderConfig folderConfig) { _Title = title; @@ -573,16 +573,16 @@ namespace Volian.Controls.Library { if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args); } - - - - - - public event vlnTreeViewEvent ExportImportProcedureSets; - private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args) - { - if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args); - } + + + + + + public event vlnTreeViewEvent ExportImportProcedureSets; + private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args) + { + if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args); + } public event vlnTreeViewEvent PrintTransitionReport; private void OnPrintTransitionReport(object sender, vlnTreeEventArgs args) { @@ -634,7 +634,7 @@ namespace Volian.Controls.Library // This event was added to update the Step Properties/RO & Tools/Search RO & Reports // when an update of ro.fst is done & the ro trees on those panels needs refreshed. // (bug fix B2015-226) - public event StepPanelTabDisplayEvent TabDisplay; + public event StepPanelTabDisplayEvent TabDisplay; private void OnTabDisplay(object sender, StepPanelTabDisplayEventArgs args) { if (TabDisplay != null) TabDisplay(sender, args); @@ -720,39 +720,39 @@ namespace Volian.Controls.Library //_MyLog.WarnFormat("Context Menu 1b - {0}", GC.GetTotalMemory(true)); if (ui.IsAdministrator() || ui.IsSetAdministrator(fi)) { - if (fi.MyParent != null) // don't allow insert before/after if at top node + if (fi.MyParent != null) // don't allow insert before/after if at top node { if (!ui.IsAdministrator() && DoSpecificInfo) cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click)); // B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate - if (ui.IsAdministrator()||ui.IsSetAdministrator(fi.MyParent)) + if (ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) { cm.MenuItems.Add("Insert Folder Before", new EventHandler(mi_Click)); cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click)); } } // B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate - if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0) + if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0) cm.MenuItems.Add("New Folder", new EventHandler(mi_Click)); - if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft) + if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft) cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click)); } - if (fi.HasWorkingDraft) + if (fi.HasWorkingDraft) cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click)); } - else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs + else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs { isWrkDftNode = true; //_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true)); DocVersionInfo dvi = tn.VEObject as DocVersionInfo; if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi)) - { - cm.MenuItems.Add("Import Procedure", mi_Click); - } - if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi)) + { + cm.MenuItems.Add("Import Procedure", mi_Click); + } + if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi)) { OwnerInfoList.Reset(); oil = OwnerInfoList.GetByVersionID(dvi.VersionID); - if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo) + if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo) cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click)); cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click)); cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click)); @@ -839,15 +839,15 @@ namespace Volian.Controls.Library urv.Enabled = !dvi.ROfstLastCompleted || dvi.NewerRoFst; } } - else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections + else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections { isProcNode = true; ProcedureInfo pri = tn.VEObject as ProcedureInfo; oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure); if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion)) - { - cm.MenuItems.Add("Export Procedure", mi_Click); - } + { + cm.MenuItems.Add("Export Procedure", mi_Click); + } if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion)) { if (oi != null && oi.SessionID != MySessionInfo.SessionID) @@ -898,7 +898,7 @@ namespace Volian.Controls.Library } cm.MenuItems.Add(micas); cm.MenuItems.Add(mitcas); - cm.MenuItems.Add(mip); + cm.MenuItems.Add(mip); cm.MenuItems.Add(miqp); //cm.MenuItems.Add(mips); AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri); @@ -1081,10 +1081,37 @@ namespace Volian.Controls.Library // require clearing of all enhanced config data or mapping it to existing data (quite complicated) if ((ui.IsAdministrator() || ui.IsSetAdministrator(i.MyProcedure.MyDocVersion) || ui.IsWriter(i.MyProcedure.MyDocVersion)) && (!i.IsEnhancedStep && !i.IsEnhancedProcedure && !i.IsEnhancedSection && !i.IsRtfRaw && !i.IsFigure)) cm.MenuItems.Add("Copy", new EventHandler(mi_Click)); + //if (i.HasWordContent) + //{ + // cm.MenuItems.Add("Print Section", new EventHandler(mi_Click)); + // cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click)); + //} if (i.HasWordContent) { - cm.MenuItems.Add("Print Section", new EventHandler(mi_Click)); - cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click)); + if (i.MyDocVersion.MultiUnitCount > 1) + { + if (!i.IsSubsection) + { + MenuItem mps = new MenuItem("Print Section"); + MenuItem mqps = new MenuItem("Quick Print Section"); + int k = 0; + foreach (string s in i.MyDocVersion.UnitNames) + { + k++; + MenuItem mp = mps.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); + mp.Tag = k; + MenuItem mqp = mqps.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); + mqp.Tag = k; + } + cm.MenuItems.Add(mps); + cm.MenuItems.Add(mqps); + } + } + else + { + cm.MenuItems.Add("Print Section", new EventHandler(mi_Click)); + cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click)); + } } } #endregion @@ -1098,42 +1125,42 @@ namespace Volian.Controls.Library ok = true; else if (tn.VEObject is ItemInfo && (ui.IsAdministrator() || ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion))) ok = true; - if(ok) + if (ok) Menu_Paste(tn, cm); #endregion //_MyLog.WarnFormat("Context Menu 5 - {0}", GC.GetTotalMemory(true)); #region Menu_Delete if (ok) - - - - - + + + + + + { + // Add delete to the menu unless at the very 'top' node, on a grouping (partinfo) + // node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items. + PartInfo pi = tn.VEObject as PartInfo; + if (pi == null && tn.Parent != null) // it's not a part and it's not the top.... { - // Add delete to the menu unless at the very 'top' node, on a grouping (partinfo) - // node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items. - PartInfo pi = tn.VEObject as PartInfo; - if (pi == null && tn.Parent != null) // it's not a part and it's not the top.... + fi = tn.VEObject as FolderInfo; + if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children { - fi = tn.VEObject as FolderInfo; - if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children + DocVersionInfo di = tn.VEObject as DocVersionInfo; + if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children { - DocVersionInfo di = tn.VEObject as DocVersionInfo; - if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children - { - // if it's an enhanced step that was linked from a source, don't allow delete - bool canDoDel = true; - ItemInfo iienh = tn.VEObject as ItemInfo; - if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false; - if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false; - if (iienh != null && iienh.IsEnhancedStep) canDoDel = false; - if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click)); - } + // if it's an enhanced step that was linked from a source, don't allow delete + bool canDoDel = true; + ItemInfo iienh = tn.VEObject as ItemInfo; + if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false; + if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false; + if (iienh != null && iienh.IsEnhancedStep) canDoDel = false; + if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click)); } } } - + } + #endregion //_MyLog.WarnFormat("Context Menu 6 - {0}", GC.GetTotalMemory(true)); #region Menu_ExternalTransitions @@ -1169,13 +1196,13 @@ namespace Volian.Controls.Library } doclink = string.Format("Unlink Source and {0} Procedure", doclink); MenuItem mix = cm.MenuItems.Add(doclink, new EventHandler(miEnhanced_Click)); - mix.Tag = -1; // NOTE this is what flags what gets processed on menu click, i.e. -1 + mix.Tag = -1; // NOTE this is what flags what gets processed on menu click, i.e. -1 } // if this is a source procedure that has enhanced, for example Background and/or deviation, ask which should be unlinked including all else if (eds != null && eds.Count > 1) { MenuItem miu = new MenuItem("Unlink Enhanced Procedure(s) from Source"); - miu.Tag = -2; // this menu item doesn't get used. + miu.Tag = -2; // this menu item doesn't get used. int k = 0; foreach (EnhancedDocument ed in eds) { @@ -1186,7 +1213,7 @@ namespace Volian.Controls.Library } // add all submenu item MenuItem mp1 = miu.MenuItems.Add("All", new EventHandler(miEnhanced_Click)); - mp1.Tag = 0; // Tag of 0 flags All + mp1.Tag = 0; // Tag of 0 flags All cm.MenuItems.Add(miu); } } @@ -1196,9 +1223,9 @@ namespace Volian.Controls.Library // Add Properties to the menu unless at the very 'top' node or on a grouping (partinfo) // node (RNOs, Steps, Cautions, Notes) or at the step level. // B2020-105 Allow Set Administrators to rename folder's (sets of procedures) to which they have been given access. - if ( tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo)); - else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo)) - : (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) + if (tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo)); + else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo)) + : (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion))); PartInfo pia = tn.VEObject as PartInfo; ItemInfo ii = tn.VEObject as ItemInfo; @@ -1279,7 +1306,7 @@ namespace Volian.Controls.Library itm.Text == "Procedure Set Specific Information" || itm.Text == "Approve All Procedures for" || itm.Text == "Approve Some Procedures" || itm.Text == "Approve Some Procedures for") itm.Enabled = false; - + } } } @@ -1308,9 +1335,9 @@ namespace Volian.Controls.Library // F2022-024 added Time Critical Action Summary option foreach (MenuItem itm in cm.MenuItems) { - if(itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" || + if (itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" || itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" || - itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" || + itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" || itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure") itm.Enabled = false; } @@ -1319,7 +1346,7 @@ namespace Volian.Controls.Library { foreach (MenuItem itm in cm.MenuItems) { - if(!itm.Text.StartsWith("Document Checked Out")) + if (!itm.Text.StartsWith("Document Checked Out")) itm.Enabled = false; } } @@ -1336,7 +1363,7 @@ namespace Volian.Controls.Library { _currentPri = pri; RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID); - if (ril.Count == 0) return; // no versions to list + if (ril.Count == 0) return; // no versions to list MenuItem mi = menuItemCollection.Add("Versions"); int k = 0; int lastApprovedRevisionID = 0; @@ -1383,11 +1410,11 @@ namespace Volian.Controls.Library ril = null; } } - public void AddNewNode(IVEDrillDownReadOnly o) - { - VETreeNode tn = new VETreeNode(o); - SelectedNode.Nodes.Add(tn); - } + public void AddNewNode(IVEDrillDownReadOnly o) + { + VETreeNode tn = new VETreeNode(o); + SelectedNode.Nodes.Add(tn); + } private void AddApprovedRevisions(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri) { try @@ -1396,7 +1423,7 @@ namespace Volian.Controls.Library _currentPri = pri; using (RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID)) { - //_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true)); + //_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true)); if (ril.Count == 0) return; // no versions to list MenuItem mi = menuItemCollection.Add("Versions"); int lastApprovedRevisionID = 0; @@ -1477,7 +1504,7 @@ namespace Volian.Controls.Library RevisionConfig rc = ri.MyConfig as RevisionConfig; // bug fix: B2016-183 - add the child's name (ex Unit 1) to the export file name for Parent/Child procedures. int applIdx = rc.Applicability_Index; - string str = (applIdx > 0)?_currentPri.MyDocVersion.UnitNames[applIdx-1] +"_":""; // if parent/child get the defined child name to inlcude the export filename + string str = (applIdx > 0) ? _currentPri.MyDocVersion.UnitNames[applIdx - 1] + "_" : ""; // if parent/child get the defined child name to inlcude the export filename System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); xd.LoadXml(ri.LatestVersion.ApprovedXML); string PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database; @@ -1525,12 +1552,12 @@ namespace Volian.Controls.Library { MenuItem mip = mi.Parent as MenuItem; //B2021-086 Added the check for the last revision stage is an Approved stage - if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved!=0) + if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0) superceded = true; } vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : ""); OnViewPDF(sender, args); -// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded)); + // System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded)); } void MultiUnitApprovedRevision_Click(object sender, EventArgs e) { @@ -1643,7 +1670,7 @@ namespace Volian.Controls.Library // 'from' is object copied // 'to' is object where paste was selected from #region Menu_Paste_ToDocVersion - if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc + if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc { if (iiClipboard.IsProcedure) { @@ -1653,7 +1680,7 @@ namespace Volian.Controls.Library // 3) 'to' docversion is 'source' and 'from' procedure is within this docversion // 4) 'to' docVersion is 'enhanced' and 'from' procedure is not bool canPaste = false; - + DocVersionInfo dvi = tn.VEObject as DocVersionInfo; DocVersionConfig dvc = dvi.DocVersionConfig; bool docVersionIsEnhanced = dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type == 0; @@ -1674,7 +1701,7 @@ namespace Volian.Controls.Library if (iiClipboard.IsRtfRaw) canPaste = false; // never paste an equation. if (canPaste) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click)); } - #endregion + #endregion } else { @@ -1685,7 +1712,7 @@ namespace Volian.Controls.Library { SectionInfo si = (tn.VEObject as SectionInfo != null) ? tn.VEObject as SectionInfo : null; #region Menu_Paste_ToFromProcedure - if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after + if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after { // Enhanced considerations, in order to paste a procedure around another procedure: NOTE that an 'enhanced' procedure cannot be in paste buffer! // 1) 'to' & 'from' both 'non', i.e. Neither can have enhanced config data (be source or enhanced) @@ -1709,16 +1736,16 @@ namespace Volian.Controls.Library bool prFromIsEnhanced = iiClipboard.IsEnhancedProcedure; bool prFromIsSource = pcFromCfg.MyEnhancedDocuments != null && pcFromCfg.MyEnhancedDocuments.Count > 0 && pcFromCfg.MyEnhancedDocuments[0].Type != 0; bool prCanPaste = false; - if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1) - // else if ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false - else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3) + if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1) + // else if ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false + else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3) { prCanPaste = true; okToReplace = false; } - else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4) - //else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID != iiClipboard.MyDocVersion.VersionID) prCanPaste = false; // 5) commented out because already set to false - //else if (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false + else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4) + //else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID != iiClipboard.MyDocVersion.VersionID) prCanPaste = false; // 5) commented out because already set to false + //else if (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false if (iiClipboard.IsRtfRaw) prCanPaste = okToReplace = prCanPaste = false; // never paste an equation. if (prCanPaste) cm.MenuItems.Add("Paste Procedure Before", new EventHandler(mi_Click)); if (okToReplace && prCanPaste) cm.MenuItems.Add("Replace Existing Procedure", new EventHandler(mi_Click)); @@ -1750,9 +1777,9 @@ namespace Volian.Controls.Library bool scFromIsEnhanced = iiClipboard.IsEnhancedSection; bool scFromIsSource = scFromCfg.MyEnhancedDocuments != null && scFromCfg.MyEnhancedDocuments.Count > 0 && scFromCfg.MyEnhancedDocuments[0].Type != 0; bool scCanPaste = false; - if (!prToIsEnhanced && !prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; // 1) + if (!prToIsEnhanced && !prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; // 1) else if (prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; - else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) scCanPaste = true; // 3) + else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) scCanPaste = true; // 3) if (iiClipboard.IsRtfRaw) scCanPaste = false; // never paste an equation. if (scCanPaste) cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click)); } @@ -1824,9 +1851,9 @@ namespace Volian.Controls.Library bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep; bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0; bool stpCanPaste = false; - if (!secToIsEnhanced && !secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1) + if (!secToIsEnhanced && !secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1) else if (secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 2) - else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) stpCanPaste = true; // 3) + else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) stpCanPaste = true; // 3) if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation. if (stpCanPaste) cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click)); } @@ -1850,8 +1877,8 @@ namespace Volian.Controls.Library bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep; bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0; bool stpCanPaste = false; - if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1) - else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2) + if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1) + else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2) { stpCanPaste = true; okToReplace = false; @@ -1859,7 +1886,7 @@ namespace Volian.Controls.Library else if (stpToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) // 3 { stpCanPaste = true; - if (stpFromIsSource) okToReplace = false; // B2017-183: don't allow a replace to source steps + if (stpFromIsSource) okToReplace = false; // B2017-183: don't allow a replace to source steps } if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation. if (stpCanPaste && AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click)); @@ -1892,7 +1919,7 @@ namespace Volian.Controls.Library OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; case "Print All Procedures for": - OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag)); + OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; case "Approve": OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); @@ -1904,10 +1931,10 @@ namespace Volian.Controls.Library OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; case "Create Continuous Action Summary": - OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0,mi.Text,(int)mi.Tag)); + OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; case "Create Time Critical Action Summary": - OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0,mi.Text,(int)mi.Tag)); + OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; default: if (mip.Text.StartsWith("Showing Change Bars Starting")) @@ -1945,7 +1972,7 @@ namespace Volian.Controls.Library { if (selprc.IsEnhancedProcedure) { - selprc.DoUnlinkEnhanced(selprc, 0, !hasValidConnectingProc); // if no valid linked: enhtype = 0 since this an enhanced doc is getting unlinked + selprc.DoUnlinkEnhanced(selprc, 0, !hasValidConnectingProc); // if no valid linked: enhtype = 0 since this an enhanced doc is getting unlinked } else // from source { @@ -1953,7 +1980,7 @@ namespace Volian.Controls.Library if (hasValidConnectingProc) { ItemInfo lprc = ItemInfo.Get(seleds[0].ItemID); - lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc); + lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc); } else selprc.DoUnlinkEnhanced(selprc, seleds[0].Type, !hasValidConnectingProc); @@ -1973,7 +2000,7 @@ namespace Volian.Controls.Library { ItemInfo lprc = ItemInfo.Get(ed.ItemID); bool hasValidConnectingProc = CheckForValidEnhLink(lprc); - // if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure. + // if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure. if (hasValidConnectingProc) lprc.DoUnlinkEnhanced(lprc, ed.Type, !hasValidConnectingProc); else @@ -1997,37 +2024,37 @@ namespace Volian.Controls.Library OnNodeSI(this, new vlnTreeEventArgs(tn, null, 0)); return; } - if (mi.Text.StartsWith("Collapse")) - { + if (mi.Text.StartsWith("Collapse")) + { CollapseProcedures(); - return; - } + return; + } if (mi.Text == "Print Transition Report") { OnPrintTransitionReport(this, new vlnTreeEventArgs(SelectedNode as VETreeNode)); return; } - - - - - - - - - - - if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure") - { - OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - return; - } - if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure") - { - OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1)); - return; - } - if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to")) + + + + + + + + + + + if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure") + { + OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); + return; + } + if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure") + { + OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1)); + return; + } + if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to")) { OnProcedureCheckedOutTo(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); return; @@ -2053,7 +2080,7 @@ namespace Volian.Controls.Library break; case "New Folder": SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Folder); + tv_NodeNew(MenuSelections.Folder); break; case "Create Working Draft": SelectedNode.Expand(); @@ -2097,7 +2124,7 @@ namespace Volian.Controls.Library tv_NodeCopy(); break; // lots of paste options: - case "Paste Procedure": + case "Paste Procedure": case "Paste Procedure Before": case "Paste Procedure After": case "Paste Section": @@ -2131,7 +2158,7 @@ namespace Volian.Controls.Library break; } - + case "Delete": if (tv_NodeDelete()) { @@ -2197,14 +2224,14 @@ namespace Volian.Controls.Library UpdateROValues(SelectedNode as VETreeNode); break; case "Create Continuous Action Summary": - OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0)); + OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); break; - // F2022-024 Time Critical Action Summary + // F2022-024 Time Critical Action Summary case "Create Time Critical Action Summary": - OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0)); + OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); break; - // B2017-243 added the following two Cannot Paste items when dealing with enhanced documents - // when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted + // B2017-243 added the following two Cannot Paste items when dealing with enhanced documents + // when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted case "CANNOT PASTE HERE. Click for more information...": FlexibleMessageBox.Show("You have copied a document that is linked to an Enhanced Document.\n\n" + "It can only be pasted before or after another document, within the set, that is linked to an Enhanced Document.", "Cannot Paste Here"); @@ -2246,7 +2273,7 @@ namespace Volian.Controls.Library foreach (VETreeNode tnc in tn.Nodes) CollapseProcedures(tnc); if (tn.VEObject as DocVersionInfo == null && tn.VEObject as FolderInfo == null) - tn.Collapse(); + tn.Collapse(); _doingCollapseNode = true; // B2016-058 this will prevent a Drag Node error when collapsing an RNOs, Cautions, or Notes tree node } private void tv_RemoveChgIds() @@ -2301,12 +2328,12 @@ namespace Volian.Controls.Library FinalProgressBarMessage = "Cannot check-out Working Draft"; return; } - Cursor = Cursors.WaitCursor; // C2023-002: move wait cursor after check out error + Cursor = Cursors.WaitCursor; // C2023-002: move wait cursor after check out error int ownerid = MySessionInfo.CheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion); using (DocVersion dv = DocVersion.Get(MyDVI.VersionID)) { swROUpdate = new System.IO.StreamWriter(ROFstInfo.ROUpdateResultsPath(MyDVI)); // RO changes placed in file in the Documents\VEPROMS folder - // B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo + // B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo if (dv.ROfstLoadingFigures || dv.NewerRoFst) // B2017-125 see if loading figures was completed { // only load the RO.fst @@ -2334,7 +2361,7 @@ namespace Volian.Controls.Library swROUpdate.Write(string.Format("Fixed Referenced Object for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID)); } - private ProgressBarItem _ProgressBar=null; + private ProgressBarItem _ProgressBar = null; public ProgressBarItem ProgressBar { get { return _ProgressBar; } @@ -2447,7 +2474,7 @@ namespace Volian.Controls.Library return; } // C2017-003: ro data in sql server, check for sql connection string - if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring") + if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring") roloc = roloc + " \"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString + "\""; // C2021-026 pass in Parent/Child information (list of the children) // B2022-019 look at all DocVersions to find ParentChild information @@ -2498,7 +2525,7 @@ namespace Volian.Controls.Library } } VETreeNode tn = SelectedNode as VETreeNode; - + DocVersionInfo dvi = tn.VEObject as DocVersionInfo; // Check for paste into a docversion - queries/code is different than paste related to an item (into a proc or section) if (dvi != null) @@ -2512,7 +2539,7 @@ namespace Volian.Controls.Library // assume that item to paste is a procedure, otherwise the menuing would not have // included the paste options - tn = (VETreeNode) tn.Nodes[tn.Nodes.Count - 1]; + tn = (VETreeNode)tn.Nodes[tn.Nodes.Count - 1]; p = "After"; } else // this is an empty docversion: @@ -2548,7 +2575,7 @@ namespace Volian.Controls.Library if (OnlyProc && repitem != null && tmp != null) { VETreeNode tn1 = new VETreeNode(repitem); - tmp.Nodes.Add(tn1); + tmp.Nodes.Add(tn1); SelectedNode = tn1; } } @@ -2557,7 +2584,7 @@ namespace Volian.Controls.Library //if (p.IndexOf("Replace") <= -1) - this.Cursor = Cursors.Default; + this.Cursor = Cursors.Default; } public void PasteAsDocVersionChild(VETreeNode tn, int copyStartID) @@ -2574,7 +2601,7 @@ namespace Volian.Controls.Library } ItemInfo newProc = dvi.PasteChild(copyStartID); VETreeNode tn1 = new VETreeNode(newProc); - SelectedNode.Nodes.Add(tn1); // add tree node to end of list. + SelectedNode.Nodes.Add(tn1); // add tree node to end of list. SelectedNode = tn1; } @@ -2611,7 +2638,7 @@ namespace Volian.Controls.Library } if (pasteSectIntoEmptySect) { - tn.ChildrenLoaded = false; // force a reload of treenode + tn.ChildrenLoaded = false; // force a reload of treenode tn.LoadChildren(true); } SelectedNode = tn; @@ -2626,7 +2653,7 @@ namespace Volian.Controls.Library // the item to be pasted in the step editor and the tree. ItemInfo newItemInfo = null; // F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format - if (!ii.IsProcedure) + if (!ii.IsProcedure) ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, false); if (ii.IsProcedure || !OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type))) { @@ -2649,8 +2676,8 @@ namespace Volian.Controls.Library } private ItemInfo PasteReplace(VETreeNode tn, int copyStartID) { - VETreeNode prevtn = (VETreeNode) tn.PrevNode; - VETreeNode partn = (VETreeNode) tn.Parent; + VETreeNode prevtn = (VETreeNode)tn.PrevNode; + VETreeNode partn = (VETreeNode)tn.Parent; ItemInfo ii = tn.VEObject as ItemInfo; // F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, true); @@ -2689,7 +2716,7 @@ namespace Volian.Controls.Library SelectedNode.Nodes.Add(tn1); // add tree node to end of list. SelectedNode = tn1; } - private void tv_NodeCopy() + private void tv_NodeCopy() { if (SelectedNode == null) return; VETreeNode tn = SelectedNode as VETreeNode; @@ -2701,7 +2728,7 @@ namespace Volian.Controls.Library private void SetupNodeProperties() { VETreeNode tn = SelectedNode as VETreeNode; - if (tn==null)return; + if (tn == null) return; if ((tn.VEObject as FolderInfo) != null) OpenProperties(tn.VEObject as FolderInfo); @@ -2713,7 +2740,7 @@ namespace Volian.Controls.Library if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0) rofstid = dvi.DocVersionAssociations[0].MyROFst.ROFstID; OpenProperties(tn.VEObject as DocVersionInfo); if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0 && rofstid != dvi.DocVersionAssociations[0].MyROFst.ROFstID) - OnTabDisplay(this,new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST")); + OnTabDisplay(this, new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST")); } else if ((tn.VEObject as ProcedureInfo) != null) OpenProperties(tn.VEObject as ProcedureInfo); @@ -2727,7 +2754,7 @@ namespace Volian.Controls.Library { using (Folder folder = folderInfo.Get()) { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig)); + OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig)); } } private void OpenProperties(DocVersionInfo dvInfo) @@ -2741,7 +2768,7 @@ namespace Volian.Controls.Library { using (Procedure proc = procInfo.Get()) { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig)); + OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig)); } } private void OpenProperties(SectionInfo sectInfo) @@ -2754,7 +2781,7 @@ namespace Volian.Controls.Library title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title); else title = string.Format("{0} Properties", sectInfo.SectionConfig.Title); - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig)); + OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig)); } } private void OpenProperties(StepInfo stpinfo) @@ -2808,7 +2835,7 @@ namespace Volian.Controls.Library { if (newtype == MenuSelections.DocVersion) { - int dvid = -1; // flag to allow user to cancel from dialog & then we remove it. + int dvid = -1; // flag to allow user to cancel from dialog & then we remove it. using (DocVersion docversion = DocVersion.MakeDocVersion(parentfolder, "Working Draft", "Title", null, null, null)) { ShowBrokenRules(docversion.BrokenRulesCollection); @@ -2817,7 +2844,7 @@ namespace Volian.Controls.Library { docversion.Save(); tn = new VETreeNode(_LastDocVersionInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. + SelectedNode.Nodes.Add(tn); // add tree node to end of list. parentfolder.Reset_ChildFolders(); parentfolder.Reset_FolderDocVersions(); } @@ -2828,7 +2855,7 @@ namespace Volian.Controls.Library } else if (newtype == MenuSelections.Folder) { - int f1 = -1; // flag to allow user to cancel from dialog & then we remove it. + int f1 = -1; // flag to allow user to cancel from dialog & then we remove it. string uniquename = _LastFolderInfo.UniqueChildName("New Folder"); using (Folder folder = Folder.MakeFolder(parentfolder, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, string.Empty, DateTime.Now, VlnSettings.UserID)) { @@ -2840,14 +2867,14 @@ namespace Volian.Controls.Library { folder.Save(); tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo); - SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist. + SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist. } else f1 = folder.FolderID; } if (f1 != -1) Folder.Delete(f1); } - else if (newtype == MenuSelections.FolderAfter||newtype == MenuSelections.FolderBefore) + else if (newtype == MenuSelections.FolderAfter || newtype == MenuSelections.FolderBefore) { int f2 = -1; string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder"); @@ -2856,7 +2883,8 @@ namespace Volian.Controls.Library //since before/after folder is at same level as current folder //so need to use the parents order to determine where to place it using (FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.MyParent.FolderID)) - { double? myorder = parfolderinfo.NewManualOrder(myindex); + { + double? myorder = parfolderinfo.NewManualOrder(myindex); using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID)) { ShowBrokenRules(folder.BrokenRulesCollection); @@ -2881,7 +2909,7 @@ namespace Volian.Controls.Library else if (newtype == MenuSelections.Procedure) { int p1 = -1; - using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count!=0?_LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count-1]:null, null, "New Procedure", 0)) + using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count != 0 ? _LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count - 1] : null, null, "New Procedure", 0)) { ShowBrokenRules(procedure.BrokenRulesCollection); SetLastValues(ProcedureInfo.Get(procedure.ItemID)); @@ -2890,8 +2918,8 @@ namespace Volian.Controls.Library { procedure.Save(); tn = new VETreeNode(_LastProcedureInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - // The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034) + SelectedNode.Nodes.Add(tn); // add tree node to end of list. + // The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034) if (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures(); if (procedure.MyProcedureInfo.CreateEnhanced) { @@ -2933,21 +2961,21 @@ namespace Volian.Controls.Library else p2 = procedure.ItemID; } - if (p2 != -1) + if (p2 != -1) DeleteItemInfoAndChildren(_LastProcedureInfo); // Delete Item and reset Previous and Next } #endregion #region InsertSection - else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list + else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list { string message = string.Empty; if (_LastProcedureInfo != null) if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message)) - { - FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - OnUnPauseRefresh(this, null); - return; - } + { + FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); + OnUnPauseRefresh(this, null); + return; + } int s1 = -1; if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null)) { @@ -2977,7 +3005,7 @@ namespace Volian.Controls.Library "If you would like to view or copy these hidden steps you will need to go\n" + "into the properties of this section and check the Editable Data checkbox.\n" + "You will then be able to view and copy those steps. When finished, open\n" + - "the properties page again and uncheck the Editable Data checkbox.\n\n"+ + "the properties page again and uncheck the Editable Data checkbox.\n\n" + "Do you want to continue creating the subsection?"; if (FlexibleMessageBox.Show(this, msgstr, "Subsection Insert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { @@ -2989,7 +3017,7 @@ namespace Volian.Controls.Library if (!hasMetaSubs) doPseudo = true; } } - using(Section section = CreateNewSection()) + using (Section section = CreateNewSection()) { ShowBrokenRules(section.BrokenRulesCollection); SectionInfo savLastSectionInfo = _LastSectionInfo; @@ -2999,10 +3027,10 @@ namespace Volian.Controls.Library if (!doPseudo) { tn = new VETreeNode(_LastSectionInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - // if the new section was flagged as either having an enhanced link for Title or Contents, create the - // Enhanced section: - Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem. + SelectedNode.Nodes.Add(tn); // add tree node to end of list. + // if the new section was flagged as either having an enhanced link for Title or Contents, create the + // Enhanced section: + Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem. if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y") CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text); sectiontmp.Dispose(); @@ -3013,7 +3041,7 @@ namespace Volian.Controls.Library // may have to add a 'steps' node if a step(s) already exist... ItemInfo ii = (SelectedNode as VETreeNode).VEObject as ItemInfo; int cpindx = 0; - if (SelectedNode.Nodes.Count>0) + if (SelectedNode.Nodes.Count > 0) { VETreeNode vtn = SelectedNode.Nodes[0] as VETreeNode; // B2017-014: removed code that was adding a 2nd section part node. and also select node to @@ -3023,13 +3051,13 @@ namespace Volian.Controls.Library // B2017-014: removed code that was adding a 2nd section part node. } } - else // Properties was canceled out of: + else // Properties was canceled out of: s1 = section.ItemID; } if (s1 != -1) { DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next - // B2020-087 refresh the tree node after canceling the creation of the subsection + // B2020-087 refresh the tree node after canceling the creation of the subsection _LastTreeNode.ChildrenLoaded = false; _LastTreeNode.RefreshNode(); _LastTreeNode.Collapse(); @@ -3057,14 +3085,14 @@ namespace Volian.Controls.Library if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK) { int indx = tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1); - int itemido = (indx >= par.Nodes.Count)?-1:(((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).ItemID; - if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido !=section.ItemID) + int itemido = (indx >= par.Nodes.Count) ? -1 : (((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).ItemID; + if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido != section.ItemID) { tn = new VETreeNode(_LastSectionInfo); par.Nodes.Insert(indx, tn); // if the new section was flagged as either having an enhanced link for Title or Contents, create the // Enhanced section: - Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem. + Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem. if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y") CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text); sectiontmp.Dispose(); @@ -3076,7 +3104,7 @@ namespace Volian.Controls.Library if (s2 != -1) { DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next - // B2020-087 refresh the tree node after canceling the creation of the subsection + // B2020-087 refresh the tree node after canceling the creation of the subsection _LastTreeNode.ChildrenLoaded = false; _LastTreeNode.RefreshNode(); _LastTreeNode.Collapse(); @@ -3084,7 +3112,7 @@ namespace Volian.Controls.Library } #endregion #region InsertStep - else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree. + else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree. { string message = string.Empty; if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) @@ -3161,7 +3189,7 @@ namespace Volian.Controls.Library using (Procedure newenhProcedure = Procedure.MakeProcedure(enhDVInfo, enhDVInfo.Procedures.Count != 0 ? enhDVInfo.Procedures[enhDVInfo.Procedures.Count - 1] : null, null, "New Procedure", 0)) { SaveEnhancedForProcedure(sourceProc, newenhProcedure, ded.Type); - RefreshRelatedNode(ProcedureInfo.Get(newenhProcedure.ItemID)); // this updates the treeview to include the new enhanced procedure + RefreshRelatedNode(ProcedureInfo.Get(newenhProcedure.ItemID)); // this updates the treeview to include the new enhanced procedure } } } @@ -3259,7 +3287,7 @@ namespace Volian.Controls.Library { SectionConfig newenhcfg = new SectionConfig(newenhSection); newenhcfg.AddEnhancedDocument(0, sourceSect.ItemID); - newenhcfg.SaveEnhancedDocuments(); // does this save data? + newenhcfg.SaveEnhancedDocuments(); // does this save data? using (Content c1 = Content.Get(newenhSection.ContentID)) { c1.Config = newenhcfg.ToString(); @@ -3273,7 +3301,7 @@ namespace Volian.Controls.Library cs.Save(); } } - + private Section CreateNewSection() { // B2020-087 the config for SubSection_Edit was sometimes set even when there wasn't any subsections, @@ -3313,7 +3341,7 @@ namespace Volian.Controls.Library // The parent step was not open in the step editor, just create new step(s) and add treenode. int newId = -1; // B2020-076: if this step has a template, insert template steps. - int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002); + int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002); if (topType != -1) { ItemInfo tmp = null; @@ -3340,12 +3368,12 @@ namespace Volian.Controls.Library // see if enhanced related steps need created: SectionConfig scfgE = _LastItemInfo.ActiveSection.MyConfig as SectionConfig; // C2018-003 fixed use of getting the active section - if (scfgE != null && scfgE.Section_LnkEnh=="Y") + if (scfgE != null && scfgE.Section_LnkEnh == "Y") { // set up which item to insert from based on whether editor was open (see comment from 11/17 above). EnhancedDocuments enhdocs = null; ItemInfo.EAddpingPart addpart = ItemInfo.EAddpingPart.Child; - if (_LastItemInfo.MyPrevious != null) // the code above will do the MakeStep regardless of whether editor is up if this is the only step. + if (_LastItemInfo.MyPrevious != null) // the code above will do the MakeStep regardless of whether editor is up if this is the only step. { addpart = ItemInfo.EAddpingPart.After; ItemInfo lstSrc = _LastItemInfo.MyPrevious; @@ -3517,7 +3545,7 @@ namespace Volian.Controls.Library result = FlexibleMessageBox.Show("Are you sure you want to delete this " + typeDescription + "?", "Verify Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); } - if (_LastProcedureInfo != null || result == DialogResult.Yes) + if (_LastProcedureInfo != null || result == DialogResult.Yes) { if (_LastFolderInfo != null) { @@ -3533,7 +3561,7 @@ namespace Volian.Controls.Library { foreach (DVEnhancedDocument dve in dvc.MyEnhancedDocuments) { - if (dve.Type != 0) + if (dve.Type != 0) DocVersion.Delete(dve.VersionID); else { @@ -3579,7 +3607,7 @@ namespace Volian.Controls.Library if (ed.Type != 0) enhIds.Add(ed.ItemID); // always return false because an event gets fired to delete tree nodes. if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false; - + _LastProcedureInfo = null; foreach (int enhId in enhIds) { @@ -3623,7 +3651,7 @@ namespace Volian.Controls.Library // just clear enhanced links back _LastSectionInfo.ClearEnhancedSectionLink(); } - OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo,true)); + OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo, true)); // always return false because an event gets fired to delete tree nodes. if (!DeleteItemInfoAndChildren(_LastSectionInfo)) { @@ -3678,7 +3706,7 @@ namespace Volian.Controls.Library } return false; } - + public void RemoveFolder(int folderId) { TreeNode nodeToRemove = FindNodeById(folderId, this.Nodes); @@ -3724,11 +3752,11 @@ namespace Volian.Controls.Library // do delete using RTBItem - this manages windowing from the step editor. // If the procedure is open & you're deleting procedure, you want to close open // window - this is done in DisplayTabControl-DeleteStepTabItem. - OnProcessing(true,"Deleting"); + OnProcessing(true, "Deleting"); if (!OnDeleteItemInfo(this, new vlnTreeItemInfoEventArgs(ii))) Item.DeleteItemAndChildren(ii); - OnProcessing(false,"Deleted"); - OnProcessingComplete(dtStart,"Deleted"); + OnProcessing(false, "Deleted"); + OnProcessingComplete(dtStart, "Deleted"); if (deletedSection) { // B2020-087 if we deleted the last sub section, then clear the SubSection_Edit in the parent's config @@ -3747,12 +3775,12 @@ namespace Volian.Controls.Library } catch (System.Data.SqlClient.SqlException ex) { - OnProcessing(false,"Delete Failed"); - OnProcessingComplete(dtStart,"Delete Failed"); + OnProcessing(false, "Delete Failed"); + OnProcessingComplete(dtStart, "Delete Failed"); // C2020-033: Support delete to bring up Search/Incoming Transitions panel if (ex.Message.Contains("has External Transitions")) { - ItemInfo iis = ItemInfo.Get(ii.ItemID); + ItemInfo iis = ItemInfo.Get(ii.ItemID); OnSearchIncTransIn(this, new vlnTreeItemInfoEventArgs(iis)); iis = ii.HandleSqlExceptionOnDelete(ex); } @@ -3768,13 +3796,13 @@ namespace Volian.Controls.Library private void OnProcessingComplete(DateTime dtStart, string message) { if (ProcessingComplete != null) - ProcessingComplete(this, new vlnTreeTimeEventArgs(dtStart,message)); + ProcessingComplete(this, new vlnTreeTimeEventArgs(dtStart, message)); } public event vlnTreeViewStatusEvent Processing; private void OnProcessing(bool status, string message) { if (Processing != null) - Processing(this, new vlnTreeStatusEventArgs(status,message)); + Processing(this, new vlnTreeStatusEventArgs(status, message)); } #endregion #region SetLastValuesAndSaveIfChangedStuff @@ -3850,7 +3878,7 @@ namespace Volian.Controls.Library ItemInfo iidrag = ((VETreeNode)dragNode).VEObject as ItemInfo; FolderInfo fdrag = ((VETreeNode)dragNode).VEObject as FolderInfo; DocVersionInfo ddrag = ((VETreeNode)dragNode).VEObject as DocVersionInfo; - if ((iidrag == null && fdrag == null && ddrag == null)) + if ((iidrag == null && fdrag == null && ddrag == null)) { FlexibleMessageBox.Show("Cannot drag/drop a grouping node."); return; @@ -3865,7 +3893,7 @@ namespace Volian.Controls.Library } catch (Exception ex) { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_ItemDrag", ex); + if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_ItemDrag", ex); } } #endregion @@ -3901,7 +3929,7 @@ namespace Volian.Controls.Library { get { return _lastScroll; } } - private string _location = string.Empty; + private string _location = string.Empty; #endregion #region Constructors public DropLocation(TreeView tv, System.Windows.Forms.DragEventArgs e, DateTime lastScroll) @@ -4018,7 +4046,7 @@ namespace Volian.Controls.Library { return; } - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString()); + //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString()); // Changed the color of the drag indicator to always be red Color lc = (_position == DropPosition.After ? Color.Red : Color.Red); Brush lb = (_position == DropPosition.After ? Brushes.Red : Brushes.Red); @@ -4045,12 +4073,12 @@ namespace Volian.Controls.Library //if (e.Effect == DragDropEffects.None) return; if (_dropNode != null) { -// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); + // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); DragHelper.ImageList_DragShowNolock(false); TreeView tv = _dropNode.TreeView; TreeNode tmp = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y))); -// if (!ScrollOnly) -// { + // if (!ScrollOnly) + // { if (ScrollTreeView(tmp) || !ScrollOnly) { //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation2 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); @@ -4060,11 +4088,11 @@ namespace Volian.Controls.Library //tv.SelectedNode = dropNode; Graphics g = tv.CreateGraphics(); TreeNodeTriangle(g); - if (_position != DropPosition.Child)InsertPointer(tmp, g); + if (_position != DropPosition.Child) InsertPointer(tmp, g); } } -// } -// else ScrollTreeView(tmp); + // } + // else ScrollTreeView(tmp); DragHelper.ImageList_DragShowNolock(true); } } @@ -4087,10 +4115,10 @@ namespace Volian.Controls.Library tn.NextVisibleNode.EnsureVisible();// Make sure that the next node is visible else if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode.IsVisible == false) - tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible } - else + tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible } + else if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.IsVisible == false) - tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible + tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible retval = (top != tn.Bounds.Top); // if (retval) if(_MyLog.IsInfoEnabled)_MyLog.Info("Scroll"); } @@ -4123,14 +4151,14 @@ namespace Volian.Controls.Library { DragDropEffects ee = e.Effect; if (e.KeyState == 13) // Shift and Control Keys to do a move. - ee = DragDropEffects.Move; + ee = DragDropEffects.Move; else ee = DragDropEffects.None; // Default - Do nothing - if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node + if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node ee = DragDropEffects.None; - else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions + else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions ee = DragDropEffects.None; - else if (IsFolder((VETreeNode)dragNode)) // Folder move is only valid if moving to folder with NO docversions + else if (IsFolder((VETreeNode)dragNode)) // Folder move is only valid if moving to folder with NO docversions { FolderInfo fdropi = ((VETreeNode)dl.DropNode).VEObject as FolderInfo; if (fdropi == null || fdropi.FolderDocVersionCount > 0) ee = DragDropEffects.None; @@ -4141,7 +4169,7 @@ namespace Volian.Controls.Library // For HLP, just move within the same procedure // TODO: allow for section move within subsections. ProcedureInfo pdropi = ((VETreeNode)dl.DropNode).VEObject as ProcedureInfo; - if (pdropi == null || (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None; + if (pdropi == null || (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None; } else if (!IsFolder((VETreeNode)dragNode) && (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None; @@ -4152,7 +4180,7 @@ namespace Volian.Controls.Library } catch (Exception ex) { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragOver", ex); + if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragOver", ex); } } @@ -4206,7 +4234,7 @@ namespace Volian.Controls.Library } catch (Exception ex) { - if(_MyLog.IsErrorEnabled)_MyLog.Error("GetTreeNodeFromData", ex); + if (_MyLog.IsErrorEnabled) _MyLog.Error("GetTreeNodeFromData", ex); } } return null; @@ -4232,7 +4260,7 @@ namespace Volian.Controls.Library this.SelectedNode = dragNode; FolderInfo fdragi = ((VETreeNode)dragNode).VEObject as FolderInfo; FolderInfo fdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as FolderInfo; - if (fdragi != null && fdropi != null && fdropi.FolderDocVersionCount==0) + if (fdragi != null && fdropi != null && fdropi.FolderDocVersionCount == 0) { using (Folder fdrag = fdragi.Get()) { @@ -4251,7 +4279,7 @@ namespace Volian.Controls.Library // may either be a document version or a procedure depending on where the user wants to position the procedure. ProcedureInfo pdragi = ((VETreeNode)dragNode).VEObject as ProcedureInfo; ProcedureInfo pdropi = null; - if (pdragi != null) // moving a procedure + if (pdragi != null) // moving a procedure { pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo; if (pdropi != null && pdragi.ActiveParent == pdropi.ActiveParent) @@ -4271,7 +4299,7 @@ namespace Volian.Controls.Library // Allow drag/drop of sections within the same procedure or same section (if subsection) (must have same parent) SectionInfo sdragi = ((VETreeNode)dragNode).VEObject as SectionInfo; SectionInfo sdropi = null; - if (sdragi != null) // moving a section + if (sdragi != null) // moving a section { sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo; if (sdropi != null && sdragi.ActiveParent == sdropi.ActiveParent) @@ -4292,7 +4320,7 @@ namespace Volian.Controls.Library // Allow drag/drop of steps within the same parent only StepInfo stdragi = ((VETreeNode)dragNode).VEObject as StepInfo; StepInfo stdropi = null; - if (stdragi != null) // moving a step + if (stdragi != null) // moving a step { stdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as StepInfo; if (stdropi != null && stdragi.ActiveParent == stdropi.ActiveParent) @@ -4316,36 +4344,36 @@ namespace Volian.Controls.Library } catch (Exception ex) { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragDrop", ex); + if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragDrop", ex); } } -// private void DumpMembers(object o) -// { -// Type t = o.GetType(); -// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString()); -// MemberInfo[] mis = t.GetMembers(); -// int i = 0; -// foreach (MemberInfo mi in mis) -// { -// i++; -// try -// { -// //if(mi.MemberType != MemberTypes.Method) -// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType); -//// if (fi.Name == "TreeView") -//// fi.SetValue(o, null); -// } -// catch (Exception ex) -// { -// if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex); -// } -// } -// } + // private void DumpMembers(object o) + // { + // Type t = o.GetType(); + // //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString()); + // MemberInfo[] mis = t.GetMembers(); + // int i = 0; + // foreach (MemberInfo mi in mis) + // { + // i++; + // try + // { + // //if(mi.MemberType != MemberTypes.Method) + // //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType); + //// if (fi.Name == "TreeView") + //// fi.SetValue(o, null); + // } + // catch (Exception ex) + // { + // if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex); + // } + // } + // } private TreeNode Clone(TreeNode tn) { TreeNode tmp = (TreeNode)tn.Clone(); - ExpandMatch(tmp,tn); + ExpandMatch(tmp, tn); return tmp; } private void tv_DragDropOld(object sender, System.Windows.Forms.DragEventArgs e) From 5fd0ff9e71011d3c4e0a36c7bb1ffef43d9c7a4d Mon Sep 17 00:00:00 2001 From: John Jenko Date: Tue, 3 Jun 2025 10:46:41 -0400 Subject: [PATCH 23/30] F2025-015 Shearon Harris add sub-steps in Notes and Cautions and to add an Open Bullet sub-step type in both the EOP and AOP formats. --- PROMS/Formats/fmtall/SHEAall.xml | Bin 77134 -> 79016 bytes PROMS/Formats/fmtall/SHEall.xml | Bin 77130 -> 78994 bytes .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 3 ++- PROMS/Volian.Print.Library/vlnTab.cs | 5 +++-- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/PROMS/Formats/fmtall/SHEAall.xml b/PROMS/Formats/fmtall/SHEAall.xml index ce0eed34d1e54cefd5b6db5d3b64310433605099..847ad8e5548128f22e0d7780309a65845526b0a3 100644 GIT binary patch delta 837 zcmah{O=}ZT6g_PMQX?8ef>F?UnUY{-`jG^oqOBnKfmpS+v_eZEolcwJ#Aq77Hg@N_ z^nwe2fy+Yo7QuBF#g!Xt7e#+Ucb@x_sa6-|F>mg@@4j>Hx$ka$i+}tTU*GGKJufBQ zqgi>EH}Wa}n0|6?KQ5)=^oDooWKjxT^bFo`#Kh5#ed?MRdV=Zpq6J^&*> zyv*AEiIw|IYBAjAs?b&?+LMUeXU2lfP(6lc0hg*#f@oi)t<=#i?apiZFR4DX#0HVt zGW>S`8|rgi|P=?X1vVvJ^F2MjL*X?I<26#1vzse)Z^p#9=@{Qax^g*n zcLvV&L{Bp)P9h^;on$mgvfH0Jb!c`_lw$d6Vw$Cewvs1uekw0JUY3*j@8sM(YH|$U zUPV+{<^dpWrPTiYH(5dvT@7*E4EJ%j*Y0Oz)s6RPkK6ej5yy1?xHd*+PH+DP_-4C= delta 39 xcmV+?0NDSi=>*Q&1hD2QlTe5TlTbiFv#=@-F_WN31Oq$(FOv-&8?&}z^3hPg5A*;4 diff --git a/PROMS/Formats/fmtall/SHEall.xml b/PROMS/Formats/fmtall/SHEall.xml index b2d912dae16c071e45e1741d6785f783d2ca6c32..868f873779d2f3480620a38365a444f3d7c225c1 100644 GIT binary patch delta 857 zcmah{O;1x%5Iu#)7^{)cVvq)MTcMT@ZHpn%@Rf97&?q9P8;MDIJcRISp*+7>6!-^yVJE1@wllXvgDxifR_Id{H%3s--JcR%#YZjX`o z+1c8szHq4aaUh+I7&J`Y&U7cPBgx1Eyv7<_jPvgfR$8&fzm*u9>PGK_gt8!7^jT>#SmB1C6 zUdP8Wvkk%bT6Hz{3deB|CA?%t84e1(oQp-~lu%@z!)VFkrZG?CEN)VD zrP!Kgp3jpyT!FrlQCR|bhZ&1DLn#@axilrD7{R(kU(tgq73dZJUr+$gVjBd6uTk=w zq-#)^U^{K)P|*VYrxs$xUZdWAo{Hp7D5a5M*6=m#`^0jomc3T_nu^(NB&nMj?1~4E zlfeYe;S5U}CZR;MdA6iF-G07#nj%xTB$>Z(G)tMmyY zZzA3DWam^cUqT+Cl6)TM;F`F6iR-?J$5moGi~lAO4JeHv!vWE!T$7!)XszY()WKgt CXSd-1 delta 39 xcmV+?0NDSM=>*E!1hBLzlQ2FGli()=lMp}>li(%bvnnenFq4oU1hXt+X3|bZ5AFZ} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 668e1cf5..6408a619 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -6097,9 +6097,10 @@ namespace VEPROMS.CSLA.Library } private bool IsLowestLevelStep { + //F2025-015 added check for IsInCautionOrNote for sub-step inside Notes and Cautions get { - return (!(IsCaution || IsNote || IsTable || IsFigure || Steps != null || MyParent.IsCaution || MyParent.IsNote)); + return (!(IsCaution || IsNote || IsInCautionOrNote || IsTable || IsFigure || Steps != null || MyParent.IsCaution || MyParent.IsNote)); } } private bool RNOsHighHasCheckOff() diff --git a/PROMS/Volian.Print.Library/vlnTab.cs b/PROMS/Volian.Print.Library/vlnTab.cs index 893530d6..40fce490 100644 --- a/PROMS/Volian.Print.Library/vlnTab.cs +++ b/PROMS/Volian.Print.Library/vlnTab.cs @@ -69,7 +69,7 @@ namespace Volian.Print.Library private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab // add symbol characters as needed // "\u25CF" - solid bullet - // \x0394 - delta + // \u0394 - delta private System.Drawing.FontStyle GetSysFontStyle(VE_Font f) { @@ -267,7 +267,8 @@ namespace Volian.Print.Library } } Rtf = GetRtf(origTab, vFont); - Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394 + Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394 + Rtf = Rtf.Replace("\u03BF", @"\f1\u959?\f0 "); // F2025-015 lowercase omicron check with hex value replace with RTF string if (ScriptCaution) { Rtf = GetRtf("\u25CFCaution ", vFont); From 2e68218cfe0b4263f8614cf1b3a15e76b65bfd87 Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Tue, 10 Jun 2025 16:34:22 -0400 Subject: [PATCH 24/30] B2025-034-Add-error-message-documents --- .../DisplayTabControl.cs | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index 5f37d421..cffb5c3c 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -10,6 +10,7 @@ using Volian.Controls.Library; using DevComponents.DotNetBar; using JR.Utils.GUI.Forms; using Volian.Base.Library; +using Microsoft.Win32; namespace Volian.Controls.Library { @@ -658,11 +659,34 @@ namespace Volian.Controls.Library } else // Otherwise open it in the Word editor { - Document.ConvertWordSectionToDOCX(myItemInfo); // B2023-093 Convert a Word section to the DOCX Word format if needed before opening it for edit - return OpenDSOTabPage(myItemInfo); - } - } + // B2025-034 Check to make sure that EDWord is installed in PROMS. If not return NULL. + object EDOfficeViewerX = GetValue(@"HKEY_CLASSES_ROOT\EDOfficeViewerX.Connect\CLSID\", @"", null); + object EDWordCtrl = GetValue(@"HKEY_CLASSES_ROOT\EDWORD.EDWordCtrl.1\CLSID\", @"", null); + + if (EDOfficeViewerX == null || EDWordCtrl == null) + { + + MessageBox.Show("Edraw needs to be installed or reinstalled on this PC. Please contact your IT Administrator to install and register Edraw that was provided with the PROMS Installation media. If additional support is needed, please contact Volian", "Error in Word section", + MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + return null; + } + else + { + Document.ConvertWordSectionToDOCX(myItemInfo); // B2023-093 Convert a Word section to the DOCX Word format if needed before opening it for edit + return OpenDSOTabPage(myItemInfo); + } + } + + } + public T GetValue(string registryKeyPath, string value, T defaultValue = default(T)) + { + T retVal = default(T); + + retVal = (T)Registry.GetValue(registryKeyPath, value, defaultValue); + + return retVal; + } public bool PasteRTBItem(ItemInfo myItemInfo, int copyStartID, ItemInfo.EAddpingPart pasteType, int type) { CleanUpClosedItems(); From 66deede936746037fe8b1eb1f9bf98e0b1ba87f9 Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Wed, 11 Jun 2025 18:24:59 -0400 Subject: [PATCH 25/30] B2025-034-Add-error-message-documents-2 --- PROMS/Volian.Controls.Library/DisplayTabControl.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index cffb5c3c..4d6dbda8 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -667,7 +667,8 @@ namespace Volian.Controls.Library if (EDOfficeViewerX == null || EDWordCtrl == null) { - MessageBox.Show("Edraw needs to be installed or reinstalled on this PC. Please contact your IT Administrator to install and register Edraw that was provided with the PROMS Installation media. If additional support is needed, please contact Volian", "Error in Word section", + MessageBox.Show("Edraw needs to be installed or reinstalled on this device. " + Environment.NewLine + "" + Environment.NewLine + + "Please contact your IT Administrator to install and register Edraw that was provided with the PROMS Installation media. If additional support is needed, please contact Volian.", "Error in Word section", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return null; } From abec4d928112178bf1f7382901eebe1cd730a1d3 Mon Sep 17 00:00:00 2001 From: John Jenko Date: Wed, 18 Jun 2025 09:20:17 -0400 Subject: [PATCH 26/30] C2025-036 - Cleaned up logic in PROMS code that generates the step/sub-step tabs to reduce un-needed processing in certain cases --- .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 108 ++++++++++-------- PROMS/Volian.Controls.Library/EditItem.cs | 7 +- 2 files changed, 64 insertions(+), 51 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 6408a619..485ba77f 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -449,10 +449,9 @@ namespace VEPROMS.CSLA.Library { StringBuilder sret = new StringBuilder(); ItemInfo pitem = this; - while (!pitem.IsSection && !pitem.IsHigh) { - using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID)) + using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID)) { string thisTab = stpinfo.MyTab.CleanText; @@ -4655,43 +4654,50 @@ namespace VEPROMS.CSLA.Library int localPrintLevel = PrintLevel; StepSectionData sd = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData; bool doMeta = false; - if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) + if (sd.StepSectionLayoutData.TieTabToLevel) // C2025-036 reduce un-needed processing { - if (sd.StepSectionLayoutData.ShowSectionTitles - && !MyDocStyle.CancelSectTitle - && !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel)) - localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential)) ? 0 : CurrentSectionLevel()); - if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true; - } - if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel) - if (SectionLevel() > 1) + if (ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) + { + if (sd.StepSectionLayoutData.ShowSectionTitles + && !MyDocStyle.CancelSectTitle + && !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel)) + localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential)) ? 0 : CurrentSectionLevel()); + if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true; + } + if (ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel && (SectionLevel() > 1)) localPrintLevel += 1; + } + SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList; + // Start with basic cases of alpha/numeric/seq: // If we have metasections AND... // If the seqtabs for this given level does not get a section number, use the seqtab rather than // the ident of the step: bool useSubStepTabs = false; - if (doMeta && IsHigh - && !seqtabs[(localPrintLevel < 0 ? 0 : localPrintLevel) % seqtabs.MaxIndex].TabToken.Contains("{numericWpar}") - && tbformat.Contains("{")) useSubStepTabs = true; - - // Check to be sure the parent tab should be included... If this sequential is within a note - // or caution or equipment list, don't use parent tab AND always start the numbering as a numeric - if (doMeta && IsSequential && (InNote() || InCaution() || - (MyParent.IsEquipmentList && !MyParent.FormatStepData.TabData.IdentPrint.Contains("{seq}")))) + if (doMeta) // C2025-036 reduce un-needed processing { - // if immediate parent is note, caution or equip, use numeric, otherwise use alpha. - localPrintLevel = 0; - int lv = 0; - ItemInfo ii = MyParent; - while (!ii.IsCaution && !ii.IsNote && !ii.IsEquipmentList) + if (IsHigh + && !seqtabs[(localPrintLevel < 0 ? 0 : localPrintLevel) % seqtabs.MaxIndex].TabToken.Contains("{numericWpar}") + && tbformat.Contains("{")) useSubStepTabs = true; + + // Check to be sure the parent tab should be included... If this sequential is within a note + // or caution or equipment list, don't use parent tab AND always start the numbering as a numeric + if (IsSequential && (InNote() || InCaution() || + (MyParent.IsEquipmentList && !MyParent.FormatStepData.TabData.IdentPrint.Contains("{seq}")))) { - lv++; - ii = ii.MyParent; + // if immediate parent is note, caution or equip, use numeric, otherwise use alpha. + localPrintLevel = 0; + int lv = 0; + ItemInfo ii = MyParent; + while (!ii.IsCaution && !ii.IsNote && !ii.IsEquipmentList) + { + lv++; + ii = ii.MyParent; + } + lv = lv % 2; + tbformat = (lv == 0) ? "{numeric}." : "{alpha}."; } - lv = lv % 2; - tbformat = (lv == 0) ? "{numeric}." : "{alpha}."; } bool trimTabStart = false; bool dontTrimParentTabBeforeAppending = false; // B2019-011 for Barakah Alarm format @@ -4757,7 +4763,7 @@ namespace VEPROMS.CSLA.Library PrintLevel = 0; // If token includes 'Wpar', the parent tab prefix's the tab. - if (localPrintLevel > 0 && (tbformat.IndexOf("{numericWpar}") > -1 || tbformat.IndexOf("{alphaWpar}") > -1 || tbformat.IndexOf("{ALPHAWpar}") > -1)) + if (localPrintLevel > 0 && tbformat.Contains("Wpar}")) // C2025-036 reduce un-needed processing { string parentTab = null; ItemInfo myparent = ActiveParent as ItemInfo; @@ -4872,18 +4878,21 @@ namespace VEPROMS.CSLA.Library } string alpha = useLinked?LinkedTab.Trim():AlphabeticalNumbering(ordinal); if (trimSeqValue) alpha = alpha.Trim(); // F2024-043 trim white around SEQ tab value (for sub-steps) - // B2017-211 Roman High Level steps should be followed by Uppercase alpha substeps - This is being limited to Calvert SAMG Format - if (_ActiveFormat.Name =="BGESAM1" &&MyParent != null && MyParent.IsHigh && MyParent.IsStep && MyParent.FormatStepData.TabData.IdentEdit.Contains("ROMAN")) - tbformat = tbformat.Replace("{alpha}", alpha); - else - tbformat = tbformat.Replace("{alpha}", alpha.ToLower()); - tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower()); - if (ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && tbformat.Contains("{ALPHA}") && alpha.Length > 1) - tbformat = tbformat.Replace("{ALPHA}. ", alpha + "."); // if double chars, remove one of the space for BGE - else - tbformat = tbformat.Replace("{ALPHA}", alpha); + if (tbformat.ToUpper().Contains("{ALPHA")) // C2025-036 reduce un-needed processing + { + // B2017-211 Roman High Level steps should be followed by Uppercase alpha substeps - This is being limited to Calvert SAMG Format + if (_ActiveFormat.Name == "BGESAM1" && MyParent != null && MyParent.IsHigh && MyParent.IsStep && MyParent.FormatStepData.TabData.IdentEdit.Contains("ROMAN")) + tbformat = tbformat.Replace("{alpha}", alpha); + else + tbformat = tbformat.Replace("{alpha}", alpha.ToLower()); + tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower()); + if (ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && tbformat.Contains("{ALPHA}") && alpha.Length > 1) + tbformat = tbformat.Replace("{ALPHA}. ", alpha + "."); // if double chars, remove one of the space for BGE + else + tbformat = tbformat.Replace("{ALPHA}", alpha); - tbformat = tbformat.Replace("{ALPHAWpar}", alpha); + tbformat = tbformat.Replace("{ALPHAWpar}", alpha); + } if (tbformat.ToUpper().Contains("ROMAN")) { string roman = RomanNumbering(ordinal); @@ -4891,15 +4900,18 @@ namespace VEPROMS.CSLA.Library tbformat = tbformat.Replace("{ROMAN}", roman); tbformat = tbformat.Substring(0, tbformat.Length - ((roman.Length - 1) > 0 ? (roman.Length - 1) : 0)); } - if (tbformat.Contains("{numeric}") && ((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002) + if (tbformat.Contains("{numeric}")) // C2025-036 reduce un-needed processing { - tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0"); - tbformat = tbformat.Substring(0, tbformat.Length - 2); - } - if (tbformat.Contains("{numeric}") && (this.FormatStepData.AppendDotZero)) // F2018-022 Added step type flag to append a ".0" to the end of the high level step - put in for Westinghouse single column format (wst1) - { - string numtxt = ordinal.ToString().PadLeft(2) + ".0"; - tbformat = tbformat.Replace("{numeric}.", numtxt).Replace("{numeric}", numtxt); + if (((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002) + { + tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0"); + tbformat = tbformat.Substring(0, tbformat.Length - 2); + } + if (this.FormatStepData.AppendDotZero) // F2018-022 Added step type flag to append a ".0" to the end of the high level step - put in for Westinghouse single column format (wst1) + { + string numtxt = ordinal.ToString().PadLeft(2) + ".0"; + tbformat = tbformat.Replace("{numeric}.", numtxt).Replace("{numeric}", numtxt); + } } // if this is a wolf creek background, if the tbformat ends with a '.' don't add a space, // otherwise add a space. diff --git a/PROMS/Volian.Controls.Library/EditItem.cs b/PROMS/Volian.Controls.Library/EditItem.cs index 27d89bd4..e5b2677d 100644 --- a/PROMS/Volian.Controls.Library/EditItem.cs +++ b/PROMS/Volian.Controls.Library/EditItem.cs @@ -758,7 +758,7 @@ namespace Volian.Controls.Library // clear tabs, clears then all so that next 'get' will calculate new. public void SetAllTabs() { - RefreshTab(); + RefreshTab(); if (_MyAfterEditItems != null) _MyAfterEditItems[0].SetAllTabs(); // B2020-043: used to loop through all, but then recursion would redo. if (_MyNextEditItem != null) _MyNextEditItem.SetAllTabs(); @@ -1160,7 +1160,7 @@ namespace Volian.Controls.Library { if (myItemInfoList != null) foreach (ItemInfo item in myItemInfoList) - AddChildBefore(item, expand); + AddChildBefore(item, expand); } public EditItem AddChildBefore(ItemInfoList myItemInfoList, EditItem nextEditItem) { @@ -3994,7 +3994,8 @@ namespace Volian.Controls.Library // TODO: Adjust top based upon format // TODO: Remove Label and just output ident on the paint event TabLeft = 20; - SetupHeader(itemInfo); + if (!itemInfo.IsStep) // C2025-036 reduce un-needed processing - this will prevent duplicat calls that generate step tabs when loading a procedure + SetupHeader(itemInfo); SetupAlarmTableView(itemInfo); // C2021-018 display alarm point table information in the step editor (if the format flag is set) this.Paint += new PaintEventHandler(EditItem_Paint); this.BackColorChanged += new EventHandler(EditItem_BackColorChanged); From 2d0862960862e187730e7a8c9f4def017049e3e5 Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 20 Jun 2025 13:56:41 -0400 Subject: [PATCH 27/30] C2025-023 attempt to resolve merge conflict --- PROMS/VEPROMS User Interface/PROMSFixes.Sql | 58 ++++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/PROMS/VEPROMS User Interface/PROMSFixes.Sql b/PROMS/VEPROMS User Interface/PROMSFixes.Sql index dd995cd1..7d88e3d2 100644 --- a/PROMS/VEPROMS User Interface/PROMSFixes.Sql +++ b/PROMS/VEPROMS User Interface/PROMSFixes.Sql @@ -23810,6 +23810,60 @@ GO IF (@@Error = 0) PRINT 'Running vesp_UpdateUserSettings Succeeded' ELSE PRINT 'Running vesp_UpdateUserSettings Failed to Execute' GO + +-- ============================================= +-- Author: Matthew Schill +-- Create date: 5/19/2025 +-- Description: Allow option to not prompt user with MS Word messages +-- when generating Summaries +-- ============================================= +--- MSWordSummaryPrompt = ahouls user be prompted with message? +-- default = yes (true) +IF NOT EXISTS(SELECT * + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME = 'Users' + AND COLUMN_NAME = 'MSWordSummaryPrompt') +ALTER TABLE Users ADD MSWordSummaryPrompt bit NOT NULL DEFAULT(1); +go +-- Display the status +IF (@@Error = 0) PRINT 'Altered table [Users] Succeeded for MSWordSummaryPrompt' +ELSE PRINT 'Altered table [Users] Error on Alter for MSWordSummaryPrompt' +go + + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_UpdateUserSettingMSWordSummaryPrompt]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) + DROP PROCEDURE [vesp_UpdateUserSettingMSWordSummaryPrompt]; +GO + +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: Matthew Schill +-- Create date: 5/19/2025 +-- Description: Allow option to not prompt user with MS Word messages +-- when generating Summaries +-- ============================================= +CREATE PROCEDURE [dbo].[vesp_UpdateUserSettingMSWordSummaryPrompt] + +( + @UID varchar(100), + @Prompt bit = null +) +WITH EXECUTE AS OWNER +AS + UPDATE Users SET + MSWordSummaryPrompt = ISNULL(@Prompt, MSWordSummaryPrompt) + WHERE UserID =@UID + + RETURN +GO + +IF (@@Error = 0) PRINT 'Running vesp_UpdateUserSettingMSWordSummaryPrompt Succeeded' +ELSE PRINT 'Running vesp_UpdateUserSettingMSWordSummaryPrompt Failed to Execute' +GO + --- begin changes for: ---C2025-023 - Electronic Procedures - Modifications to PROMS --- The following IsEPAnnotationType column was added for EP Annotations. @@ -24062,8 +24116,8 @@ BEGIN TRY -- Try Block DECLARE @RevDate varchar(255) DECLARE @RevDescription varchar(255) - set @RevDate = '4/8/2025 11:24' - set @RevDescription = 'Added support for EP Viewer Editing' + set @RevDate = '5/19/2025 8:44 AM' + set @RevDescription = 'C2025-013 Add ability to disable message that opening Summaries in MS Word' Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription From a55ce75e2e206959b378038cf60e7d5900f2c845 Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 20 Jun 2025 14:33:58 -0400 Subject: [PATCH 28/30] C2025-023 Bringing branch up to date to resolve merge conflicts --- PROMS/Formats/Formats.csproj | 8 + PROMS/Formats/fmtall/BASEall.xml | Bin 93418 -> 96090 bytes PROMS/Formats/fmtall/BNPP1Newall.xml | Bin 230068 -> 243444 bytes PROMS/Formats/fmtall/BNPP1all.xml | Bin 184796 -> 184806 bytes PROMS/Formats/fmtall/BNPP2all.xml | Bin 198526 -> 199004 bytes PROMS/Formats/fmtall/BNPPalrall.xml | Bin 236750 -> 236928 bytes PROMS/Formats/fmtall/BNPPbckall.xml | Bin 163138 -> 163138 bytes PROMS/Formats/fmtall/CATDEVall.xml | Bin 24166 -> 24166 bytes PROMS/Formats/fmtall/PROMSDemo1all.xml | Bin 0 -> 99538 bytes PROMS/Formats/fmtall/PROMSDemo2all.xml | Bin 0 -> 83234 bytes PROMS/Formats/fmtall/PROMSDemoALRall.xml | Bin 0 -> 104584 bytes PROMS/Formats/fmtall/PROMSDemoBCKall.xml | Bin 0 -> 54878 bytes PROMS/Formats/fmtall/SHEAall.xml | Bin 77134 -> 79016 bytes PROMS/Formats/fmtall/SHEall.xml | Bin 77130 -> 78994 bytes PROMS/Formats/fmtall/TUECall.xml | Bin 75302 -> 124082 bytes PROMS/Formats/fmtall/WEP2all.xml | Bin 79150 -> 79944 bytes PROMS/Formats/fmtall/WEPBCKall.xml | Bin 56940 -> 57728 bytes PROMS/Formats/fmtall/WEPSAM2all.xml | Bin 76028 -> 76816 bytes PROMS/Formats/frmFormatCopy.Designer.cs | 17 + PROMS/Formats/frmFormatCopy.cs | 12 +- PROMS/Formats/genmacall/BNPP1.svg | Bin 25556 -> 25598 bytes PROMS/Formats/genmacall/BNPP1new.svg | Bin 52496 -> 52496 bytes PROMS/Formats/genmacall/BNPP2.svg | Bin 36814 -> 36856 bytes PROMS/Formats/genmacall/BNPPalr.svg | Bin 13518 -> 14898 bytes PROMS/Formats/genmacall/BNPPbck.svg | Bin 3934 -> 3976 bytes PROMS/Formats/genmacall/PROMSDemo1.svg | Bin 0 -> 23242 bytes PROMS/Formats/genmacall/PROMSDemo2.svg | Bin 0 -> 11716 bytes PROMS/Formats/genmacall/PROMSDemoALR.svg | Bin 0 -> 7086 bytes PROMS/Formats/genmacall/PROMSDemoBCK.svg | Bin 0 -> 6990 bytes PROMS/Formats/genmacall/tuec.svg | Bin 20576 -> 28778 bytes .../LibSource/ctlXMLEditLib/ctlXMLEdit.cs | 50 +- .../DlgPrintProcedure.cs | 7 +- .../VEPROMS User Interface/VEPROMS_UI.csproj | 9 + .../dlgExportImportEP.cs | 50 ++ .../dlgMSWordMessage.Designer.cs | 100 +++ .../dlgMSWordMessage.cs | 45 ++ .../dlgMSWordMessage.resx | 120 ++++ .../frmPDFStatusForm.cs | 14 +- .../frmSysOptions.Designer.cs | 556 +++++++++-------- PROMS/VEPROMS User Interface/frmSysOptions.cs | 7 +- .../VEPROMS User Interface/frmSysOptions.resx | 2 +- .../frmVEPROMS.Designer.cs | 89 ++- PROMS/VEPROMS User Interface/frmVEPROMS.cs | 42 +- PROMS/VEPROMS User Interface/frmVEPROMS.resx | 18 +- .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 111 ++-- .../VEPROMS.CSLA.Library/Format/DocStyles.cs | 26 + .../VEPROMS.CSLA.Library/Format/PageStyles.cs | 10 + .../Minimal/UserSettings.cs | 31 +- .../Volian.Controls.Library/DisplayHistory.cs | 6 +- .../DisplayTabControl.cs | 33 +- PROMS/Volian.Controls.Library/DisplayTags.cs | 27 +- PROMS/Volian.Controls.Library/EditItem.cs | 7 +- PROMS/Volian.Controls.Library/ImageItem.cs | 5 +- .../Volian.Controls.Library/StepTabRibbon.cs | 4 +- PROMS/Volian.Controls.Library/vlnTreeView.cs | 587 ++++++++++-------- .../Volian.Print.Library/VlnSvgPageHelper.cs | 27 +- PROMS/Volian.Print.Library/vlnParagraph.cs | 23 +- PROMS/Volian.Print.Library/vlnTab.cs | 5 +- 58 files changed, 1360 insertions(+), 688 deletions(-) create mode 100644 PROMS/Formats/fmtall/PROMSDemo1all.xml create mode 100644 PROMS/Formats/fmtall/PROMSDemo2all.xml create mode 100644 PROMS/Formats/fmtall/PROMSDemoALRall.xml create mode 100644 PROMS/Formats/fmtall/PROMSDemoBCKall.xml create mode 100644 PROMS/Formats/genmacall/PROMSDemo1.svg create mode 100644 PROMS/Formats/genmacall/PROMSDemo2.svg create mode 100644 PROMS/Formats/genmacall/PROMSDemoALR.svg create mode 100644 PROMS/Formats/genmacall/PROMSDemoBCK.svg create mode 100644 PROMS/VEPROMS User Interface/dlgExportImportEP.cs create mode 100644 PROMS/VEPROMS User Interface/dlgMSWordMessage.Designer.cs create mode 100644 PROMS/VEPROMS User Interface/dlgMSWordMessage.cs create mode 100644 PROMS/VEPROMS User Interface/dlgMSWordMessage.resx diff --git a/PROMS/Formats/Formats.csproj b/PROMS/Formats/Formats.csproj index 8ca8ceeb..e950a1ee 100644 --- a/PROMS/Formats/Formats.csproj +++ b/PROMS/Formats/Formats.csproj @@ -288,6 +288,10 @@ + + + + @@ -505,6 +509,10 @@ + + + + diff --git a/PROMS/Formats/fmtall/BASEall.xml b/PROMS/Formats/fmtall/BASEall.xml index acf7b62d08c4ead24a3901b4703a3a87e77612de..8ca3756eb07244f11ea212a94c792a3cf220be2f 100644 GIT binary patch delta 890 zcmZuvO;1xn6ul!UfhyQyi>0U;8W%Ru#U&pmU$ZhO9b^DHc@ zbeF05Rp+YRrM3>S?@b$DZfP}XzX}YGQ;~9%B~591i1jMvX_iuCQ--FI(R2%Iitb}K ziQF8%SAezMy&z{uo6T``Ocl+OZgt#T>{M;MuoUh+OA&yRpe=x62+S>%vq06)*y z)-5+>2&WcZWXjdi&zrT_o(F2gybY=zGdQNY zD;j>}Av^1?(xrpQMgt9(oPV+@WXg!=T>r$!j5LQ6n+A~UATPBye?=<6wHVkP;0nk( zO=F5pmJ*!IRuBjz1yU(oz}Etu(ArS1k&$z!`8W}`!?NqNrZb?7;Z7bLuFtNNDDZha z-u|s=WT(KOQ8GvK_~Q}Xx)sqDM{rPm5?~7e>DK~S;PUb_ATDFSI~gKQ#LMi=f>wk# z$~I(YTtR}6c0`s94w*aga+0hQ&{aZDGI)()6L1=!9L4wNtGXD9oumH`*u1OMYF-*e zgjPB6ArqR* zR*Y}5o~-ht0sqOi25~eBXhOh;$6L}c#&+YE(YOCI2(o%bTeIAYj@qQw;|DZB1;)!Wzdmz{rAvcX^G=l^f#V^xZ^9A(dQ zgQLuTfQnT-*F9t@d5Nc`))R4myzKd~$4(y+wl?t-W5 zeF?YpqGFcEqR-*3Xb1DbgPiU@kF&UG2R}ZR;7{)uUKr~-B;j%bD|S>F=Y{UmI7^w; zI>@*6zU9*KaPh_Yc-m;^6CFuj=$*q=#a!*-bAi61h>pfY|0*Bjrbt4BtZFav57bdy z!QFLByrvz(m13LnEv#z0B}wPQ9SZLVdidDPozpqvjhrFna|XR@ktInAe)h2h#B_E) zQ%C}i>1>)AL;)qvet;uhwhewXSQg(&$>UO^1lcHShD@A&4yTrAx1__lM&^U7OZ2*w zf?yv@fxJxLgt-CM&Qc@}=l-N;7=8!&FZjrrb%a{>=-Jp%d2poM4=?qJo@i@B(-~2;c8M+zXS)rf8d&{)boLwo{NSfv;sSG~rPb9ESC=y_y_VJ|-_dq>Wrc>Y%(|fTn>pAjAb9E~4cCiw0LPJz12B$s zHir^fr6ExL=;H&c^ipy3M}bDR;u~nXMZyiXpr?vNto?s_rOGwMd0c$Gyo(0Y+wG! zuk?$C{0L+3#{S1`^~`!ltMjfW8hEqR3U5!~1#x_U$@wvzop-xr{KrCu$z|G;e{hgZ Vxr7{7z0I&kWr6&)z3j98{{YK{Mlk>Y delta 623 zcmezJmTyZd-vSXcBFcl_H6?nO!8$p>VlCO>do02DD{FrVCLmpu7}QxA}53glgs z6rL>SB{jK0&SLUC=XpR;GY0d`jV@;yflPCtgFpr>a4Q1xfT06ce#fI|@*MXtu!sdX z0OCB-SdAGBA@ZB=cxW+#xggEL&2nDta$bzv<-C|YwoHEz#B4Qv!9OOK?K3i%SMf}5 z_|2p;eG@mc1hXlF<@82T=EKt`@Gz@@c^mnd&8I&QVAh!~AjGUN{enD@XcJ&oVm4S{ls*MBu&FYVVwPhxm>wv_{1`|n$}wA_TB$a@ftQ(O`ad~l pt?dg+nZsD87nn12;4kRQvRKuk}L>dYt^maq9Wl}V>6rq^fwU66HgJ^6mf?QgIc=p`d z0>M8Z%C?}O2pWn$rUs{orjA!I+J5ih_dMt2eX99CYW{<&sN*>!5`4*EPsX%3oh)45 zW)Tt-JTIZ2$sDfPnn4d&Qdp9PHr{>zk_j!!(HtJwn@2>NTC`#1A%(QG7}Etj3X7=% zEPj??uv)})JKwl0Vn}#RikdvLF``8E+av=eoGQMv6|2yW=i96Bb$mrPG}kfZrPb7A zas#@It37<1xS;M}*qhQ04*6{%z`1!0^36d=ZELozcMtvvI*(n189qWEuUy=BXwkuL nw?pS_89@=FQ^u=0mBGJ;`T~M%RWL?l83X(|L8P&^h5hYcslIJ} delta 361 zcmaF1nETFR?uHh|EldxB7>%Ys3}UKfHefKCo*2xOJiR85NpAX;U?zd-MwLuL)21=8 zOxFu#IyU`42vY>JA%ofUk5ie1K|)`c%^57GxuojHZ`GGT8wwwAj8ql1Z8o#F`Fd9iKiYnn?q!<9IaFZJ>^$ z(M;AL9XVjdzOhW~5XC^&`RQu$Og3PxK;H4`Itfe?%%%*M)Bh(j9iGmW$fN@18749{ zPgihZQkZ@#kx2|6U diff --git a/PROMS/Formats/fmtall/BNPP2all.xml b/PROMS/Formats/fmtall/BNPP2all.xml index bd86f5449289fbc107d29fad6e70ca9921f34501..44e5776885634668ca497557c74a0ceb46c4a554 100644 GIT binary patch delta 1160 zcmb7@KWI~76vf{=FRfBSz%)ZBA%;>g#L_15X&Q}MG**W~k~WR0HnH|~sDmgXLS5{T zK}4)J;t{D^(LvD`3V~AkXDtX~adW7r@6jpJHWAePcNX?g~^aRH8JuhljtC$PWx z!XU!*PUi*8N+~`* z$f2vOS;|$$(?gH(&r}M%GL=joKFO`#jD741I?I|y_HNq7WxSsbONQ^~C5P7Vzg0yW zIrNyKdi-uKUximzE8GnK^NHV@|ME*{2e~jLi?d+J;>bQ!L++|cW_%qhCZ?Ys{cse= s-Fw5Yzrj|$%hKegEXCh$C0TU+&)GhoQvRsk!*zOhaIEz38os~$1u(T|DF6Tf delta 782 zcmaKqze^i&7{>3OYsDc*t5QV55hRGT5-+D-zD+e;DL4ty!x&99cd-cwtzupK1BVVS zEnHU&NOq=w#r+=FbB94W*^|w}6MC=LC0L5v%ja$u5dNiWkOi6)_xQU2YdK z9U&@yTELK=;kQLR;8B2%$g#TO!EES$QG8rZc1y@M;jc=qlY_@lk>cwm**5gt+Ntp2cB+}7n&Psq}v!X4>tq4bH znP^USML1zaTTb5-n6k7T&FQKl(X430ad=uqO1HyT>!DSXi#)6AcequPpABz*XlJQ7-IyNZGQ%C ziHnk0J!V&pVcmyj*%%)ou5APx$oQ37CRv`#$WV) zJm);mIp;nvw?8lreQ2EAQzTw~4UB68>&dJ@{?fChRwx@CR!@4w!Or+)#)ilLdY0R{XqdRNH&GeA~2X z<8z8)$41*p{9{WuTFnJGyH3T))B+r_@6WU|cPu5IXvxPy$Bj&txfbotIlUUj@9fKz z#1?33m^tSV-rcfWapQ1H9`-i}u)=)={cRaawYGCNP>6HxkF=c{ZD-t2DuQ`D1!r2y z@mIB1@!*tOLRB0}D@@zL`q(};i09I(aKvE5`S#V=-62L!8{w2lWuf}_QJ0~`K3tq1siaHGCp#p^Do}q~s-yY-CT%kgc};O$(1%vy zYcPUGf5U9t4Sh)Ejm5QhU|YlU)RD+wCvZ#DlvsP}8R7Itw0Npx9m}ARw9)&EX=-cO zi`SY8v?=`27oc+oP32y^*tnZstC7|VV@_7mqbM#7KD#b}KW*yOhO%+}vpCZ{1J(L~ z5~K#F48_{>o}OuWUBR7gHVkc0@y3>mL{Sz@I@isuBQ)?fTIZo|5Okw;l=h@uRZUN} zgcJ;Q%AS+85!~BZir3p!O5mc2%E9ZM19-IKDWW9jSH2@}XHSGu&h+)p3T455tYT&r zWEnKW6;o??-br8AOTI28?CavCt)McG=sL!Ci9i_?(&X0&B^@@3;4xkz=8y1PF_aEj zidzh~LXOBP2Zsn=;1*#V<;TT*IqX!NNsdB_M+{fOW^wN zY0kVf&J~B7TmvPdBL$MmA1jI;KA`-rF}_xh{tp3?$X^yNiTq{ZV)FZF7HneJ47H2; ze#!(T+S#2VsCj_4E8~3aQurjYmjg?pdO5I|Xus$-gNaPwgc<4==^mfpCNdtHqX*M{ zb%L9h!Y9$a99R;M1& delta 2819 zcmdT^ZA_C_6u$4hrGRMpYM~&OidBl%(!OnJE6Avzd}AqdZe}qh6Gewg2y@#%oF@B2 zoO+yh*`^dFlPEvxa2B0GHkWK!j6t_0OZdaKWLp*!(U|?*cJAAj7SS#HwJc5A_uQWI zoaa2xx$nTInmgAt;ax>MR7%yWs)(O-kVax8Z;*|ogvi82Z1`&=Zz?fHAgS_UtZ2ze zx|CO+pj!C4XfS&_*-H+PUF0Bn9djE=9Sp11K~3dS@LN=%b!a6QJY3(J=_4(qm2Ah1 zHYLlKvT=nY)*;%_xuBmNhKh9{djk+`Qt{Dgng{pOE5Ki(j{+7%0XxWM5iq?jt>Nu;W;>N)np4{60#s^ zxNOy7-eFeyB)6QwTVik14-w`X*qg0CTwS4fva zMNVqsMk>0KYyAAt_cRASFKc=N$vsa3k%V3u{iGN1gfsn!=4Ku;&xk*sLF*QSc#`Ri zA8*(#NnU6#*$M-xdbpjw6ig~D99mJw?AR?jogRt|y-M6!t~(zxNbzU5QXH7CS);Cz z>~Oa&A1Am&{(_lvZ;Sgr}I=~dXy z2}9XKF+1DzO)k=S%6Y4z(2mvC3?r!}NqsZs`x0Zk zGjzLR3k?1>hv0@+!)ywA7i=g!`b1|LZ-hfx)!9-L{F-Kr4X;-QW-_tkVid%NFe)@; za}U&c^g`-z*~^HRyhk!dP84!DGkHF7cDJe(w^a{)wr+%VK&QMH?zuK(CeMqDkNY6@ z5G?L}%%wo>fx)VZOmC7bGOk)2?#GSOajI^R>U9t-Q!S)h>rau1H?~nV8HI4aHV9|a zG|0lMRM@=F^N#~m53^g0@YSX~uvPdGvs>(%Gs(l~_@}n?K){kGIPR{Wf=8x2+#V!8 z?rVrh%!$+zu170^O(S@DJIkZ4mM8 z3pJnhn_%Zwk7N_q6n3`vfx-WxauqIH_rR>b8}7B`jqhx?NVsF-triNHdG8!e%Po(+ zbgRiSvV^3I&yfd#w;u$g$b$eaZ4xT*ho@*KpT0oVeBcb#;=0H@+sA6T?Oj^J!v)O5 z13%LoKDCxPd1#2fe|m`S;Bqt5@+=FJ#nBXV6Ay1MXPbF=n4aRn6sG4{o0(R!@y-yP z;TkntD>?XyQJTwx<*b6+ZX)(nIYXWw&?0Ue#xFxXtK!FsSq=AJr*8>Hg-E7?A2u={ zw~bOWpB$mpsE{M_=LlUcv~qBK`jRhcMj))r;f4$JHa7J+StXx7LoGbyVl_&l2`y2yNAO!*eKi(6v%}+S)PURN6l8AkIU|ck&&Wri zCh6L!_PWR)lXU7ON#-~8>`2_)cN9w_Xla$CSQ$Yp)l%HX{d}y5jR_sMu!G`xAlbnP zI+!L2z31Zo?B_Q|XjJF&CN{$rJ!czPi{cg@F(qH|$HwmzvvAy`U<>Pui~bXzXk{Ly z1l=l*8jMdfy#Er_$IYk|^`}o?#eEHoQPToz)Z#y@@TX;=E0#pjVtbOSlAW3FWLCV2 ztDT&lY|MPRda*-^niu%gBsIs(;b;!tpcTv<33=IQO2lGjJ<|W$tRJ{>oT{EZ#h!N3w5V;}@EGn~0_?_g{V#@6Y%?BRZ0g(BkIDgrJqp-S7qqS7K@;^0hm zgifCwXsJA*X=udP4K!6Gyv*L|+NjQW!V_WUo2(>e#$gSYCebX`F_ICjIwIN)91%5? z((49hWsWr1=Wz>_Jilq-!{k>jBw60(my383Zng2mAB}LTzfx`>vb6-=#dliak)O@fQ4vrpg)=-}im=nJ@b7C}V%0wM&& zr4{L>Zc=;z!O_8?gLrP@_J8Mo=jWdB%pT9|({t+{59?BilE-t!QwoD>U6FTwHD&-p=A1q({$c?P%D?nCyp~5TugwW+alT+<;nozBeMLFOj zR{QuYgEPQ0H%4aiM3*stKcRYtAsr-WN-dJ=Wl#Upp~i@-RW<%j;g-Zbx3s^D8a-y{ OS;}0vQ2b`t+5Q8PBUMZQ diff --git a/PROMS/Formats/fmtall/CATDEVall.xml b/PROMS/Formats/fmtall/CATDEVall.xml index 891b720ef81d2564f7897c1151c8b027bcded4de..4dae90af50c6710bc5c6a32a73a0654e1b3748d5 100644 GIT binary patch delta 39 tcmaF1hw<4S#tlmxm`xZACimM*Pmc5aw0VnT4?D9VgBeI*bDSrKC;&vM4uSvx delta 39 scmaF1hw<4S#tlmxCbPJnm>l3Bx4Fx48~fx1zF^MeE=R4+0bXJv0BmUxg8%>k diff --git a/PROMS/Formats/fmtall/PROMSDemo1all.xml b/PROMS/Formats/fmtall/PROMSDemo1all.xml new file mode 100644 index 0000000000000000000000000000000000000000..fdd07f1021a4a0e2cc5d7f6bacf6d1a68a5b6f0d GIT binary patch literal 99538 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≺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 F{|DZa#sL5T literal 0 HcmV?d00001 diff --git a/PROMS/Formats/fmtall/PROMSDemo2all.xml b/PROMS/Formats/fmtall/PROMSDemo2all.xml new file mode 100644 index 0000000000000000000000000000000000000000..a5d4598ca7619e54d21934896fdc3304dd3bdd36 GIT binary patch literal 83234 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 UDnZusQ0G#!9Yg1`0!e80|B_lORR910 literal 0 HcmV?d00001 diff --git a/PROMS/Formats/fmtall/PROMSDemoALRall.xml b/PROMS/Formats/fmtall/PROMSDemoALRall.xml new file mode 100644 index 0000000000000000000000000000000000000000..824969a13c4c041e04be348975d2132d35d95720 GIT binary patch literal 104584 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 literal 0 HcmV?d00001 diff --git a/PROMS/Formats/fmtall/PROMSDemoBCKall.xml b/PROMS/Formats/fmtall/PROMSDemoBCKall.xml new file mode 100644 index 0000000000000000000000000000000000000000..f9e76fb907ad03bf48ba24a271e145e2d87689e4 GIT binary patch literal 54878 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 delta 39 xcmV+?0NDSi=>*Q&1hD2QlTe5TlTbiFv#=@-F_WN31Oq$(FOv-&8?&}z^3hPg5A*;4 diff --git a/PROMS/Formats/fmtall/SHEall.xml b/PROMS/Formats/fmtall/SHEall.xml index b2d912dae16c071e45e1741d6785f783d2ca6c32..868f873779d2f3480620a38365a444f3d7c225c1 100644 GIT binary patch delta 857 zcmah{O;1x%5Iu#)7^{)cVvq)MTcMT@ZHpn%@Rf97&?q9P8;MDIJcRISp*+7>6!-^yVJE1@wllXvgDxifR_Id{H%3s--JcR%#YZjX`o z+1c8szHq4aaUh+I7&J`Y&U7cPBgx1Eyv7<_jPvgfR$8&fzm*u9>PGK_gt8!7^jT>#SmB1C6 zUdP8Wvkk%bT6Hz{3deB|CA?%t84e1(oQp-~lu%@z!)VFkrZG?CEN)VD zrP!Kgp3jpyT!FrlQCR|bhZ&1DLn#@axilrD7{R(kU(tgq73dZJUr+$gVjBd6uTk=w zq-#)^U^{K)P|*VYrxs$xUZdWAo{Hp7D5a5M*6=m#`^0jomc3T_nu^(NB&nMj?1~4E zlfeYe;S5U}CZR;MdA6iF-G07#nj%xTB$>Z(G)tMmyY zZzA3DWam^cUqT+Cl6)TM;F`F6iR-?J$5moGi~lAO4JeHv!vWE!T$7!)XszY()WKgt CXSd-1 delta 39 xcmV+?0NDSM=>*E!1hBLzlQ2FGli()=lMp}>li(%bvnnenFq4oU1hXt+X3|bZ5AFZ} diff --git a/PROMS/Formats/fmtall/TUECall.xml b/PROMS/Formats/fmtall/TUECall.xml index c8bce8ef70724b3c55cd5fad116cc3a7ae5e4c1e..b6297644dd216a5d660c7c067895b62449285c58 100644 GIT binary patch delta 3886 zcmcImdrVVT7(ZWM6a*0}(DLe~JQM|OOAEq)m4{5-1QpQ4O)L{|i%6+rgy0Nr#=V#U zKlNshD7t0YKTh;6vTVbtbJ-&f#5i5t;ySaCJYD0v;N?A2q#~Rp^%tc?9(X)ZoV&5HI zVg|D^6HPB?n`zEc`fs2meCKb*JI*kvKQdQsD4+#4vU;|OCT^y`Qkq^(@0)RXQv}Wy zQgCI{bjc}%2ZFz}B_&gd&J2}bHj87aEENYV$+~9xT)@)UQ>cHW*c%wW%GFL7(m#@ZhSr7}rkn9M2+7gZ)VHakn%~bj`e{|=>NUxZ8E5ILj z#2L_$HUk8yB&`oXK%+h0ubDl9D0hGlt+K zLNp$|bG?Z0!=5nQo?|syL?1t_Ho>PQT3Kk}_P5x2VnQB&~_*4e@d#T@L| zr$KXw3ft;yschl9_5aU*Td+P~C0#uH8h}me`$`R1|3e{~zwXDL_sn?Zxqhj5SEG`)(Gp3A9D_?` zVdqN;vwZWLLt09)R!03>O3woNw3wB!VvO4vW8mu9W&PytlKaid$MD#*-Pmzyg_;f$ zxgw*%+YDuFEA`<}!)zgc)`{O~Ku6dHZtL*;?ntSwwPD<{$$Q7%)#33Ip_uZ_HQei2 zf{ueKy!c}zIuD*5A`3tFP)_|AOJh~|iz6MEooE=1Gk6S6L{G-Q6_S(BhRB^M`&R9@Rjc_|0^fjVB+{c!f!q+;0SdbpGRX zz})t5Df*McYHG@XeSO&WMKpH2mV&Y3x#7>9uWIq?QL~iNdqRVqsKRTWog_ckOx{W@ zt1ljn0fU&OhZLoSrAd8<4|=IwrJ1U)vasH>ny3!>KqsT>d?ss@pz8+~5(9A`-OYe+ zX$kkD*}JM*Hi}H_nA#&J@Cre*PaWFH=e4jvcFvxcz0MhFqPxN7bNTSbr5U_4g^3GF zmn@fmpJelnUx`=GSgG*uw_@pFP8WCh!-HM(qM$}G*?RE$!&=F7>pT!s>0+M>ju6@A z!KLU5V(YR*K|F{70R50E{tA#5<-Pg2SdDy&jlS}wV*3Vz=up5DN=n$S4Kd)-V(#|= zVp{;jhIm7#gsq^M$fNWdiXRP90b-95u8S>NP~|ny_xz&6F9hX-SA$g)1)Jm>6F;E& zZK<5%VlhRGKvx2OWhiEa^pwv_@t6*D(@Lno8u@^2z#XMw>IG~bvx}z#AxfRegGlVt z!V$4G2nxls)J|Q?qChoepl$a=HF1PVQMXQm3^(UL!Ikm&SxB-WL_S7Hnld0+Iq|Ou zm>bLkd9+%TWq5s|meg9(m1Tm4`&K_CdS0te^l0ILtcTJ{LcN~=G2)FNiYKy?I9~yW z?xxx&EdPhXs41*n)D+*sJ@)Pn1v^+om%;pd4?iDxG#vG@)&&s10hl=$3UT9vf_&=F=l5VPr-mSgrSI`bn{mQS)R#jA~_}>kYd@a zpsT|?xsF?Ca-1>WWCu64$r*|wlN*d$Ca*FPntZ`Y2FT~xEMU~cG`WGDW%2<-6`&vs zSn!<50mjK6;#ejp^sr5yWhOCso-xPdbB;2TZF)E+A9IwLEC5spk>{GsV=gect=wsI zgZVwT&3RKSqNY!(VU(Nhv4T-(^Nn{u*e5H5>1qZ^1GaN) XVf@BE`N>X!=^3*a1*W$>VblQt8I5O1 diff --git a/PROMS/Formats/fmtall/WEP2all.xml b/PROMS/Formats/fmtall/WEP2all.xml index 8f5e5743cba63d2909835827a03dd17c44159199..880a7aa56e21979ff7fd536793b0fe18916a2b74 100644 GIT binary patch delta 188 zcmZ4Yisi%ymJP3RCV#M%n>@)|NYIlZkD-hqlc5-hlNfRsQYW7_RGlp6!83VUy3*uH z1`?ACETksy$&i~YmB}@kB~x$mBQBxI8!YT5uXEvIRGR!ZGj;NjR1s4Qa~KpDJb-4V zGh_f+J`AZqTT+4MD=-8zlmJ-;K$gbj|0_fpH7763k(`_mrZV|~rQGC#G@i);;eL~^ VO%$5^z>15NlK}`fKg{tx0RRS{JL3QV delta 14 WcmX@{fo0t*mJP3RHnSACoB#kky$6y2 diff --git a/PROMS/Formats/fmtall/WEPBCKall.xml b/PROMS/Formats/fmtall/WEPBCKall.xml index 7ffb858a3ca438a797b368c0119c4c77275c7bd0..76e45fd4052c4125ed2a436b20f88582c3b413f3 100644 GIT binary patch delta 190 zcmaE}hq>V}^9H8$$qTe(7%e7$)D#xa-WshREwV6Aguu8Su$8mE)V@nmH@LM ugAq_p5lq8$m@pVIn1MtYjV2$oah)6>ECjaWnvek4&X+<^nau&hEdc;{Xf-GR delta 183 zcmex&obk$W#trZICQC?&Ozz`Wn5@As#cIl6#9%PFQ9P58b24L$GOG!gpD(05nMoiB zBF1dOU_7}|KoKZs%wRJ4qpb7f4`O_9^(G7!lkZ1Mqq zKA@Pz%pXtYZrVY1bCP#HiO%7n?nS6m+WHO(u6tf9~`Q$*+{K*^aBqkR`@i7|%`Fmv* z!SqAf;K>`rSYUFj#taq=CX@He%0pQjRYH;EEEz1Iav&D6oC$*=gAq_pkc%@_sIfMLX%5$gdm2Q0Sy5f29)|(j3#By fUIF|5s3CG~cYKcs&mQI5jUw diff --git a/PROMS/Formats/genmacall/BNPPalr.svg b/PROMS/Formats/genmacall/BNPPalr.svg index c81be361816570d0a31d6c5cab6e57e1ce762fde..7baaf58d6a42e61e6a342023e0a043e51a1727be 100644 GIT binary patch delta 171 zcmX??xv6A>gwSLkeZI-BI2p2Joy@T&EyXP zN{mL6Hwp$%4&YN`G?|%{pcKNCB&Nq8OeBq5H;5<&u#^NhqM`)KiP JUM8&}2>?|aH^l$| delta 61 zcmV-D0K)&Wbk1q87!s4Z7I?F;93BLdP#cPqupDrc?ji=0P#g}k@)E8Ck`f4$x)uzbCgriF5KJc9F^Rm=q?*a7wY7G8i!!OlD*YpS+J-XtDyc3bP4=(PTj`MOGjU zl&R+q1c?H9#tbHt|8pxcgJ^`P34;Yll+k2zEq5?fzuDx!+{%n*lNEVjBIc79@+dQ# bGnhejicL1*6#(1h&Z`I&58Zr#_XHyV;D9Hd diff --git a/PROMS/Formats/genmacall/PROMSDemo1.svg b/PROMS/Formats/genmacall/PROMSDemo1.svg new file mode 100644 index 0000000000000000000000000000000000000000..50f21e01065199f584678a79e6d36c89d537810f GIT binary patch literal 23242 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 TT6?7>p4C%0%B}Aft6u*DAt;8V literal 0 HcmV?d00001 diff --git a/PROMS/Formats/genmacall/PROMSDemoALR.svg b/PROMS/Formats/genmacall/PROMSDemoALR.svg new file mode 100644 index 0000000000000000000000000000000000000000..c5ae1d771a3af3a0eca9c9aea4663339604017fa GIT binary patch literal 7086 zcmeHMTTdE66h5yu>3`VzTtIH34b><$u}Lq+HhrfGXjCME7uxi%xBb33d)V1!L01;* zLqmk!nKLurxz0JqKfjx@Eq8Ju=Mu<`bmU5gaw?b7m$$MiWhu%Uegn+(5kuI%u|KOJ2$gY04{%732VWUCIF8r&v9bHlD`V={?qWF>{4e+Zfl=0;~w6 z2&?0}x!5r^(M zbZ?|2zvTKDl*DWt3^CdRl}e@$N=k!xM&Rg;l<>KApCZ1iSWSL<7$sVMN?5}^D7#yn ze2kSRZkG+b_1*XhPBu&`?X}6=4W2q!xr?3e+`2XF#J{>UAnyR*JZm+?9AKo0Q^?g3 z#t!6AKFde>g7J44y}&*y3+mwlR83%v=&89CjFD@iC7xYq*7jd%dq6T>#$Wysm=>UERfb)DZXU17#nSTrtEsw4gJ*bM8B6+Bp4eYPOJ&Fs+uz z18}GsC1)k@rf({%IHy(6N3%*n%ewQpRe1-nV&WkOHFpZFnRZx!UAG}y@}o36;DEMz zo}iMq78-&1FmKOuvG{DS`ICmq-wxiD1sqpiR)DFwySfV?*nI39zS zdu+kFXlVn-Ik};BIuar7V2+kHf;<>IMsu;#qp5e=RoO|GQZe*8LU}XJkfsvSkSFC( zM^FG2BxQ>QM)6b_Yp@oJni{dpnrCA)ihqaE zq+}RpN z3wpe5WJ8#=UCl2IUnF6}R}G{1Q{k&2Z&6I?67=USYf*_V17TFvsK)2rnEMWQGOzq^ zH)lRC+2Rf}4TX`3#WT&!;69;~x3 zo%UE0e{$7d_ByQ*<_KD+@n&O9lLxvFz{YxXl(Ba7WtAr$b|ToHU{yQ-D((Gbt!v}* z%1@VHQJ)QfFdH7)wbnhVzx?nV0t@><){$EbSDt!2fTj2Dk<|Q~M{gs)2ea?${Y7t| zD8Ej2oR(RiPIsK59MSqU7Kh5HVbn&<-!)rU%-^kx^pO6jbw{&wlgh~Z>{em~txqc8 zJbGVg-O6-yet#q0t!z1bv+Ml=vK!0G$N~G-`X29DmczR~X+JjpJh~gL)LboTYre+x zdA60Y_kQgnGrQuv&DejA-$e1gC8f7D>G`GWOZ_~FYXkiptK_K*YJxpm9a|no>rW_xf{Pl3>hxf!<4~ntXNrgwC;fzV zn|jc+uS9eC`%8MX^&`Xd?b32QS#)53Y&wID_nQl0ls0YF+<#pBZnIG=rp5VvO>(9G HN!pUXycORt literal 0 HcmV?d00001 diff --git a/PROMS/Formats/genmacall/PROMSDemoBCK.svg b/PROMS/Formats/genmacall/PROMSDemoBCK.svg new file mode 100644 index 0000000000000000000000000000000000000000..4b0b8281a9b39fe3c4786b7e6d8391b4b17dd18a GIT binary patch literal 6990 zcmd5>TTc@~6h6-;{)g3P>1|uu5`-X-;0qcd#@BKuU?r5R#=ow9-<+P#?#%WA_Chvp zmzlFO-?@Hg*1vyNWnCWRyIe{lcXBM((vx%fAzgVdZ>1_Fso*!kOjiyueuUYsoVwXt zxselDg48l()@4mz%PU!xHyB%z&sgh+T;YC>w{N6_r$?;x5$~U1<{G-cV64zMc z5ZGx8N;P1$6nEl(?Bj}cY&dKstf-QqrpwZTy-UzT=TCrwzUK~IXxzoFT(yUt8JidQ zn{x+{p=KA+>{4K5=0nX%m2(y=|20$3mT_ zt=m)3hFCmq=5J}>-$f(Oqbas@US`pVv)NIEx9YNtxuZxmZe|k;Veb098KYzaW=ZO@ zBwwS_Ty}=pTLbp_=dQ*#IpiTzkH}~qi&msMMi>>WAmlGH&k~+GsEDjHDn$mnbzDPk zNn{r*-v{rIVSn~(PZevjI_$|l*zB{bsfK2fno-H&EQ*a~)N|&ZRoB@^h~c;D-W1xd z>8vmhTW+9_*hdHO3Dz&es^4JOZ8x?pTk;F_|4M$#7mV#;hEjWYCYu@Z(DGr-hc+D- z`8DJOquadjl43t*q8fa~K8DQAno<;1HRLkA>REgCaTR(Y#xULw6^FXg&xV)e2a7$+ zniO^?YqGbtu4uM3D9i}UlwIV={vdBYp{LuI4dmA@vSw>!-o&w0N8GfaReeNkvCq?v zP&J=rWHIYU^={;`an*pC-O6~0`f0Vz^Irqm(!|`b{$+-Yg>4} z0{Uy<=edhL$0(kP^Nrn@q1QU@?QZ>f6@Ji;(fUU(^M5_0G6>H~#kMZSYn_VXCAR!I zs1A?h@p_qQ;kB5E>w{&-4lFxac2IJB6)}y-Vfq|a4@M&MAY`q^Oe==>q1i<9B=#No z*fM-r&tUUf(+&Bwy*4?*YCo4P7sx$oWy=MVm>0%6qQzoCt(f+$Ivk@(EDobt$uMTM zn60nl49$Lj+Hu|-$KX7*lC|4?-quRbGhi`~v;GX{@rKKH^3{C4KMjj^?a=d`meBKxcNw;pb_31p@L~JU5%_g&Brj4zV zt!D0|C3phf7{@pF literal 0 HcmV?d00001 diff --git a/PROMS/Formats/genmacall/tuec.svg b/PROMS/Formats/genmacall/tuec.svg index 2d212c485f682dc41aeb5dc48760b3fabfa13f71..2ea957eb209aa4271b6e430e5c3635fca92a8eaa 100644 GIT binary patch delta 881 zcmcIiO-~bH5PmjGyOee}4a-UhBrR+ZNnGgeT4)cD0Ae(hQf$5XksgRKX_Swe2!upp z!odq!$D4`z1B{V0B*c^P7ofiYub#Y`cyQi#7cidSz+vBgX6BulXXbs5-YY+kluvgJ z{U)wq0F%(sfdnm@CVkL8DhUd7i%RM%M)kpN`lG&baB2Dwm8Qxp88PqgmV%eizLM_hWduusqDyA(Gf*XgrYDnM+`mAi8y`x(5* z_M**(c98;mCYh7IQC3cZex&;I=dUC9Y+s&La`a6d_FaS(&&ndo{-4LF!>mIcgwqtI zbv(;ymuNQHwFQF*C0F&}$*p{er!6r}kyTZQY6(r{C}_{v6|7>3b=|}xJY}3$p+K diff --git a/PROMS/ReferencedObjects/LibSource/ctlXMLEditLib/ctlXMLEdit.cs b/PROMS/ReferencedObjects/LibSource/ctlXMLEditLib/ctlXMLEdit.cs index 57a279a3..e181526c 100644 --- a/PROMS/ReferencedObjects/LibSource/ctlXMLEditLib/ctlXMLEdit.cs +++ b/PROMS/ReferencedObjects/LibSource/ctlXMLEditLib/ctlXMLEdit.cs @@ -276,8 +276,10 @@ namespace ctlXMLEditLib bool imagechild; //whether this field is a subchild of an image string imagename; //if subchild of image, name of image parent (for save) string imagedate; //if this was filename, save the date/time stamp + string name; //name of element + string parenthtid; //name of parent element in hashtable for PC items public TextBoxAttrTag(bool reqd, string ptn, RadioButton rd, bool img, - string imgname, string imgdate) + string imgname, string imgdate, string elemname) { this.req_msg = null; this.required = reqd; @@ -286,6 +288,12 @@ namespace ctlXMLEditLib this.imagechild = img; this.imagename = imgname; this.imagedate = imgdate; + this.name = elemname; + + if (name.Contains("_PCCHILD")) + this.parenthtid = name.Substring(0, name.IndexOf("_PCCHILD")); + else + this.parenthtid = null; } public void SetPattern(string pattern) {this.pattern = pattern;} public void SetRequired(bool req) {this.required = req;} @@ -298,6 +306,10 @@ namespace ctlXMLEditLib public string GetImageName { get {return imagename;}} public string GetImageDate { get {return imagedate;}} public void SetImageDate(string imgdate) {this.imagedate = imgdate;} + public string GetName { get { return name; } } + public void SetName(string elemname) { this.name = elemname; } + public string GetParentHTId { get { return parenthtid; } } + public void SetParentHTId(string id) { this.parenthtid = id; } } public ctlXMLEdit(VlnXmlElement myelem, XmlSchema myschema, ArrayList reqfields, ArrayList fldsWithApplic, string [] pckids) @@ -928,7 +940,7 @@ namespace ctlXMLEditLib // initialization. if (mytextbox.Tag == null) { - TextBoxAttrTag tag = new TextBoxAttrTag(false, pattern, radio, img, (img?imgname:null), null); + TextBoxAttrTag tag = new TextBoxAttrTag(false, pattern, radio, img, (img?imgname:null), null, mytextbox.Name); mytextbox.Tag = (object) tag; } return getannot; @@ -1136,6 +1148,7 @@ namespace ctlXMLEditLib mytextbox = new TextBox(); mytextbox.Location = new Point(screenx+indent, screeny); string tFieldName = (pcChildIdx == 0) ? CvtUserFldToFld(element.Name) : CvtUserFldToFld(pcChildFldName); + mytextbox.Name = tFieldName; myHT.Add(tFieldName, mytextbox); tabindx++; Controls.Add(mytextbox); @@ -1192,14 +1205,39 @@ namespace ctlXMLEditLib // C2021-026 Event handler for Parent/Child child textbox // if the textbox text is same as parent, then or nothing is entered in the textbox // then use the parent value and set the text color to gray + // B2025-028 RO Editor - Parent Child Applicability - Default Values + // Were always setting to the Group parent value instead of individual parent values + // When leaving the textbox private void txtBox_Leave(object sender, EventArgs e) { TextBox tb = sender as TextBox; string dfTxt = ""; - string parName = pcGrpBox.Name.Substring(5); - object o = myHT[parName]; - if (o != null) - dfTxt = (o as TextBox).Text; // set to use the parent's value (default) + try + { + string parentid = ((TextBoxAttrTag)tb.Tag).GetParentHTId; + if (!string.IsNullOrEmpty(parentid)) + { + object o = myHT[parentid]; + if (o != null) + dfTxt = (o as TextBox).Text; // set to use the parent's value (default) + } + else + { + + string parName = pcGrpBox.Name.Substring(5); + object o = myHT[parName]; + if (o != null) + dfTxt = (o as TextBox).Text; // set to use the parent's value (default) + } + } + catch + { + string parName = pcGrpBox.Name.Substring(5); + object o = myHT[parName]; + if (o != null) + dfTxt = (o as TextBox).Text; // set to use the parent's value (default) + } + if (dosaveflag) mysavexml = true; if (tb.Text.Length == 0 || tb.Text == dfTxt) { diff --git a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs index c01b1339..f38f9188 100644 --- a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs +++ b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs @@ -418,7 +418,12 @@ namespace VEPROMS //txbPDFLocation.Text = _PDFPath; BuildPDFFileName(); ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig; - if(SelectedSlave > 0) pc.SelectedSlave = SelectedSlave; + // C2025-033 set which Child procedure is being printed used for PageStyle items + VlnSvgPageHelper.PrintingChild = SelectedSlave; + if (SelectedSlave > 0) + { + pc.SelectedSlave = SelectedSlave; + } if (pc != null) { //C2021-062 use the save rev number for all procedures if set, or just use the rev number in the current procedure config diff --git a/PROMS/VEPROMS User Interface/VEPROMS_UI.csproj b/PROMS/VEPROMS User Interface/VEPROMS_UI.csproj index 7183693a..856bf9c4 100644 --- a/PROMS/VEPROMS User Interface/VEPROMS_UI.csproj +++ b/PROMS/VEPROMS User Interface/VEPROMS_UI.csproj @@ -164,6 +164,12 @@ dlgCheckedOutProcedure.cs + + Form + + + dlgMSWordMessage.cs + Form @@ -331,6 +337,9 @@ Designer AboutVEPROMS.cs + + dlgMSWordMessage.cs + dlgCheckOpenTabs.cs diff --git a/PROMS/VEPROMS User Interface/dlgExportImportEP.cs b/PROMS/VEPROMS User Interface/dlgExportImportEP.cs new file mode 100644 index 00000000..f6c466be --- /dev/null +++ b/PROMS/VEPROMS User Interface/dlgExportImportEP.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VEPROMS.CSLA.Library; + +namespace VEPROMS +{ + //C2025-024 Electronic Procedures - Phase 2 (PROMS XML output) + //class inherits from normal import/export form + //then adds additional functionality + public partial class dlgExportImportEP : dlgExportImport + { + private readonly AnnotationTypeInfo _AnnotationType; + + public dlgExportImportEP(string mode, FolderInfo folderInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId) : base(mode, folderInfo, myFrmVEPROMS, (E_UCFImportOptions) 0) + { + _AnnotationType = AnnotationTypeInfo.Get(annotationTypeId); + _ExportBothConvertedandNot = true; + DocReplace = new Dictionary(); + FormClosed += OnClose; + Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {folderInfo.Name}"; + } + + public dlgExportImportEP(string mode, DocVersionInfo docVersionInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId) : base(mode, docVersionInfo, myFrmVEPROMS, (E_UCFImportOptions)0) + { + _AnnotationType = AnnotationTypeInfo.Get(annotationTypeId); + _ExportBothConvertedandNot = true; + DocReplace = new Dictionary(); + FormClosed += OnClose; + Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {docVersionInfo.Name} of {docVersionInfo.MyFolder.Name}"; + } + public dlgExportImportEP(string mode, ProcedureInfo procedureInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId) : base(mode, procedureInfo, myFrmVEPROMS, (E_UCFImportOptions)0) + { + _AnnotationType = AnnotationTypeInfo.Get(annotationTypeId); + _ExportBothConvertedandNot = true; + DocReplace = new Dictionary(); + FormClosed += OnClose; + Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {procedureInfo.DisplayNumber}"; + } + private void OnClose(object sender, EventArgs e) + { + DocReplace.Clear(); + DocReplace = null; + } + + + } +} diff --git a/PROMS/VEPROMS User Interface/dlgMSWordMessage.Designer.cs b/PROMS/VEPROMS User Interface/dlgMSWordMessage.Designer.cs new file mode 100644 index 00000000..55b16316 --- /dev/null +++ b/PROMS/VEPROMS User Interface/dlgMSWordMessage.Designer.cs @@ -0,0 +1,100 @@ + +namespace VEPROMS +{ + partial class dlgMSWordMessage + { + ///

+ /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.labelX1 = new DevComponents.DotNetBar.LabelX(); + this.cbRemember = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.btnOpenTabs = new DevComponents.DotNetBar.ButtonX(); + this.SuspendLayout(); + // + // labelX1 + // + // + // + // + this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelX1.Location = new System.Drawing.Point(20, 12); + this.labelX1.Name = "labelX1"; + this.labelX1.Size = new System.Drawing.Size(520, 78); + this.labelX1.TabIndex = 0; + this.labelX1.Text = "The _______________ will be opened in MS Word.\r\n\r\nYou can make modifications and " + + "copy it into a PROMS Word section."; + this.labelX1.WordWrap = true; + // + // cbRemember + // + // + // + // + this.cbRemember.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbRemember.Location = new System.Drawing.Point(12, 96); + this.cbRemember.Name = "cbRemember"; + this.cbRemember.Size = new System.Drawing.Size(566, 55); + this.cbRemember.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.cbRemember.TabIndex = 1; + this.cbRemember.Text = "Check this box to not be prompted in the future when generating summaries that wi" + + "ll be opened in MS Word. \r\n\nNote that these settings can be adjusted at any time" + + " from the OPTIONS menu for PROMS."; + // + // btnOpenTabs + // + this.btnOpenTabs.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; + this.btnOpenTabs.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; + this.btnOpenTabs.DialogResult = System.Windows.Forms.DialogResult.Yes; + this.btnOpenTabs.Location = new System.Drawing.Point(490, 126); + this.btnOpenTabs.Name = "btnOpenTabs"; + this.btnOpenTabs.Size = new System.Drawing.Size(64, 25); + this.btnOpenTabs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnOpenTabs.TabIndex = 2; + this.btnOpenTabs.Text = "OK"; + this.btnOpenTabs.Click += new System.EventHandler(this.btnTabs_Click); + // + // dlgMSWordMessage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(567, 163); + this.ControlBox = false; + this.Controls.Add(this.btnOpenTabs); + this.Controls.Add(this.cbRemember); + this.Controls.Add(this.labelX1); + this.Name = "dlgMSWordMessage"; + this.ResumeLayout(false); + + } + + #endregion + + private DevComponents.DotNetBar.LabelX labelX1; + private DevComponents.DotNetBar.Controls.CheckBoxX cbRemember; + private DevComponents.DotNetBar.ButtonX btnOpenTabs; + } +} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/dlgMSWordMessage.cs b/PROMS/VEPROMS User Interface/dlgMSWordMessage.cs new file mode 100644 index 00000000..5f26d7f7 --- /dev/null +++ b/PROMS/VEPROMS User Interface/dlgMSWordMessage.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using VEPROMS.CSLA.Library; +using Volian.Base.Library; + +namespace VEPROMS +{ + public partial class dlgMSWordMessage : Form + { + //C2025-013 - Allow not continuously generate message that opening Summaries in MS Word + //typeofitem will be: Continuous Action/Time Critical Action + public dlgMSWordMessage(string typeofitem) + { + InitializeComponent(); + Text = $"{typeofitem} Summary"; + labelX1.Text = $"The {typeofitem} Summary will be opened in MS Word.\n\nYou can make modifications and copy it into a PROMS Word section."; + } + + public bool ShouldDisplay() + { + UserSettings usersettings = new UserSettings(VlnSettings.UserID); + return usersettings.UserSetting_MSWord_Summary_Prompt; + } + + private void btnTabs_Click(object sender, EventArgs e) + { + //if checkbox was checked in form, then update User Settings in database + if (cbRemember.Checked) + { + UserSettings usersettings = new UserSettings(VlnSettings.UserID); + usersettings.SetUserSetting_MSWord_Summary_Prompt(false); + } + + this.Close(); + } + + } +} diff --git a/PROMS/VEPROMS User Interface/dlgMSWordMessage.resx b/PROMS/VEPROMS User Interface/dlgMSWordMessage.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/PROMS/VEPROMS User Interface/dlgMSWordMessage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs b/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs index 9ef8319b..a2088150 100644 --- a/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs +++ b/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs @@ -395,8 +395,11 @@ namespace VEPROMS // this will display the generated Continuous Action Summary in MS Word (starting a new instance of MS Word outside of PROMS) if (MyPromsPrinter.MyContActSummary != null) { - string instructions = "The Continuous Action Summary will be opened in MS Word.\n\nYou can make modifications and copy it into a PROMS Word section."; - MessageBox.Show(instructions, "Continuous Action Summary"); + //C2025-013 - Allow not continuously generate message that opening Summaries in MS Word + using (dlgMSWordMessage msg = new dlgMSWordMessage("Continuous Action")) + { + if (msg.ShouldDisplay()) msg.ShowDialog(); + } // The ContActSummaryDelay is a switch that can be added to the PROMS.exe shortcut // ex: VEPROMS.EXE /ContActSummaryDelay=2.5 will delay it 2 1/2 seconds @@ -410,8 +413,11 @@ namespace VEPROMS // F2022-024 this will display the generated Time Critical Action Summary in MS Word (starting a new instance of MS Word outside of PROMS) if (MyPromsPrinter.MyTimeCriticalActSummary != null) { - string instructions = "The Time Critical Action Summary will be opened in MS Word.\n\nYou can make modifications and copy it into a PROMS Word section."; - MessageBox.Show(instructions, "Time Critical Action Summary"); + //C2025-013 - Allow not continuously generate message that opening Summaries in MS Word + using (dlgMSWordMessage msg = new dlgMSWordMessage("Time Critical Action")) + { + if (msg.ShouldDisplay()) msg.ShowDialog(); + } // The ContActSummaryDelay is a switch that can be added to the PROMS.exe shortcut // ex: VEPROMS.EXE /ContActSummaryDelay=2.5 will delay it 2 1/2 seconds diff --git a/PROMS/VEPROMS User Interface/frmSysOptions.Designer.cs b/PROMS/VEPROMS User Interface/frmSysOptions.Designer.cs index 7dbea98c..d86ed122 100644 --- a/PROMS/VEPROMS User Interface/frmSysOptions.Designer.cs +++ b/PROMS/VEPROMS User Interface/frmSysOptions.Designer.cs @@ -42,12 +42,11 @@ namespace VEPROMS this.btnGeneral = new DevComponents.DotNetBar.ButtonX(); this.tcSysOpts = new DevComponents.DotNetBar.TabControl(); this.tabControlPanel3 = new DevComponents.DotNetBar.TabControlPanel(); - //this.grPanUCFImpOpt = new DevComponents.DotNetBar.Controls.GroupPanel(); // C2024-041 remove from Options panel in V button. - this.cbUCFLForSetOnly = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbUCFLUseAll = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbUCFLOnlyImport = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbUCFLNotUsed = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbUCFIgnore = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.gpOpenTabs = new DevComponents.DotNetBar.Controls.GroupPanel(); + this.cbOTRemember = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.cbOTAutoOpen = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.gpShwRplWords = new DevComponents.DotNetBar.Controls.GroupPanel(); + this.cbShwRplWrdsColor = new DevComponents.DotNetBar.Controls.CheckBoxX(); this.gpVisioPath = new DevComponents.DotNetBar.Controls.GroupPanel(); this.txbxVisioPath = new DevComponents.DotNetBar.Controls.TextBoxX(); this.gpSeparateWindows = new DevComponents.DotNetBar.Controls.GroupPanel(); @@ -74,19 +73,22 @@ namespace VEPROMS this.tiGeneral = new DevComponents.DotNetBar.TabItem(this.components); this.tabControlPanel2 = new DevComponents.DotNetBar.TabControlPanel(); this.tiStUpMsg = new DevComponents.DotNetBar.TabItem(this.components); + this.cbUCFLForSetOnly = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.cbUCFLUseAll = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.cbUCFLOnlyImport = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.cbUCFLNotUsed = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.cbUCFIgnore = new DevComponents.DotNetBar.Controls.CheckBoxX(); this.btnReset = new DevComponents.DotNetBar.ButtonX(); this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); - this.cbOTRemember = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbShwRplWrdsColor = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbOTAutoOpen = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.gpOpenTabs = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.gpShwRplWords = new DevComponents.DotNetBar.Controls.GroupPanel(); + this.cbMSWordPrompt = new DevComponents.DotNetBar.Controls.CheckBoxX(); + this.gpMSWordSum = new DevComponents.DotNetBar.Controls.GroupPanel(); this.gpSystemColor.SuspendLayout(); this.panButtons.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.tcSysOpts)).BeginInit(); this.tcSysOpts.SuspendLayout(); this.tabControlPanel3.SuspendLayout(); - //this.grPanUCFImpOpt.SuspendLayout(); // C2024-041 remove from Options panel in V button. + this.gpOpenTabs.SuspendLayout(); + this.gpShwRplWords.SuspendLayout(); this.gpVisioPath.SuspendLayout(); this.gpSeparateWindows.SuspendLayout(); this.gpEnhancedDocs.SuspendLayout(); @@ -96,16 +98,15 @@ namespace VEPROMS this.gpAnnotationSettings.SuspendLayout(); this.gpTransRangeColor.SuspendLayout(); this.gpPropPageStyle.SuspendLayout(); - this.gpOpenTabs.SuspendLayout(); - this.gpShwRplWords.SuspendLayout(); + this.gpMSWordSum.SuspendLayout(); this.SuspendLayout(); // // btnCancel // this.btnCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(616, 492); - this.btnCancel.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.btnCancel.Location = new System.Drawing.Point(616, 591); + this.btnCancel.Margin = new System.Windows.Forms.Padding(2); this.btnCancel.Name = "btnCancel"; this.btnCancel.Size = new System.Drawing.Size(56, 19); this.btnCancel.TabIndex = 0; @@ -115,8 +116,8 @@ namespace VEPROMS // btnOK // this.btnOK.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnOK.Location = new System.Drawing.Point(542, 492); - this.btnOK.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.btnOK.Location = new System.Drawing.Point(542, 591); + this.btnOK.Margin = new System.Windows.Forms.Padding(2); this.btnOK.Name = "btnOK"; this.btnOK.Size = new System.Drawing.Size(56, 19); this.btnOK.TabIndex = 1; @@ -133,7 +134,7 @@ namespace VEPROMS this.gpSystemColor.Controls.Add(this.cbRibonBlue); this.gpSystemColor.DisabledBackColor = System.Drawing.Color.Empty; this.gpSystemColor.Location = new System.Drawing.Point(39, 13); - this.gpSystemColor.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpSystemColor.Margin = new System.Windows.Forms.Padding(2); this.gpSystemColor.Name = "gpSystemColor"; this.gpSystemColor.Size = new System.Drawing.Size(82, 97); // @@ -176,7 +177,7 @@ namespace VEPROMS this.cbRibonBlack.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.cbRibonBlack.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; this.cbRibonBlack.Location = new System.Drawing.Point(7, 54); - this.cbRibonBlack.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbRibonBlack.Margin = new System.Windows.Forms.Padding(2); this.cbRibonBlack.Name = "cbRibonBlack"; this.cbRibonBlack.Size = new System.Drawing.Size(67, 19); this.cbRibonBlack.TabIndex = 2; @@ -192,7 +193,7 @@ namespace VEPROMS this.cbRibonSilver.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.cbRibonSilver.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; this.cbRibonSilver.Location = new System.Drawing.Point(7, 30); - this.cbRibonSilver.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbRibonSilver.Margin = new System.Windows.Forms.Padding(2); this.cbRibonSilver.Name = "cbRibonSilver"; this.cbRibonSilver.Size = new System.Drawing.Size(67, 19); this.cbRibonSilver.TabIndex = 1; @@ -208,7 +209,7 @@ namespace VEPROMS this.cbRibonBlue.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.cbRibonBlue.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; this.cbRibonBlue.Location = new System.Drawing.Point(7, 6); - this.cbRibonBlue.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbRibonBlue.Margin = new System.Windows.Forms.Padding(2); this.cbRibonBlue.Name = "cbRibonBlue"; this.cbRibonBlue.Size = new System.Drawing.Size(67, 19); this.cbRibonBlue.TabIndex = 0; @@ -223,7 +224,7 @@ namespace VEPROMS this.panButtons.Controls.Add(this.btnGeneral); this.panButtons.DisabledBackColor = System.Drawing.Color.Empty; this.panButtons.Location = new System.Drawing.Point(14, 14); - this.panButtons.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.panButtons.Margin = new System.Windows.Forms.Padding(2); this.panButtons.Name = "panButtons"; this.panButtons.Size = new System.Drawing.Size(168, 460); this.panButtons.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -244,7 +245,7 @@ namespace VEPROMS this.btnIntrFaceStngs.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; this.btnIntrFaceStngs.Dock = System.Windows.Forms.DockStyle.Top; this.btnIntrFaceStngs.Location = new System.Drawing.Point(0, 38); - this.btnIntrFaceStngs.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.btnIntrFaceStngs.Margin = new System.Windows.Forms.Padding(2); this.btnIntrFaceStngs.Name = "btnIntrFaceStngs"; this.btnIntrFaceStngs.Size = new System.Drawing.Size(168, 19); this.btnIntrFaceStngs.TabIndex = 2; @@ -257,7 +258,7 @@ namespace VEPROMS this.btnStartMsg.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; this.btnStartMsg.Dock = System.Windows.Forms.DockStyle.Top; this.btnStartMsg.Location = new System.Drawing.Point(0, 19); - this.btnStartMsg.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.btnStartMsg.Margin = new System.Windows.Forms.Padding(2); this.btnStartMsg.Name = "btnStartMsg"; this.btnStartMsg.Size = new System.Drawing.Size(168, 19); this.btnStartMsg.TabIndex = 1; @@ -271,7 +272,7 @@ namespace VEPROMS this.btnGeneral.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; this.btnGeneral.Dock = System.Windows.Forms.DockStyle.Top; this.btnGeneral.Location = new System.Drawing.Point(0, 0); - this.btnGeneral.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.btnGeneral.Margin = new System.Windows.Forms.Padding(2); this.btnGeneral.Name = "btnGeneral"; this.btnGeneral.Size = new System.Drawing.Size(168, 19); this.btnGeneral.TabIndex = 0; @@ -287,11 +288,11 @@ namespace VEPROMS this.tcSysOpts.Controls.Add(this.tabControlPanel1); this.tcSysOpts.Controls.Add(this.tabControlPanel2); this.tcSysOpts.Location = new System.Drawing.Point(27, 17); - this.tcSysOpts.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.tcSysOpts.Margin = new System.Windows.Forms.Padding(2); this.tcSysOpts.Name = "tcSysOpts"; this.tcSysOpts.SelectedTabFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold); this.tcSysOpts.SelectedTabIndex = 2; - this.tcSysOpts.Size = new System.Drawing.Size(645, 457); + this.tcSysOpts.Size = new System.Drawing.Size(645, 555); this.tcSysOpts.TabIndex = 3; this.tcSysOpts.TabLayoutType = DevComponents.DotNetBar.eTabLayoutType.FixedWithNavigationBox; this.tcSysOpts.Tabs.Add(this.tiGeneral); @@ -303,9 +304,9 @@ namespace VEPROMS // // tabControlPanel3 // + this.tabControlPanel3.Controls.Add(this.gpMSWordSum); this.tabControlPanel3.Controls.Add(this.gpOpenTabs); this.tabControlPanel3.Controls.Add(this.gpShwRplWords); - //this.tabControlPanel3.Controls.Add(this.grPanUCFImpOpt); // C2024-041 remove from Options panel in V button. this.tabControlPanel3.Controls.Add(this.gpVisioPath); this.tabControlPanel3.Controls.Add(this.gpSeparateWindows); this.tabControlPanel3.Controls.Add(this.gpEnhancedDocs); @@ -319,10 +320,10 @@ namespace VEPROMS this.tabControlPanel3.DisabledBackColor = System.Drawing.Color.Empty; this.tabControlPanel3.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControlPanel3.Location = new System.Drawing.Point(0, 27); - this.tabControlPanel3.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.tabControlPanel3.Margin = new System.Windows.Forms.Padding(2); this.tabControlPanel3.Name = "tabControlPanel3"; this.tabControlPanel3.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel3.Size = new System.Drawing.Size(645, 430); + this.tabControlPanel3.Size = new System.Drawing.Size(645, 528); this.tabControlPanel3.Style.BackColor1.Color = System.Drawing.SystemColors.Control; this.tabControlPanel3.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; this.tabControlPanel3.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) @@ -332,132 +333,136 @@ namespace VEPROMS this.tabControlPanel3.TabItem = this.tiIntrFaceStngs; this.tabControlPanel3.ThemeAware = true; // - // grPanUCFImpOpt + // gpOpenTabs // - // C2024-041 remove from Options panel in V button. - /*this.grPanUCFImpOpt.CanvasColor = System.Drawing.SystemColors.Control; - this.grPanUCFImpOpt.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; // C2024-041 remove from Options panel in V button. - this.grPanUCFImpOpt.Controls.Add(this.cbUCFLForSetOnly); // C2024-041 remove from Options panel in V button. - this.grPanUCFImpOpt.Controls.Add(this.cbUCFLUseAll); // C2024-041 remove from Options panel in V button. - this.grPanUCFImpOpt.Controls.Add(this.cbUCFLOnlyImport); - this.grPanUCFImpOpt.Controls.Add(this.cbUCFLNotUsed); - this.grPanUCFImpOpt.Controls.Add(this.cbUCFIgnore); - this.grPanUCFImpOpt.DisabledBackColor = System.Drawing.Color.Empty; - this.grPanUCFImpOpt.Location = new System.Drawing.Point(313, 12); - this.grPanUCFImpOpt.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.grPanUCFImpOpt.Name = "grPanUCFImpOpt"; - this.grPanUCFImpOpt.Size = new System.Drawing.Size(146, 138); + this.gpOpenTabs.BackColor = System.Drawing.Color.Transparent; + this.gpOpenTabs.CanvasColor = System.Drawing.SystemColors.Control; + this.gpOpenTabs.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; + this.gpOpenTabs.Controls.Add(this.cbOTRemember); + this.gpOpenTabs.Controls.Add(this.cbOTAutoOpen); + this.gpOpenTabs.DisabledBackColor = System.Drawing.Color.Empty; + this.gpOpenTabs.Location = new System.Drawing.Point(462, 252); + this.gpOpenTabs.Margin = new System.Windows.Forms.Padding(2); + this.gpOpenTabs.Name = "gpOpenTabs"; + this.gpOpenTabs.Size = new System.Drawing.Size(139, 81); // // // - this.grPanUCFImpOpt.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.grPanUCFImpOpt.Style.BackColorGradientAngle = 90; - this.grPanUCFImpOpt.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.grPanUCFImpOpt.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.grPanUCFImpOpt.Style.BorderBottomWidth = 1; - this.grPanUCFImpOpt.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.grPanUCFImpOpt.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.grPanUCFImpOpt.Style.BorderLeftWidth = 1; - this.grPanUCFImpOpt.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.grPanUCFImpOpt.Style.BorderRightWidth = 1; - this.grPanUCFImpOpt.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.grPanUCFImpOpt.Style.BorderTopWidth = 1; - this.grPanUCFImpOpt.Style.CornerDiameter = 4; - this.grPanUCFImpOpt.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.grPanUCFImpOpt.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.grPanUCFImpOpt.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.grPanUCFImpOpt.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; + this.gpOpenTabs.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; + this.gpOpenTabs.Style.BackColorGradientAngle = 90; + this.gpOpenTabs.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; + this.gpOpenTabs.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpOpenTabs.Style.BorderBottomWidth = 1; + this.gpOpenTabs.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.gpOpenTabs.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpOpenTabs.Style.BorderLeftWidth = 1; + this.gpOpenTabs.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpOpenTabs.Style.BorderRightWidth = 1; + this.gpOpenTabs.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpOpenTabs.Style.BorderTopWidth = 1; + this.gpOpenTabs.Style.CornerDiameter = 4; + this.gpOpenTabs.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; + this.gpOpenTabs.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; + this.gpOpenTabs.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.gpOpenTabs.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; // // // - this.grPanUCFImpOpt.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.gpOpenTabs.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; // // // - this.grPanUCFImpOpt.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.grPanUCFImpOpt.TabIndex = 12; - this.grPanUCFImpOpt.Text = "UCF Import Options"; - */ // C2024-041 remove from Options panel in V button. + this.gpOpenTabs.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.gpOpenTabs.TabIndex = 13; + this.gpOpenTabs.Text = "Open Tabs"; // - // cbUCFLForSetOnly - // - this.cbUCFLForSetOnly.BackColor = System.Drawing.Color.Transparent; + // cbOTRemember // // // - this.cbUCFLForSetOnly.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbUCFLForSetOnly.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbUCFLForSetOnly.Location = new System.Drawing.Point(2, 89); - this.cbUCFLForSetOnly.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbUCFLForSetOnly.Name = "cbUCFLForSetOnly"; - this.cbUCFLForSetOnly.Size = new System.Drawing.Size(105, 19); - this.cbUCFLForSetOnly.TabIndex = 5; - this.cbUCFLForSetOnly.Text = "Load For Set Only"; - this.cbUCFLForSetOnly.CheckedChanged += new System.EventHandler(this.cbUCFLForSetOnly_CheckedChanged); // - // cbUCFLUseAll + this.cbOTRemember.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbOTRemember.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cbOTRemember.Location = new System.Drawing.Point(8, 5); + this.cbOTRemember.Margin = new System.Windows.Forms.Padding(2); + this.cbOTRemember.Name = "cbOTRemember"; + this.cbOTRemember.Size = new System.Drawing.Size(119, 19); + this.cbOTRemember.TabIndex = 9; + this.cbOTRemember.Text = "Remember Setting"; + this.cbOTRemember.CheckedChanged += new System.EventHandler(this.cbOTRemember_CheckedChanged); // - this.cbUCFLUseAll.BackColor = System.Drawing.Color.Transparent; + // cbOTAutoOpen // // // - this.cbUCFLUseAll.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbUCFLUseAll.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbUCFLUseAll.Location = new System.Drawing.Point(2, 67); - this.cbUCFLUseAll.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbUCFLUseAll.Name = "cbUCFLUseAll"; - this.cbUCFLUseAll.Size = new System.Drawing.Size(105, 19); - this.cbUCFLUseAll.TabIndex = 4; - this.cbUCFLUseAll.Text = "Load Use All"; - this.cbUCFLUseAll.CheckedChanged += new System.EventHandler(this.cbUCFLUseAll_CheckedChanged); // - // cbUCFLOnlyImport + this.cbOTAutoOpen.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbOTAutoOpen.Enabled = false; + this.cbOTAutoOpen.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cbOTAutoOpen.Location = new System.Drawing.Point(8, 28); + this.cbOTAutoOpen.Margin = new System.Windows.Forms.Padding(2); + this.cbOTAutoOpen.Name = "cbOTAutoOpen"; + this.cbOTAutoOpen.Size = new System.Drawing.Size(92, 19); + this.cbOTAutoOpen.TabIndex = 10; + this.cbOTAutoOpen.Text = "Auto Open"; + this.cbOTAutoOpen.Visible = false; // - this.cbUCFLOnlyImport.BackColor = System.Drawing.Color.Transparent; + // gpShwRplWords + // + this.gpShwRplWords.BackColor = System.Drawing.Color.Transparent; + this.gpShwRplWords.CanvasColor = System.Drawing.SystemColors.Control; + this.gpShwRplWords.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; + this.gpShwRplWords.Controls.Add(this.cbShwRplWrdsColor); + this.gpShwRplWords.DisabledBackColor = System.Drawing.Color.Empty; + this.gpShwRplWords.Location = new System.Drawing.Point(462, 165); + this.gpShwRplWords.Margin = new System.Windows.Forms.Padding(2); + this.gpShwRplWords.Name = "gpShwRplWords"; + this.gpShwRplWords.Size = new System.Drawing.Size(139, 72); // // // - this.cbUCFLOnlyImport.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbUCFLOnlyImport.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbUCFLOnlyImport.Location = new System.Drawing.Point(2, 46); - this.cbUCFLOnlyImport.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbUCFLOnlyImport.Name = "cbUCFLOnlyImport"; - this.cbUCFLOnlyImport.Size = new System.Drawing.Size(105, 19); - this.cbUCFLOnlyImport.TabIndex = 3; - this.cbUCFLOnlyImport.Text = "Load Only Imported"; - this.cbUCFLOnlyImport.CheckedChanged += new System.EventHandler(this.cbUCFLOnlyImport_CheckedChanged); - // - // cbUCFLNotUsed - // - this.cbUCFLNotUsed.BackColor = System.Drawing.Color.Transparent; + this.gpShwRplWords.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; + this.gpShwRplWords.Style.BackColorGradientAngle = 90; + this.gpShwRplWords.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; + this.gpShwRplWords.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpShwRplWords.Style.BorderBottomWidth = 1; + this.gpShwRplWords.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.gpShwRplWords.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpShwRplWords.Style.BorderLeftWidth = 1; + this.gpShwRplWords.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpShwRplWords.Style.BorderRightWidth = 1; + this.gpShwRplWords.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpShwRplWords.Style.BorderTopWidth = 1; + this.gpShwRplWords.Style.CornerDiameter = 4; + this.gpShwRplWords.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; + this.gpShwRplWords.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; + this.gpShwRplWords.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.gpShwRplWords.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; // // // - this.cbUCFLNotUsed.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbUCFLNotUsed.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbUCFLNotUsed.Location = new System.Drawing.Point(2, 24); - this.cbUCFLNotUsed.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbUCFLNotUsed.Name = "cbUCFLNotUsed"; - this.cbUCFLNotUsed.Size = new System.Drawing.Size(88, 19); - this.cbUCFLNotUsed.TabIndex = 2; - this.cbUCFLNotUsed.Text = "Load Not Used"; - this.cbUCFLNotUsed.CheckedChanged += new System.EventHandler(this.cbUCFLNotUsed_CheckedChanged); - // - // cbUCFIgnore - // - this.cbUCFIgnore.BackColor = System.Drawing.Color.Transparent; + this.gpShwRplWords.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; // // // - this.cbUCFIgnore.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbUCFIgnore.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbUCFIgnore.Location = new System.Drawing.Point(2, 2); - this.cbUCFIgnore.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbUCFIgnore.Name = "cbUCFIgnore"; - this.cbUCFIgnore.Size = new System.Drawing.Size(67, 19); - this.cbUCFIgnore.TabIndex = 1; - this.cbUCFIgnore.Text = "Ignore"; - this.cbUCFIgnore.CheckedChanged += new System.EventHandler(this.cbUCFIgnore_CheckedChanged); + this.gpShwRplWords.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.gpShwRplWords.TabIndex = 13; + this.gpShwRplWords.Text = "Replace Words"; + // + // cbShwRplWrdsColor + // + // + // + // + this.cbShwRplWrdsColor.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbShwRplWrdsColor.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cbShwRplWrdsColor.Location = new System.Drawing.Point(8, 5); + this.cbShwRplWrdsColor.Margin = new System.Windows.Forms.Padding(2); + this.cbShwRplWrdsColor.Name = "cbShwRplWrdsColor"; + this.cbShwRplWrdsColor.Size = new System.Drawing.Size(119, 19); + this.cbShwRplWrdsColor.TabIndex = 9; + this.cbShwRplWrdsColor.Text = "Color Replace Words"; + this.cbShwRplWrdsColor.CheckedChanged += new System.EventHandler(this.cbShwRplWrdsColor_CheckedChanged); // // gpVisioPath // @@ -466,8 +471,8 @@ namespace VEPROMS this.gpVisioPath.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.gpVisioPath.Controls.Add(this.txbxVisioPath); this.gpVisioPath.DisabledBackColor = System.Drawing.Color.Empty; - this.gpVisioPath.Location = new System.Drawing.Point(25, 347); - this.gpVisioPath.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpVisioPath.Location = new System.Drawing.Point(25, 432); + this.gpVisioPath.Margin = new System.Windows.Forms.Padding(2); this.gpVisioPath.Name = "gpVisioPath"; this.gpVisioPath.Size = new System.Drawing.Size(285, 69); // @@ -529,7 +534,7 @@ namespace VEPROMS this.gpSeparateWindows.Controls.Add(this.cbSeparateWindows); this.gpSeparateWindows.DisabledBackColor = System.Drawing.Color.Empty; this.gpSeparateWindows.Location = new System.Drawing.Point(313, 252); - this.gpSeparateWindows.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpSeparateWindows.Margin = new System.Windows.Forms.Padding(2); this.gpSeparateWindows.Name = "gpSeparateWindows"; this.gpSeparateWindows.Size = new System.Drawing.Size(127, 81); // @@ -571,7 +576,7 @@ namespace VEPROMS this.cbSeparateWindows.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.cbSeparateWindows.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbSeparateWindows.Location = new System.Drawing.Point(8, 8); - this.cbSeparateWindows.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbSeparateWindows.Margin = new System.Windows.Forms.Padding(2); this.cbSeparateWindows.Name = "cbSeparateWindows"; this.cbSeparateWindows.Size = new System.Drawing.Size(107, 19); this.cbSeparateWindows.TabIndex = 9; @@ -586,7 +591,7 @@ namespace VEPROMS this.gpEnhancedDocs.Controls.Add(this.cbEnhancedDocumentSync); this.gpEnhancedDocs.DisabledBackColor = System.Drawing.Color.Empty; this.gpEnhancedDocs.Location = new System.Drawing.Point(167, 252); - this.gpEnhancedDocs.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpEnhancedDocs.Margin = new System.Windows.Forms.Padding(2); this.gpEnhancedDocs.Name = "gpEnhancedDocs"; this.gpEnhancedDocs.Size = new System.Drawing.Size(127, 81); // @@ -631,7 +636,7 @@ namespace VEPROMS this.cbEnhancedDocumentSync.CheckValue = "Y"; this.cbEnhancedDocumentSync.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbEnhancedDocumentSync.Location = new System.Drawing.Point(8, 8); - this.cbEnhancedDocumentSync.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbEnhancedDocumentSync.Margin = new System.Windows.Forms.Padding(2); this.cbEnhancedDocumentSync.Name = "cbEnhancedDocumentSync"; this.cbEnhancedDocumentSync.Size = new System.Drawing.Size(99, 19); this.cbEnhancedDocumentSync.TabIndex = 9; @@ -646,7 +651,7 @@ namespace VEPROMS this.gpPasteSettings.Controls.Add(this.cbPasteNoReturns); this.gpPasteSettings.DisabledBackColor = System.Drawing.Color.Empty; this.gpPasteSettings.Location = new System.Drawing.Point(25, 252); - this.gpPasteSettings.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpPasteSettings.Margin = new System.Windows.Forms.Padding(2); this.gpPasteSettings.Name = "gpPasteSettings"; this.gpPasteSettings.Size = new System.Drawing.Size(119, 81); // @@ -691,7 +696,7 @@ namespace VEPROMS this.cbPastePlainText.CheckValue = "Y"; this.cbPastePlainText.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbPastePlainText.Location = new System.Drawing.Point(8, 8); - this.cbPastePlainText.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbPastePlainText.Margin = new System.Windows.Forms.Padding(2); this.cbPastePlainText.Name = "cbPastePlainText"; this.cbPastePlainText.Size = new System.Drawing.Size(92, 19); this.cbPastePlainText.TabIndex = 9; @@ -709,7 +714,7 @@ namespace VEPROMS this.cbPasteNoReturns.CheckValue = "Y"; this.cbPasteNoReturns.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbPasteNoReturns.Location = new System.Drawing.Point(8, 28); - this.cbPasteNoReturns.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbPasteNoReturns.Margin = new System.Windows.Forms.Padding(2); this.cbPasteNoReturns.Name = "cbPasteNoReturns"; this.cbPasteNoReturns.Size = new System.Drawing.Size(92, 19); this.cbPasteNoReturns.TabIndex = 10; @@ -724,7 +729,7 @@ namespace VEPROMS this.gpTreeView.Controls.Add(this.cbTVExpand); this.gpTreeView.DisabledBackColor = System.Drawing.Color.Empty; this.gpTreeView.Location = new System.Drawing.Point(312, 165); - this.gpTreeView.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpTreeView.Margin = new System.Windows.Forms.Padding(2); this.gpTreeView.Name = "gpTreeView"; this.gpTreeView.Size = new System.Drawing.Size(119, 72); // @@ -769,7 +774,7 @@ namespace VEPROMS this.cbTVExpand.CheckValue = "Y"; this.cbTVExpand.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbTVExpand.Location = new System.Drawing.Point(8, 13); - this.cbTVExpand.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbTVExpand.Margin = new System.Windows.Forms.Padding(2); this.cbTVExpand.Name = "cbTVExpand"; this.cbTVExpand.Size = new System.Drawing.Size(92, 19); this.superTooltip1.SetSuperTooltip(this.cbTVExpand, new DevComponents.DotNetBar.SuperTooltipInfo("Remember Last", "", "When checked, PROMS will remember the last procedure you had seleced from the tre" + @@ -786,7 +791,7 @@ namespace VEPROMS this.gpStepTypeToolTip.Controls.Add(this.cbStepTypeToolTip); this.gpStepTypeToolTip.DisabledBackColor = System.Drawing.Color.Empty; this.gpStepTypeToolTip.Location = new System.Drawing.Point(167, 165); - this.gpStepTypeToolTip.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpStepTypeToolTip.Margin = new System.Windows.Forms.Padding(2); this.gpStepTypeToolTip.Name = "gpStepTypeToolTip"; this.gpStepTypeToolTip.Size = new System.Drawing.Size(119, 72); // @@ -828,7 +833,7 @@ namespace VEPROMS this.cbStepTypeToolTip.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.cbStepTypeToolTip.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbStepTypeToolTip.Location = new System.Drawing.Point(8, 13); - this.cbStepTypeToolTip.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbStepTypeToolTip.Margin = new System.Windows.Forms.Padding(2); this.cbStepTypeToolTip.Name = "cbStepTypeToolTip"; this.cbStepTypeToolTip.Size = new System.Drawing.Size(92, 19); this.cbStepTypeToolTip.TabIndex = 7; @@ -843,7 +848,7 @@ namespace VEPROMS this.gpAnnotationSettings.Controls.Add(this.cbAnnotationPopup); this.gpAnnotationSettings.DisabledBackColor = System.Drawing.Color.Empty; this.gpAnnotationSettings.Location = new System.Drawing.Point(25, 165); - this.gpAnnotationSettings.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpAnnotationSettings.Margin = new System.Windows.Forms.Padding(2); this.gpAnnotationSettings.Name = "gpAnnotationSettings"; this.gpAnnotationSettings.Size = new System.Drawing.Size(119, 72); // @@ -888,7 +893,7 @@ namespace VEPROMS this.cbAnnotationPopup.CheckValue = "Y"; this.cbAnnotationPopup.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbAnnotationPopup.Location = new System.Drawing.Point(8, 13); - this.cbAnnotationPopup.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbAnnotationPopup.Margin = new System.Windows.Forms.Padding(2); this.cbAnnotationPopup.Name = "cbAnnotationPopup"; this.cbAnnotationPopup.Size = new System.Drawing.Size(92, 19); this.cbAnnotationPopup.TabIndex = 7; @@ -959,7 +964,7 @@ namespace VEPROMS this.gpPropPageStyle.Controls.Add(this.cbButtonIntrFace); this.gpPropPageStyle.DisabledBackColor = System.Drawing.Color.Empty; this.gpPropPageStyle.Location = new System.Drawing.Point(155, 12); - this.gpPropPageStyle.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.gpPropPageStyle.Margin = new System.Windows.Forms.Padding(2); this.gpPropPageStyle.Name = "gpPropPageStyle"; this.gpPropPageStyle.Size = new System.Drawing.Size(127, 107); // @@ -1001,7 +1006,7 @@ namespace VEPROMS this.cbPropGrid.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.cbPropGrid.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; this.cbPropGrid.Location = new System.Drawing.Point(8, 59); - this.cbPropGrid.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbPropGrid.Margin = new System.Windows.Forms.Padding(2); this.cbPropGrid.Name = "cbPropGrid"; this.cbPropGrid.Size = new System.Drawing.Size(97, 20); this.cbPropGrid.TabIndex = 2; @@ -1016,7 +1021,7 @@ namespace VEPROMS this.cbTabbedIntrFace.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.cbTabbedIntrFace.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; this.cbTabbedIntrFace.Location = new System.Drawing.Point(8, 34); - this.cbTabbedIntrFace.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbTabbedIntrFace.Margin = new System.Windows.Forms.Padding(2); this.cbTabbedIntrFace.Name = "cbTabbedIntrFace"; this.cbTabbedIntrFace.Size = new System.Drawing.Size(111, 20); this.cbTabbedIntrFace.TabIndex = 1; @@ -1030,7 +1035,7 @@ namespace VEPROMS this.cbButtonIntrFace.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.cbButtonIntrFace.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; this.cbButtonIntrFace.Location = new System.Drawing.Point(8, 10); - this.cbButtonIntrFace.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.cbButtonIntrFace.Margin = new System.Windows.Forms.Padding(2); this.cbButtonIntrFace.Name = "cbButtonIntrFace"; this.cbButtonIntrFace.Size = new System.Drawing.Size(97, 20); this.cbButtonIntrFace.TabIndex = 0; @@ -1047,7 +1052,7 @@ namespace VEPROMS this.tabControlPanel1.DisabledBackColor = System.Drawing.Color.Empty; this.tabControlPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControlPanel1.Location = new System.Drawing.Point(0, 27); - this.tabControlPanel1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.tabControlPanel1.Margin = new System.Windows.Forms.Padding(2); this.tabControlPanel1.Name = "tabControlPanel1"; this.tabControlPanel1.Padding = new System.Windows.Forms.Padding(1); this.tabControlPanel1.Size = new System.Drawing.Size(645, 430); @@ -1072,10 +1077,10 @@ namespace VEPROMS this.tabControlPanel2.DisabledBackColor = System.Drawing.Color.Empty; this.tabControlPanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControlPanel2.Location = new System.Drawing.Point(0, 27); - this.tabControlPanel2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.tabControlPanel2.Margin = new System.Windows.Forms.Padding(2); this.tabControlPanel2.Name = "tabControlPanel2"; this.tabControlPanel2.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel2.Size = new System.Drawing.Size(645, 430); + this.tabControlPanel2.Size = new System.Drawing.Size(645, 528); this.tabControlPanel2.Style.BackColor1.Color = System.Drawing.SystemColors.Control; this.tabControlPanel2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; this.tabControlPanel2.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) @@ -1092,14 +1097,94 @@ namespace VEPROMS this.tiStUpMsg.Text = "Startup Message"; this.tiStUpMsg.Visible = false; // + // cbUCFLForSetOnly + // + this.cbUCFLForSetOnly.BackColor = System.Drawing.Color.Transparent; + // + // + // + this.cbUCFLForSetOnly.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbUCFLForSetOnly.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; + this.cbUCFLForSetOnly.Location = new System.Drawing.Point(2, 89); + this.cbUCFLForSetOnly.Margin = new System.Windows.Forms.Padding(2); + this.cbUCFLForSetOnly.Name = "cbUCFLForSetOnly"; + this.cbUCFLForSetOnly.Size = new System.Drawing.Size(105, 19); + this.cbUCFLForSetOnly.TabIndex = 5; + this.cbUCFLForSetOnly.Text = "Load For Set Only"; + this.cbUCFLForSetOnly.CheckedChanged += new System.EventHandler(this.cbUCFLForSetOnly_CheckedChanged); + // + // cbUCFLUseAll + // + this.cbUCFLUseAll.BackColor = System.Drawing.Color.Transparent; + // + // + // + this.cbUCFLUseAll.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbUCFLUseAll.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; + this.cbUCFLUseAll.Location = new System.Drawing.Point(2, 67); + this.cbUCFLUseAll.Margin = new System.Windows.Forms.Padding(2); + this.cbUCFLUseAll.Name = "cbUCFLUseAll"; + this.cbUCFLUseAll.Size = new System.Drawing.Size(105, 19); + this.cbUCFLUseAll.TabIndex = 4; + this.cbUCFLUseAll.Text = "Load Use All"; + this.cbUCFLUseAll.CheckedChanged += new System.EventHandler(this.cbUCFLUseAll_CheckedChanged); + // + // cbUCFLOnlyImport + // + this.cbUCFLOnlyImport.BackColor = System.Drawing.Color.Transparent; + // + // + // + this.cbUCFLOnlyImport.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbUCFLOnlyImport.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; + this.cbUCFLOnlyImport.Location = new System.Drawing.Point(2, 46); + this.cbUCFLOnlyImport.Margin = new System.Windows.Forms.Padding(2); + this.cbUCFLOnlyImport.Name = "cbUCFLOnlyImport"; + this.cbUCFLOnlyImport.Size = new System.Drawing.Size(105, 19); + this.cbUCFLOnlyImport.TabIndex = 3; + this.cbUCFLOnlyImport.Text = "Load Only Imported"; + this.cbUCFLOnlyImport.CheckedChanged += new System.EventHandler(this.cbUCFLOnlyImport_CheckedChanged); + // + // cbUCFLNotUsed + // + this.cbUCFLNotUsed.BackColor = System.Drawing.Color.Transparent; + // + // + // + this.cbUCFLNotUsed.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbUCFLNotUsed.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; + this.cbUCFLNotUsed.Location = new System.Drawing.Point(2, 24); + this.cbUCFLNotUsed.Margin = new System.Windows.Forms.Padding(2); + this.cbUCFLNotUsed.Name = "cbUCFLNotUsed"; + this.cbUCFLNotUsed.Size = new System.Drawing.Size(88, 19); + this.cbUCFLNotUsed.TabIndex = 2; + this.cbUCFLNotUsed.Text = "Load Not Used"; + this.cbUCFLNotUsed.CheckedChanged += new System.EventHandler(this.cbUCFLNotUsed_CheckedChanged); + // + // cbUCFIgnore + // + this.cbUCFIgnore.BackColor = System.Drawing.Color.Transparent; + // + // + // + this.cbUCFIgnore.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbUCFIgnore.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; + this.cbUCFIgnore.Location = new System.Drawing.Point(2, 2); + this.cbUCFIgnore.Margin = new System.Windows.Forms.Padding(2); + this.cbUCFIgnore.Name = "cbUCFIgnore"; + this.cbUCFIgnore.Size = new System.Drawing.Size(67, 19); + this.cbUCFIgnore.TabIndex = 1; + this.cbUCFIgnore.Text = "Ignore"; + this.cbUCFIgnore.CheckedChanged += new System.EventHandler(this.cbUCFIgnore_CheckedChanged); + // // btnReset // this.btnReset.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnReset.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnReset.Location = new System.Drawing.Point(194, 492); - this.btnReset.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.btnReset.Location = new System.Drawing.Point(194, 591); + this.btnReset.Margin = new System.Windows.Forms.Padding(2); this.btnReset.Name = "btnReset"; - this.btnReset.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.btnReset.RightToLeft = System.Windows.Forms.RightToLeft.No; this.btnReset.Size = new System.Drawing.Size(79, 19); this.superTooltip1.SetSuperTooltip(this.btnReset, new DevComponents.DotNetBar.SuperTooltipInfo("Default Settings", "", "This will reset saved user settings back to the Proms system default.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(140, 95))); this.btnReset.TabIndex = 3; @@ -1111,135 +1196,61 @@ namespace VEPROMS this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray); this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; // - // cbOTRemember + // cbMSWordPrompt // // // // - this.cbOTRemember.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbOTRemember.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbOTRemember.Location = new System.Drawing.Point(8, 5); - this.cbOTRemember.Margin = new System.Windows.Forms.Padding(2); - this.cbOTRemember.Name = "cbOTRemember"; - this.cbOTRemember.Size = new System.Drawing.Size(119, 19); - this.cbOTRemember.TabIndex = 9; - this.cbOTRemember.Text = "Remember Setting"; - this.cbOTRemember.CheckedChanged += new System.EventHandler(this.cbOTRemember_CheckedChanged); + this.cbMSWordPrompt.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.cbMSWordPrompt.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cbMSWordPrompt.Location = new System.Drawing.Point(8, 5); + this.cbMSWordPrompt.Margin = new System.Windows.Forms.Padding(2); + this.cbMSWordPrompt.Name = "cbMSWordPrompt"; + this.cbMSWordPrompt.Size = new System.Drawing.Size(92, 44); + this.cbMSWordPrompt.TabIndex = 9; + this.cbMSWordPrompt.Text = "Show Prompt For Summaries"; // - // cbShwRplWrdsColor - // + // gpMSWordSum // - this.cbShwRplWrdsColor.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbShwRplWrdsColor.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbShwRplWrdsColor.Location = new System.Drawing.Point(8, 5); - this.cbShwRplWrdsColor.Margin = new System.Windows.Forms.Padding(2); - this.cbShwRplWrdsColor.Name = "cbShwRplWrdsColor"; - this.cbShwRplWrdsColor.Size = new System.Drawing.Size(119, 19); - this.cbShwRplWrdsColor.TabIndex = 9; - this.cbShwRplWrdsColor.Text = "Color Replace Words"; - this.cbShwRplWrdsColor.CheckedChanged += new System.EventHandler(this.cbShwRplWrdsColor_CheckedChanged); - //this.cbShwRplWrdsColor.Checked; - // - // cbOTAutoOpen + this.gpMSWordSum.BackColor = System.Drawing.Color.Transparent; + this.gpMSWordSum.CanvasColor = System.Drawing.SystemColors.Control; + this.gpMSWordSum.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; + this.gpMSWordSum.Controls.Add(this.cbMSWordPrompt); + this.gpMSWordSum.DisabledBackColor = System.Drawing.Color.Empty; + this.gpMSWordSum.Location = new System.Drawing.Point(25, 347); + this.gpMSWordSum.Margin = new System.Windows.Forms.Padding(2); + this.gpMSWordSum.Name = "gpMSWordSum"; + this.gpMSWordSum.Size = new System.Drawing.Size(119, 81); // // // - // - this.cbOTAutoOpen.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbOTAutoOpen.Enabled = false; - this.cbOTAutoOpen.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbOTAutoOpen.Location = new System.Drawing.Point(8, 28); - this.cbOTAutoOpen.Margin = new System.Windows.Forms.Padding(2); - this.cbOTAutoOpen.Name = "cbOTAutoOpen"; - this.cbOTAutoOpen.Size = new System.Drawing.Size(92, 19); - this.cbOTAutoOpen.TabIndex = 10; - this.cbOTAutoOpen.Text = "Auto Open"; - this.cbOTAutoOpen.Visible = false; - // - // gpOpenTabs - // - this.gpOpenTabs.BackColor = System.Drawing.Color.Transparent; - this.gpOpenTabs.CanvasColor = System.Drawing.SystemColors.Control; - this.gpOpenTabs.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.gpOpenTabs.Controls.Add(this.cbOTRemember); - this.gpOpenTabs.Controls.Add(this.cbOTAutoOpen); - this.gpOpenTabs.DisabledBackColor = System.Drawing.Color.Empty; - this.gpOpenTabs.Location = new System.Drawing.Point(462, 252); - this.gpOpenTabs.Margin = new System.Windows.Forms.Padding(2); - this.gpOpenTabs.Name = "gpOpenTabs"; - this.gpOpenTabs.Size = new System.Drawing.Size(139, 81); + this.gpMSWordSum.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; + this.gpMSWordSum.Style.BackColorGradientAngle = 90; + this.gpMSWordSum.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; + this.gpMSWordSum.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpMSWordSum.Style.BorderBottomWidth = 1; + this.gpMSWordSum.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.gpMSWordSum.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpMSWordSum.Style.BorderLeftWidth = 1; + this.gpMSWordSum.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpMSWordSum.Style.BorderRightWidth = 1; + this.gpMSWordSum.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; + this.gpMSWordSum.Style.BorderTopWidth = 1; + this.gpMSWordSum.Style.CornerDiameter = 4; + this.gpMSWordSum.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; + this.gpMSWordSum.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; + this.gpMSWordSum.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.gpMSWordSum.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; // // // - this.gpOpenTabs.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.gpOpenTabs.Style.BackColorGradientAngle = 90; - this.gpOpenTabs.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.gpOpenTabs.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpOpenTabs.Style.BorderBottomWidth = 1; - this.gpOpenTabs.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.gpOpenTabs.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpOpenTabs.Style.BorderLeftWidth = 1; - this.gpOpenTabs.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpOpenTabs.Style.BorderRightWidth = 1; - this.gpOpenTabs.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpOpenTabs.Style.BorderTopWidth = 1; - this.gpOpenTabs.Style.CornerDiameter = 4; - this.gpOpenTabs.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.gpOpenTabs.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.gpOpenTabs.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.gpOpenTabs.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; + this.gpMSWordSum.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; // // // - this.gpOpenTabs.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.gpOpenTabs.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.gpOpenTabs.TabIndex = 13; - this.gpOpenTabs.Text = "Open Tabs"; - // - // gpShwRplWords - // - this.gpShwRplWords.BackColor = System.Drawing.Color.Transparent; - this.gpShwRplWords.CanvasColor = System.Drawing.SystemColors.Control; - this.gpShwRplWords.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.gpShwRplWords.Controls.Add(this.cbShwRplWrdsColor); - this.gpShwRplWords.DisabledBackColor = System.Drawing.Color.Empty; - this.gpShwRplWords.Location = new System.Drawing.Point(462, 165); - this.gpShwRplWords.Margin = new System.Windows.Forms.Padding(2); - this.gpShwRplWords.Name = "gpShwRplWords"; - this.gpShwRplWords.Size = new System.Drawing.Size(139, 72); - // - // - // - this.gpShwRplWords.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.gpShwRplWords.Style.BackColorGradientAngle = 90; - this.gpShwRplWords.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.gpShwRplWords.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpShwRplWords.Style.BorderBottomWidth = 1; - this.gpShwRplWords.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.gpShwRplWords.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpShwRplWords.Style.BorderLeftWidth = 1; - this.gpShwRplWords.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpShwRplWords.Style.BorderRightWidth = 1; - this.gpShwRplWords.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpShwRplWords.Style.BorderTopWidth = 1; - this.gpShwRplWords.Style.CornerDiameter = 4; - this.gpShwRplWords.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.gpShwRplWords.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.gpShwRplWords.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.gpShwRplWords.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.gpShwRplWords.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.gpShwRplWords.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.gpShwRplWords.TabIndex = 13; - this.gpShwRplWords.Text = "Replace Words"; + this.gpMSWordSum.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.gpMSWordSum.TabIndex = 14; + this.gpMSWordSum.Text = "Opening in MS Word"; // // frmSysOptions // @@ -1247,7 +1258,7 @@ namespace VEPROMS this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(699, 520); + this.ClientSize = new System.Drawing.Size(699, 620); this.ControlBox = false; this.Controls.Add(this.btnReset); this.Controls.Add(this.tcSysOpts); @@ -1256,7 +1267,7 @@ namespace VEPROMS this.Controls.Add(this.btnCancel); this.DoubleBuffered = true; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.Margin = new System.Windows.Forms.Padding(2); this.Name = "frmSysOptions"; this.Text = "Proms System Options"; this.Load += new System.EventHandler(this.frmSysOptions_Load); @@ -1265,7 +1276,8 @@ namespace VEPROMS ((System.ComponentModel.ISupportInitialize)(this.tcSysOpts)).EndInit(); this.tcSysOpts.ResumeLayout(false); this.tabControlPanel3.ResumeLayout(false); - //this.grPanUCFImpOpt.ResumeLayout(false); // C2024-041 remove from Options panel in V button. + this.gpOpenTabs.ResumeLayout(false); + this.gpShwRplWords.ResumeLayout(false); this.gpVisioPath.ResumeLayout(false); this.gpSeparateWindows.ResumeLayout(false); this.gpEnhancedDocs.ResumeLayout(false); @@ -1275,9 +1287,7 @@ namespace VEPROMS this.gpAnnotationSettings.ResumeLayout(false); this.gpTransRangeColor.ResumeLayout(false); this.gpPropPageStyle.ResumeLayout(false); - this.gpOpenTabs.ResumeLayout(false); - this.gpShwRplWords.ResumeLayout(false); - + this.gpMSWordSum.ResumeLayout(false); this.ResumeLayout(false); } @@ -1336,5 +1346,7 @@ namespace VEPROMS private DevComponents.DotNetBar.Controls.CheckBoxX cbOTRemember; private DevComponents.DotNetBar.Controls.CheckBoxX cbOTAutoOpen; private DevComponents.DotNetBar.Controls.CheckBoxX cbShwRplWrdsColor; + private DevComponents.DotNetBar.Controls.GroupPanel gpMSWordSum; + private DevComponents.DotNetBar.Controls.CheckBoxX cbMSWordPrompt; } } diff --git a/PROMS/VEPROMS User Interface/frmSysOptions.cs b/PROMS/VEPROMS User Interface/frmSysOptions.cs index 2998f100..2c9afd49 100644 --- a/PROMS/VEPROMS User Interface/frmSysOptions.cs +++ b/PROMS/VEPROMS User Interface/frmSysOptions.cs @@ -100,7 +100,9 @@ namespace VEPROMS cbOTRemember.Checked = _usersettings.UserSetting_OpenTabs_Remember; cbOTAutoOpen.Enabled = cbOTAutoOpen.Visible = cbOTRemember.Checked; cbOTAutoOpen.Checked = _usersettings.UserSetting_OpenTabs_AutoOpen || !cbOTRemember.Checked; - + + //C2025-013 - Allow not continuously generate message that opening Summaries in MS Word + cbMSWordPrompt.Checked = _usersettings.UserSetting_MSWord_Summary_Prompt; } private void cbEnhancedDocumentSync_CheckedChanged(object sender, System.EventArgs e) { @@ -172,6 +174,9 @@ namespace VEPROMS } _usersettings.SetUserSettings(cbOTRemember.Checked, OTAuto); + //C2025-013 - Allow not continuously generate message that opening Summaries in MS Word + _usersettings.SetUserSetting_MSWord_Summary_Prompt(cbMSWordPrompt.Checked); + this.DialogResult = DialogResult.OK; this.Close(); } diff --git a/PROMS/VEPROMS User Interface/frmSysOptions.resx b/PROMS/VEPROMS User Interface/frmSysOptions.resx index d4747b7a..a53df5f4 100644 --- a/PROMS/VEPROMS User Interface/frmSysOptions.resx +++ b/PROMS/VEPROMS User Interface/frmSysOptions.resx @@ -125,7 +125,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAKklE - QVQ4T2P4//8/RRhCAClyMIoBIJoUPGrAqAEgPBwNIAfDDSAf/2cAALEslYfUgx+eAAAAAElFTkSuQmCC + QVQ4T2P4//8/AyUYQjAwgAiSMYoB6CYTwqMGjBowXA0gB8MNoAQDALEslYfhkv70AAAAAElFTkSuQmCC diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs index 8548a650..030f4070 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs @@ -47,13 +47,13 @@ namespace VEPROMS this.btnOpen = new DevComponents.DotNetBar.ButtonItem(); this.btnPrepare = new DevComponents.DotNetBar.ButtonItem(); this.btnAdmin = new DevComponents.DotNetBar.ButtonItem(); - this.btnUpdateFormats = new DevComponents.DotNetBar.ButtonItem(); this.icRecentDocs = new DevComponents.DotNetBar.ItemContainer(); this.labelItem8 = new DevComponents.DotNetBar.LabelItem(); this.itemContainer5 = new DevComponents.DotNetBar.ItemContainer(); this.btnOptions = new DevComponents.DotNetBar.ButtonItem(); this.btnExit = new DevComponents.DotNetBar.ButtonItem(); this.qatCustomizeItem1 = new DevComponents.DotNetBar.QatCustomizeItem(); + this.btnUpdateFormats = new DevComponents.DotNetBar.ButtonItem(); this.galleryGroup1 = new DevComponents.DotNetBar.GalleryGroup(); this.galleryGroup2 = new DevComponents.DotNetBar.GalleryGroup(); this.galleryGroup3 = new DevComponents.DotNetBar.GalleryGroup(); @@ -208,13 +208,13 @@ namespace VEPROMS this.btnHelp.KeyTips = "?"; this.btnHelp.Name = "btnHelp"; this.btnHelp.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.btnHelpManual, - this.btnShortCuts, - this.btnHelpVWeb, - this.btnSendErrorLog, - this.btnShowErrFld, - this.btnShowPrtFld, - this.btnHelpAbout}); + this.btnHelpManual, + this.btnShortCuts, + this.btnHelpVWeb, + this.btnSendErrorLog, + this.btnShowErrFld, + this.btnShowPrtFld, + this.btnHelpAbout}); this.btnHelp.Text = "Help"; // // btnHelpManual @@ -249,23 +249,19 @@ namespace VEPROMS this.btnSendErrorLog.Click += new System.EventHandler(this.btnSendErrorLog_Click); // // btnShowErrFld - // - //this.btnShowErrFld.Image = global::VEPROMS.Properties.Resources.GoToParentFolderHS; + // this.btnShowErrFld.Image = ((System.Drawing.Image)(resources.GetObject("btnShowErrFld.Image"))); this.btnShowErrFld.Name = "btnShowErrFld"; this.btnShowErrFld.Text = "Open Log Folder"; this.btnShowErrFld.Click += new System.EventHandler(this.btnShowErrFld_Click); // // btnShowPrtFld - // - //this.btnShowPrtFld.Image = global::VEPROMS.Properties.Resources.GoToParentFolderHS; + // this.btnShowPrtFld.Image = ((System.Drawing.Image)(resources.GetObject("btnShowPrtFld.Image"))); this.btnShowPrtFld.Name = "btnShowPrtFld"; this.btnShowPrtFld.Text = "Open Default Print Folder"; this.btnShowPrtFld.Click += new System.EventHandler(this.btnShowPrtFld_Click); // - // - // // btnHelpAbout // this.btnHelpAbout.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; @@ -303,6 +299,10 @@ namespace VEPROMS this.itemContainer1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { this.itemContainer2, this.itemContainer5}); + // + // + // + this.itemContainer1.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; // // // @@ -320,6 +320,10 @@ namespace VEPROMS this.itemContainer2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { this.itemContainer3, this.icRecentDocs}); + // + // + // + this.itemContainer2.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; // // // @@ -340,6 +344,10 @@ namespace VEPROMS this.btnOpen, this.btnPrepare, this.btnAdmin}); + // + // + // + this.itemContainer3.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; // // // @@ -363,7 +371,6 @@ namespace VEPROMS this.btnOpen.SubItemsExpandWidth = 24; this.btnOpen.Text = "&Open..."; this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click); - // // btnPrepare // @@ -382,16 +389,8 @@ namespace VEPROMS this.btnAdmin.CanCustomize = false; this.btnAdmin.Image = global::VEPROMS.Properties.Resources.Admin; this.btnAdmin.Name = "btnAdmin"; - //this.btnAdmin.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - //this.btnUpdateFormats}); this.btnAdmin.Text = "A&dministration"; // - // btnUpdateFormats - // - this.btnUpdateFormats.Name = "btnUpdateFormats"; - this.btnUpdateFormats.Text = "Update Formats"; - this.btnUpdateFormats.Click += new System.EventHandler(this.btnUpdateFormat_Click); - // // icRecentDocs // // @@ -404,6 +403,10 @@ namespace VEPROMS this.icRecentDocs.Name = "icRecentDocs"; this.icRecentDocs.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { this.labelItem8}); + // + // + // + this.icRecentDocs.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; // // // @@ -432,6 +435,10 @@ namespace VEPROMS this.itemContainer5.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { this.btnOptions, this.btnExit}); + // + // + // + this.itemContainer5.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; // // // @@ -444,6 +451,7 @@ namespace VEPROMS this.btnOptions.Image = ((System.Drawing.Image)(resources.GetObject("btnOptions.Image"))); this.btnOptions.Name = "btnOptions"; this.btnOptions.SubItemsExpandWidth = 24; + this.superTooltip1.SetSuperTooltip(this.btnOptions, new DevComponents.DotNetBar.SuperTooltipInfo("Options", "", "Set User-Based PROMS Editing Preferences", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.btnOptions.Text = "Opt&ions"; this.btnOptions.Click += new System.EventHandler(this.btnOptions_Click); // @@ -454,6 +462,7 @@ namespace VEPROMS this.btnExit.Image = ((System.Drawing.Image)(resources.GetObject("btnExit.Image"))); this.btnExit.Name = "btnExit"; this.btnExit.SubItemsExpandWidth = 24; + this.superTooltip1.SetSuperTooltip(this.btnExit, new DevComponents.DotNetBar.SuperTooltipInfo("Exit", "", "Close and Exit PROMS", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.btnExit.Text = "E&xit"; this.btnExit.Click += new System.EventHandler(this.btnExit_Click); // @@ -461,6 +470,12 @@ namespace VEPROMS // this.qatCustomizeItem1.Name = "qatCustomizeItem1"; // + // btnUpdateFormats + // + this.btnUpdateFormats.Name = "btnUpdateFormats"; + this.btnUpdateFormats.Text = "Update Formats"; + this.btnUpdateFormats.Click += new System.EventHandler(this.btnUpdateFormat_Click); + // // galleryGroup1 // this.galleryGroup1.Name = "galleryGroup1"; @@ -535,7 +550,7 @@ namespace VEPROMS // this.txtSearch.Dock = System.Windows.Forms.DockStyle.Right; this.txtSearch.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F); - this.txtSearch.Location = new System.Drawing.Point(820, 0); + this.txtSearch.Location = new System.Drawing.Point(810, 0); this.txtSearch.Multiline = true; this.txtSearch.Name = "txtSearch"; this.txtSearch.Size = new System.Drawing.Size(100, 25); @@ -544,7 +559,7 @@ namespace VEPROMS // btnPrevious // this.btnPrevious.Dock = System.Windows.Forms.DockStyle.Right; - this.btnPrevious.Location = new System.Drawing.Point(920, 0); + this.btnPrevious.Location = new System.Drawing.Point(910, 0); this.btnPrevious.Name = "btnPrevious"; this.btnPrevious.Size = new System.Drawing.Size(23, 25); this.btnPrevious.TabIndex = 1; @@ -554,7 +569,7 @@ namespace VEPROMS // btnPrint1 // this.btnPrint1.Dock = System.Windows.Forms.DockStyle.Right; - this.btnPrint1.Location = new System.Drawing.Point(943, 0); + this.btnPrint1.Location = new System.Drawing.Point(933, 0); this.btnPrint1.Name = "btnPrint1"; this.btnPrint1.Size = new System.Drawing.Size(23, 25); this.btnPrint1.TabIndex = 2; @@ -566,7 +581,7 @@ namespace VEPROMS this.cbScrunch.Checked = true; this.cbScrunch.CheckState = System.Windows.Forms.CheckState.Checked; this.cbScrunch.Dock = System.Windows.Forms.DockStyle.Right; - this.cbScrunch.Location = new System.Drawing.Point(966, 0); + this.cbScrunch.Location = new System.Drawing.Point(956, 0); this.cbScrunch.Name = "cbScrunch"; this.cbScrunch.Size = new System.Drawing.Size(24, 25); this.cbScrunch.TabIndex = 3; @@ -575,7 +590,7 @@ namespace VEPROMS // btnNext // this.btnNext.Dock = System.Windows.Forms.DockStyle.Right; - this.btnNext.Location = new System.Drawing.Point(990, 0); + this.btnNext.Location = new System.Drawing.Point(980, 0); this.btnNext.Name = "btnNext"; this.btnNext.Size = new System.Drawing.Size(23, 25); this.btnNext.TabIndex = 4; @@ -586,7 +601,7 @@ namespace VEPROMS // this.cmbFont.Dock = System.Windows.Forms.DockStyle.Right; this.cmbFont.FormattingEnabled = true; - this.cmbFont.Location = new System.Drawing.Point(1013, 0); + this.cmbFont.Location = new System.Drawing.Point(1003, 0); this.cmbFont.Name = "cmbFont"; this.cmbFont.Size = new System.Drawing.Size(172, 23); this.cmbFont.TabIndex = 0; @@ -596,9 +611,10 @@ namespace VEPROMS // this.lblDummy.Dock = System.Windows.Forms.DockStyle.Right; this.lblDummy.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F); - this.lblDummy.Location = new System.Drawing.Point(1013, 0); + this.lblDummy.Location = new System.Drawing.Point(1175, 0); this.lblDummy.Name = "lblDummy"; this.lblDummy.Size = new System.Drawing.Size(10, 25); + this.lblDummy.TabIndex = 5; this.lblDummy.Visible = false; // // labelItem10 @@ -734,8 +750,9 @@ namespace VEPROMS // ctrlAnnotationDetails // this.ctrlAnnotationDetails.AnnotationDirty = false; - this.ctrlAnnotationDetails.AnnotationRTFText = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft S" + - "ans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20\\par\r\n}\r\n"; + this.ctrlAnnotationDetails.AnnotationRTFText = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\nouicompat\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 " + + "Microsoft Sans Serif;}}\r\n{\\*\\generator Riched20 10.0.26100}\\viewkind4\\uc1 \r\n\\par" + + "d\\f0\\fs20\\par\r\n}\r\n"; this.ctrlAnnotationDetails.Annotations = null; this.ctrlAnnotationDetails.AnnotationText = ""; this.ctrlAnnotationDetails.ClientProcess = null; @@ -806,6 +823,7 @@ namespace VEPROMS // tv // this.tv.AllowDrop = true; + this.tv.DelProcReason = null; this.tv.Dock = System.Windows.Forms.DockStyle.Fill; this.tv.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.tv.HideSelection = false; @@ -926,7 +944,7 @@ namespace VEPROMS this.displayTags.Dock = System.Windows.Forms.DockStyle.Fill; this.displayTags.IsVisible = false; this.displayTags.Location = new System.Drawing.Point(0, 0); - this.displayTags.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.displayTags.Margin = new System.Windows.Forms.Padding(2); this.displayTags.MinimumSize = new System.Drawing.Size(100, 630); this.displayTags.MyEditItem = null; this.displayTags.Name = "displayTags"; @@ -1111,8 +1129,8 @@ namespace VEPROMS this.displayRO.Dock = System.Windows.Forms.DockStyle.Fill; this.displayRO.Location = new System.Drawing.Point(1, 1); this.displayRO.Margin = new System.Windows.Forms.Padding(4); + this.displayRO.MyDvi = null; this.displayRO.MyROFST = null; - //this.displayRO.MyROFSTLookup = null; this.displayRO.MyRTB = null; this.displayRO.Name = "displayRO"; this.displayRO.ProgressBar = null; @@ -1126,6 +1144,7 @@ namespace VEPROMS this.tc.ChgId = null; this.tc.Dock = System.Windows.Forms.DockStyle.Fill; this.tc.ForeColor = System.Drawing.SystemColors.ControlText; + this.tc.LastSelectedDisplayTabItem = null; this.tc.Location = new System.Drawing.Point(334, 57); this.tc.Margin = new System.Windows.Forms.Padding(4); this.tc.MyAnnotationDetails = null; @@ -1373,6 +1392,7 @@ namespace VEPROMS // displaySearch1 // this.displaySearch1.Dock = System.Windows.Forms.DockStyle.Fill; + this.displaySearch1.LastSearchWasAnnotations = false; this.displaySearch1.LoadingList = false; this.displaySearch1.Location = new System.Drawing.Point(1, 1); this.displaySearch1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); @@ -1382,6 +1402,7 @@ namespace VEPROMS this.displaySearch1.ProgressBar = null; this.displaySearch1.ReportTitle = null; this.displaySearch1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.displaySearch1.SearchIncTransII = null; this.displaySearch1.SearchResults = null; this.displaySearch1.SearchString = null; this.displaySearch1.Size = new System.Drawing.Size(314, 462); diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index 9c78ae63..840dbd6e 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -533,6 +533,7 @@ namespace VEPROMS tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure); tv.PrintSection += new vlnTreeViewEvent(tv_PrintSection); + tv.QPrintSection += new vlnTreeViewEvent(tv_QPrintSection); tv.QPrintProcedure += new vlnTreeViewEvent(tv_QPrintProcedure); tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures); tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure); @@ -1213,7 +1214,19 @@ namespace VEPROMS } - void tv_PrintSection(object sender, vlnTreeEventArgs args) // Quick Print right click menu on Procedure name. + //Print Section + //C2025-028 Add a Quick Print Section option + + void tv_PrintSection(object sender, vlnTreeEventArgs args) + { + PrintSection(sender, args, false); + } + void tv_QPrintSection(object sender, vlnTreeEventArgs args) + { + PrintSection(sender, args, true); + } + + void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint) { try { @@ -1225,7 +1238,9 @@ namespace VEPROMS tc.SaveCurrentEditItem(si2.MyProcedure); + //B2025-032 Fix Section not Printing Applicability Properly si2.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; + si2.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(si2.MyProcedure)) { @@ -1233,8 +1248,14 @@ namespace VEPROMS prnDlg.SelectedSlave = args.UnitIndex; prnDlg.MySessionInfo = MySessionInfo; prnDlg.SetupForProcedure(); // Setup filename - prnDlg.ShowDialog(this); // Create Print report + if (quickprint) + prnDlg.QPCreatePDF(); // Create Print report + else + prnDlg.ShowDialog(this); // Create Print report + + //B2025-032 Fix Section not Printing Applicability Properly + si2.MyDocVersion.DocVersionConfig.SelectedSlave = 0; si2.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0; } } @@ -2167,13 +2188,13 @@ namespace VEPROMS btnAdministrativeTools.Click += new EventHandler(btnAdministrativeTools_Click); btnAdmin.SubItems.Add(btnAdministrativeTools); - this.superTooltip1.SetSuperTooltip(btnExit, new SuperTooltipInfo("Exit", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnOptions, new SuperTooltipInfo("Options", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnManageSecurity, new SuperTooltipInfo("Manage Security", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnUserControlOfFormats, new SuperTooltipInfo("User Control Of Formats", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats", null, null, null, null, eTooltipColor.Gray)); + // C2025-031 added tool tip messages + this.superTooltip1.SetSuperTooltip(btnManageSecurity, new SuperTooltipInfo("Manage Security", "", "Add, Modify, and Delete PROMS User Access", null, null, eTooltipColor.Gray)); + // remove commented out line below when User Control of Formats code is deleted + //this.superTooltip1.SetSuperTooltip(btnUserControlOfFormats, new SuperTooltipInfo("User Control Of Formats", null, null, null, null, eTooltipColor.Gray)); + this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", "", "WARNING this will \nREMOVE ALL PROMS USERS and Reset to the\nOriginal Volian Defaults", null, null, eTooltipColor.Gray)); + this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools", "", "Open the PROMS Adminstration Tools Window", null, null, eTooltipColor.Gray)); + this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats", "", "Install New Formats \n or Re-Install Formats", null, null, eTooltipColor.Gray)); try { @@ -2196,6 +2217,9 @@ namespace VEPROMS } ctrlAnnotationDetails.MyUserInfo = MyUserInfo; + // re-set to old RTF initialization to older RFT string + ctrlAnnotationDetails.AnnotationRTFText= "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20\\par\r\n}\r\n"; + DisplayRO.MyUserInfo = MyUserInfo; // set the user's security information in the properties RO panel StepTabRibbon.MyUserInfo = MyUserInfo; // set the user's security information in the ribbon DisplayTransition.MyUserInfo = MyUserInfo; // set the user's security information in the Transition panel diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.resx b/PROMS/VEPROMS User Interface/frmVEPROMS.resx index 3c84ece0..efee24ed 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.resx +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.resx @@ -172,16 +172,16 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAACxMAAAsTAQCanBgAAAA0SURBVDhPY2CgFHxqEvyPDX9sFOhAV4sVoGsk2RB0TeiY - oCH/l+n9pwSPGjBqAHUMGHAAAO9c/kJD+HpiAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL + EwAACxMBAJqcGAAAADRJREFUOE9jYKAUfGoS/I8Nf2wU6EBXixWgayTZEHRN6JigIf+X6f2nBI8aMGoA + dQwYcAAA71z+QkP4emIAAAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAACxMAAAsTAQCanBgAAAA0SURBVDhPY2CgFHxqEvyPDX9sFOhAV4sVoGsk2RB0TeiY - oCH/l+n9pwSPGjBqAHUMGHAAAO9c/kJD+HpiAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL + EwAACxMBAJqcGAAAADRJREFUOE9jYKAUfGoS/I8Nf2wU6EBXixWgayTZEHRN6JigIf+X6f2nBI8aMGoA + dQwYcAAA71z+QkP4emIAAAAASUVORK5CYII= @@ -339,6 +339,9 @@ HM29CO23pWh3l/Bz4QZPYlnkk5YA/gbYS8m5Qty18AAAAABJRU5ErkJggg== + + 240, 17 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 @@ -389,9 +392,6 @@ 2AlZGRmMVIjXgI7OLub6xkaVtLS0ovT09IjCwkIWdDUgDAAMn43RSw4q2AAAAABJRU5ErkJggg== - - 240, 17 - 651, 17 diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 2dcfd7c5..b0649cc6 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -449,10 +449,9 @@ namespace VEPROMS.CSLA.Library { StringBuilder sret = new StringBuilder(); ItemInfo pitem = this; - while (!pitem.IsSection && !pitem.IsHigh) { - using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID)) + using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID)) { string thisTab = stpinfo.MyTab.CleanText; @@ -4705,43 +4704,50 @@ namespace VEPROMS.CSLA.Library int localPrintLevel = PrintLevel; StepSectionData sd = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData; bool doMeta = false; - if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) + if (sd.StepSectionLayoutData.TieTabToLevel) // C2025-036 reduce un-needed processing { - if (sd.StepSectionLayoutData.ShowSectionTitles - && !MyDocStyle.CancelSectTitle - && !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel)) - localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential)) ? 0 : CurrentSectionLevel()); - if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true; - } - if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel) - if (SectionLevel() > 1) + if (ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) + { + if (sd.StepSectionLayoutData.ShowSectionTitles + && !MyDocStyle.CancelSectTitle + && !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel)) + localPrintLevel = PrintLevel + (((ActiveFormat.PlantFormat.FormatData.Express && IsSequential)) ? 0 : CurrentSectionLevel()); + if (!ActiveFormat.PlantFormat.FormatData.Express) doMeta = true; + } + if (ActiveFormat.PlantFormat.FormatData.SectData.CountSubSectionsForLevel && (SectionLevel() > 1)) localPrintLevel += 1; + } + SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList; + // Start with basic cases of alpha/numeric/seq: // If we have metasections AND... // If the seqtabs for this given level does not get a section number, use the seqtab rather than // the ident of the step: bool useSubStepTabs = false; - if (doMeta && IsHigh - && !seqtabs[(localPrintLevel < 0 ? 0 : localPrintLevel) % seqtabs.MaxIndex].TabToken.Contains("{numericWpar}") - && tbformat.Contains("{")) useSubStepTabs = true; - - // Check to be sure the parent tab should be included... If this sequential is within a note - // or caution or equipment list, don't use parent tab AND always start the numbering as a numeric - if (doMeta && IsSequential && (InNote() || InCaution() || - (MyParent.IsEquipmentList && !MyParent.FormatStepData.TabData.IdentPrint.Contains("{seq}")))) + if (doMeta) // C2025-036 reduce un-needed processing { - // if immediate parent is note, caution or equip, use numeric, otherwise use alpha. - localPrintLevel = 0; - int lv = 0; - ItemInfo ii = MyParent; - while (!ii.IsCaution && !ii.IsNote && !ii.IsEquipmentList) + if (IsHigh + && !seqtabs[(localPrintLevel < 0 ? 0 : localPrintLevel) % seqtabs.MaxIndex].TabToken.Contains("{numericWpar}") + && tbformat.Contains("{")) useSubStepTabs = true; + + // Check to be sure the parent tab should be included... If this sequential is within a note + // or caution or equipment list, don't use parent tab AND always start the numbering as a numeric + if (IsSequential && (InNote() || InCaution() || + (MyParent.IsEquipmentList && !MyParent.FormatStepData.TabData.IdentPrint.Contains("{seq}")))) { - lv++; - ii = ii.MyParent; + // if immediate parent is note, caution or equip, use numeric, otherwise use alpha. + localPrintLevel = 0; + int lv = 0; + ItemInfo ii = MyParent; + while (!ii.IsCaution && !ii.IsNote && !ii.IsEquipmentList) + { + lv++; + ii = ii.MyParent; + } + lv = lv % 2; + tbformat = (lv == 0) ? "{numeric}." : "{alpha}."; } - lv = lv % 2; - tbformat = (lv == 0) ? "{numeric}." : "{alpha}."; } bool trimTabStart = false; bool dontTrimParentTabBeforeAppending = false; // B2019-011 for Barakah Alarm format @@ -4807,7 +4813,7 @@ namespace VEPROMS.CSLA.Library PrintLevel = 0; // If token includes 'Wpar', the parent tab prefix's the tab. - if (localPrintLevel > 0 && (tbformat.IndexOf("{numericWpar}") > -1 || tbformat.IndexOf("{alphaWpar}") > -1 || tbformat.IndexOf("{ALPHAWpar}") > -1)) + if (localPrintLevel > 0 && tbformat.Contains("Wpar}")) // C2025-036 reduce un-needed processing { string parentTab = null; ItemInfo myparent = ActiveParent as ItemInfo; @@ -4922,18 +4928,21 @@ namespace VEPROMS.CSLA.Library } string alpha = useLinked?LinkedTab.Trim():AlphabeticalNumbering(ordinal); if (trimSeqValue) alpha = alpha.Trim(); // F2024-043 trim white around SEQ tab value (for sub-steps) - // B2017-211 Roman High Level steps should be followed by Uppercase alpha substeps - This is being limited to Calvert SAMG Format - if (_ActiveFormat.Name =="BGESAM1" &&MyParent != null && MyParent.IsHigh && MyParent.IsStep && MyParent.FormatStepData.TabData.IdentEdit.Contains("ROMAN")) - tbformat = tbformat.Replace("{alpha}", alpha); - else - tbformat = tbformat.Replace("{alpha}", alpha.ToLower()); - tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower()); - if (ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && tbformat.Contains("{ALPHA}") && alpha.Length > 1) - tbformat = tbformat.Replace("{ALPHA}. ", alpha + "."); // if double chars, remove one of the space for BGE - else - tbformat = tbformat.Replace("{ALPHA}", alpha); + if (tbformat.ToUpper().Contains("{ALPHA")) // C2025-036 reduce un-needed processing + { + // B2017-211 Roman High Level steps should be followed by Uppercase alpha substeps - This is being limited to Calvert SAMG Format + if (_ActiveFormat.Name == "BGESAM1" && MyParent != null && MyParent.IsHigh && MyParent.IsStep && MyParent.FormatStepData.TabData.IdentEdit.Contains("ROMAN")) + tbformat = tbformat.Replace("{alpha}", alpha); + else + tbformat = tbformat.Replace("{alpha}", alpha.ToLower()); + tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower()); + if (ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && tbformat.Contains("{ALPHA}") && alpha.Length > 1) + tbformat = tbformat.Replace("{ALPHA}. ", alpha + "."); // if double chars, remove one of the space for BGE + else + tbformat = tbformat.Replace("{ALPHA}", alpha); - tbformat = tbformat.Replace("{ALPHAWpar}", alpha); + tbformat = tbformat.Replace("{ALPHAWpar}", alpha); + } if (tbformat.ToUpper().Contains("ROMAN")) { string roman = RomanNumbering(ordinal); @@ -4941,15 +4950,18 @@ namespace VEPROMS.CSLA.Library tbformat = tbformat.Replace("{ROMAN}", roman); tbformat = tbformat.Substring(0, tbformat.Length - ((roman.Length - 1) > 0 ? (roman.Length - 1) : 0)); } - if (tbformat.Contains("{numeric}") && ((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002) + if (tbformat.Contains("{numeric}")) // C2025-036 reduce un-needed processing { - tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0"); - tbformat = tbformat.Substring(0, tbformat.Length - 2); - } - if (tbformat.Contains("{numeric}") && (this.FormatStepData.AppendDotZero)) // F2018-022 Added step type flag to append a ".0" to the end of the high level step - put in for Westinghouse single column format (wst1) - { - string numtxt = ordinal.ToString().PadLeft(2) + ".0"; - tbformat = tbformat.Replace("{numeric}.", numtxt).Replace("{numeric}", numtxt); + if (((MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS) && MyContent.Type == 20002) + { + tbformat = tbformat.Replace("{numeric}", ordinal.ToString().PadLeft(2) + ".0"); + tbformat = tbformat.Substring(0, tbformat.Length - 2); + } + if (this.FormatStepData.AppendDotZero) // F2018-022 Added step type flag to append a ".0" to the end of the high level step - put in for Westinghouse single column format (wst1) + { + string numtxt = ordinal.ToString().PadLeft(2) + ".0"; + tbformat = tbformat.Replace("{numeric}.", numtxt).Replace("{numeric}", numtxt); + } } // if this is a wolf creek background, if the tbformat ends with a '.' don't add a space, // otherwise add a space. @@ -6147,9 +6159,10 @@ namespace VEPROMS.CSLA.Library } private bool IsLowestLevelStep { + //F2025-015 added check for IsInCautionOrNote for sub-step inside Notes and Cautions get { - return (!(IsCaution || IsNote || IsTable || IsFigure || Steps != null || MyParent.IsCaution || MyParent.IsNote)); + return (!(IsCaution || IsNote || IsInCautionOrNote || IsTable || IsFigure || Steps != null || MyParent.IsCaution || MyParent.IsNote)); } } private bool RNOsHighHasCheckOff() diff --git a/PROMS/VEPROMS.CSLA.Library/Format/DocStyles.cs b/PROMS/VEPROMS.CSLA.Library/Format/DocStyles.cs index 52947440..cfc23380 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/DocStyles.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/DocStyles.cs @@ -547,6 +547,17 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _AdjSectTitleLoc, "@AdjSectTitleLoc"); } } + + // this will add additional spacing between the Section Numbers and Titles + private LazyLoad _SectTitleOffsetOverride; + public float? SectTitleOffsetOverride + { + get + { + return LazyLoad(ref _SectTitleOffsetOverride, "@SectTitleOffsetOverride"); + } + } + #endregion AdjSectTitleLoc #region ShowAlarmPointWindowInfo @@ -653,6 +664,21 @@ namespace VEPROMS.CSLA.Library } } #endregion + + #region AltMultiUnitWording + [Category("Miscellaneous")] + [Description("Alternate Wording for Printing when MultiUnit")] + + // this will utilize Alternate Wording for Printing when MultiUnit and PrintCommonForZeroUnit is set + private LazyLoad _AltMultiUnitWording; + public string AltMultiUnitWording + { + get + { + return LazyLoad(ref _AltMultiUnitWording, "@AltMultiUnitWording"); + } + } + #endregion IncludeInTOC public override string ToString() { return String.Format("{0:D2} - {1}", Index, Name); diff --git a/PROMS/VEPROMS.CSLA.Library/Format/PageStyles.cs b/PROMS/VEPROMS.CSLA.Library/Format/PageStyles.cs index a1af31b5..a97edf71 100644 --- a/PROMS/VEPROMS.CSLA.Library/Format/PageStyles.cs +++ b/PROMS/VEPROMS.CSLA.Library/Format/PageStyles.cs @@ -244,6 +244,16 @@ namespace VEPROMS.CSLA.Library return LazyLoad(ref _TrimEnding, "@TrimEnding"); } } + // C2025-033 to specify to print pagestyle item for a specific Child procedure + private LazyLoad _ChildNum; + public int? ChildNum + { + get + { + return (LazyLoad(ref _ChildNum, "@ChildNum")); + } + } + #endregion #region Override ToString public override string ToString() diff --git a/PROMS/VEPROMS.CSLA.Library/Minimal/UserSettings.cs b/PROMS/VEPROMS.CSLA.Library/Minimal/UserSettings.cs index 80e56972..89fae763 100644 --- a/PROMS/VEPROMS.CSLA.Library/Minimal/UserSettings.cs +++ b/PROMS/VEPROMS.CSLA.Library/Minimal/UserSettings.cs @@ -16,6 +16,7 @@ namespace VEPROMS.CSLA.Library #region Public Properties public bool UserSetting_OpenTabs_Remember { get; protected set; } = false; public bool UserSetting_OpenTabs_AutoOpen { get; protected set; } = true; + public bool UserSetting_MSWord_Summary_Prompt { get; protected set; } = true; #endregion @@ -31,7 +32,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.Text; - cm.CommandText = "Select RememberOpenTabs, AutoOpenTabs FROM Users where UserID = @UID"; + cm.CommandText = "Select RememberOpenTabs, AutoOpenTabs, MSWordSummaryPrompt FROM Users where UserID = @UID"; cm.Parameters.AddWithValue("@UID", _userid); cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) @@ -40,6 +41,7 @@ namespace VEPROMS.CSLA.Library { UserSetting_OpenTabs_Remember = (bool) dr.GetValue("RememberOpenTabs"); UserSetting_OpenTabs_AutoOpen = (bool) dr.GetValue("AutoOpenTabs"); + UserSetting_MSWord_Summary_Prompt = (bool) dr.GetValue("MSWordSummaryPrompt"); } } } @@ -84,6 +86,33 @@ namespace VEPROMS.CSLA.Library throw new DbCslaException("UserSettings_SetUserSettings", ex); } + } + + public void SetUserSetting_MSWord_Summary_Prompt(bool prompt) + { + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "vesp_UpdateUserSettingMSWordSummaryPrompt"; + cm.Parameters.AddWithValue("@UID", _userid); + UserSetting_MSWord_Summary_Prompt = prompt; + cm.Parameters.AddWithValue("@Prompt", prompt); + cm.CommandTimeout = Database.DefaultTimeout; + + cm.ExecuteNonQuery(); + } + } + } + catch (Exception ex) + { + Database.LogException("UserSettings_SetUserSettings", ex); + throw new DbCslaException("UserSettings_SetUserSettings", ex); + } + } #endregion } diff --git a/PROMS/Volian.Controls.Library/DisplayHistory.cs b/PROMS/Volian.Controls.Library/DisplayHistory.cs index a66c6952..1978e024 100644 --- a/PROMS/Volian.Controls.Library/DisplayHistory.cs +++ b/PROMS/Volian.Controls.Library/DisplayHistory.cs @@ -897,11 +897,7 @@ namespace Volian.Controls.Library // B2023-072: Don't crash if annotation type was deleted for the restore annotation if (ai == null) { - AnnotationTypeInfo ati = AnnotationTypeInfo.Get(aai.TypeID); - if (ati == null) - { - FlexibleMessageBox.Show(this, "Annotation Type was deleted, cannot restore Annotation Type\r\nCopy text from window in Change Details and paste into new annotation to restore the text.", "Annotation Type Deleted", MessageBoxButtons.OK, MessageBoxIcon.Warning); - } + FlexibleMessageBox.Show(this, "Annotation Type was deleted, cannot restore Annotation Type\r\nCopy text from window in Change Details and paste into new annotation to restore the text.", "Annotation Type Deleted", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } OnAnnotationRestored(ai, ai.MyItem); diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index 5f37d421..4d6dbda8 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -10,6 +10,7 @@ using Volian.Controls.Library; using DevComponents.DotNetBar; using JR.Utils.GUI.Forms; using Volian.Base.Library; +using Microsoft.Win32; namespace Volian.Controls.Library { @@ -658,11 +659,35 @@ namespace Volian.Controls.Library } else // Otherwise open it in the Word editor { - Document.ConvertWordSectionToDOCX(myItemInfo); // B2023-093 Convert a Word section to the DOCX Word format if needed before opening it for edit - return OpenDSOTabPage(myItemInfo); - } - } + // B2025-034 Check to make sure that EDWord is installed in PROMS. If not return NULL. + object EDOfficeViewerX = GetValue(@"HKEY_CLASSES_ROOT\EDOfficeViewerX.Connect\CLSID\", @"", null); + object EDWordCtrl = GetValue(@"HKEY_CLASSES_ROOT\EDWORD.EDWordCtrl.1\CLSID\", @"", null); + + if (EDOfficeViewerX == null || EDWordCtrl == null) + { + + MessageBox.Show("Edraw needs to be installed or reinstalled on this device. " + Environment.NewLine + "" + Environment.NewLine + + "Please contact your IT Administrator to install and register Edraw that was provided with the PROMS Installation media. If additional support is needed, please contact Volian.", "Error in Word section", + MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + return null; + } + else + { + Document.ConvertWordSectionToDOCX(myItemInfo); // B2023-093 Convert a Word section to the DOCX Word format if needed before opening it for edit + return OpenDSOTabPage(myItemInfo); + } + } + + } + public T GetValue(string registryKeyPath, string value, T defaultValue = default(T)) + { + T retVal = default(T); + + retVal = (T)Registry.GetValue(registryKeyPath, value, defaultValue); + + return retVal; + } public bool PasteRTBItem(ItemInfo myItemInfo, int copyStartID, ItemInfo.EAddpingPart pasteType, int type) { CleanUpClosedItems(); diff --git a/PROMS/Volian.Controls.Library/DisplayTags.cs b/PROMS/Volian.Controls.Library/DisplayTags.cs index a582db36..9761ae85 100644 --- a/PROMS/Volian.Controls.Library/DisplayTags.cs +++ b/PROMS/Volian.Controls.Library/DisplayTags.cs @@ -97,21 +97,6 @@ namespace Volian.Controls.Library set { if (Visible != value) Visible = value; } } - /// - /// Expose text properties for height and widht to handle selecting RO Image Types. - /// - public string TbFSwd - { - get {return tbFSWd.Text;} - set { tbFSWd.Text = value; tbFSWd.Refresh(); } // trBarFS.Value = Convert.ToInt32(value); - } - - public string TbFSht - { - get { return tbFSHt.Text; } - set { tbFSHt.Text = value; tbFSHt.Refresh(); _origFigureSizeRatio = float.Parse(value) / float.Parse(tbFSWd.Text); } - } - #endregion #region Constructor public DisplayTags() @@ -172,6 +157,18 @@ namespace Volian.Controls.Library tbFSWd.SelectionLength = 0; tbFSWd.SelectionStart = tbFSWd.TextLength; // position to the end of the Width text box } + /// + /// Update text properties for height and width for new RO Image Types. + /// + public void SetNewImageHeightAndWidth(int height, int width) + { + tbFSHt.Text = height.ToString(); + tbFSWd.Text = width.ToString(); + tbFSWd.Refresh(); + tbFSHt.Refresh(); + _origFigureSizeWidth = width; + _origFigureSizeRatio = (float)height / (float)width; + } public void ToggleChangeBar() // for use with shortcut keystoke { if (rbChgBarOff.Checked) diff --git a/PROMS/Volian.Controls.Library/EditItem.cs b/PROMS/Volian.Controls.Library/EditItem.cs index 27d89bd4..e5b2677d 100644 --- a/PROMS/Volian.Controls.Library/EditItem.cs +++ b/PROMS/Volian.Controls.Library/EditItem.cs @@ -758,7 +758,7 @@ namespace Volian.Controls.Library // clear tabs, clears then all so that next 'get' will calculate new. public void SetAllTabs() { - RefreshTab(); + RefreshTab(); if (_MyAfterEditItems != null) _MyAfterEditItems[0].SetAllTabs(); // B2020-043: used to loop through all, but then recursion would redo. if (_MyNextEditItem != null) _MyNextEditItem.SetAllTabs(); @@ -1160,7 +1160,7 @@ namespace Volian.Controls.Library { if (myItemInfoList != null) foreach (ItemInfo item in myItemInfoList) - AddChildBefore(item, expand); + AddChildBefore(item, expand); } public EditItem AddChildBefore(ItemInfoList myItemInfoList, EditItem nextEditItem) { @@ -3994,7 +3994,8 @@ namespace Volian.Controls.Library // TODO: Adjust top based upon format // TODO: Remove Label and just output ident on the paint event TabLeft = 20; - SetupHeader(itemInfo); + if (!itemInfo.IsStep) // C2025-036 reduce un-needed processing - this will prevent duplicat calls that generate step tabs when loading a procedure + SetupHeader(itemInfo); SetupAlarmTableView(itemInfo); // C2021-018 display alarm point table information in the step editor (if the format flag is set) this.Paint += new PaintEventHandler(EditItem_Paint); this.BackColorChanged += new EventHandler(EditItem_BackColorChanged); diff --git a/PROMS/Volian.Controls.Library/ImageItem.cs b/PROMS/Volian.Controls.Library/ImageItem.cs index b51fcd9b..698fc85d 100644 --- a/PROMS/Volian.Controls.Library/ImageItem.cs +++ b/PROMS/Volian.Controls.Library/ImageItem.cs @@ -340,9 +340,8 @@ namespace Volian.Controls.Library this.Height = MyPictureBox.Height + 10; if (_displayTags != null) { - _displayTags._origFigureSizeWidth = wd; - _displayTags.TbFSwd = wd.ToString(); - _displayTags.TbFSht = ht.ToString(); + // Set the Height and Width on the step properties page for the new image + _displayTags.SetNewImageHeightAndWidth(ht, wd); } } diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs index 9834448d..77ed9197 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs @@ -3588,7 +3588,9 @@ namespace Volian.Controls.Library if (tmp.MyDisplayTabControl.MyCopyStep != null && tmp.MyDisplayTabControl.MyCopyStep.ItemID == MyEditItem.MyItemInfo.ItemID) { - if (FlexibleMessageBox.Show("Are you sure?\n\nIf you delete this step you will not able to paste it.\nYou should paste it before you delete it.", "Attempting to delete copied step.", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; + //B2025-031 - Improve wording for if attempting to delete copied section + string stype = MyEditItem.MyItemInfo.IsSection ? "section" : "step"; + if (FlexibleMessageBox.Show($"Are you sure?\n\nIf you delete this {stype} you will not able to paste it.\nYou should paste it before you delete it.", $"Attempting to delete copied {stype}.", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; clearCopyStep = true; } diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs b/PROMS/Volian.Controls.Library/vlnTreeView.cs index 5fcb43b6..bdd75d47 100644 --- a/PROMS/Volian.Controls.Library/vlnTreeView.cs +++ b/PROMS/Volian.Controls.Library/vlnTreeView.cs @@ -22,11 +22,11 @@ namespace Volian.Controls.Library public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args); public delegate void vlnTreeViewTimeEvent(object sender, vlnTreeTimeEventArgs args); public delegate void vlnTreeViewStatusEvent(object sender, vlnTreeStatusEventArgs args); - public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args); - public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args); + public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args); + public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args); public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args); public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args); - + public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args); public delegate bool vlnTreeViewItemInfoDeleteFolderEvent(object sender, vlnTreeFolderDeleteEventArgs args); public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args); @@ -57,7 +57,7 @@ namespace Volian.Controls.Library { _MySectionInfo = mySectionInfo; } - public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo,bool isDeleting) + public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo, bool isDeleting) { _MySectionInfo = mySectionInfo; _IsDeleting = isDeleting; @@ -140,7 +140,7 @@ namespace Volian.Controls.Library get { return _Node; } set { _Node = value; } } - private TreeNode _Destination=null; + private TreeNode _Destination = null; public TreeNode Destination { get { return _Destination; } @@ -168,7 +168,7 @@ namespace Volian.Controls.Library //end jcb multiunit #endregion #region Factory Methods - private vlnTreeEventArgs() { ;} + private vlnTreeEventArgs() {; } public vlnTreeEventArgs(TreeNode node) { _Node = node; @@ -192,7 +192,7 @@ namespace Volian.Controls.Library #endregion public override string ToString() { - return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}",NodePath(this.Node),this.Destination, this.Index,this.Unit, this.UnitIndex); + return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}", NodePath(this.Node), this.Destination, this.Index, this.Unit, this.UnitIndex); } private string NodePath(TreeNode node) @@ -215,7 +215,7 @@ namespace Volian.Controls.Library } #endregion #region Factory Methods - private vlnTreeItemInfoEventArgs() { ;} + private vlnTreeItemInfoEventArgs() {; } public vlnTreeItemInfoEventArgs(ItemInfo myItemInfo) { _MyItemInfo = myItemInfo; @@ -231,7 +231,7 @@ namespace Volian.Controls.Library FolderId = folderId; } } - public enum E_InsertType {Before, After, Child}; + public enum E_InsertType { Before, After, Child }; public partial class vlnTreeItemInfoInsertEventArgs { #region Business Methods @@ -267,7 +267,7 @@ namespace Volian.Controls.Library } #endregion #region Factory Methods - private vlnTreeItemInfoInsertEventArgs() { ;} + private vlnTreeItemInfoInsertEventArgs() {; } public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText) { _MyItemInfo = myItemInfo; @@ -314,7 +314,7 @@ namespace Volian.Controls.Library } #endregion #region Factory Methods - private vlnTreeItemInfoPasteEventArgs() { ;} + private vlnTreeItemInfoPasteEventArgs() {; } public vlnTreeItemInfoPasteEventArgs(ItemInfo myItemInfo, int copyStartId, ItemInfo.EAddpingPart pasteType, int? type) { _MyItemInfo = myItemInfo; @@ -322,7 +322,7 @@ namespace Volian.Controls.Library _PasteType = pasteType; _Type = type; } - + #endregion } #endregion @@ -364,7 +364,7 @@ namespace Volian.Controls.Library get { return _SectionConfig; } set { _ConfigObject = _SectionConfig = value; } } - private vlnTreePropertyEventArgs() { ;} + private vlnTreePropertyEventArgs() {; } public vlnTreePropertyEventArgs(string title, FolderConfig folderConfig) { _Title = title; @@ -528,6 +528,11 @@ namespace Volian.Controls.Library { if (PrintSection != null) PrintSection(sender, args); } + public event vlnTreeViewEvent QPrintSection; + private void OnQPrintSection(object sender, vlnTreeEventArgs args) + { + if (QPrintSection != null) QPrintSection(sender, args); + } public event vlnTreeViewEvent PrintAllProcedures; private void OnPrintAllProcedures(object sender, vlnTreeEventArgs args) { @@ -568,16 +573,16 @@ namespace Volian.Controls.Library { if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args); } - - - - - - public event vlnTreeViewEvent ExportImportProcedureSets; - private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args) - { - if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args); - } + + + + + + public event vlnTreeViewEvent ExportImportProcedureSets; + private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args) + { + if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args); + } public event vlnTreeViewEvent PrintTransitionReport; private void OnPrintTransitionReport(object sender, vlnTreeEventArgs args) { @@ -629,7 +634,7 @@ namespace Volian.Controls.Library // This event was added to update the Step Properties/RO & Tools/Search RO & Reports // when an update of ro.fst is done & the ro trees on those panels needs refreshed. // (bug fix B2015-226) - public event StepPanelTabDisplayEvent TabDisplay; + public event StepPanelTabDisplayEvent TabDisplay; private void OnTabDisplay(object sender, StepPanelTabDisplayEventArgs args) { if (TabDisplay != null) TabDisplay(sender, args); @@ -715,39 +720,39 @@ namespace Volian.Controls.Library //_MyLog.WarnFormat("Context Menu 1b - {0}", GC.GetTotalMemory(true)); if (ui.IsAdministrator() || ui.IsSetAdministrator(fi)) { - if (fi.MyParent != null) // don't allow insert before/after if at top node + if (fi.MyParent != null) // don't allow insert before/after if at top node { if (!ui.IsAdministrator() && DoSpecificInfo) cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click)); // B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate - if (ui.IsAdministrator()||ui.IsSetAdministrator(fi.MyParent)) + if (ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) { cm.MenuItems.Add("Insert Folder Before", new EventHandler(mi_Click)); cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click)); } } // B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate - if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0) + if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0) cm.MenuItems.Add("New Folder", new EventHandler(mi_Click)); - if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft) + if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft) cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click)); } - if (fi.HasWorkingDraft) + if (fi.HasWorkingDraft) cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click)); } - else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs + else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs { isWrkDftNode = true; //_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true)); DocVersionInfo dvi = tn.VEObject as DocVersionInfo; if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi)) - { - cm.MenuItems.Add("Import Procedure", mi_Click); - } - if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi)) + { + cm.MenuItems.Add("Import Procedure", mi_Click); + } + if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi)) { OwnerInfoList.Reset(); oil = OwnerInfoList.GetByVersionID(dvi.VersionID); - if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo) + if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo) cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click)); cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click)); cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click)); @@ -834,15 +839,15 @@ namespace Volian.Controls.Library urv.Enabled = !dvi.ROfstLastCompleted || dvi.NewerRoFst; } } - else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections + else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections { isProcNode = true; ProcedureInfo pri = tn.VEObject as ProcedureInfo; oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure); if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion)) - { - cm.MenuItems.Add("Export Procedure", mi_Click); - } + { + cm.MenuItems.Add("Export Procedure", mi_Click); + } if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion)) { if (oi != null && oi.SessionID != MySessionInfo.SessionID) @@ -893,7 +898,7 @@ namespace Volian.Controls.Library } cm.MenuItems.Add(micas); cm.MenuItems.Add(mitcas); - cm.MenuItems.Add(mip); + cm.MenuItems.Add(mip); cm.MenuItems.Add(miqp); //cm.MenuItems.Add(mips); AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri); @@ -994,11 +999,26 @@ namespace Volian.Controls.Library mp.Tag = k; } cm.MenuItems.Add(mps); + + //C2025-028 Add a Quick Print Section option + MenuItem mps_qp = new MenuItem("Quick Print Section"); + int k_qp = 0; + foreach (string s in si2.MyDocVersion.UnitNames) + { + k_qp++; + MenuItem mp_qp = mps_qp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); + mp_qp.Tag = k_qp; + } + cm.MenuItems.Add(mps_qp); } } else { - if(!si2.IsSubsection) cm.MenuItems.Add("Print Section", new EventHandler(mi_Click)); + if (!si2.IsSubsection) + { + cm.MenuItems.Add("Print Section", new EventHandler(mi_Click)); + cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click)); + } } } } @@ -1061,9 +1081,37 @@ namespace Volian.Controls.Library // require clearing of all enhanced config data or mapping it to existing data (quite complicated) if ((ui.IsAdministrator() || ui.IsSetAdministrator(i.MyProcedure.MyDocVersion) || ui.IsWriter(i.MyProcedure.MyDocVersion)) && (!i.IsEnhancedStep && !i.IsEnhancedProcedure && !i.IsEnhancedSection && !i.IsRtfRaw && !i.IsFigure)) cm.MenuItems.Add("Copy", new EventHandler(mi_Click)); + //if (i.HasWordContent) + //{ + // cm.MenuItems.Add("Print Section", new EventHandler(mi_Click)); + // cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click)); + //} if (i.HasWordContent) { - cm.MenuItems.Add("Print Section", new EventHandler(mi_Click)); + if (i.MyDocVersion.MultiUnitCount > 1) + { + if (!i.IsSubsection) + { + MenuItem mps = new MenuItem("Print Section"); + MenuItem mqps = new MenuItem("Quick Print Section"); + int k = 0; + foreach (string s in i.MyDocVersion.UnitNames) + { + k++; + MenuItem mp = mps.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); + mp.Tag = k; + MenuItem mqp = mqps.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); + mqp.Tag = k; + } + cm.MenuItems.Add(mps); + cm.MenuItems.Add(mqps); + } + } + else + { + cm.MenuItems.Add("Print Section", new EventHandler(mi_Click)); + cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click)); + } } } #endregion @@ -1077,42 +1125,42 @@ namespace Volian.Controls.Library ok = true; else if (tn.VEObject is ItemInfo && (ui.IsAdministrator() || ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion))) ok = true; - if(ok) + if (ok) Menu_Paste(tn, cm); #endregion //_MyLog.WarnFormat("Context Menu 5 - {0}", GC.GetTotalMemory(true)); #region Menu_Delete if (ok) - - - - - + + + + + + { + // Add delete to the menu unless at the very 'top' node, on a grouping (partinfo) + // node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items. + PartInfo pi = tn.VEObject as PartInfo; + if (pi == null && tn.Parent != null) // it's not a part and it's not the top.... { - // Add delete to the menu unless at the very 'top' node, on a grouping (partinfo) - // node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items. - PartInfo pi = tn.VEObject as PartInfo; - if (pi == null && tn.Parent != null) // it's not a part and it's not the top.... + fi = tn.VEObject as FolderInfo; + if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children { - fi = tn.VEObject as FolderInfo; - if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children + DocVersionInfo di = tn.VEObject as DocVersionInfo; + if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children { - DocVersionInfo di = tn.VEObject as DocVersionInfo; - if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children - { - // if it's an enhanced step that was linked from a source, don't allow delete - bool canDoDel = true; - ItemInfo iienh = tn.VEObject as ItemInfo; - if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false; - if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false; - if (iienh != null && iienh.IsEnhancedStep) canDoDel = false; - if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click)); - } + // if it's an enhanced step that was linked from a source, don't allow delete + bool canDoDel = true; + ItemInfo iienh = tn.VEObject as ItemInfo; + if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false; + if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false; + if (iienh != null && iienh.IsEnhancedStep) canDoDel = false; + if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click)); } } } - + } + #endregion //_MyLog.WarnFormat("Context Menu 6 - {0}", GC.GetTotalMemory(true)); #region Menu_ExternalTransitions @@ -1148,13 +1196,13 @@ namespace Volian.Controls.Library } doclink = string.Format("Unlink Source and {0} Procedure", doclink); MenuItem mix = cm.MenuItems.Add(doclink, new EventHandler(miEnhanced_Click)); - mix.Tag = -1; // NOTE this is what flags what gets processed on menu click, i.e. -1 + mix.Tag = -1; // NOTE this is what flags what gets processed on menu click, i.e. -1 } // if this is a source procedure that has enhanced, for example Background and/or deviation, ask which should be unlinked including all else if (eds != null && eds.Count > 1) { MenuItem miu = new MenuItem("Unlink Enhanced Procedure(s) from Source"); - miu.Tag = -2; // this menu item doesn't get used. + miu.Tag = -2; // this menu item doesn't get used. int k = 0; foreach (EnhancedDocument ed in eds) { @@ -1165,7 +1213,7 @@ namespace Volian.Controls.Library } // add all submenu item MenuItem mp1 = miu.MenuItems.Add("All", new EventHandler(miEnhanced_Click)); - mp1.Tag = 0; // Tag of 0 flags All + mp1.Tag = 0; // Tag of 0 flags All cm.MenuItems.Add(miu); } } @@ -1175,9 +1223,9 @@ namespace Volian.Controls.Library // Add Properties to the menu unless at the very 'top' node or on a grouping (partinfo) // node (RNOs, Steps, Cautions, Notes) or at the step level. // B2020-105 Allow Set Administrators to rename folder's (sets of procedures) to which they have been given access. - if ( tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo)); - else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo)) - : (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) + if (tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo)); + else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo)) + : (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion))); PartInfo pia = tn.VEObject as PartInfo; ItemInfo ii = tn.VEObject as ItemInfo; @@ -1258,7 +1306,7 @@ namespace Volian.Controls.Library itm.Text == "Procedure Set Specific Information" || itm.Text == "Approve All Procedures for" || itm.Text == "Approve Some Procedures" || itm.Text == "Approve Some Procedures for") itm.Enabled = false; - + } } } @@ -1287,9 +1335,9 @@ namespace Volian.Controls.Library // F2022-024 added Time Critical Action Summary option foreach (MenuItem itm in cm.MenuItems) { - if(itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" || + if (itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" || itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" || - itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" || + itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" || itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure") itm.Enabled = false; } @@ -1298,7 +1346,7 @@ namespace Volian.Controls.Library { foreach (MenuItem itm in cm.MenuItems) { - if(!itm.Text.StartsWith("Document Checked Out")) + if (!itm.Text.StartsWith("Document Checked Out")) itm.Enabled = false; } } @@ -1315,7 +1363,7 @@ namespace Volian.Controls.Library { _currentPri = pri; RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID); - if (ril.Count == 0) return; // no versions to list + if (ril.Count == 0) return; // no versions to list MenuItem mi = menuItemCollection.Add("Versions"); int k = 0; int lastApprovedRevisionID = 0; @@ -1362,11 +1410,11 @@ namespace Volian.Controls.Library ril = null; } } - public void AddNewNode(IVEDrillDownReadOnly o) - { - VETreeNode tn = new VETreeNode(o); - SelectedNode.Nodes.Add(tn); - } + public void AddNewNode(IVEDrillDownReadOnly o) + { + VETreeNode tn = new VETreeNode(o); + SelectedNode.Nodes.Add(tn); + } private void AddApprovedRevisions(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri) { try @@ -1375,7 +1423,7 @@ namespace Volian.Controls.Library _currentPri = pri; using (RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID)) { - //_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true)); + //_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true)); if (ril.Count == 0) return; // no versions to list MenuItem mi = menuItemCollection.Add("Versions"); int lastApprovedRevisionID = 0; @@ -1456,7 +1504,7 @@ namespace Volian.Controls.Library RevisionConfig rc = ri.MyConfig as RevisionConfig; // bug fix: B2016-183 - add the child's name (ex Unit 1) to the export file name for Parent/Child procedures. int applIdx = rc.Applicability_Index; - string str = (applIdx > 0)?_currentPri.MyDocVersion.UnitNames[applIdx-1] +"_":""; // if parent/child get the defined child name to inlcude the export filename + string str = (applIdx > 0) ? _currentPri.MyDocVersion.UnitNames[applIdx - 1] + "_" : ""; // if parent/child get the defined child name to inlcude the export filename System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); xd.LoadXml(ri.LatestVersion.ApprovedXML); string PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database; @@ -1504,12 +1552,12 @@ namespace Volian.Controls.Library { MenuItem mip = mi.Parent as MenuItem; //B2021-086 Added the check for the last revision stage is an Approved stage - if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved!=0) + if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0) superceded = true; } vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : ""); OnViewPDF(sender, args); -// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded)); + // System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded)); } void MultiUnitApprovedRevision_Click(object sender, EventArgs e) { @@ -1622,7 +1670,7 @@ namespace Volian.Controls.Library // 'from' is object copied // 'to' is object where paste was selected from #region Menu_Paste_ToDocVersion - if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc + if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc { if (iiClipboard.IsProcedure) { @@ -1632,7 +1680,7 @@ namespace Volian.Controls.Library // 3) 'to' docversion is 'source' and 'from' procedure is within this docversion // 4) 'to' docVersion is 'enhanced' and 'from' procedure is not bool canPaste = false; - + DocVersionInfo dvi = tn.VEObject as DocVersionInfo; DocVersionConfig dvc = dvi.DocVersionConfig; bool docVersionIsEnhanced = dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type == 0; @@ -1653,7 +1701,7 @@ namespace Volian.Controls.Library if (iiClipboard.IsRtfRaw) canPaste = false; // never paste an equation. if (canPaste) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click)); } - #endregion + #endregion } else { @@ -1664,7 +1712,7 @@ namespace Volian.Controls.Library { SectionInfo si = (tn.VEObject as SectionInfo != null) ? tn.VEObject as SectionInfo : null; #region Menu_Paste_ToFromProcedure - if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after + if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after { // Enhanced considerations, in order to paste a procedure around another procedure: NOTE that an 'enhanced' procedure cannot be in paste buffer! // 1) 'to' & 'from' both 'non', i.e. Neither can have enhanced config data (be source or enhanced) @@ -1688,16 +1736,16 @@ namespace Volian.Controls.Library bool prFromIsEnhanced = iiClipboard.IsEnhancedProcedure; bool prFromIsSource = pcFromCfg.MyEnhancedDocuments != null && pcFromCfg.MyEnhancedDocuments.Count > 0 && pcFromCfg.MyEnhancedDocuments[0].Type != 0; bool prCanPaste = false; - if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1) - // else if ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false - else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3) + if (!prToIsEnhanced && !prToIsSource && !prFromIsEnhanced && !prFromIsSource) prCanPaste = true; // 1) + // else if ((!prToIsEnhanced && !prToIsSource) && prFromIsSource) prCanPaste = false; // 2) commented out because already set to false + else if (prToIsSource && !prFromIsEnhanced && !prFromIsSource) // 3) { prCanPaste = true; okToReplace = false; } - else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4) - //else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID != iiClipboard.MyDocVersion.VersionID) prCanPaste = false; // 5) commented out because already set to false - //else if (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false + else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) prCanPaste = true; // 4) + //else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID != iiClipboard.MyDocVersion.VersionID) prCanPaste = false; // 5) commented out because already set to false + //else if (prToIsEnhanced && prFromIsSource) prCanPaste = false; // 6)commented out because already set to false if (iiClipboard.IsRtfRaw) prCanPaste = okToReplace = prCanPaste = false; // never paste an equation. if (prCanPaste) cm.MenuItems.Add("Paste Procedure Before", new EventHandler(mi_Click)); if (okToReplace && prCanPaste) cm.MenuItems.Add("Replace Existing Procedure", new EventHandler(mi_Click)); @@ -1729,9 +1777,9 @@ namespace Volian.Controls.Library bool scFromIsEnhanced = iiClipboard.IsEnhancedSection; bool scFromIsSource = scFromCfg.MyEnhancedDocuments != null && scFromCfg.MyEnhancedDocuments.Count > 0 && scFromCfg.MyEnhancedDocuments[0].Type != 0; bool scCanPaste = false; - if (!prToIsEnhanced && !prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; // 1) + if (!prToIsEnhanced && !prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; // 1) else if (prToIsSource && !scFromIsEnhanced && !scFromIsSource) scCanPaste = true; - else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) scCanPaste = true; // 3) + else if (prToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) scCanPaste = true; // 3) if (iiClipboard.IsRtfRaw) scCanPaste = false; // never paste an equation. if (scCanPaste) cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click)); } @@ -1803,9 +1851,9 @@ namespace Volian.Controls.Library bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep; bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0; bool stpCanPaste = false; - if (!secToIsEnhanced && !secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1) + if (!secToIsEnhanced && !secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1) else if (secToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 2) - else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) stpCanPaste = true; // 3) + else if (secToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) stpCanPaste = true; // 3) if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation. if (stpCanPaste) cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click)); } @@ -1829,8 +1877,8 @@ namespace Volian.Controls.Library bool stpFromIsEnhanced = iiClipboard.IsEnhancedStep; bool stpFromIsSource = stpFromCfg.MyEnhancedDocuments != null && stpFromCfg.MyEnhancedDocuments.Count > 0 && stpFromCfg.MyEnhancedDocuments[0].Type != 0; bool stpCanPaste = false; - if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1) - else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2) + if (!stpToIsEnhanced && !stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) stpCanPaste = true; // 1) + else if (stpToIsSource && !stpFromIsEnhanced && !stpFromIsSource) // 2) { stpCanPaste = true; okToReplace = false; @@ -1838,7 +1886,7 @@ namespace Volian.Controls.Library else if (stpToIsSource && iiPasteHere.MyDocVersion.VersionID == iiClipboard.MyDocVersion.VersionID) // 3 { stpCanPaste = true; - if (stpFromIsSource) okToReplace = false; // B2017-183: don't allow a replace to source steps + if (stpFromIsSource) okToReplace = false; // B2017-183: don't allow a replace to source steps } if (iiClipboard.IsRtfRaw) stpCanPaste = false; // never paste an equation. if (stpCanPaste && AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click)); @@ -1867,8 +1915,11 @@ namespace Volian.Controls.Library case "Print Section": OnPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; + case "Quick Print Section": + OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); + break; case "Print All Procedures for": - OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag)); + OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; case "Approve": OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); @@ -1880,10 +1931,10 @@ namespace Volian.Controls.Library OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; case "Create Continuous Action Summary": - OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0,mi.Text,(int)mi.Tag)); + OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; case "Create Time Critical Action Summary": - OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0,mi.Text,(int)mi.Tag)); + OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); break; default: if (mip.Text.StartsWith("Showing Change Bars Starting")) @@ -1921,7 +1972,7 @@ namespace Volian.Controls.Library { if (selprc.IsEnhancedProcedure) { - selprc.DoUnlinkEnhanced(selprc, 0, !hasValidConnectingProc); // if no valid linked: enhtype = 0 since this an enhanced doc is getting unlinked + selprc.DoUnlinkEnhanced(selprc, 0, !hasValidConnectingProc); // if no valid linked: enhtype = 0 since this an enhanced doc is getting unlinked } else // from source { @@ -1929,7 +1980,7 @@ namespace Volian.Controls.Library if (hasValidConnectingProc) { ItemInfo lprc = ItemInfo.Get(seleds[0].ItemID); - lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc); + lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc); } else selprc.DoUnlinkEnhanced(selprc, seleds[0].Type, !hasValidConnectingProc); @@ -1949,7 +2000,7 @@ namespace Volian.Controls.Library { ItemInfo lprc = ItemInfo.Get(ed.ItemID); bool hasValidConnectingProc = CheckForValidEnhLink(lprc); - // if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure. + // if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure. if (hasValidConnectingProc) lprc.DoUnlinkEnhanced(lprc, ed.Type, !hasValidConnectingProc); else @@ -1973,37 +2024,37 @@ namespace Volian.Controls.Library OnNodeSI(this, new vlnTreeEventArgs(tn, null, 0)); return; } - if (mi.Text.StartsWith("Collapse")) - { + if (mi.Text.StartsWith("Collapse")) + { CollapseProcedures(); - return; - } + return; + } if (mi.Text == "Print Transition Report") { OnPrintTransitionReport(this, new vlnTreeEventArgs(SelectedNode as VETreeNode)); return; } - - - - - - - - - - - if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure") - { - OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - return; - } - if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure") - { - OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1)); - return; - } - if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to")) + + + + + + + + + + + if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure") + { + OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); + return; + } + if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure") + { + OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1)); + return; + } + if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to")) { OnProcedureCheckedOutTo(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); return; @@ -2014,6 +2065,10 @@ namespace Volian.Controls.Library VETreeNode tn2 = SelectedNode as VETreeNode; OnPrintSection(this, new vlnTreeEventArgs(tn2 as VETreeNode, null, 0)); break; + case "Quick Print Section": + VETreeNode tn2qp = SelectedNode as VETreeNode; + OnQPrintSection(this, new vlnTreeEventArgs(tn2qp as VETreeNode, null, 0)); + break; case "Open": OpenNode(); break; @@ -2025,7 +2080,7 @@ namespace Volian.Controls.Library break; case "New Folder": SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Folder); + tv_NodeNew(MenuSelections.Folder); break; case "Create Working Draft": SelectedNode.Expand(); @@ -2069,12 +2124,11 @@ namespace Volian.Controls.Library tv_NodeCopy(); break; // lots of paste options: - case "Paste Procedure": + case "Paste Procedure": case "Paste Procedure Before": case "Paste Procedure After": case "Paste Section": case "Paste Section Before": - case "Replace Existing Section": case "Paste Section After": case "Paste Step": case "Paste Step Before": @@ -2083,8 +2137,18 @@ namespace Volian.Controls.Library case "Paste Subsection": tv_NodePaste(mi.Text); break; + case "Replace Existing Section": + //C2025-032 - Add check if user is sure want to paste replace section + DialogResult ovewriteExPS = FlexibleMessageBox.Show("This will overwrite the selected section with the one you copied, would you like to overwrite it?\r\n\r\nSelecting 'Cancel' will cancel the paste action.", "Overwrite the section?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); + + if (ovewriteExPS == DialogResult.Cancel) break; + else + { + tv_NodePaste(mi.Text); + break; + } case "Replace Existing Procedure": - DialogResult ovewriteEx = FlexibleMessageBox.Show("This will overwrite the selected procedure with then one you copied, would you like to overwrite it?\r\n\r\nSelecting 'Cancel' will cancel the paste action.", "Overwrite the procedure?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);// == DialogResult.Yes; + DialogResult ovewriteEx = FlexibleMessageBox.Show("This will overwrite the selected procedure with the one you copied, would you like to overwrite it?\r\n\r\nSelecting 'Cancel' will cancel the paste action.", "Overwrite the procedure?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);// == DialogResult.Yes; if (ovewriteEx == DialogResult.Cancel) break; else @@ -2094,7 +2158,7 @@ namespace Volian.Controls.Library break; } - + case "Delete": if (tv_NodeDelete()) { @@ -2160,14 +2224,14 @@ namespace Volian.Controls.Library UpdateROValues(SelectedNode as VETreeNode); break; case "Create Continuous Action Summary": - OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0)); + OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); break; - // F2022-024 Time Critical Action Summary + // F2022-024 Time Critical Action Summary case "Create Time Critical Action Summary": - OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null,0)); + OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); break; - // B2017-243 added the following two Cannot Paste items when dealing with enhanced documents - // when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted + // B2017-243 added the following two Cannot Paste items when dealing with enhanced documents + // when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted case "CANNOT PASTE HERE. Click for more information...": FlexibleMessageBox.Show("You have copied a document that is linked to an Enhanced Document.\n\n" + "It can only be pasted before or after another document, within the set, that is linked to an Enhanced Document.", "Cannot Paste Here"); @@ -2209,7 +2273,7 @@ namespace Volian.Controls.Library foreach (VETreeNode tnc in tn.Nodes) CollapseProcedures(tnc); if (tn.VEObject as DocVersionInfo == null && tn.VEObject as FolderInfo == null) - tn.Collapse(); + tn.Collapse(); _doingCollapseNode = true; // B2016-058 this will prevent a Drag Node error when collapsing an RNOs, Cautions, or Notes tree node } private void tv_RemoveChgIds() @@ -2264,12 +2328,12 @@ namespace Volian.Controls.Library FinalProgressBarMessage = "Cannot check-out Working Draft"; return; } - Cursor = Cursors.WaitCursor; // C2023-002: move wait cursor after check out error + Cursor = Cursors.WaitCursor; // C2023-002: move wait cursor after check out error int ownerid = MySessionInfo.CheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion); using (DocVersion dv = DocVersion.Get(MyDVI.VersionID)) { swROUpdate = new System.IO.StreamWriter(ROFstInfo.ROUpdateResultsPath(MyDVI)); // RO changes placed in file in the Documents\VEPROMS folder - // B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo + // B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo if (dv.ROfstLoadingFigures || dv.NewerRoFst) // B2017-125 see if loading figures was completed { // only load the RO.fst @@ -2297,7 +2361,7 @@ namespace Volian.Controls.Library swROUpdate.Write(string.Format("Fixed Referenced Object for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID)); } - private ProgressBarItem _ProgressBar=null; + private ProgressBarItem _ProgressBar = null; public ProgressBarItem ProgressBar { get { return _ProgressBar; } @@ -2410,7 +2474,7 @@ namespace Volian.Controls.Library return; } // C2017-003: ro data in sql server, check for sql connection string - if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring") + if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring") roloc = roloc + " \"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString + "\""; // C2021-026 pass in Parent/Child information (list of the children) // B2022-019 look at all DocVersions to find ParentChild information @@ -2461,7 +2525,7 @@ namespace Volian.Controls.Library } } VETreeNode tn = SelectedNode as VETreeNode; - + DocVersionInfo dvi = tn.VEObject as DocVersionInfo; // Check for paste into a docversion - queries/code is different than paste related to an item (into a proc or section) if (dvi != null) @@ -2475,7 +2539,7 @@ namespace Volian.Controls.Library // assume that item to paste is a procedure, otherwise the menuing would not have // included the paste options - tn = (VETreeNode) tn.Nodes[tn.Nodes.Count - 1]; + tn = (VETreeNode)tn.Nodes[tn.Nodes.Count - 1]; p = "After"; } else // this is an empty docversion: @@ -2511,7 +2575,7 @@ namespace Volian.Controls.Library if (OnlyProc && repitem != null && tmp != null) { VETreeNode tn1 = new VETreeNode(repitem); - tmp.Nodes.Add(tn1); + tmp.Nodes.Add(tn1); SelectedNode = tn1; } } @@ -2520,7 +2584,7 @@ namespace Volian.Controls.Library //if (p.IndexOf("Replace") <= -1) - this.Cursor = Cursors.Default; + this.Cursor = Cursors.Default; } public void PasteAsDocVersionChild(VETreeNode tn, int copyStartID) @@ -2537,7 +2601,7 @@ namespace Volian.Controls.Library } ItemInfo newProc = dvi.PasteChild(copyStartID); VETreeNode tn1 = new VETreeNode(newProc); - SelectedNode.Nodes.Add(tn1); // add tree node to end of list. + SelectedNode.Nodes.Add(tn1); // add tree node to end of list. SelectedNode = tn1; } @@ -2574,7 +2638,7 @@ namespace Volian.Controls.Library } if (pasteSectIntoEmptySect) { - tn.ChildrenLoaded = false; // force a reload of treenode + tn.ChildrenLoaded = false; // force a reload of treenode tn.LoadChildren(true); } SelectedNode = tn; @@ -2589,7 +2653,7 @@ namespace Volian.Controls.Library // the item to be pasted in the step editor and the tree. ItemInfo newItemInfo = null; // F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format - if (!ii.IsProcedure) + if (!ii.IsProcedure) ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, false); if (ii.IsProcedure || !OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type))) { @@ -2612,8 +2676,8 @@ namespace Volian.Controls.Library } private ItemInfo PasteReplace(VETreeNode tn, int copyStartID) { - VETreeNode prevtn = (VETreeNode) tn.PrevNode; - VETreeNode partn = (VETreeNode) tn.Parent; + VETreeNode prevtn = (VETreeNode)tn.PrevNode; + VETreeNode partn = (VETreeNode)tn.Parent; ItemInfo ii = tn.VEObject as ItemInfo; // F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, true); @@ -2652,7 +2716,7 @@ namespace Volian.Controls.Library SelectedNode.Nodes.Add(tn1); // add tree node to end of list. SelectedNode = tn1; } - private void tv_NodeCopy() + private void tv_NodeCopy() { if (SelectedNode == null) return; VETreeNode tn = SelectedNode as VETreeNode; @@ -2664,7 +2728,7 @@ namespace Volian.Controls.Library private void SetupNodeProperties() { VETreeNode tn = SelectedNode as VETreeNode; - if (tn==null)return; + if (tn == null) return; if ((tn.VEObject as FolderInfo) != null) OpenProperties(tn.VEObject as FolderInfo); @@ -2676,7 +2740,7 @@ namespace Volian.Controls.Library if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0) rofstid = dvi.DocVersionAssociations[0].MyROFst.ROFstID; OpenProperties(tn.VEObject as DocVersionInfo); if (dvi != null && dvi.DocVersionAssociations != null && dvi.DocVersionAssociations.Count > 0 && rofstid != dvi.DocVersionAssociations[0].MyROFst.ROFstID) - OnTabDisplay(this,new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST")); + OnTabDisplay(this, new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST")); } else if ((tn.VEObject as ProcedureInfo) != null) OpenProperties(tn.VEObject as ProcedureInfo); @@ -2690,7 +2754,7 @@ namespace Volian.Controls.Library { using (Folder folder = folderInfo.Get()) { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig)); + OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig)); } } private void OpenProperties(DocVersionInfo dvInfo) @@ -2704,7 +2768,7 @@ namespace Volian.Controls.Library { using (Procedure proc = procInfo.Get()) { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig)); + OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig)); } } private void OpenProperties(SectionInfo sectInfo) @@ -2717,7 +2781,7 @@ namespace Volian.Controls.Library title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title); else title = string.Format("{0} Properties", sectInfo.SectionConfig.Title); - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig)); + OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig)); } } private void OpenProperties(StepInfo stpinfo) @@ -2771,7 +2835,7 @@ namespace Volian.Controls.Library { if (newtype == MenuSelections.DocVersion) { - int dvid = -1; // flag to allow user to cancel from dialog & then we remove it. + int dvid = -1; // flag to allow user to cancel from dialog & then we remove it. using (DocVersion docversion = DocVersion.MakeDocVersion(parentfolder, "Working Draft", "Title", null, null, null)) { ShowBrokenRules(docversion.BrokenRulesCollection); @@ -2780,7 +2844,7 @@ namespace Volian.Controls.Library { docversion.Save(); tn = new VETreeNode(_LastDocVersionInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. + SelectedNode.Nodes.Add(tn); // add tree node to end of list. parentfolder.Reset_ChildFolders(); parentfolder.Reset_FolderDocVersions(); } @@ -2791,7 +2855,7 @@ namespace Volian.Controls.Library } else if (newtype == MenuSelections.Folder) { - int f1 = -1; // flag to allow user to cancel from dialog & then we remove it. + int f1 = -1; // flag to allow user to cancel from dialog & then we remove it. string uniquename = _LastFolderInfo.UniqueChildName("New Folder"); using (Folder folder = Folder.MakeFolder(parentfolder, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, string.Empty, DateTime.Now, VlnSettings.UserID)) { @@ -2803,14 +2867,14 @@ namespace Volian.Controls.Library { folder.Save(); tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo); - SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist. + SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist. } else f1 = folder.FolderID; } if (f1 != -1) Folder.Delete(f1); } - else if (newtype == MenuSelections.FolderAfter||newtype == MenuSelections.FolderBefore) + else if (newtype == MenuSelections.FolderAfter || newtype == MenuSelections.FolderBefore) { int f2 = -1; string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder"); @@ -2819,7 +2883,8 @@ namespace Volian.Controls.Library //since before/after folder is at same level as current folder //so need to use the parents order to determine where to place it using (FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.MyParent.FolderID)) - { double? myorder = parfolderinfo.NewManualOrder(myindex); + { + double? myorder = parfolderinfo.NewManualOrder(myindex); using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID)) { ShowBrokenRules(folder.BrokenRulesCollection); @@ -2844,7 +2909,7 @@ namespace Volian.Controls.Library else if (newtype == MenuSelections.Procedure) { int p1 = -1; - using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count!=0?_LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count-1]:null, null, "New Procedure", 0)) + using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count != 0 ? _LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count - 1] : null, null, "New Procedure", 0)) { ShowBrokenRules(procedure.BrokenRulesCollection); SetLastValues(ProcedureInfo.Get(procedure.ItemID)); @@ -2853,8 +2918,8 @@ namespace Volian.Controls.Library { procedure.Save(); tn = new VETreeNode(_LastProcedureInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - // The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034) + SelectedNode.Nodes.Add(tn); // add tree node to end of list. + // The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034) if (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures(); if (procedure.MyProcedureInfo.CreateEnhanced) { @@ -2896,21 +2961,21 @@ namespace Volian.Controls.Library else p2 = procedure.ItemID; } - if (p2 != -1) + if (p2 != -1) DeleteItemInfoAndChildren(_LastProcedureInfo); // Delete Item and reset Previous and Next } #endregion #region InsertSection - else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list + else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list { string message = string.Empty; if (_LastProcedureInfo != null) if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message)) - { - FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - OnUnPauseRefresh(this, null); - return; - } + { + FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); + OnUnPauseRefresh(this, null); + return; + } int s1 = -1; if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null)) { @@ -2940,7 +3005,7 @@ namespace Volian.Controls.Library "If you would like to view or copy these hidden steps you will need to go\n" + "into the properties of this section and check the Editable Data checkbox.\n" + "You will then be able to view and copy those steps. When finished, open\n" + - "the properties page again and uncheck the Editable Data checkbox.\n\n"+ + "the properties page again and uncheck the Editable Data checkbox.\n\n" + "Do you want to continue creating the subsection?"; if (FlexibleMessageBox.Show(this, msgstr, "Subsection Insert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { @@ -2952,7 +3017,7 @@ namespace Volian.Controls.Library if (!hasMetaSubs) doPseudo = true; } } - using(Section section = CreateNewSection()) + using (Section section = CreateNewSection()) { ShowBrokenRules(section.BrokenRulesCollection); SectionInfo savLastSectionInfo = _LastSectionInfo; @@ -2962,10 +3027,10 @@ namespace Volian.Controls.Library if (!doPseudo) { tn = new VETreeNode(_LastSectionInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - // if the new section was flagged as either having an enhanced link for Title or Contents, create the - // Enhanced section: - Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem. + SelectedNode.Nodes.Add(tn); // add tree node to end of list. + // if the new section was flagged as either having an enhanced link for Title or Contents, create the + // Enhanced section: + Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem. if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y") CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text); sectiontmp.Dispose(); @@ -2976,7 +3041,7 @@ namespace Volian.Controls.Library // may have to add a 'steps' node if a step(s) already exist... ItemInfo ii = (SelectedNode as VETreeNode).VEObject as ItemInfo; int cpindx = 0; - if (SelectedNode.Nodes.Count>0) + if (SelectedNode.Nodes.Count > 0) { VETreeNode vtn = SelectedNode.Nodes[0] as VETreeNode; // B2017-014: removed code that was adding a 2nd section part node. and also select node to @@ -2986,13 +3051,13 @@ namespace Volian.Controls.Library // B2017-014: removed code that was adding a 2nd section part node. } } - else // Properties was canceled out of: + else // Properties was canceled out of: s1 = section.ItemID; } if (s1 != -1) { DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next - // B2020-087 refresh the tree node after canceling the creation of the subsection + // B2020-087 refresh the tree node after canceling the creation of the subsection _LastTreeNode.ChildrenLoaded = false; _LastTreeNode.RefreshNode(); _LastTreeNode.Collapse(); @@ -3020,14 +3085,14 @@ namespace Volian.Controls.Library if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK) { int indx = tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1); - int itemido = (indx >= par.Nodes.Count)?-1:(((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).ItemID; - if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido !=section.ItemID) + int itemido = (indx >= par.Nodes.Count) ? -1 : (((par.Nodes[indx] as VETreeNode).VEObject) as ItemInfo).ItemID; + if (indx >= par.Nodes.Count || (par.Nodes[indx] as VETreeNode).VEObject.ToString() != _LastSectionInfo.ToString() || itemido != section.ItemID) { tn = new VETreeNode(_LastSectionInfo); par.Nodes.Insert(indx, tn); // if the new section was flagged as either having an enhanced link for Title or Contents, create the // Enhanced section: - Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem. + Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem. if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y") CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text); sectiontmp.Dispose(); @@ -3039,7 +3104,7 @@ namespace Volian.Controls.Library if (s2 != -1) { DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next - // B2020-087 refresh the tree node after canceling the creation of the subsection + // B2020-087 refresh the tree node after canceling the creation of the subsection _LastTreeNode.ChildrenLoaded = false; _LastTreeNode.RefreshNode(); _LastTreeNode.Collapse(); @@ -3047,7 +3112,7 @@ namespace Volian.Controls.Library } #endregion #region InsertStep - else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree. + else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree. { string message = string.Empty; if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) @@ -3124,7 +3189,7 @@ namespace Volian.Controls.Library using (Procedure newenhProcedure = Procedure.MakeProcedure(enhDVInfo, enhDVInfo.Procedures.Count != 0 ? enhDVInfo.Procedures[enhDVInfo.Procedures.Count - 1] : null, null, "New Procedure", 0)) { SaveEnhancedForProcedure(sourceProc, newenhProcedure, ded.Type); - RefreshRelatedNode(ProcedureInfo.Get(newenhProcedure.ItemID)); // this updates the treeview to include the new enhanced procedure + RefreshRelatedNode(ProcedureInfo.Get(newenhProcedure.ItemID)); // this updates the treeview to include the new enhanced procedure } } } @@ -3222,7 +3287,7 @@ namespace Volian.Controls.Library { SectionConfig newenhcfg = new SectionConfig(newenhSection); newenhcfg.AddEnhancedDocument(0, sourceSect.ItemID); - newenhcfg.SaveEnhancedDocuments(); // does this save data? + newenhcfg.SaveEnhancedDocuments(); // does this save data? using (Content c1 = Content.Get(newenhSection.ContentID)) { c1.Config = newenhcfg.ToString(); @@ -3236,7 +3301,7 @@ namespace Volian.Controls.Library cs.Save(); } } - + private Section CreateNewSection() { // B2020-087 the config for SubSection_Edit was sometimes set even when there wasn't any subsections, @@ -3276,7 +3341,7 @@ namespace Volian.Controls.Library // The parent step was not open in the step editor, just create new step(s) and add treenode. int newId = -1; // B2020-076: if this step has a template, insert template steps. - int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002); + int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002); if (topType != -1) { ItemInfo tmp = null; @@ -3303,12 +3368,12 @@ namespace Volian.Controls.Library // see if enhanced related steps need created: SectionConfig scfgE = _LastItemInfo.ActiveSection.MyConfig as SectionConfig; // C2018-003 fixed use of getting the active section - if (scfgE != null && scfgE.Section_LnkEnh=="Y") + if (scfgE != null && scfgE.Section_LnkEnh == "Y") { // set up which item to insert from based on whether editor was open (see comment from 11/17 above). EnhancedDocuments enhdocs = null; ItemInfo.EAddpingPart addpart = ItemInfo.EAddpingPart.Child; - if (_LastItemInfo.MyPrevious != null) // the code above will do the MakeStep regardless of whether editor is up if this is the only step. + if (_LastItemInfo.MyPrevious != null) // the code above will do the MakeStep regardless of whether editor is up if this is the only step. { addpart = ItemInfo.EAddpingPart.After; ItemInfo lstSrc = _LastItemInfo.MyPrevious; @@ -3480,7 +3545,7 @@ namespace Volian.Controls.Library result = FlexibleMessageBox.Show("Are you sure you want to delete this " + typeDescription + "?", "Verify Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); } - if (_LastProcedureInfo != null || result == DialogResult.Yes) + if (_LastProcedureInfo != null || result == DialogResult.Yes) { if (_LastFolderInfo != null) { @@ -3496,7 +3561,7 @@ namespace Volian.Controls.Library { foreach (DVEnhancedDocument dve in dvc.MyEnhancedDocuments) { - if (dve.Type != 0) + if (dve.Type != 0) DocVersion.Delete(dve.VersionID); else { @@ -3542,7 +3607,7 @@ namespace Volian.Controls.Library if (ed.Type != 0) enhIds.Add(ed.ItemID); // always return false because an event gets fired to delete tree nodes. if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false; - + _LastProcedureInfo = null; foreach (int enhId in enhIds) { @@ -3586,7 +3651,7 @@ namespace Volian.Controls.Library // just clear enhanced links back _LastSectionInfo.ClearEnhancedSectionLink(); } - OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo,true)); + OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo, true)); // always return false because an event gets fired to delete tree nodes. if (!DeleteItemInfoAndChildren(_LastSectionInfo)) { @@ -3641,7 +3706,7 @@ namespace Volian.Controls.Library } return false; } - + public void RemoveFolder(int folderId) { TreeNode nodeToRemove = FindNodeById(folderId, this.Nodes); @@ -3687,11 +3752,11 @@ namespace Volian.Controls.Library // do delete using RTBItem - this manages windowing from the step editor. // If the procedure is open & you're deleting procedure, you want to close open // window - this is done in DisplayTabControl-DeleteStepTabItem. - OnProcessing(true,"Deleting"); + OnProcessing(true, "Deleting"); if (!OnDeleteItemInfo(this, new vlnTreeItemInfoEventArgs(ii))) Item.DeleteItemAndChildren(ii); - OnProcessing(false,"Deleted"); - OnProcessingComplete(dtStart,"Deleted"); + OnProcessing(false, "Deleted"); + OnProcessingComplete(dtStart, "Deleted"); if (deletedSection) { // B2020-087 if we deleted the last sub section, then clear the SubSection_Edit in the parent's config @@ -3710,12 +3775,12 @@ namespace Volian.Controls.Library } catch (System.Data.SqlClient.SqlException ex) { - OnProcessing(false,"Delete Failed"); - OnProcessingComplete(dtStart,"Delete Failed"); + OnProcessing(false, "Delete Failed"); + OnProcessingComplete(dtStart, "Delete Failed"); // C2020-033: Support delete to bring up Search/Incoming Transitions panel if (ex.Message.Contains("has External Transitions")) { - ItemInfo iis = ItemInfo.Get(ii.ItemID); + ItemInfo iis = ItemInfo.Get(ii.ItemID); OnSearchIncTransIn(this, new vlnTreeItemInfoEventArgs(iis)); iis = ii.HandleSqlExceptionOnDelete(ex); } @@ -3731,13 +3796,13 @@ namespace Volian.Controls.Library private void OnProcessingComplete(DateTime dtStart, string message) { if (ProcessingComplete != null) - ProcessingComplete(this, new vlnTreeTimeEventArgs(dtStart,message)); + ProcessingComplete(this, new vlnTreeTimeEventArgs(dtStart, message)); } public event vlnTreeViewStatusEvent Processing; private void OnProcessing(bool status, string message) { if (Processing != null) - Processing(this, new vlnTreeStatusEventArgs(status,message)); + Processing(this, new vlnTreeStatusEventArgs(status, message)); } #endregion #region SetLastValuesAndSaveIfChangedStuff @@ -3813,7 +3878,7 @@ namespace Volian.Controls.Library ItemInfo iidrag = ((VETreeNode)dragNode).VEObject as ItemInfo; FolderInfo fdrag = ((VETreeNode)dragNode).VEObject as FolderInfo; DocVersionInfo ddrag = ((VETreeNode)dragNode).VEObject as DocVersionInfo; - if ((iidrag == null && fdrag == null && ddrag == null)) + if ((iidrag == null && fdrag == null && ddrag == null)) { FlexibleMessageBox.Show("Cannot drag/drop a grouping node."); return; @@ -3828,7 +3893,7 @@ namespace Volian.Controls.Library } catch (Exception ex) { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_ItemDrag", ex); + if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_ItemDrag", ex); } } #endregion @@ -3864,7 +3929,7 @@ namespace Volian.Controls.Library { get { return _lastScroll; } } - private string _location = string.Empty; + private string _location = string.Empty; #endregion #region Constructors public DropLocation(TreeView tv, System.Windows.Forms.DragEventArgs e, DateTime lastScroll) @@ -3981,7 +4046,7 @@ namespace Volian.Controls.Library { return; } - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString()); + //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString()); // Changed the color of the drag indicator to always be red Color lc = (_position == DropPosition.After ? Color.Red : Color.Red); Brush lb = (_position == DropPosition.After ? Brushes.Red : Brushes.Red); @@ -4008,12 +4073,12 @@ namespace Volian.Controls.Library //if (e.Effect == DragDropEffects.None) return; if (_dropNode != null) { -// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); + // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); DragHelper.ImageList_DragShowNolock(false); TreeView tv = _dropNode.TreeView; TreeNode tmp = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y))); -// if (!ScrollOnly) -// { + // if (!ScrollOnly) + // { if (ScrollTreeView(tmp) || !ScrollOnly) { //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation2 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); @@ -4023,11 +4088,11 @@ namespace Volian.Controls.Library //tv.SelectedNode = dropNode; Graphics g = tv.CreateGraphics(); TreeNodeTriangle(g); - if (_position != DropPosition.Child)InsertPointer(tmp, g); + if (_position != DropPosition.Child) InsertPointer(tmp, g); } } -// } -// else ScrollTreeView(tmp); + // } + // else ScrollTreeView(tmp); DragHelper.ImageList_DragShowNolock(true); } } @@ -4050,10 +4115,10 @@ namespace Volian.Controls.Library tn.NextVisibleNode.EnsureVisible();// Make sure that the next node is visible else if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode.IsVisible == false) - tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible } - else + tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible } + else if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.IsVisible == false) - tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible + tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible retval = (top != tn.Bounds.Top); // if (retval) if(_MyLog.IsInfoEnabled)_MyLog.Info("Scroll"); } @@ -4086,14 +4151,14 @@ namespace Volian.Controls.Library { DragDropEffects ee = e.Effect; if (e.KeyState == 13) // Shift and Control Keys to do a move. - ee = DragDropEffects.Move; + ee = DragDropEffects.Move; else ee = DragDropEffects.None; // Default - Do nothing - if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node + if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node ee = DragDropEffects.None; - else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions + else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions ee = DragDropEffects.None; - else if (IsFolder((VETreeNode)dragNode)) // Folder move is only valid if moving to folder with NO docversions + else if (IsFolder((VETreeNode)dragNode)) // Folder move is only valid if moving to folder with NO docversions { FolderInfo fdropi = ((VETreeNode)dl.DropNode).VEObject as FolderInfo; if (fdropi == null || fdropi.FolderDocVersionCount > 0) ee = DragDropEffects.None; @@ -4104,7 +4169,7 @@ namespace Volian.Controls.Library // For HLP, just move within the same procedure // TODO: allow for section move within subsections. ProcedureInfo pdropi = ((VETreeNode)dl.DropNode).VEObject as ProcedureInfo; - if (pdropi == null || (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None; + if (pdropi == null || (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None; } else if (!IsFolder((VETreeNode)dragNode) && (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None; @@ -4115,7 +4180,7 @@ namespace Volian.Controls.Library } catch (Exception ex) { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragOver", ex); + if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragOver", ex); } } @@ -4169,7 +4234,7 @@ namespace Volian.Controls.Library } catch (Exception ex) { - if(_MyLog.IsErrorEnabled)_MyLog.Error("GetTreeNodeFromData", ex); + if (_MyLog.IsErrorEnabled) _MyLog.Error("GetTreeNodeFromData", ex); } } return null; @@ -4195,7 +4260,7 @@ namespace Volian.Controls.Library this.SelectedNode = dragNode; FolderInfo fdragi = ((VETreeNode)dragNode).VEObject as FolderInfo; FolderInfo fdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as FolderInfo; - if (fdragi != null && fdropi != null && fdropi.FolderDocVersionCount==0) + if (fdragi != null && fdropi != null && fdropi.FolderDocVersionCount == 0) { using (Folder fdrag = fdragi.Get()) { @@ -4214,7 +4279,7 @@ namespace Volian.Controls.Library // may either be a document version or a procedure depending on where the user wants to position the procedure. ProcedureInfo pdragi = ((VETreeNode)dragNode).VEObject as ProcedureInfo; ProcedureInfo pdropi = null; - if (pdragi != null) // moving a procedure + if (pdragi != null) // moving a procedure { pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo; if (pdropi != null && pdragi.ActiveParent == pdropi.ActiveParent) @@ -4234,7 +4299,7 @@ namespace Volian.Controls.Library // Allow drag/drop of sections within the same procedure or same section (if subsection) (must have same parent) SectionInfo sdragi = ((VETreeNode)dragNode).VEObject as SectionInfo; SectionInfo sdropi = null; - if (sdragi != null) // moving a section + if (sdragi != null) // moving a section { sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo; if (sdropi != null && sdragi.ActiveParent == sdropi.ActiveParent) @@ -4255,7 +4320,7 @@ namespace Volian.Controls.Library // Allow drag/drop of steps within the same parent only StepInfo stdragi = ((VETreeNode)dragNode).VEObject as StepInfo; StepInfo stdropi = null; - if (stdragi != null) // moving a step + if (stdragi != null) // moving a step { stdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as StepInfo; if (stdropi != null && stdragi.ActiveParent == stdropi.ActiveParent) @@ -4279,36 +4344,36 @@ namespace Volian.Controls.Library } catch (Exception ex) { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragDrop", ex); + if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragDrop", ex); } } -// private void DumpMembers(object o) -// { -// Type t = o.GetType(); -// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString()); -// MemberInfo[] mis = t.GetMembers(); -// int i = 0; -// foreach (MemberInfo mi in mis) -// { -// i++; -// try -// { -// //if(mi.MemberType != MemberTypes.Method) -// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType); -//// if (fi.Name == "TreeView") -//// fi.SetValue(o, null); -// } -// catch (Exception ex) -// { -// if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex); -// } -// } -// } + // private void DumpMembers(object o) + // { + // Type t = o.GetType(); + // //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString()); + // MemberInfo[] mis = t.GetMembers(); + // int i = 0; + // foreach (MemberInfo mi in mis) + // { + // i++; + // try + // { + // //if(mi.MemberType != MemberTypes.Method) + // //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType); + //// if (fi.Name == "TreeView") + //// fi.SetValue(o, null); + // } + // catch (Exception ex) + // { + // if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex); + // } + // } + // } private TreeNode Clone(TreeNode tn) { TreeNode tmp = (TreeNode)tn.Clone(); - ExpandMatch(tmp,tn); + ExpandMatch(tmp, tn); return tmp; } private void tv_DragDropOld(object sender, System.Windows.Forms.DragEventArgs e) diff --git a/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs b/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs index f15899c6..89efa648 100644 --- a/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs +++ b/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs @@ -252,6 +252,14 @@ namespace Volian.Print.Library get { return _CountInApplProcs; } set { _CountInApplProcs = value; } } + // C2025-033 Child (slave) being printed + private static int _PrintingChild = 0; + public static int PrintingChild + { + get { return _PrintingChild; } + set { _PrintingChild = value; } + } + //private bool _AddBlankPagesForDuplexPrinting = false; //public bool AddBlankPagesForDuplexPrinting // Tells us if a the option to add a blank page is turn on (for procedures with duplex foldouts) //{ @@ -1363,6 +1371,8 @@ i = 0; foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems) { if (pageItem.Token == null) continue; // can be null if token is dependent on PSI lookup! + // 2024-089 selectively print pagestyle item base on Child Procedure being printed + if (PrintingChild > 0 && pageItem.ChildNum > 0 && pageItem.ChildNum != PrintingChild) continue; // C2025-033 item should not be printed for this child DidHLSText = false; // reset to false for this group of tokens. //if (pageItem.Token.Contains("HLSTEXT")) // Console.WriteLine("{0} - PageList Token", pageItem.Token); @@ -1761,6 +1771,16 @@ i = 0; case "[HEADER4]": case "{HEADER5}": case "[HEADER5]": + case "{HEADER6}": + case "[HEADER6]": + case "{HEADER7}": + case "[HEADER7]": + case "{HEADER8}": + case "[HEADER8]": + case "{HEADER9}": + case "[HEADER9]": + case "{HEADER10}": + case "[HEADER10]": case "{BOX1}": case "[BOX1]": case "{BOX2}": @@ -2099,7 +2119,12 @@ i = 0; case "[UNITNUMBER]": string unbr = MySection.MyDocVersion.DocVersionConfig.Unit_Number; if (MySection.ActiveFormat.PlantFormat.FormatData.PrintData.PrintCommonForZeroUnit && unbr == "0") - plstr = "COMMON"; // for Comanche Peak, replace "Unit 0" with "COMMON" + { + if (String.IsNullOrEmpty(MySection.MyDocStyle.AltMultiUnitWording)) + plstr = "COMMON"; // for Comanche Peak, replace "Unit 0" with "COMMON" + else + plstr = MySection.MyDocStyle.AltMultiUnitWording; // for Comanche Peak Abnormal, replace "Unit 0" with "UNIT 1 AND 2" + } else plstr = plstr.Replace(token, unbr); break; diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs b/PROMS/Volian.Print.Library/vlnParagraph.cs index 73b089b4..68a13f7a 100644 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs +++ b/PROMS/Volian.Print.Library/vlnParagraph.cs @@ -4390,7 +4390,8 @@ namespace Volian.Print.Library SectionConfig sch = MyItemInfo.MyConfig as SectionConfig; if (sch != null && sch.Section_PrintHdr != "Y") doprint = false; } - if (doprint && !UseTemplateKeepOnCurLine(itemInfo)) + //C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed. + if (doprint && !UseTemplateKeepOnCurLine(itemInfo) && !itemInfo.IsType("InvisibleHigh")) { float tyoff = yoff; if (itemInfo.Steps != null) @@ -5751,9 +5752,21 @@ namespace Volian.Print.Library private StringBuilder _RtfSB = null; public string GetRtf(ItemInfo itemInfo, string prefix, string suffix) { - int profileDepth = ProfileTimer.Push(">>>> GetRtf"); + int profileDepth = ProfileTimer.Push(">>>> GetRtf"); _RtfSB = new StringBuilder(); DisplayText vlntxt = new DisplayText(itemInfo, E_EditPrintMode.Print, E_ViewMode.View, true, E_FieldToEdit.StepText, false, prefix, suffix, MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces != null); + + //C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed. + if (itemInfo.IsType("InvisibleHigh")) + { + System.Drawing.Font myHighFont = vlntxt.TextFont.WindowsFont; + _RtfSB.Append(AddFontTable(myHighFont)); + _RtfSB.Append("}"); + string rtfHigh = _RtfSB.ToString(); + ProfileTimer.Pop(profileDepth); + return rtfHigh; + } + // C2021-010: Remove trailing returns/spaces & manual page breaks & allow save. if (DisplayText.RemoveTrailingBlankID > 0 && !MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces.Contains(itemInfo.ItemID)) MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndSpaces.Add(DisplayText.RemoveTrailingBlankID); System.Drawing.Font myFont = vlntxt.TextFont.WindowsFont; @@ -6199,6 +6212,12 @@ namespace Volian.Print.Library XOffset += (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[level].SecTitlePositionAdj; XOffset -= xMetaAdj; } + + if (itemInfo.MyDocStyle.SectTitleOffsetOverride != null) + { + XOffset += (float)itemInfo.MyDocStyle.SectTitleOffsetOverride; + } + } } else if (formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Just == "PSCenter") diff --git a/PROMS/Volian.Print.Library/vlnTab.cs b/PROMS/Volian.Print.Library/vlnTab.cs index 893530d6..40fce490 100644 --- a/PROMS/Volian.Print.Library/vlnTab.cs +++ b/PROMS/Volian.Print.Library/vlnTab.cs @@ -69,7 +69,7 @@ namespace Volian.Print.Library private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab // add symbol characters as needed // "\u25CF" - solid bullet - // \x0394 - delta + // \u0394 - delta private System.Drawing.FontStyle GetSysFontStyle(VE_Font f) { @@ -267,7 +267,8 @@ namespace Volian.Print.Library } } Rtf = GetRtf(origTab, vFont); - Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394 + Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394 + Rtf = Rtf.Replace("\u03BF", @"\f1\u959?\f0 "); // F2025-015 lowercase omicron check with hex value replace with RTF string if (ScriptCaution) { Rtf = GetRtf("\u25CFCaution ", vFont); From 4d96e73866f37ed3a67717b4d30365bd3dd5fcbe Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 20 Jun 2025 14:39:42 -0400 Subject: [PATCH 29/30] Remove from checkin - should be in phase 2 --- .../dlgExportImportEP.cs | 50 ------------------- 1 file changed, 50 deletions(-) delete mode 100644 PROMS/VEPROMS User Interface/dlgExportImportEP.cs diff --git a/PROMS/VEPROMS User Interface/dlgExportImportEP.cs b/PROMS/VEPROMS User Interface/dlgExportImportEP.cs deleted file mode 100644 index f6c466be..00000000 --- a/PROMS/VEPROMS User Interface/dlgExportImportEP.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VEPROMS.CSLA.Library; - -namespace VEPROMS -{ - //C2025-024 Electronic Procedures - Phase 2 (PROMS XML output) - //class inherits from normal import/export form - //then adds additional functionality - public partial class dlgExportImportEP : dlgExportImport - { - private readonly AnnotationTypeInfo _AnnotationType; - - public dlgExportImportEP(string mode, FolderInfo folderInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId) : base(mode, folderInfo, myFrmVEPROMS, (E_UCFImportOptions) 0) - { - _AnnotationType = AnnotationTypeInfo.Get(annotationTypeId); - _ExportBothConvertedandNot = true; - DocReplace = new Dictionary(); - FormClosed += OnClose; - Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {folderInfo.Name}"; - } - - public dlgExportImportEP(string mode, DocVersionInfo docVersionInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId) : base(mode, docVersionInfo, myFrmVEPROMS, (E_UCFImportOptions)0) - { - _AnnotationType = AnnotationTypeInfo.Get(annotationTypeId); - _ExportBothConvertedandNot = true; - DocReplace = new Dictionary(); - FormClosed += OnClose; - Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {docVersionInfo.Name} of {docVersionInfo.MyFolder.Name}"; - } - public dlgExportImportEP(string mode, ProcedureInfo procedureInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId) : base(mode, procedureInfo, myFrmVEPROMS, (E_UCFImportOptions)0) - { - _AnnotationType = AnnotationTypeInfo.Get(annotationTypeId); - _ExportBothConvertedandNot = true; - DocReplace = new Dictionary(); - FormClosed += OnClose; - Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {procedureInfo.DisplayNumber}"; - } - private void OnClose(object sender, EventArgs e) - { - DocReplace.Clear(); - DocReplace = null; - } - - - } -} From 83e935a3f43c0aec39176c3aaf970c3d957bad30 Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 20 Jun 2025 15:36:08 -0400 Subject: [PATCH 30/30] C2025-023 updated revision wording --- PROMS/VEPROMS User Interface/PROMSFixes.Sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PROMS/VEPROMS User Interface/PROMSFixes.Sql b/PROMS/VEPROMS User Interface/PROMSFixes.Sql index 3aa98b3a..d97734f5 100644 --- a/PROMS/VEPROMS User Interface/PROMSFixes.Sql +++ b/PROMS/VEPROMS User Interface/PROMSFixes.Sql @@ -24117,8 +24117,8 @@ BEGIN TRY -- Try Block DECLARE @RevDate varchar(255) DECLARE @RevDescription varchar(255) - set @RevDate = '5/19/2025 8:44 AM' - set @RevDescription = 'C2025-013 Add ability to disable message that opening Summaries in MS Word' + set @RevDate = '6/20/2025 3:07 PM' + set @RevDescription = 'Annotation Support' Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription