Browse Source

change the "sampledata" to "samplepropertyData"

gsp 3 years ago
parent
commit
dd95094e1a

+ 2 - 2
OTSIncAMeasureApp/2-OTSMeasureParamManage/COTSMeasureParam.cs

@@ -1383,13 +1383,13 @@ namespace OTSMeasureApp
                 if (SDataArr.Count == 0)
                     continue;
 
-                SampleDataGroup smlgrp = new SampleDataGroup();
+                SamplePropertyDataGroup smlgrp = new SamplePropertyDataGroup();
                 smlgrp.GroupId = (OTS_SAMPLE_PROP_GRID_ITEM_GROUPS)grpId;
                 smlgrp.sTitle = sTitle;
                 for (int j = 0; j < SDataArr.Count; j++)
                 {
                     var SDataObj = SDataArr[j];
-                    SampleData SData = new SampleData();
+                    SamplePropertyData SData = new SamplePropertyData();
                     int smplid = (int)SDataObj.GetSmplItemId();
                     SData.iSampleId = (OTS_SAMPLE_PROP_GRID_ITEMS)smplid;
                     if (SData.iSampleId == OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE)

+ 3 - 3
OTSIncAMeasureApp/3-OTSDisplaySourceGridData/OTSDisplaySampleGrid.cs

@@ -198,7 +198,7 @@ namespace OTSMeasureApp
                 {
 
                     //显示样品的属性值
-                    SampleData SData = grp.SampleDataList[i];
+                    SamplePropertyData SData = grp.SampleDataList[i];
 
                     this.SetGridCellVal(m_Grid_TotalRow,  SData);
                     m_Grid_TotalRow++;
@@ -215,7 +215,7 @@ namespace OTSMeasureApp
 
 
         //初始化组的标题栏   iRow:GroupTitle的行号, sGroupName: GroupTitle的名字
-        private void InitGroupTitle(int iRow,SampleDataGroup grp)          
+        private void InitGroupTitle(int iRow,SamplePropertyDataGroup grp)          
         {
             String sGroupName=grp.sTitle ;
             if (null == m_PropWindow.PropGrid[iRow, 0])
@@ -239,7 +239,7 @@ namespace OTSMeasureApp
         }
 
 
-        private void SetGridCellVal(int Row, SampleData SData )
+        private void SetGridCellVal(int Row, SamplePropertyData SData )
         {
             OTS_SAMPLE_PROP_GRID_ITEMS SampleID = SData.iSampleId;
             String sCaptionName = SData.sSCaptionName;

+ 33 - 33
OTSIncAMeasureApp/8-OTSSampleMeasureInfo/OTSSampleData.cs

@@ -83,7 +83,7 @@ namespace OTSMeasureApp
            
             m_SMInfo.sSampleSoluName = "Project";
             //样品名
-            SampleData sData = new SampleData();
+            SamplePropertyData sData = new SamplePropertyData();
             sData.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME;
             sData.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData.sSCaptionName = "样品名";
@@ -91,7 +91,7 @@ namespace OTSMeasureApp
             sData.bReadOnly = true;
             m_SMInfo.SampleDataList.Add(sData);
             //样品孔名称
-            SampleData sData1 = new SampleData();
+            SamplePropertyData sData1 = new SamplePropertyData();
             sData1.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_HOLE_NAME;
             sData1.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData1.sSCaptionName = "样品孔名称";
@@ -100,7 +100,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData1);
 
             //Switch
-            SampleData sData2 = new SampleData();
+            SamplePropertyData sData2 = new SamplePropertyData();
             sData2.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH;
             sData2.iSampleValType = OTS_ITEM_TYPES.BOOL;
             sData2.sSCaptionName = "开关";
@@ -118,7 +118,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData2);
 
             //样品测量参数文件名
-            SampleData sData3 = new SampleData();
+            SamplePropertyData sData3 = new SamplePropertyData();
             sData3.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_PARAM_FILE_NAME;
             sData3.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData3.sSCaptionName = "样品测量参数文件名";
@@ -131,7 +131,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData3);
 
             //颗粒分析标准库名
-            SampleData sData4 = new SampleData();
+            SamplePropertyData sData4 = new SamplePropertyData();
             sData4.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME;
             sData4.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData4.sSCaptionName = "颗粒分析标准库名";
@@ -150,7 +150,7 @@ namespace OTSMeasureApp
 
 
             //开始模式
-            SampleData sData5 = new SampleData();
+            SamplePropertyData sData5 = new SamplePropertyData();
             sData5.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE;
             sData5.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData5.sSCaptionName = "开始模式";
@@ -163,7 +163,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData5);
 
             //停止模式
-            SampleData sData6 = new SampleData();
+            SamplePropertyData sData6 = new SamplePropertyData();
             sData6.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE;
             sData6.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData6.sSCaptionName = "停止模式";
@@ -176,7 +176,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData6);
 
             //扫描速度
-            SampleData sData7 = new SampleData();
+            SamplePropertyData sData7 = new SamplePropertyData();
             sData7.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED;
             sData7.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData7.sSCaptionName = "停止模式";
@@ -188,7 +188,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData7);
 
             //扫描图尺寸
-            SampleData sData8 = new SampleData();
+            SamplePropertyData sData8 = new SamplePropertyData();
             sData8.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION;
             sData8.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData8.sSCaptionName = "扫描图尺寸";
@@ -202,7 +202,7 @@ namespace OTSMeasureApp
 
             // 图像处理参数(Image Process)
             //颗粒面积最小范围
-            SampleData sData9 = new SampleData();
+            SamplePropertyData sData9 = new SamplePropertyData();
             sData9.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN;
             sData9.iSampleValType = OTS_ITEM_TYPES.INT;
             sData9.sSCaptionName = "颗粒面积最小范围";
@@ -210,7 +210,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData9);
 
             //颗粒面积最大范围
-            SampleData sData10 = new SampleData();
+            SamplePropertyData sData10 = new SamplePropertyData();
             sData10.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX;
             sData10.iSampleValType = OTS_ITEM_TYPES.INT;
             sData10.sSCaptionName = "颗粒面积最大范围";
@@ -218,7 +218,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData10);
 
             //背景灰度最小范围
-            SampleData sData11 = new SampleData();
+            SamplePropertyData sData11 = new SamplePropertyData();
             sData11.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN;
             sData11.iSampleValType = OTS_ITEM_TYPES.INT;
             sData11.sSCaptionName = "背景灰度最小范围";
@@ -226,7 +226,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData11);
 
             //背景灰度最大范围
-            SampleData sData12 = new SampleData();
+            SamplePropertyData sData12 = new SamplePropertyData();
             sData12.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX;
             sData12.iSampleValType = OTS_ITEM_TYPES.INT;
             sData12.sSCaptionName = "背景灰度最大范围";
@@ -234,7 +234,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData12);
 
             //颗粒灰度最小范围
-            SampleData sData13 = new SampleData();
+            SamplePropertyData sData13 = new SamplePropertyData();
             sData13.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX;
             sData13.iSampleValType = OTS_ITEM_TYPES.INT;
             sData13.sSCaptionName = "颗粒灰度最小范围";
@@ -242,7 +242,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData13);
 
             //颗粒灰度最大范围
-            SampleData sData14 = new SampleData();
+            SamplePropertyData sData14 = new SamplePropertyData();
             sData14.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX;
             sData14.iSampleValType = OTS_ITEM_TYPES.INT;
             sData14.sSCaptionName = "颗粒灰度最大范围";
@@ -252,7 +252,7 @@ namespace OTSMeasureApp
 
             //x-ray参数组(x-ray)
             //搜索x-ray精度 
-            SampleData sData15 = new SampleData();
+            SamplePropertyData sData15 = new SamplePropertyData();
             sData15.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION;
             sData15.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData15.sSCaptionName = "搜索x-ray精度";
@@ -265,7 +265,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData15);
 
             //x - ray最低计数
-            SampleData sData16 = new SampleData();
+            SamplePropertyData sData16 = new SamplePropertyData();
             sData16.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.LOW_COUNTS;
             sData16.iSampleValType = OTS_ITEM_TYPES.INT;
             sData16.sSCaptionName = "XRay最低计数";
@@ -273,7 +273,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData16);
 
             //分析x-ray精度 
-            SampleData sData17 = new SampleData();
+            SamplePropertyData sData17 = new SamplePropertyData();
             sData17.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION;
             sData17.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData17.sSCaptionName = "分析XRay精度";
@@ -286,7 +286,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData17);
 
             // x-ray扫描方式 
-            SampleData sData18 = new SampleData();
+            SamplePropertyData sData18 = new SamplePropertyData();
             sData18.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE;
             sData18.iSampleValType = OTS_ITEM_TYPES.COMBO;
             sData18.sSCaptionName = "XRay扫描方式";
@@ -299,7 +299,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData18);
 
             //分析x-ray计数期望值
-            SampleData sData19 = new SampleData();
+            SamplePropertyData sData19 = new SamplePropertyData();
             sData19.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_COUNTS;
             sData19.iSampleValType = OTS_ITEM_TYPES.INT;
             sData19.sSCaptionName = "分析XRay计数期望值";
@@ -308,7 +308,7 @@ namespace OTSMeasureApp
 
             //SEM工作参数组(SEM Data)
             //放大倍数
-            SampleData sData20 = new SampleData();
+            SamplePropertyData sData20 = new SamplePropertyData();
             sData20.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION;
             sData20.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData20.sSCaptionName = "放大倍数";
@@ -316,7 +316,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData20);
 
             //测量精度
-            SampleData sData21 = new SampleData();
+            SamplePropertyData sData21 = new SamplePropertyData();
             sData21.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.PIXEL_SIZE;
             sData21.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData21.sSCaptionName = "测量精度";
@@ -324,7 +324,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData21);
 
             //工作距离  
-            SampleData sData22 = new SampleData();
+            SamplePropertyData sData22 = new SamplePropertyData();
             sData22.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE;
             sData22.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData22.sSCaptionName = "工作距离";
@@ -332,7 +332,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData22);
 
             //覆盖测量区域帧图数  
-            SampleData sData23 = new SampleData();
+            SamplePropertyData sData23 = new SamplePropertyData();
             sData23.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS;
             sData23.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData23.sSCaptionName = "覆盖测量区域帧图数";
@@ -341,7 +341,7 @@ namespace OTSMeasureApp
 
             //样品测量状态(Measure status) 
             //测量状态  
-            SampleData sData24 = new SampleData();
+            SamplePropertyData sData24 = new SamplePropertyData();
             sData24.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_STATAU;
             sData24.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData24.sSCaptionName = "测量状态";
@@ -353,7 +353,7 @@ namespace OTSMeasureApp
             DateTime dt = DateTime.Now;
             String sDate = dt.ToString();
             //    MessageBox.Show(sDate);
-            SampleData sData25 = new SampleData();
+            SamplePropertyData sData25 = new SamplePropertyData();
             sData25.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.START_TIME;
             sData25.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData25.sSCaptionName = "测量开始事件";
@@ -366,7 +366,7 @@ namespace OTSMeasureApp
             DateTime dt1 = DateTime.Now;
             String sDate1 = this.DateDiff(dt1, dt);
             //    MessageBox.Show(sDate);
-            SampleData sData26 = new SampleData();
+            SamplePropertyData sData26 = new SamplePropertyData();
             sData26.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.USED_TIME;
             sData26.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData26.sSCaptionName = "已经测量时间";
@@ -374,7 +374,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData26);
 
             //完成时间
-            SampleData sData27 = new SampleData();
+            SamplePropertyData sData27 = new SamplePropertyData();
             sData27.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.FINISH_TIME;
             sData27.iSampleValType = OTS_ITEM_TYPES.STRING;
             sData27.sSCaptionName = "完成时间";
@@ -382,7 +382,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData27);
 
             //完成幁图数
-            SampleData sData28 = new SampleData();
+            SamplePropertyData sData28 = new SamplePropertyData();
             sData28.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.COMPLETED_FIELDS;
             sData28.iSampleValType = OTS_ITEM_TYPES.INT;
             sData28.sSCaptionName = "完成幁图数";
@@ -391,7 +391,7 @@ namespace OTSMeasureApp
 
             //样品测量结果(Measure Result) 
             //比率 
-            SampleData sData29 = new SampleData();
+            SamplePropertyData sData29 = new SamplePropertyData();
             sData29.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.RATIO;
             sData29.iSampleValType = OTS_ITEM_TYPES.DOUBLE;
             sData29.sSCaptionName = "比率";
@@ -399,7 +399,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData29);
 
             //测量面积
-            SampleData sData30 = new SampleData();
+            SamplePropertyData sData30 = new SamplePropertyData();
             sData30.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_AREA;
             sData30.iSampleValType = OTS_ITEM_TYPES.DOUBLE;
             sData30.sSCaptionName = "测量面积";
@@ -407,7 +407,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData30);
 
             //颗粒数
-            SampleData sData31 = new SampleData();
+            SamplePropertyData sData31 = new SamplePropertyData();
             sData31.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE;
             sData31.iSampleValType = OTS_ITEM_TYPES.INT;
             sData31.sSCaptionName = "颗粒数";
@@ -415,7 +415,7 @@ namespace OTSMeasureApp
             m_SMInfo.SampleDataList.Add(sData31);
 
             //颗粒面积
-            SampleData sData32 = new SampleData();
+            SamplePropertyData sData32 = new SamplePropertyData();
             sData32.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE_AREA;
             sData32.iSampleValType = OTS_ITEM_TYPES.DOUBLE;
             sData32.sSCaptionName = "颗粒面积";

+ 21 - 167
OTSIncAMeasureApp/8-OTSSampleMeasureInfo/OTSSampleMeasureInfo.cs

@@ -9,131 +9,7 @@ namespace OTSMeasureApp
 {
 
 
-    ////内存大小
-    //public enum MEMORY_SIZE
-    //{
-    //    SAMPLE_NAME_SIZE = 20,
-    //    TIME_SIZE = 50
-
-    //};
-
-    ////BSE图类型
-    //public enum BSEIMAGE_TYPE
-    //{
-    //    BSEIMAGE = 0,                      //BSE图                                                      
-    //    BSEIMAGE_WITHOUT_BG = 1           //去背景BSE图
-    //};
-
-
-    //消息枚举
-    //public enum MSG_TYPE
-    //{
-    //    MTHREADSTATUS = 1001,         //测量线程状态
-    //    MSAMPLESTATUS = 1002,         //测量样品状态
-    //    MSAMPLERESULT = 1003          //测量结果
-    //};
-
-    // 测量线程状态
-    //public enum RET_MEASURE_THREAD_STATUS
-    //{
-    //    READY = 0,
-    //    INPROCESS = 1,
-    //    STOPPED = 2,
-    //    FAILED = 3,
-    //    COMPLETED = 4
-    //};
-
-    ////测量样品的状态
-    //public enum RET_MEASURE_SAMPLE_STATUS
-    //{
-    //    UNMEASURED = 0,
-    //    INPROCESS = 1,
-    //    STOPPED = 2,
-    //    FAILED = 3,
-    //    SUCCESSED = 4
-    //};
-
-
-    //样品测量结果
-    //public enum MEASURE_SAMPLE_RESULT
-    //{
-    //    BSE_DATA = 0,                //BSE图数据
-    //    FIELD_DATA = 1,               //FIELD 数据
-    //    START_MSR_FIELD = 2           //开始测试的幁图
-
-    //};
-
-
-    //[StructLayout(LayoutKind.Sequential)]
-    //public struct STMrsSampleRetThreadMsg
-    //{
-       
-    //    [StructLayout(LayoutKind.Sequential)]
-    //    public struct STMTRethreadStatus
-    //    {
-    //        public RET_MEASURE_THREAD_STATUS iMThreadStatus;
-    //        [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)MEMORY_SIZE.TIME_SIZE)]
-    //        public char[] cMsrStartTime;   //MSR_START_TIME
-    //        [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)MEMORY_SIZE.TIME_SIZE)]
-    //        public char[] cMsrEndTime;     //MSR_END_TIME
-    //    };
-
-    //    [StructLayout(LayoutKind.Sequential)]
-    //    public struct STMRetSampleStatus
-    //    {
-    //        public RET_MEASURE_SAMPLE_STATUS iMeasureSampleStatus;
-    //        [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)MEMORY_SIZE.SAMPLE_NAME_SIZE)]
-    //        public char[] cMsrSName;
-    //    };
-
-    //    [StructLayout(LayoutKind.Sequential)]
-    //    public struct STMSaResultData
-    //    {
-    //        public MEASURE_SAMPLE_RESULT iRetDataType;                 //ENUM_MEASURE_SAMPLE_RESULT
-
-    //        [StructLayout(LayoutKind.Sequential)]
-    //        public struct RETBSEData
-    //        {
-    //            public Point FieldPos;
-    //            public int iBSEDataHeight;
-    //            public int iBSEDataWidth;
-    //            public IntPtr pData;
-    //        };
-
-    //        [StructLayout(LayoutKind.Sequential)]
-    //        public struct RETFieldData
-    //        {
-    //            public Point FieldPos;
-    //            public int iMeasureFieldTotalCount;
-    //            public int iCompleteFieldCount;
-    //            public int iSParticleCount;     // Sample particle count 
-    //        };
-
-    //        [StructLayout(LayoutKind.Sequential)]
-    //        public struct StartToMsrField
-    //        {
-    //            public Point FieldPos;
-    //        };
-
-
-    //        public RETBSEData BSEData;
-    //        public RETFieldData SFieldata;
-    //        public StartToMsrField StartMsrField;
-    //    };
-
-    //    public Byte[] gbseData;//用于实时接收图片数据,以防止异步读取时,图片数据已被析构
-    //    public MSG_TYPE iMsgType;
-    //    public STMTRethreadStatus STMThreadStu;
-    //    public STMRetSampleStatus STMSampleStu;
-    //    public STMSaResultData STMSampleRetData;
-
-    //};
-
-
-
-
-
-
+   
 
 
 
@@ -173,9 +49,9 @@ namespace OTSMeasureApp
     };
 
     //样品属性数据
-    public class SampleData
+    public class SamplePropertyData
     {
-        public OTS_SAMPLE_PROP_GRID_ITEMS iSampleId;            //样品ID
+        public OTS_SAMPLE_PROP_GRID_ITEMS iSampleId;            //样品属性ID
         public String sSCaptionName;    //样品标题名                             
         public OTS_ITEM_TYPES iSampleValType;      //样品标题名对应值的类型
         public Object SampleVal;        //样品标题名对应值,全部是string
@@ -185,25 +61,25 @@ namespace OTSMeasureApp
         public string sDescriptionInfo;   //描述信息
 
     }
-    public class SampleNodeMeaInfo              //样品信息
-    {
-       
-        public String sSampleName;              //样品名称
-        public bool bSwitch;                    //样品执行开关
+    //public class SampleNodeMeaInfo              //样品信息
+    //{
 
-        public List<SampleData> SampleDataList;   //样品属性数据
+    //    public String sSampleName;              //样品名称
+    //    public bool bSwitch;                    //样品执行开关
 
+    //    public List<SampleData> SampleDataList;   //样品属性数据
 
 
 
-    };
-    public class SampleDataGroup              //样品信息
+
+    //};
+    public class SamplePropertyDataGroup              //样品信息
     {
         public OTS_SAMPLE_PROP_GRID_ITEM_GROUPS GroupId;
         public String sTitle;              //样品名称
      
 
-        public List<SampleData> SampleDataList=new List<SampleData> ();   //样品属性数据
+        public List<SamplePropertyData> SampleDataList=new List<SamplePropertyData> ();   //样品属性数据
 
 
 
@@ -221,44 +97,36 @@ namespace OTSMeasureApp
         const String SemData_Title = "SEM数据参数组";
         const String MeasureStatu_Title = "测量状态参数组";
         const String MeasureRet_Title = "测量结果参数组";
-        public List<SampleDataGroup> SampleDataGrps;
+        public List<SamplePropertyDataGroup> SampleDataGrps;
         //构造函数
         public OTSSamplePropertyInfo()
         {
 
-            //st_SNodeMeaInfo = new SampleNodeMeaInfo();
-            //st_SNodeMeaInfo.SampleDataList = new List<SampleData>();
 
 
             SMeasurePara = new SampleMeasurePara();
-            SampleDataList = new List<SampleData>();
+            SampleDataList = new List<SamplePropertyData>();
             TSampleParam = new CTreeSampleParam();
 
-            //sGeneral_Title = "";
-            //sImage_Title = "";
-            //sImage_Process_Title = "";
-            //sXRay_Title = "";
-            //sSemData_Title = "";
-            //sMeasureStatu_Title = "";
-            //sMeasureRet_Title = "";
-            SampleDataGrps = new List<SampleDataGroup>();
+      
+            SampleDataGrps = new List<SamplePropertyDataGroup>();
 
 
         }
      //样品属性数据
-        public List<SampleData> SampleDataList;//保持一个所有条目列表,目的为了兼容以前的代码
+        public List<SamplePropertyData> SampleDataList;//保持一个所有条目列表,目的为了兼容以前的代码
 
 
 
-        //    public string sWorkSampleName;         //当前工作样品名
+   
 
       
-        public void  AddASampleDataGrp(SampleDataGroup g)
+        public void  AddASampleDataGrp(SamplePropertyDataGroup g)
         {
             SampleDataGrps.Add(g);
             SampleDataList .AddRange(g.SampleDataList);//保持一个所有条目列表目的为了兼容以前的代码
         }
-        public List<SampleDataGroup> GetSampleDataGroups()
+        public List<SamplePropertyDataGroup> GetSampleDataGroups()
         {
             return SampleDataGrps;
         }
@@ -273,21 +141,7 @@ namespace OTSMeasureApp
 
         public CTreeSampleParam TSampleParam;
 
-        //Grid的显示组的标题名
-        //public int iGeneral_Title_ID;
-        //public String sGeneral_Title;
-        //public int iImage_Title_ID;
-        //public String sImage_Title;
-        //public int iImage_Process_Title_ID;
-        //public String sImage_Process_Title;
-        //public int iXRay_Title_ID;
-        //public String sXRay_Title;
-        //public int iSemData_Title_ID;
-        //public String sSemData_Title;
-        //public int iMeasureStatu_Title_ID;
-        //public String sMeasureStatu_Title;
-        //public int iMeasureRet_Title_ID;
-        //public String sMeasureRet_Title;
+
 
     };
 

+ 0 - 113
OTSIncAReportApp/1-UI/OTSDisplaySGridData/ChangeGridCellValEvent.cs

@@ -1,113 +0,0 @@
-using OTSIncAReportApp.OTSSampleReportInfo;
-using SourceGrid;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace OTSIncAReportApp.OTSDataMgrFunction
-{
-    /// <summary>
-    /// 与属性Grid操作事件对应的事件类,在该类中实现属性Grid的操作方法实现
-    /// </summary>
-    class ChangeGridCellValEvent : SourceGrid.Cells.Controllers.ControllerBase
-    {
-        #region 变量定义
-        /// <summary>
-        /// 属性Grid类对象全局变量
-        /// </summary>
-        OTSSourceGrid m_SampleGrid = null;
-        private const int Constant = 1;
-        #endregion
-
-        #region 构造函数
-        /// <summary>
-        /// 构造函数
-        /// </summary>
-        /// <param name="SGrid"></param>
-        public ChangeGridCellValEvent(OTSSourceGrid SGrid)
-        {
-            m_SampleGrid = SGrid;
-
-        }
-        #endregion
-
-        #region 下拉框事件
-        /// <summary>
-        /// 属性Grid的下拉框下拉完成后,触发的事件。SourceGrid的事件不是用delegate方法实现的,与dot net 的标准事件实现方式不同,需要在这里override才可以
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        public override void OnValueChanged(SourceGrid.CellContext sender, EventArgs e)
-        {
-            ReportCondition SourceGridData = m_SampleGrid.m_PropCondition.SourceGridData;
-            int selindex = 0;
-            foreach (var item in SourceGridData.ConditionItemList)
-            {
-                if (item.iItemId == (OTS_REPORT_PROP_GRID_ITEMS)m_SampleGrid.m_PropCondition.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag)
-                {
-                    OTS_ITEM_TYPES ValType = item.iItemValType;
-                    switch (ValType)
-                    {
-                        case OTS_ITEM_TYPES.COMBO:
-                            item.itemVal = (string)m_SampleGrid.m_PropCondition.PropGrid[m_SampleGrid.m_ClickRow, 2].Value;
-                            selindex = item.comboDownList.IndexOf(item.itemVal.ToString());
-                            break;
-                        case OTS_ITEM_TYPES.DOUBLE:
-                            var dValue = m_SampleGrid.m_PropCondition.PropGrid[m_SampleGrid.m_ClickRow, 2].Value;
-                            double v = Convert.ToDouble(dValue);
-                            item.itemVal = v;
-                            break;
-                        default:
-                            break;
-                    }
-                    break;
-                }
-            }
-            int tabinex = (int)m_SampleGrid.m_PropCondition.tabIndex;
-
-            SourceGridData = m_SampleGrid.ChangeSouceGrid(tabinex, (OTS_REPORT_PROP_GRID_ITEMS)m_SampleGrid.m_PropCondition.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag, m_SampleGrid.m_PropCondition.PropGrid[m_SampleGrid.m_ClickRow, 2].Value.ToString(), selindex);
-
-            m_SampleGrid.m_PropCondition.SourceGridData = SourceGridData;
-
-            m_SampleGrid.m_PropCondition.DisProperyWindow(SourceGridData);
-
-
-        }
-
-
-        #endregion
-    }
-    /// <summary>
-    /// 组合框类,与属性Grid关联
-    /// </summary>
-    class ItemValueChange2 : SourceGrid.Cells.Controllers.ControllerBase
-    {
-        OTSSourceGrid m_SampleGrid = null;
-        public ItemValueChange2(OTSSourceGrid SGrid)
-        {
-            m_SampleGrid = SGrid;
-        }
-        public override void OnValueChanged(CellContext sender, EventArgs e)
-        {
-
-            //判断如果对选择颗粒,全部颗粒进行了重新选择的话
-            if (sender.Position.Row == 2)
-                m_SampleGrid.m_PropCondition.m_ReportApp.im_ParticlesGridDevidePage = null;//需要重新刷新颗粒列表
-
-
-            //3,并根据CGridInClr条件从底层获取数据,并加载相应的模块
-            m_SampleGrid.m_PropCondition.ShowDataDiagram(m_SampleGrid.m_PropCondition.tabIndex);
-
-            //------------------------------------------------------------------------------------------------------------------
-            m_SampleGrid.m_ClickRow = sender.Position.Row;
-            if (m_SampleGrid.m_PropCondition.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag != null)
-            {
-                m_SampleGrid.m_PropCondition.m_ReportApp.m_RstWindow.SelectWorkSampleNode();
-            }
-
-
-        }
-    }
-}

+ 0 - 880
OTSIncAReportApp/1-UI/OTSDisplaySGridData/OTSSourceGrid.cs

@@ -1,880 +0,0 @@
-using OTSIncAReportApp.OTSSampleReportInfo;
-using OTSIncAReportApp.SysMgrTools;
-using OTSIncAReportGB;
-using OTSIncAReportGrids;
-
-using SourceGrid;
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Data;
-using System.Diagnostics;
-using System.Drawing;
-using System.Linq;
-using System.Windows.Forms;
-
-
-namespace OTSIncAReportApp.OTSDataMgrFunction
-{
-    /// <summary>
-    /// 属性Grid相关操作封装类
-    /// </summary>
-    public class OTSSourceGrid
-    {
-        #region 变量定义
-        /// <summary>
-        /// 主框架窗体
-        /// </summary>
-        public frmReportConditionChoose m_PropCondition = null;
-
-     
-        /// <summary>
-        /// 当grid被click时,确定点击的行
-        /// </summary>
-        public int m_ClickRow = 0;
-
-        /// <summary>
-        /// 当grid被click时,确定点击的列
-        /// </summary>
-        public int m_ClickColumn = 0;
-
-        /// <summary>
-        /// 当改变ProperyWindow窗口大小时,窗口响应Resize(object sender, EventArgs e),返回改变后的尺寸,利用改变后的窗口尺寸重回Grid的行宽和列宽
-        /// </summary>
-        public int m_PropWindow_X = 0;
-
-        /// <summary>
-        /// 当改变ProperyWindow窗口大小时,窗口响应Resize(object sender, EventArgs e),返回改变后的尺寸,利用改变后的窗口尺寸重回Grid的行宽和列宽
-        /// </summary>
-        public int m_PropWindow_Y = 0;
-
-        /// <summary>
-        /// 临时用于计算用的grid行号 总行数
-        /// </summary>
-        public static int m_Const_Grid_Row = 42;    //总行数
-
-        /// <summary>
-        /// 临时用于计算用的grid行号 总列数
-        /// </summary>
-        public static int m_Const_Grid_Column = 3;   //总列数
-
-
-
-        /// <summary>
-        /// 当选择了Grid的某个row ,修改Row的值,引发的事件
-        /// </summary>
-        ChangeGridCellValEvent m_ChangeCellValEvent = null;
-
-        /// <summary>
-        /// 选择COMBOBOX值引发的事件
-        /// </summary>
-        ItemValueChange2 m_ValChangeEvent2 = null;
-
-        /// <summary>
-        /// 定义分栏表头样式
-        /// </summary>
-        public SourceGrid.Cells.Views.Cell m_Col_HeaderMode = null;
-
-        /// <summary>
-        /// 定义大表头grid表头样式
-        /// </summary>
-        SourceGrid.Cells.Views.Cell m_CellTitleModel = null;
-
-        /// <summary>
-        /// 定义分栏标题格样式
-        /// </summary>
-        SourceGrid.Cells.Views.Cell m_Col_NameMode = null;
-
-        /// <summary>
-        /// 定义分栏内容格样式
-        /// </summary>
-        SourceGrid.Cells.Views.Cell m_Col_ValMode = null;
-
-        /// <summary>
-        /// 只读样式cell设置
-        /// </summary>
-        SourceGrid.Cells.Views.Cell M_Col_readonly = null;
-
-
-        /// <summary>
-        /// 通用参数组的标题名
-        /// </summary>
-        public String m_Display_Mode_Name = "参数";
-
-        /// <summary>
-        /// 通用参数组的GRID行数
-        /// </summary>
-        public int m_Display_Mode_Row = 0;
-
-
-
-        Language lan = new Language();
-        Hashtable table;
-     
-
-        ResultDataMgr m_DataMgr;
-        #endregion
-
-        #region 构造函数及初始化函数
-        public OTSSourceGrid(frmReportConditionChoose Propwindow)
-        {
-            m_DataMgr = Propwindow.m_ReportApp.m_DataMgrFun;
-            m_PropCondition = Propwindow;
-            m_PropCondition.PropGrid.Rows.Clear();
-            m_PropCondition.PropGrid.Redim(m_Const_Grid_Row, m_Const_Grid_Column);
-            table = lan.GetNameTable("SampleGrid");
-            string str = table["str1"].ToString();
-            m_Display_Mode_Name = str;
-        }
-
-
-        /// <summary>
-        /// 初始化Grid修改值事件
-        /// </summary>
-        void InitChangeValEvent()
-        {
-            m_ChangeCellValEvent = new ChangeGridCellValEvent(this);
-            m_ValChangeEvent2 = new ItemValueChange2(this);
-
-        }
-
-        #endregion
-
-        #region 初始化属性Grid相关方法
-        /// <summary>
-        /// 初始化属性Grid相关样式
-        /// </summary>
-        public void InitGrid()
-        {
-            //初始化Grid修改值事件
-            InitChangeValEvent();
-            //定义大表头grid表头样式
-            {
-                m_CellTitleModel = new SourceGrid.Cells.Views.Cell();
-                m_CellTitleModel.BackColor = Color.LightGray;
-                m_CellTitleModel.ForeColor = Color.Black;
-                m_CellTitleModel.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
-            }
-            //定义分栏表头样式
-            {
-                m_Col_HeaderMode = new SourceGrid.Cells.Views.Cell();
-                m_Col_HeaderMode.BackColor = Color.LightGray;         //背景色
-                m_Col_HeaderMode.ForeColor = Color.Black;      //字体颜色
-                m_Col_HeaderMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
-            }
-            //定义分栏标题格样式
-            {
-                m_Col_NameMode = new SourceGrid.Cells.Views.Cell();
-                m_Col_NameMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
-            }
-            //定义分栏内容格样式
-            {
-                m_Col_ValMode = new SourceGrid.Cells.Views.Cell();
-                m_Col_ValMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
-            }
-            //只读样式cell设置
-            {
-                M_Col_readonly = new SourceGrid.Cells.Views.Cell();
-                M_Col_readonly.ForeColor = Color.Gray;
-            }
-        }
-
-        /// <summary>
-        /// 初始化属性Grid相关表头
-        /// </summary>
-        public void InitGridTitlet()
-        {
-            int firstColumnWidth = 15;    //第一列的宽度
-            int SecondColumnWidth = 150;
-            //设备各单元格宽度---------------------------------------------
-            m_PropCondition.PropGrid.Columns.SetWidth(0, firstColumnWidth);     //设置第一列宽度
-            m_PropCondition.PropGrid.Columns.AutoSizeColumn(2);    //固定进度条
-
-            //ProperyWindows的窗口宽度包括是第二列和第三列的长度总和
-            m_PropCondition.PropGrid.Columns.SetWidth(1, 150);         //第二列宽度
-            m_PropCondition.PropGrid.Columns.SetWidth(2, (m_PropWindow_X - firstColumnWidth - SecondColumnWidth - 18));     //第三列宽度    
-        }
-
-        /// <summary>
-        /// 初始化组的标题栏   iRow:GroupTitle的行号, sGroupName: GroupTitle的名字
-        /// </summary>
-        /// <param name="iRow"></param>
-        /// <param name="sGroupName"></param>
-        public void InitGroupTitle(int iRow, String sGroupName)
-        {
-            if (null == m_PropCondition.PropGrid[iRow, 0])
-            {
-                m_PropCondition.PropGrid[iRow, 0] = new SourceGrid.Cells.Link("-");//第一行,上面用来折叠的"-",一会点击后变成"+"
-                m_PropCondition.PropGrid[iRow, 0].View = m_CellTitleModel;   //设置表头的样式
-                                                                       //设置表头"-"按钮,点击后的事件
-            }
-            if (null == m_PropCondition.PropGrid[iRow, 1])
-            {
-                m_PropCondition.PropGrid[iRow, 1] = new SourceGrid.Cells.Cell(sGroupName);    // 设置GroupTitle的名字
-                m_PropCondition.PropGrid[iRow, 1].View = m_CellTitleModel;
-                m_PropCondition.PropGrid[iRow, 1].ColumnSpan = 2;         //设置第二列与第三列合并,表头效果完成。  2:从当前列开始合并2列
-            }
-        }
-
-        #endregion
-
-        #region 属性Grid显示相关方法
-
-        public void ShowGeneralGrid(ReportCondition conditionInfo)
-        {
-            if (conditionInfo.ConditionItemList.Count() == 0)
-                return;
-
-            int nGridRow = 0;
-            string str = table["str2"].ToString();
-            this.InitGroupTitle(nGridRow, str);
-            nGridRow++;
-
-            int Display_Mode_Row = 1;//确定跨行样式的跨行数变量
-            // 设置样品Grid数据
-            for (int i = 0; i < conditionInfo.ConditionItemList.Count; i++)
-            {
-                Display_Mode_Row++;
-
-                //显示样品的属性值
-                ConditionItem SData = conditionInfo.ConditionItemList[i];
-                this.SetGridCellVal(nGridRow, SData);
-                nGridRow++;
-            }
-
-
-            //控制左边的竖形条框栏的显示                       
-            //第二行,第一列,为了效果美化,向下跨行,共跨m_Grid_TotleRow - 1行
-            if (Display_Mode_Row > 1)     //有通用参数组的Grid值显示
-            {
-                //获取Grid组Title所在的行号
-                int iCurRow = Display_Mode_Row;
-                //第二行的时候,需要定义左边的条框栏
-                if (m_PropCondition.tabIndex == DisplayPicutureType.AnalyzeImg)
-                {
-                    if (null == m_PropCondition.PropGrid[1 + 1, 0])
-                    {
-                        m_PropCondition.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
-                        m_PropCondition.PropGrid[1, 0].View = m_Col_HeaderMode;
-                    }
-                    else
-                    {
-                        m_PropCondition.PropGrid[iCurRow + 1, 0].Value = "";
-                    }
-                    if (iCurRow == 0)
-                    {
-                        m_PropCondition.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1;   //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
-
-                    }
-                    else
-                    {
-                        m_PropCondition.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1;   //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
-
-                    }
-                }
-                if (m_PropCondition.tabIndex == DisplayPicutureType.AnalyzeDataTable)
-                {
-                    //第二行的时候,需要定义左边的条框栏 
-                    if (null == m_PropCondition.PropGrid[1 + 1, 0])
-                    {
-                        m_PropCondition.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
-                        m_PropCondition.PropGrid[1, 0].View = m_Col_HeaderMode;
-                    }
-                    else
-                    {
-                        m_PropCondition.PropGrid[iCurRow + 1, 0].Value = "";
-                    }
-                    if (iCurRow == 0)
-                    {
-                        m_PropCondition.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1;   //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
-
-                    }
-                    else
-                    {
-                        m_PropCondition.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1;   //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
-                    }
-                }
-                if (m_PropCondition.tabIndex == DisplayPicutureType.AnalyzeDataChart)
-                {
-                    //第二行的时候,需要定义左边的条框栏 
-                    if (null == m_PropCondition.PropGrid[1, 0])
-                    {
-                        m_PropCondition.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
-                        m_PropCondition.PropGrid[1, 0].View = m_Col_HeaderMode;
-                    }
-                    else
-                    {
-                        m_PropCondition.PropGrid[iCurRow + 1, 0].Value = "";
-                    }
-                    if (iCurRow == 0)
-                    {
-                        m_PropCondition.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1;   //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
-
-                    }
-                    else
-                    {
-                        m_PropCondition.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1;   //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
-
-                    }
-                }
-            }
-        }
-
-
-        /// <summary>
-        /// 显示Chart图表相关属性Grid
-        /// </summary>
-        /// <param name="note"></param>
-        public void SetPictureType(DisplayPicutureType note)
-        {
-            m_PropCondition.tabIndex = note;
-          
-        }
-
-        public void SetGridCellVal(int Row, ConditionItem SData)
-        {
-            OTS_REPORT_PROP_GRID_ITEMS SampleID = SData.iItemId;
-            String sCaptionName = SData.sSCaptionName;
-            object SampleVal = SData.itemVal;
-            List<String> comboDownList = SData.comboDownList;
-            OTS_ITEM_TYPES SampleValType = SData.iItemValType;
-            bool bReadOnly = SData.bReadOnly;
-
-            //每行的第一列显示属性名称
-            if (null == m_PropCondition.PropGrid[Row, 1])
-            {
-                m_PropCondition.PropGrid[Row, 1] = new SourceGrid.Cells.Cell(sCaptionName);
-            }
-            else
-            {
-                m_PropCondition.PropGrid[Row, 1].Value = sCaptionName;
-            }
-            m_PropCondition.PropGrid[Row, 1].View = m_Col_NameMode;
-            //每行的第二列显示属性值
-            if (null == m_PropCondition.PropGrid[Row, 2])
-            {
-                switch (SData.iItemValType)
-                {
-                    case OTS_ITEM_TYPES.COMBO:
-
-                        try
-                        {
-                            SourceGrid.Cells.Editors.ComboBox m_ComboboxText = null;
-
-                            List<string> ValList = new List<string>();
-                            string[] arraySample;
-
-                            if (null == comboDownList)
-                            {
-                                List<string> sSampleVal = new List<string>();
-                                ValList = sSampleVal;
-                            }
-                            else
-                            {
-                                ValList = (List<string>)comboDownList;
-                            }
-
-                            int iValCount = ValList.Count();
-                            if (iValCount > 0)
-                            {
-                                arraySample = new string[iValCount];
-                                for (int i = 0; i < iValCount; i++)
-                                {
-                                    arraySample[i] = ValList[i];
-                                }
-                            }
-                            else
-                            {
-                                arraySample = new string[3] { "", "", "" };
-                            }
-
-                            m_PropCondition.PropGrid[Row, 2] = new SourceGrid.Cells.Cell(SampleVal);
-                            m_ComboboxText = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, true);
-                            m_PropCondition.PropGrid[Row, 2].Editor = m_ComboboxText;
-                            m_ComboboxText.Control.DropDownStyle = ComboBoxStyle.DropDownList;        //设置下拉框为不可以编辑的状态
-                            m_PropCondition.PropGrid[Row, 2].Value = SampleVal;
-                            m_PropCondition.PropGrid[Row, 2].AddController(m_ChangeCellValEvent);
-                            m_PropCondition.PropGrid[Row, 2].AddController(m_ValChangeEvent2);
-                            m_ComboboxText.EditableMode = EditableMode.SingleClick;
-
-                        }
-                        catch (Exception)
-                        {
-
-                        }
-                        break;
-                    case OTS_ITEM_TYPES.DOUBLE:
-                        var txtbox = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(double));
-                        m_PropCondition.PropGrid[Row, 2] = new SourceGrid.Cells.Cell(SampleVal);
-                        txtbox.EditableMode = EditableMode.SingleClick;
-                        m_PropCondition.PropGrid[Row, 2].Editor = txtbox;
-                        m_PropCondition.PropGrid[Row, 2].AddController(m_ChangeCellValEvent);
-                        m_PropCondition.PropGrid[Row, 2].AddController(m_ValChangeEvent2);
-
-                        break;
-                    default:
-                        break;
-                }
-
-                if (bReadOnly)          //只读模式
-                {
-                    m_PropCondition.PropGrid[Row, 2].Editor = null;
-                    m_PropCondition.PropGrid[Row, 2].View = M_Col_readonly;// 设置只读
-                }
-                else
-                {
-                    m_PropCondition.PropGrid[Row, 2].View = m_Col_ValMode;
-                }
-
-                //行绑定ID值
-                m_PropCondition.PropGrid.Rows[Row].Tag = SampleID;
-                //数据位置绑定数据类型
-                m_PropCondition.PropGrid[Row, 2].Tag = SampleValType;
-            }
-            else
-            {
-                m_PropCondition.PropGrid[Row, 2].Value = SampleVal;
-            }
-        }
-        #endregion
-
-        #region 属性Grid与各功能模块操作等方法
-      
-
-        /// <summary>
-        /// 打开国标进程EXE
-        /// </summary>
-        private void OpenOTSINcAreportTemplateAPP(string str_path, string  str_gbname)
-        {
-            //----------------------------------
-            //共传2个参数
-            //参数1:测量结果的路径,国标底层需要
-            //参数2:是打开的国标一,国标二,美标,德标,的类型
-            ProcessStartInfo process = new ProcessStartInfo();
-            //process.FileName = "ReportGBExe\\OTSIncAReportGB.exe";//打开app的路径
-            string arg1 = str_path.Replace(" ", "^");//参数1,测量结果的路径
-            string arg2 = str_gbname.Trim().Replace(" ", "^");//参数2,是打开的类型
-            process.Arguments = string.Format("{0} {1}", arg1, arg2);  //多个参数用空格隔开
-            process.WindowStyle = ProcessWindowStyle.Normal;
-            Process.Start(process);
-        }
-
-        #endregion
-        /// <summary>
-        /// 分发SourceGrid,各选项值改变事件
-        /// </summary>
-        /// <param name="tbindex"></param>
-        /// <param name="typ"></param>
-        /// <param name="val"></param>
-        /// <param name="sel"></param>
-        /// <returns></returns>
-        public ReportCondition ChangeSouceGrid(int tbindex, OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
-        {
-            //ReportCondition ret = new ReportCondition();
-           var ret = m_PropCondition.SourceGridDataList[tbindex];
-            switch (tbindex)
-            {
-                case 0:
-                    ret = ChangeSouceGrid_Image(typ, val, sel);
-                    break;
-                case 1:
-                    ret = ChangeSouceGrid_Grid(typ, val, sel);
-                    break;
-                case 2:
-                    ret = ChangeSouceGrid_Chart(typ, val, sel);
-                    break;
-            }
-
-            return ret;
-        }
-        /// <summary>
-        /// SourceGrid,分析图页面组合各项方法
-        /// </summary>
-        /// <param name="typ"></param>
-        /// <param name="val"></param>
-        /// <param name="sel"></param>
-        /// <returns></returns>
-        public ReportCondition ChangeSouceGrid_Image(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
-        {
-            //ReportCondition ret = new ReportCondition();
-           var ret = m_PropCondition.SourceGridDataList[0];
-            //string strlist = ret.TSampleParam.sSampleTitleName;
-            List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleRst.List_ShowGrid_Items;
-
-            //测量结果数据
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
-            {
-                if (val.Contains("+"))
-                {
-                    ret.SetPropByPropItemName( OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE, val);
-                }
-                else
-                {
-                    DataOperation.Model.ResultFile resultFile = m_DataMgr.resultFilesList.Find(s => s.FileName == val);
-                    int index = m_DataMgr.resultFilesList.IndexOf(resultFile);
-                    m_DataMgr.WorkingResult = index;
-                }
-            }
-            //测量图类型
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)
-            {
-
-            }
-
-
-            ////---------------------------------------------------------------
-
-            //测量图显示方式
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)
-            {
-                if (sel == 0)//选择分布图
-                {
-                    //strlist = ",0,2,3,7,10,13,";
-                    list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
-                        OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
-                        OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
-                        OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
-                    int displaytypeIdx = ret.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
-                    if (displaytypeIdx != 0)
-                    {
-                        //strlist = ",0,2,3,7,10,11,12,13,";
-                        list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
-                        OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
-                        OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
-                        OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN,//11
-                        OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX,//12
-                        OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
-                    }
-                }
-                else if (sel == 1)//选择排序图时
-                {
-                    //strlist = ",0,2,3,4,13,";
-                    list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
-                        OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
-                        OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
-                }
-            }
-
-            //颗粒类型
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE)
-            {
-
-            }
-
-            //测量数据
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE)
-            {
-                if (sel == 0)//全部颗粒类型
-                {
-                    //strlist = ",0,2,3,4,13,";
-                    list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
-                        OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
-                        OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
-                }
-                else if (sel == 1)//分析颗粒类型
-                {
-                    list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
-                        OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
-                        OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
-                }
-                else if (sel == 2)//颗粒尺寸类型
-                {
-                    list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
-                        OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
-                        OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4
-                        OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,//9
-                        OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
-                        OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13
-                }
-            }
-
-            //颗粒粒级表
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
-            {
-                //点击下拉框,级联联动事件
-                //int idx = m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-                var SourceGridData = ret;
-               
-                object Itmval = SourceGridData.GetItemvalByItemName(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-                List<string> list_partsize = m_DataMgr.GetPartSizeList(m_DataMgr.m_RptConfigFile.FileFolderSize + Itmval.ToString());
-                List<string> list_partsizeChart = SourceGridData.GetComboDownListByItemName(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-                //for (int i = 0; i < ret.ConditionItemList[idx].comboDownList.Count; i++)
-                //    list_partsizeChart.Add(ret.ConditionItemList[idx].comboDownList[i].ToString());
-                string sscaptionname16 = table["sscaptionname16"].ToString();
-                string sscaptionname18 = table["sscaptionname18"].ToString();
-                list_partsize.Insert(0, sscaptionname16);//全部
-                list_partsize.Insert(1, sscaptionname18);//自定义
-                //ret.ConditionItemList[GetSampleIndexByPropItemName(ret.ConditionItemList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal = ret.ConditionItemList[idx].itemVal.ToString();
-                ret.SetComboDownListByItemName( OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE, list_partsizeChart);
-                ret.SetComboDownListByItemName( OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS, list_partsize);
-                m_DataMgr.m_RptConfigFile.PartSizeFile = ret.GetItemvalByItemName(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-            }
-
-            //粒级
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS)
-            {
-                switch (sel)
-                {
-                    case 0:
-                        list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
-                        list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
-                        break;
-                    case 1:
-
-                        if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN))
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
-                        }
-                        var idx = ret.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);
-                        ret.ConditionItemList[idx].bReadOnly = false;
-                        var idx1= ret.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);
-                        ret.ConditionItemList[idx].itemVal = "0";
-                        ret.ConditionItemList[idx1].bReadOnly = false;
-                        ret.ConditionItemList[idx1].itemVal = "0";
-                        break;
-                    default:
-
-                        if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN))
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12
-                        }
-                        string[] v = ret.ConditionItemList[5].itemVal.ToString().Split('~');
-                        var idx2 = ret.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);
-                     
-                        var idx3 = ret.GetPropIndexByPropItemName(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);
-                        ret.ConditionItemList[idx2].bReadOnly = true;
-                        ret.ConditionItemList[idx2].itemVal = v[0];
-                        ret.ConditionItemList[idx3].bReadOnly = true;
-                        ret.ConditionItemList[idx3].itemVal = v[1];
-                        break;
-                }
-            }
-
-
-            //尺寸计算法
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
-            {
-
-            }
-
-            //ret.TSampleParam.sSampleTitleName = strlist;
-            ret.TSampleRst.List_ShowGrid_Items = list_showgrid_item;
-            //ret = FilterData(ret);
-
-            return ret;
-        }
-        /// <summary>
-        /// SourceGrid,Grid表格部份组合各项方法
-        /// </summary>
-        /// <param name="typ"></param>
-        /// <param name="val"></param>
-        /// <param name="sel"></param>
-        /// <returns></returns>
-        public ReportCondition ChangeSouceGrid_Grid(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
-        {
-            //ReportCondition ret = new ReportCondition();
-          var  ret = m_PropCondition.SourceGridDataList[1];
-            //string strlist = ret.TSampleParam.sSampleTitleName;
-            List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleRst.List_ShowGrid_Items;
-
-            //测量结果数据
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
-            {
-                if (val.Contains("+"))
-                {
-                    ret.SetPropByPropItemName( OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE, val);
-                }
-                else
-                {
-                    DataOperation.Model.ResultFile resultFile = m_DataMgr.resultFilesList.Find(s => s.FileName == val);
-                    int index = m_DataMgr.resultFilesList.IndexOf(resultFile);
-                    m_DataMgr.WorkingResult = index;
-                }
-            }
-
-            //数据类型
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE)
-            {
-
-            }
-
-            //数据表类型
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE)
-            {
-                switch (sel)
-                {
-                    case 2://颗粒成份
-
-                        if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
-                        }
-                        list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);//9
-                        break;
-                    case 4://颗粒尺寸分布
-
-                        if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))//9
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-                        }
-                        if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
-                        }
-                        break;
-                    default://其它Grid模块不需要,粒级表和尺寸计算法
-
-                        list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);//9
-                                                                                                     //list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);//13
-                        break;
-                }
-            }
-
-            //颗粒粒级表
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
-            {
-                m_DataMgr.m_RptConfigFile.PartSizeFile = ret.GetItemvalByItemName( OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-            }
-
-
-            //尺寸计算方法
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
-            {
-
-            }
-
-            //ret.TSampleParam.sSampleTitleName = strlist;
-            ret.TSampleRst.List_ShowGrid_Items = list_showgrid_item;
-            //ret = FilterData(ret);
-            return ret;
-        }
-        /// <summary>
-        /// SourceGrid,Chart图表部份组合各项方法
-        /// </summary>
-        /// <param name="typ"></param>
-        /// <param name="val"></param>
-        /// <param name="sel"></param>
-        /// <returns></returns>
-        public ReportCondition ChangeSouceGrid_Chart(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel)
-        {
-            ReportCondition ret = new ReportCondition();
-            ret = m_PropCondition.SourceGridDataList[2];
-            //string strlist = ret.TSampleParam.sSampleTitleName;
-            List<OTS_REPORT_PROP_GRID_ITEMS> list_showgrid_item = ret.TSampleRst.List_ShowGrid_Items;
-
-            //测量结果数据
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)
-            {
-                if (val.Contains("+"))
-                {
-                    //ret.SampleDataList[1].bReadOnly = true;
-                    //ret.SampleDataList[1].itemVal = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].comboDownList[0];
-                    ret.ConditionItemList[0].itemVal = val;
-                }
-                else
-                {
-                    //ret.SampleDataList[1].bReadOnly = false;
-                    DataOperation.Model.ResultFile resultFile = m_DataMgr.resultFilesList.Find(s => s.FileName == val);
-                    int index = m_DataMgr.resultFilesList.IndexOf(resultFile);
-                    m_DataMgr.WorkingResult = index;
-                }
-            }
-
-            //数据类型
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE)
-            {
-
-            }
-
-            //数据图类型
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE)
-            {
-                switch (sel)
-                {
-                    case 4://三元相图
-
-
-                        if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE) && !list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE) && !list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
-                        }
-                        else if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE))
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
-                        }
-
-                        break;
-                    case 3://颗粒尺寸分布图
-
-
-                        if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))//9
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-                        }
-                        if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13
-                        {
-                            list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);
-                        }
-                        if (list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE))//15
-                        {
-                            list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);
-                        }
-                        break;
-                    default:
-
-                        list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-                        list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15
-                        break;
-                }
-            }
-
-            //三元相图模板
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE)
-            {
-
-            }
-
-            //颗粒种类
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE)
-            {
-
-            }
-
-            //颗粒粒级表
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)
-            {
-                m_DataMgr.m_RptConfigFile.PartSizeFile = ret.GetItemvalByItemName( OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);
-            }
-
-            //尺寸计算方法
-            if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE)
-            {
-
-            }
-
-            //ret.TSampleParam.sSampleTitleName = strlist;
-            ret.TSampleRst.List_ShowGrid_Items = list_showgrid_item;
-            //ret = FilterData(ret);
-            return ret;
-        }
-
-
-    }
-
-}
-

+ 1 - 1
OTSIncAReportApp/1-UI/OTSTreeViewData/OTSTreeViewData.cs

@@ -48,7 +48,7 @@ namespace OTSIncAReportApp.OTSDataMgrFunction
         /// </summary>
         /// <param name="m_ProjDataMgr"></param>
         /// <param name="TSampleParam"></param>
-        public void DisplayWorkSampleTree(List<DataOperation.Model.ResultFile> ResultFileList, CTreeSampleRst TSampleParam)
+        public void DisplayWorkSampleTree(List<DataOperation.Model.ResultFile> ResultFileList)
         {
             if (ResultFileList != null && ResultFileList.Count > 0)
             {

+ 6 - 17
OTSIncAReportApp/1-UI/frmMeasureRstMgr.cs

@@ -345,21 +345,21 @@ namespace OTSIncAReportApp
 
 
                 //把样品测量结果文件名加入树中
-                CTreeSampleRst TreeSampleParam = new CTreeSampleRst();
+                //CTreeSampleRst TreeSampleParam = new CTreeSampleRst();
                 //在treeview上添加测量结果
-                m_TreeViewData.DisplayWorkSampleTree(this.m_DataMgr.resultFilesList, TreeSampleParam);
+                m_TreeViewData.DisplayWorkSampleTree(this.m_DataMgr.resultFilesList);
                 //在grid上添加测量结果
                 m_ConditionChoose.DisCurrentPicProperty();
                 //根据标签索引 显示默认的数据图表for test
-                m_ReportApp.m_conditionChoose.ShowsTheDefaultPic();//显示图表
+                m_ConditionChoose.ShowsTheDefaultPic();//显示图表
 
             }
             else
             {
                 //把样品测量结果文件名加入树中
-                CTreeSampleRst TreeSampleParam = new CTreeSampleRst();
+                //CTreeSampleRst TreeSampleParam = new CTreeSampleRst();
                 //在treeview上添加测量结果
-                m_TreeViewData.DisplayWorkSampleTree(this.m_DataMgr.resultFilesList, TreeSampleParam);
+                m_TreeViewData.DisplayWorkSampleTree(this.m_DataMgr.resultFilesList);
                 //在grid中添加新增的测量结果名称
                 ReportCondition SMeasureInfo = m_ConditionChoose.SourceGridData;
                 for (int i = 0; i < 3; i++)
@@ -503,18 +503,7 @@ namespace OTSIncAReportApp
 
             SendMessage(tvw.Handle, TVM_SETITEM, IntPtr.Zero, ref tvi);
         }
-        /// <summary>
-        /// 树添加测量结果文件样品进行显示
-        /// </summary>
-        /// <param name="m_ProjDataMgr"></param>
-        /// <param name="TSampleParam"></param>
-        public void AddResultSample(CTreeSampleRst TSampleParam)
-        {
-            //在treeview上添加测量结果
-            m_TreeViewData.DisplayWorkSampleTree(this.m_DataMgr.resultFilesList, TSampleParam);
-            //在grid上添加测量结果
-            m_ConditionChoose.DisCurrentPicProperty();
-        }
+
 
         #endregion
 

+ 0 - 77
OTSIncAReportApp/1-UI/frmReportConditionChoose.Designer.cs

@@ -1,77 +0,0 @@
-namespace OTSIncAReportApp
-{
-    partial class frmReportConditionChoose
-    {
-        public SourceGrid.Grid PropGrid;
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmReportConditionChoose));
-            this.PropGrid = new SourceGrid.Grid();
-            this.SuspendLayout();
-            // 
-            // PropGrid
-            // 
-            this.PropGrid.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.PropGrid.EnableSort = true;
-            this.PropGrid.Location = new System.Drawing.Point(0, 0);
-            this.PropGrid.Name = "PropGrid";
-            this.PropGrid.OptimizeMode = SourceGrid.CellOptimizeMode.ForRows;
-            this.PropGrid.SelectionMode = SourceGrid.GridSelectionMode.Cell;
-            this.PropGrid.Size = new System.Drawing.Size(442, 697);
-            this.PropGrid.TabIndex = 5;
-            this.PropGrid.TabStop = true;
-            this.PropGrid.ToolTipText = "";
-            this.PropGrid.Click += new System.EventHandler(this.PropGrid_Click_1);
-            // 
-            // frmMeasureRstProp
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(442, 697);
-            this.CloseButton = false;
-            this.CloseButtonVisible = false;
-            this.Controls.Add(this.PropGrid);
-            this.DockAreas = ((OTS.WinFormsUI.Docking.DockAreas)((((OTS.WinFormsUI.Docking.DockAreas.DockLeft | OTS.WinFormsUI.Docking.DockAreas.DockRight) 
-            | OTS.WinFormsUI.Docking.DockAreas.DockTop) 
-            | OTS.WinFormsUI.Docking.DockAreas.DockBottom)));
-            this.Font = new System.Drawing.Font("SimSun", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-            this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
-            this.Name = "frmReportConditionChoose";
-            this.RightToLeftLayout = true;
-            this.Text = "查询参数窗口";
-            this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
-            this.Resize += new System.EventHandler(this.OTSPropertyWindow_Resize);
-            this.ResumeLayout(false);
-
-        }
-
-        #endregion
-
-
-    }
-}

+ 0 - 905
OTSIncAReportApp/1-UI/frmReportConditionChoose.cs

@@ -1,905 +0,0 @@
-using OTS.WinFormsUI.Docking;
-using OTSIncAReportApp.OTSDataMgrFunction;
-using OTSIncAReportApp.OTSSampleReportInfo;
-using OTSIncAReportApp.SysMgrTools;
-using OTSIncAReportGB;
-using OTSIncAReportGrids;
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using System.Windows.Forms;
-
-namespace OTSIncAReportApp
-{
-    /// <summary>
-    /// 属性Grid窗体
-    /// </summary>
-    public partial class frmReportConditionChoose : DockContent
-    {
-        #region 变量定义
-    
-        public frmReportApp m_ReportApp = null;
-        public ResultDataMgr m_DataMgr;
-        /// <summary>
-        /// 属性Grid对象,全局变量
-        /// </summary>
-        public OTSSourceGrid m_ConditionGrid = null;
-
-        /// <summary>
-        /// 记录当前标签索引
-        /// </summary>
-        public DisplayPicutureType tabIndex = 0;
-
-        public List<ReportCondition> SourceGridDataList = new List<ReportCondition>();                            //所有模块的SourceGrid
-        public List<ReportCondition> SourceGridDataListLog = new List<ReportCondition>();                         //所有模块的SourceGrid使用记录
-
-        public ReportCondition SourceGridData = new ReportCondition();                                            //当前SourceGrid
-
-        //国际化存储信息
-        Hashtable table;
-        #endregion
-
-        #region 构造函数
-        /// <summary>
-        /// 构造函数
-        /// </summary>
-        /// <param name="ReportApp"></param>
-        public frmReportConditionChoose(frmReportApp ReportApp)
-        {
-            InitializeComponent();
-            m_ReportApp = ReportApp;
-
-            m_ConditionGrid = new OTSSourceGrid(this);
-
-            m_DataMgr = ReportApp.m_DataMgrFun;
-            #region 国际化语言
-            Language lan = new Language(this);
-            table = lan.GetNameTable(this.Name);
-            #endregion
-        }
-        #endregion
-
-        #region 属性Grid相关方法
-        public void ShowsTheDefaultPic()
-        {
-            try
-            {
-                if (m_DataMgr. resultFilesList.Count > 0)
-                {
-                   ShowDataDiagram(tabIndex);
-                }
-            }
-            catch (Exception ex)
-            {
-                //日记记录
-                string str = ex.ToString();
-            }
-        }
-        /// <summary>
-        /// 添加属性Grid相关数据
-        /// </summary>
-        public void DisCurrentPicProperty()
-        {
-            ReportCondition SMInfo = new ReportCondition();
-            //获取工作样品属性
-            if (!GetWorkingPictureConditionVal(ref SMInfo))
-            {
-                return;
-            }
-            //添加属性Grid相关数据
-            DisProperyWindow(SMInfo);
-        }
-        /// <summary>
-        /// 接收 MeasureApp 发送的样品属性数据,通过Grid显示在properyWindow上
-        /// </summary>
-        /// <param name="SampleInfo"></param>
-        public void DisProperyWindow(ReportCondition SampleInfo)
-        {
-            // 当点击事件响应结束后,将之前点击的行数和列数清0,避免选择工作样品重新赋值响应CELL值改变事件
-            PropGrid.Show();
-            m_ConditionGrid.m_ClickRow = 0;
-            m_ConditionGrid.m_ClickColumn = 0;
-            if (PropGrid.Rows.Count() > 0)
-            {
-                PropGrid.Rows.Clear();
-                PropGrid.Redim(OTSSourceGrid.m_Const_Grid_Row, OTSSourceGrid.m_Const_Grid_Column);
-            }
-            m_ConditionGrid.InitGrid();
-            m_ConditionGrid.ShowGeneralGrid(SampleInfo);
-        }
-
-        public bool GetWorkingPictureConditionVal(ref ReportCondition SMeasureInfo)
-        {
-            var tabindex = this.tabIndex;
-            if (m_DataMgr. WorkingResult == -1)
-            {
-                return false;
-            }
-
-            if (SourceGridData.ConditionItemList.Count > 0)
-            {
-                ReportCondition a = SourceGridData;
-
-                //new
-                if (a.TSampleRst.List_ShowGrid_Items == null)
-                {
-                    a.TSampleRst.List_ShowGrid_Items = SourceGridDataListLog[(int)a.TabIndex].TSampleRst.List_ShowGrid_Items;
-                }
-                SourceGridDataListLog[(int)a.TabIndex] = a;
-
-                ReportCondition b = SourceGridDataListLog[(int)tabindex];
-                SMeasureInfo.FilterData(b);
-               SourceGridData = SMeasureInfo;
-            }
-            else
-            {
-                ReportCondition data = new ReportCondition();
-                data.TabIndex = DisplayPicutureType.AnalyzeImg;
-                //data.TSampleParam.sSampleTitleName = ",0,2,3,7,9,10,13,";
-                data.TSampleRst.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                    OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2
-                    OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3
-                    //OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7
-                    OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,//9
-                    OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10
-                    OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE};//13
-                data.ConditionItemList = GetSourceGridData(DisplayPicutureType.AnalyzeImg);
-                SourceGridDataList.Add(data);
-                SourceGridDataListLog.Add(data);
-
-                ReportCondition data1 = new ReportCondition();
-                data1.TabIndex = DisplayPicutureType.AnalyzeDataTable;
-                //data1.TSampleParam.sSampleTitleName = ",0,1,5,";
-                data1.TSampleRst.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                    OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE,//1
-                    OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE};//5
-                data1.ConditionItemList = GetSourceGridData(DisplayPicutureType.AnalyzeDataTable);
-                SourceGridDataList.Add(data1);
-                SourceGridDataListLog.Add(data1);
-
-                ReportCondition data2 = new ReportCondition();
-                data2.TabIndex = DisplayPicutureType.AnalyzeDataChart;
-                //data2.TSampleParam.sSampleTitleName = ",0,1,6,";
-                data2.TSampleRst.List_ShowGrid_Items = new List<OTS_REPORT_PROP_GRID_ITEMS> { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0
-                    OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE,//1
-                    OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE };
-                //,//6
-                //OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE};//13
-                data2.ConditionItemList = GetSourceGridData(DisplayPicutureType.AnalyzeDataChart);
-                SourceGridDataList.Add(data2);
-                SourceGridDataListLog.Add(data2);
-                switch (tabindex)
-                {
-                    case DisplayPicutureType.AnalyzeImg:
-                        SMeasureInfo . FilterData(data);
-                        break;
-                    case DisplayPicutureType.AnalyzeDataTable:
-                        SMeasureInfo . FilterData(data1);
-                        break;
-                    case DisplayPicutureType.AnalyzeDataChart:
-                        SMeasureInfo . FilterData(data2);
-                        break;
-                }
-
-              SourceGridData = SMeasureInfo;
-
-            }
-            return true;
-        }
-        /// <summary>
-        /// 初始化加载sourceGrid各项
-        /// </summary>
-        /// <param name="tbindex"></param>
-        /// <returns></returns>SampleData1
-        private List<ConditionItem> GetSourceGridData(DisplayPicutureType tbindex)
-        {
-            List<ConditionItem> list = new List<ConditionItem>();
-            if (tbindex == DisplayPicutureType.AnalyzeImg)//分布图页
-            {
-                //测量结果数据
-                List<string> list_source_str =m_DataMgr. GetSampleListName();
-                string sSCaptionName1 = table["sscaptionname1"].ToString();
-                ConditionItem sampleData = new ConditionItem();
-                sampleData.iItemId = 0;
-                sampleData.sSCaptionName = sSCaptionName1;
-                sampleData.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData.bReadOnly = false;
-                sampleData.sDescriptionInfo = "Select Measurement Result";
-                sampleData.itemVal = list_source_str[m_DataMgr. WorkingResult];
-                sampleData.comboDownList = list_source_str;
-                list.Add(sampleData);
-                string sSCaptionName2 = table["sscaptionname2"].ToString();
-                string sSCaptionName13 = table["sscaptionname13"].ToString();
-                ConditionItem sampleData1 = new ConditionItem();
-                sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE;
-                sampleData1.sSCaptionName = sSCaptionName2;//测量图类型
-                sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData1.bReadOnly = false;
-                sampleData1.sDescriptionInfo = "Survey Chart Type";
-                sampleData1.itemVal = "BSE";
-                sampleData1.comboDownList = new List<string>() { "BSE", sSCaptionName13, "Original", "原图颗粒分布" };//bse,颗粒分类图
-                list.Add(sampleData1);
-
-                //测量图类型
-                List<string> list_datasourcetypelist =m_DataMgr. GetDataSourceTypeList();
-                string sSCaptionName3 = table["sscaptionname3"].ToString();
-                string sscaptionname14 = table["sscaptionname14"].ToString();
-                string sscaptionname15 = table["sscaptionname15"].ToString();
-                List<string> list1 = new List<string>() { sscaptionname14, sscaptionname15 };
-                ConditionItem sampleData2 = new ConditionItem();
-                sampleData2.iItemId = OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE;
-                sampleData2.sSCaptionName = sSCaptionName3;
-                sampleData2.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData2.bReadOnly = false;
-                sampleData2.sDescriptionInfo = "chart display mode";
-                sampleData2.itemVal = list1[0];
-                sampleData2.comboDownList = list1;
-                list.Add(sampleData2);
-
-                //测量图显示方式
-                string sSCaptionName4 = table["sscaptionname4"].ToString();
-                string sscaptionname16 = table["sscaptionname16"].ToString();
-                string sscaptionname17 = table["sscaptionname17"].ToString();
-                List<string> list2 = new List<string>() { sscaptionname16, sscaptionname17 };
-                ConditionItem sampleData3 = new ConditionItem();
-                sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE;
-                sampleData3.sSCaptionName = sSCaptionName4;
-                sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData3.bReadOnly = false;
-                sampleData3.sDescriptionInfo = "Particle Type";
-                sampleData3.itemVal = list2[0];
-                sampleData3.comboDownList = list2;
-                list.Add(sampleData3);
-
-
-                //粒级表
-                string sSCaptionName_partsizefile = "粒级表";
-                List<string> list_partsizelist =m_DataMgr. GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件
-                ConditionItem sampleData_partsizefile = new ConditionItem();
-                sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE;
-                sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile;
-                sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData_partsizefile.bReadOnly = false;
-                sampleData_partsizefile.sDescriptionInfo = "Particle Table";
-                sampleData_partsizefile.itemVal = list_partsizelist[0];
-                sampleData_partsizefile.comboDownList = list_partsizelist;
-                list.Add(sampleData_partsizefile);
-
-                //粒级
-                string sscaptionname18 = table["sscaptionname18"].ToString();
-                ConditionItem sampleData4 = new ConditionItem();
-                List<string> sizeList = new List<string>();
-                sizeList =m_DataMgr. GetPartSizeList();//获取粒级后额外增加全部,自定义,选项
-                sizeList.Insert(0, sscaptionname16);//全部
-                sizeList.Insert(1, sscaptionname18);//自定义
-
-                string sSCaptionName5 = table["sscaptionname5"].ToString();
-                sampleData4.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS;
-                sampleData4.sSCaptionName = sSCaptionName5;
-                sampleData4.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData4.bReadOnly = false;
-                sampleData4.sDescriptionInfo = "Grain Size";
-                sampleData4.itemVal = sscaptionname16;
-                sampleData4.comboDownList = sizeList;
-                list.Add(sampleData4);
-
-                //自定义最小
-                string sSCaptionName6 = table["sscaptionname6"].ToString();
-                ConditionItem sampleData41 = new ConditionItem();
-                sampleData41.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN;
-                sampleData41.sSCaptionName = sSCaptionName6;
-                sampleData41.iItemValType = OTS_ITEM_TYPES.DOUBLE;
-                sampleData41.bReadOnly = false;
-                sampleData41.sDescriptionInfo = "Smallest Particle";
-                sampleData41.itemVal = "0";
-                list.Add(sampleData41);
-
-                //自定义最大
-                string sSCaptionName7 = table["sscaptionname7"].ToString();
-                ConditionItem sampleData42 = new ConditionItem();
-                sampleData42.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX;
-                sampleData42.sSCaptionName = sSCaptionName7;
-                sampleData42.iItemValType = OTS_ITEM_TYPES.DOUBLE;
-                sampleData42.bReadOnly = false;
-                sampleData42.sDescriptionInfo = "Maximum Particle";
-                sampleData42.itemVal = "0";
-                list.Add(sampleData42);
-
-                //测量数据
-                string sSCaptionName22 = table["sscaptionname22"].ToString();
-                string sSCaptionName19 = table["sscaptionname19"].ToString();
-                string sSCaptionName20 = table["sscaptionname20"].ToString();
-                string sSCaptionName21 = table["sscaptionname21"].ToString();
-                List<string> list3 = new List<string>() { sSCaptionName19, sSCaptionName20, sSCaptionName21 };
-                ConditionItem sampleData6 = new ConditionItem();
-                sampleData6.iItemId = OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE;
-                sampleData6.sSCaptionName = sSCaptionName22;
-                sampleData6.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData6.bReadOnly = false;
-                sampleData6.sDescriptionInfo = "Measured Data";
-                sampleData6.itemVal = list3[0];
-                sampleData6.comboDownList = list3;
-                list.Add(sampleData6);
-
-                //计算方式
-                string sSCaptionName8 = table["sscaptionname8"].ToString();
-                ConditionItem sampleData5 = new ConditionItem();
-                sampleData5.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
-                sampleData5.sSCaptionName = sSCaptionName8;
-                sampleData5.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData5.bReadOnly = false;
-                sampleData5.sDescriptionInfo = "Dimension calculation method";
-                sampleData5.itemVal = "DMAX";
-                sampleData5.comboDownList =m_DataMgr. GetSizeCalMethodTypeList();
-                list.Add(sampleData5);
-            }
-            else if (tbindex == DisplayPicutureType.AnalyzeDataTable)//Grid表格页
-            {
-                //测量结果数据
-                List<string> list_source_str =m_DataMgr. GetSampleListName();
-                string sSCaptionName1 = table["sscaptionname1"].ToString();
-                ConditionItem sampleData = new ConditionItem();
-                sampleData.iItemId = 0;
-                sampleData.sSCaptionName = sSCaptionName1;
-                sampleData.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData.bReadOnly = false;
-                sampleData.sDescriptionInfo = "Select Measurement Result";
-                sampleData.itemVal = list_source_str[m_DataMgr. WorkingResult];
-                sampleData.comboDownList = list_source_str;
-                list.Add(sampleData);
-
-                //数据类型
-                List<string> list_datasourcetypelist =m_DataMgr. GetDataSourceTypeList();
-                string sSCaptionName9 = table["sscaptionname9"].ToString();
-                ConditionItem sampleData1 = new ConditionItem();
-                sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE;
-                sampleData1.sSCaptionName = sSCaptionName9;
-                sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData1.bReadOnly = false;
-                sampleData1.sDescriptionInfo = "Data Type";
-                sampleData1.itemVal = list_datasourcetypelist[0];
-                sampleData1.comboDownList = list_datasourcetypelist;
-                list.Add(sampleData1);
-
-                //数据表类型
-                string sSCaptionName10 = table["sscaptionname10"].ToString();
-                List<string> list2 = new List<string>() { table["sscaptionname25"].ToString(), table["sscaptionname26"].ToString(), table["sscaptionname27"].ToString(), table["sscaptionname28"].ToString(), table["sscaptionname29"].ToString(), table["sscaptionname30"].ToString() };
-                string[] aa = m_ReportApp.Text.Split('-');
-                List<string> listStd = new List<string>() { "国标一", "国标二", "美标", "德标" };
-                list2.AddRange(listStd);
-                ConditionItem sampleData3 = new ConditionItem();
-                sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE;
-                sampleData3.sSCaptionName = sSCaptionName10;
-                sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData3.bReadOnly = false;
-                sampleData3.sDescriptionInfo = "Data table type";
-                sampleData3.itemVal = list2[0];
-                sampleData3.comboDownList = list2;
-                list.Add(sampleData3);
-
-                //粒级表
-                string sSCaptionName_partsizefile = "粒级表";
-                List<string> list_partsizelist =m_DataMgr. GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件
-                ConditionItem sampleData_partsizefile = new ConditionItem();
-                sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE;
-                sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile;
-                sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData_partsizefile.bReadOnly = false;
-                sampleData_partsizefile.sDescriptionInfo = "Particle Table";
-                sampleData_partsizefile.itemVal = list_partsizelist[0];
-                sampleData_partsizefile.comboDownList = list_partsizelist;
-                list.Add(sampleData_partsizefile);
-
-                //尺寸计算方法
-                string sSCaptionName8 = table["sscaptionname8"].ToString();
-                ConditionItem sampleData13 = new ConditionItem();
-                sampleData13.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
-                sampleData13.sSCaptionName = sSCaptionName8;
-                sampleData13.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData13.bReadOnly = false;
-                sampleData13.sDescriptionInfo = "Dimension Calculation Method";
-                sampleData13.itemVal = "DMAX";
-                sampleData13.comboDownList =m_DataMgr. GetSizeCalMethodTypeList();
-                list.Add(sampleData13);
-            }
-            else if (tbindex == DisplayPicutureType.AnalyzeDataChart)//Chart图页
-            {
-                //测量结果数据
-                List<string> list_source_str =m_DataMgr. GetSampleListName();
-                string sSCaptionName1 = table["sscaptionname1"].ToString();
-                ConditionItem sampleData = new ConditionItem();
-                sampleData.iItemId = 0;
-                sampleData.sSCaptionName = sSCaptionName1;
-                sampleData.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData.bReadOnly = false;
-                sampleData.sDescriptionInfo = "Select Measurement Result";
-                sampleData.itemVal = list_source_str[m_DataMgr. WorkingResult];
-                sampleData.comboDownList = list_source_str;
-                list.Add(sampleData);
-
-                //数据类型
-                List<string> list_datasourcetypelist =m_DataMgr. GetDataSourceTypeList();
-                string sSCaptionName9 = table["sscaptionname9"].ToString();
-                ConditionItem sampleData1 = new ConditionItem();
-                sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE;
-                sampleData1.sSCaptionName = sSCaptionName9;
-                sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData1.bReadOnly = false;
-                sampleData1.sDescriptionInfo = "Data Type";
-                sampleData1.itemVal = list_datasourcetypelist[0];
-                sampleData1.comboDownList = list_datasourcetypelist;
-                list.Add(sampleData1);
-
-                //数据图类型
-                string sSCaptionName10 = table["sscaptionname10"].ToString();
-                List<string> list2 = new List<string>() { "常用夹杂物分类", table["sscaptionname27"].ToString(), table["sscaptionname28"].ToString(), table["sscaptionname29"].ToString(), table["sscaptionname12"].ToString() };
-                ConditionItem sampleData3 = new ConditionItem();
-                sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE;
-                sampleData3.sSCaptionName = sSCaptionName10;
-                sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData3.bReadOnly = false;
-                sampleData3.sDescriptionInfo = "Data graph type";
-                sampleData3.itemVal = list2[0];
-                sampleData3.comboDownList = list2;
-                list.Add(sampleData3);
-
-                //三元相图模板
-                string sSCaptionName12 = table["sscaptionname12"].ToString();
-                ConditionItem sampleData15 = new ConditionItem();
-                List<string> trio_listname =m_DataMgr. GetTriTemplateNameList();
-                sampleData15.iItemId = OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE;
-                sampleData15.sSCaptionName = sSCaptionName12;
-                sampleData15.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData15.bReadOnly = false;
-                sampleData15.sDescriptionInfo = "Ternary phase diagram";
-                sampleData15.itemVal = trio_listname.First();
-                sampleData15.comboDownList = trio_listname;
-                list.Add(sampleData15);
-
-                //粒级表
-                string sSCaptionName_partsizefile = "粒级表";
-                List<string> list_partsizelist =m_DataMgr. GetPartSizeFileList();
-                ConditionItem sampleData_partsizefile = new ConditionItem();
-                sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE;
-                sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile;
-                sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData_partsizefile.bReadOnly = false;
-                sampleData_partsizefile.sDescriptionInfo = "Particle Table";
-                sampleData_partsizefile.itemVal = list_partsizelist[0];
-                sampleData_partsizefile.comboDownList = list_partsizelist;
-                list.Add(sampleData_partsizefile);
-
-                //尺寸计算法
-                string sSCaptionName8 = table["sscaptionname8"].ToString();
-                ConditionItem sampleData13 = new ConditionItem();
-                sampleData13.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE;
-                sampleData13.sSCaptionName = sSCaptionName8;
-                sampleData13.iItemValType = OTS_ITEM_TYPES.COMBO;
-                sampleData13.bReadOnly = false;
-                sampleData13.sDescriptionInfo = "Dimension Calculation Method";
-                sampleData13.itemVal = "DMAX";
-                sampleData13.comboDownList =m_DataMgr. GetSizeCalMethodTypeList();
-                list.Add(sampleData13);
-            }
-
-            return list;
-        }
-        //public List<string> GetDataSourceTypeList()
-        //{
-        //    string sscaptionname23 = table["sscaptionname23"].ToString();
-        //    string sscaptionname24 = table["sscaptionname24"].ToString();
-        //    List<string> ret_list = new List<string>() { sscaptionname23, sscaptionname24 };
-        //    return ret_list;
-        //}
-
-
-        /// <summary>
-        /// 根据样品属性 显示对应的图表
-        /// </summary>
-        /// <param name="tabIndex">标签索引</param>
-        /// <param name="strTableTypeName">属性中选择的图表名称</param>
-        public void ShowDataDiagram(DisplayPicutureType tabindex)
-        {
-
-            int sourceid = m_DataMgr.WorkingResult;
-
-            var resultFile = m_DataMgr.resultFilesList[sourceid];
-
-            var prop = SourceGridData;
-
-            String m_fileName = resultFile.FileName;
-
-
-
-            #region 对各窗体模块进行实际加载的代码
-            switch (tabindex)
-            {
-                //分析图
-                case DisplayPicutureType.AnalyzeImg://第一页选项窗体,分析图
-                    m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeImg);
-                    int display = prop.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
-
-                    if (display == (int)IMAGE_DISPLAY_TYPE.GENERAL)
-                    {
-                        //分布图对象为空,或当前显示的与在测量结果中选择的不匹配,则重新加载
-                        if (null != m_ReportApp.im_Control_DrawDistrbutionImageAndBSE)
-                        {
-                            if (m_fileName != m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName)
-                            {
-                                //如果已经不是原先的数据源,则需要重新加载,设定为空,后面重新加载
-                                m_ReportApp.im_Control_DrawDistrbutionImageAndBSE = null;
-                            }
-                        }
-
-                        //不需重新加载,则加载条件
-                        if (m_ReportApp.im_Control_DrawDistrbutionImageAndBSE != null)
-                        {
-                            m_ReportApp.m_SImageWindow.Controls.Clear();
-
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DataSourceID = sourceid;
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = m_fileName;
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill;
-                            m_ReportApp.m_SImageWindow.Controls.Add(m_ReportApp.im_Control_DrawDistrbutionImageAndBSE);
-                           
-                            m_ReportApp.m_SImageWindow.Activate();
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(SourceGridData);
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(m_ReportApp.SelectedParticles);
-
-                            string ImageType = prop.GetItemvalByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE);
-                            //切换分布图显示方式
-
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowMode(ImageType);
-
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.FullGraphMatch();
-
-                        }
-                        else if (m_ReportApp.im_Control_DrawDistrbutionImageAndBSE == null)
-                        {
-                            m_ReportApp.m_SImageWindow.Controls.Clear();
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE(m_ReportApp);
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DataSourceID = sourceid;
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = m_fileName;
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill;
-                            m_ReportApp.m_SImageWindow.Controls.Add(m_ReportApp.im_Control_DrawDistrbutionImageAndBSE);
-                            m_ReportApp.m_SImageWindow.Activate();
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(SourceGridData);
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(m_ReportApp.SelectedParticles);
-                            m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.FullGraphMatch();
-                        }
-
-                    }
-                    else
-                    {
-                        //排列图为空,或与在测量结果中选择的名字不一致时,则重新加载
-                        if (null != m_ReportApp.im_Control_DrawDistrbutionSortImage)
-                        {
-                            if (m_fileName != m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName)
-                            {
-                                //如果已经不是原先的数据源,则需要重新加载,设定为空,后面重新加载
-                                m_ReportApp.im_Control_DrawDistrbutionSortImage = null;
-                            }
-                        }
-
-                        //不需重新加载,则加载条件
-                        if (m_ReportApp.im_Control_DrawDistrbutionSortImage != null)
-                        {
-                            m_ReportApp.m_SImageWindow.Controls.Clear();
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.DataSourceID = sourceid;
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName = m_fileName;
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill;
-                            m_ReportApp.m_SImageWindow.Controls.Add(m_ReportApp.im_Control_DrawDistrbutionSortImage);
-                            m_ReportApp.m_SImageWindow.Activate();
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.GetDistrbutionSortimage_ByQuery(SourceGridData);
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_ReportApp.SelectedParticles);
-
-                            //判断当前点击测量结果中的数据源名,是否与已经加载的排序图显示的数据源名相同
-                            if (m_fileName == m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName)
-                            {
-                                //相同,加载计算条件
-                                //  m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(listGriddataclr);
-                                m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_ReportApp.SelectedParticles);
-
-                                //idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_RstProp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE);
-                                string ImageType = prop.GetItemvalByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE);
-                                //切换BSE和分类,两种影像的显示方式
-                                if (ImageType == "BSE")
-                                {
-                                    m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowMode(false);
-                                }
-                                else
-                                {
-                                    m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowMode(true);
-                                }
-                                return;
-                            }
-                        }
-                        else if (m_ReportApp.im_Control_DrawDistrbutionSortImage == null)
-                        {
-                            m_ReportApp.m_SImageWindow.Controls.Clear();
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage(m_ReportApp);
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.DataSourceID = sourceid;
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName = m_fileName;
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill;
-                            m_ReportApp.m_SImageWindow.Controls.Add(m_ReportApp.im_Control_DrawDistrbutionSortImage);
-                            m_ReportApp.m_SImageWindow.Activate();
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.GetDistrbutionSortimage_ByQuery(SourceGridData);
-                            m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_ReportApp.SelectedParticles);
-                        }
-                    }
-
-                    break;
-                //分析数据表
-                case DisplayPicutureType.AnalyzeDataTable:
-                    #region 第二页选项窗体,分析数据表
-                    m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeDataTable);
-
-                    //idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_RstProp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE);
-                    int TableType = prop.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE);
-                    switch (TableType)
-                    {
-                        case 0:
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_ResultGrid = new ResultGrid(m_ReportApp);
-                            m_ReportApp.im_ResultGrid.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ResultGrid);
-                            m_ReportApp.m_TablesWindow.Activate();
-                            break;
-                        case 1:
-                            if (m_ReportApp.im_ParticlesGridDevidePage != null && m_ReportApp.im_ParticlesGridDevidePage.FileName == m_fileName)
-                            {
-                                m_ReportApp.m_TablesWindow.Controls.Clear();
-                                m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ParticlesGridDevidePage);
-                                m_ReportApp.m_TablesWindow.Activate();
-                            }
-                            else
-                            {
-                                m_ReportApp.m_TablesWindow.Controls.Clear();
-                                m_ReportApp.im_ParticlesGridDevidePage = new OTSIncAReportGrids.ParticlesGridDevidePage(m_ReportApp);
-                                m_ReportApp.im_ParticlesGridDevidePage.FileName = m_fileName;
-                                m_ReportApp.im_ParticlesGridDevidePage.Dock = DockStyle.Fill;
-                                m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ParticlesGridDevidePage);
-                                m_ReportApp.m_TablesWindow.Activate();
-                            }
-                            break;
-                        case 2:
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_CompositionDistributionGrid = new CompositionDistributionGrid(m_ReportApp);
-                            m_ReportApp.im_CompositionDistributionGrid.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_CompositionDistributionGrid);
-                            m_ReportApp.m_TablesWindow.Activate();
-                            break;
-                        case 3:
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_ElementContentGrid = new ElementContentGrid(m_ReportApp);
-                            m_ReportApp.im_ElementContentGrid.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ElementContentGrid);
-                            m_ReportApp.m_TablesWindow.Activate();
-                            break;
-                        case 4://颗粒尺寸分布表
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_ParticlesSizeGrid = new ParticlesSizeGrid(m_ReportApp);
-                            m_ReportApp.im_ParticlesSizeGrid.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ParticlesSizeGrid);
-                            m_ReportApp.m_TablesWindow.Activate();
-                            break;
-                        case 5:
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_ElementCompositionAvgGrid = new ElementCompositionAvgGrid(m_ReportApp);
-                            m_ReportApp.im_ElementCompositionAvgGrid.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ElementCompositionAvgGrid);
-                            m_ReportApp.m_TablesWindow.Activate();
-                            break;
-                        case 6:
-                            //国标一
-                            string resultfile = m_DataMgr.resultFilesList[m_DataMgr.WorkingResult].FilePath + "\\"
-                                + m_DataMgr.resultFilesList[m_DataMgr.WorkingResult].FileName;
-
-                            m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile);
-
-                            OTSCLRINTERFACE.CPropParamClr clr_prop = m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
-                            clr_prop.SetDataSourceId(0);//
-                            clr_prop.SetType(1);//table
-                            clr_prop.SetCalTableType(6);//国标1                    
-
-                            List<OTSCLRINTERFACE.CGridDataClr> listGriddataclr = m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop);//
-
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_ChineseStandardABCDDS = new ChineseStandardABCDDS(m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr);
-
-                            m_ReportApp.im_ChineseStandardABCDDS.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ChineseStandardABCDDS);
-                            m_ReportApp.m_TablesWindow.Activate();
-
-
-                            //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FilePath+"\\"
-                            //    + m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FileName, "GB1");
-                            break;
-                        case 7:
-                            //国标二
-                            string resultfile2 = m_DataMgr.resultFilesList[m_DataMgr.WorkingResult].FilePath + "\\"
-                                 + m_DataMgr.resultFilesList[m_DataMgr.WorkingResult].FileName;
-
-                            m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile2);
-
-                            OTSCLRINTERFACE.CPropParamClr clr_prop2 = m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
-                            clr_prop2.SetDataSourceId(0);//
-                            clr_prop2.SetType(1);//table
-                            clr_prop2.SetCalTableType(7);//国标2  
-                            List<OTSCLRINTERFACE.CGridDataClr> listGriddataclr2 = m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop2);//
-
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_NationalStandardMethodTwo = new NationalStandardMethodTwo(m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr2);
-                            m_ReportApp.im_NationalStandardMethodTwo.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_NationalStandardMethodTwo);
-                            m_ReportApp.m_TablesWindow.Activate();
-                            //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FilePath + "\\"
-                            //    + m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FileName, "GB2");
-                            break;
-                        case 8:
-                            //美标
-                            string resultfile3 = m_DataMgr.resultFilesList[m_DataMgr.WorkingResult].FilePath + "\\"
-                                + m_DataMgr.resultFilesList[m_DataMgr.WorkingResult].FileName;
-
-                            m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile3);
-
-                            OTSCLRINTERFACE.CPropParamClr clr_prop3 = m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
-                            clr_prop3.SetDataSourceId(0);//
-                            clr_prop3.SetType(1);//table
-                            clr_prop3.SetCalTableType(8);
-                            List<OTSCLRINTERFACE.CGridDataClr> listGriddataclr3 = m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop3);
-
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_ASTMStandardABCDDS = new ASTMStandardABCDDS(m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr3);
-                            m_ReportApp.im_ASTMStandardABCDDS.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ASTMStandardABCDDS);
-                            m_ReportApp.m_TablesWindow.Activate();
-                            //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FilePath + "\\"
-                            //    + m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FileName, "ASTM");
-                            break;
-                        case 9:
-                            //德标
-                            string resultfile4 = m_DataMgr.resultFilesList[m_DataMgr.WorkingResult].FilePath + "\\"
-                               + m_DataMgr.resultFilesList[m_DataMgr.WorkingResult].FileName;
-
-                            m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile4);
-
-                            OTSCLRINTERFACE.CPropParamClr clr_prop4 = m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
-                            clr_prop4.SetDataSourceId(0);//
-                            clr_prop4.SetType(1);//table
-                            clr_prop4.SetCalTableType(9);
-                            List<OTSCLRINTERFACE.CGridDataClr> listGriddataclr4 = m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop4);
-
-                            m_ReportApp.m_TablesWindow.Controls.Clear();
-                            m_ReportApp.im_DINStandardABCDDS = new DINStandardABCDDS(m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr4);
-                            m_ReportApp.im_DINStandardABCDDS.Dock = DockStyle.Fill;
-                            m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_DINStandardABCDDS);
-                            m_ReportApp.m_TablesWindow.Activate();
-                            //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FilePath + "\\"
-                            //    + m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FileName, "DIN");
-                            break;
-                    }
-
-                    #endregion 第二页选项窗体,分析数据表
-                    break;
-                //分析数据图
-                case DisplayPicutureType.AnalyzeDataChart:
-                    m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeDataChart);
-                    #region 第三页选项窗体,分析数据图
-                    m_ReportApp.m_ChartsWindow.Controls.Clear();
-
-                    string m_reportname = "";
-                    string m_str_AxisY = "";
-                    string str_operatonmodule = "";
-
-                    //idx = m_RstProp. m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_RstProp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE);
-                    int ChartType = prop.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE);
-                    switch (ChartType)
-                    {
-                        case 0:
-                            m_reportname = table["m_reportname1"].ToString();//常用夹杂物分类
-                            m_str_AxisY = table["m_str_axisy1"].ToString();
-                            str_operatonmodule = table["str_operatonmodule1"].ToString();
-
-                            m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_ReportApp, "CommonlyUsedClassify");
-                            m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
-                            m_ReportApp.m_reportname = m_reportname;
-                            m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
-                            m_ReportApp.type = "pie";
-                            m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_ParticlesComposition);
-                            m_ReportApp.m_ChartsWindow.Activate();
-                            break;
-                        case 1:
-                            m_reportname = table["m_reportname2"].ToString();//颗粒成分
-                            m_str_AxisY = table["m_str_axisy2"].ToString();//颗粒数
-                            str_operatonmodule = table["str_operatonmodule2"].ToString();//颗粒成分图
-
-                            m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_ReportApp, "PComponent");
-                            m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
-                            m_ReportApp.m_reportname = m_reportname;
-                            m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
-                            m_ReportApp.type = "pie";
-                            m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_ParticlesComposition);
-                            m_ReportApp.m_ChartsWindow.Activate();
-                            break;
-                        case 2:
-                            m_reportname = table["m_reportname3"].ToString();//元素成分
-                            m_str_AxisY = table["m_str_axisy3"].ToString();//元素含量
-                            str_operatonmodule = table["str_operatonmodule3"].ToString();//元素成分图
-
-                            m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_ReportApp, "EComponent");
-                            m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
-                            m_ReportApp.m_reportname = m_reportname;
-                            m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
-                            m_ReportApp.type = "bar";
-                            m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_ParticlesComposition);
-                            m_ReportApp.m_ChartsWindow.Activate();
-                            break;
-                        case 3://颗粒尺寸分布图
-                            m_reportname = table["m_reportname4"].ToString();//颗粒尺寸分布
-                            m_str_AxisY = table["m_str_axisy4"].ToString();//颗粒数
-                            str_operatonmodule = table["str_operatonmodule4"].ToString();//颗粒尺寸分布图
-
-                            m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_ReportApp, "PSize");
-                            m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
-                            m_ReportApp.m_reportname = m_reportname;
-                            m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
-                            m_ReportApp.type = "bar";
-                            m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_ParticlesComposition);
-                            m_ReportApp.m_ChartsWindow.Activate();
-                            break;
-                        case 4:
-
-                            //idx = m_RstProp. m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_RstProp. SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);
-                            //string TrioChartType = prop.ConditionItemList[idx].itemVal.ToString();
-                            //List<string> nameList = prop.ConditionItemList[idx].comboDownList;
-                            int index = prop.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);
-
-                            str_operatonmodule = table["str_operatonmodule5"].ToString();
-
-                            m_ReportApp.im_EChart_Trianglediagram = new Control_ECharts.EChart_Trianglediagram(m_ReportApp);
-                            m_ReportApp.im_EChart_Trianglediagram.Template = "";
-                            m_ReportApp.im_EChart_Trianglediagram.Dock = DockStyle.Fill;
-                            m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_Trianglediagram);
-                            m_ReportApp.m_ChartsWindow.Activate();
-                            break;
-                    }
-                    #endregion 第三页窗体,分析数据图
-                    break;
-            }
-            #endregion
-        }
-
-        #endregion
-
-        #region 属性Grid相关事件
-        /// <summary>
-        /// 属性Grid点击事件
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void PropGrid_Click_1(object sender, EventArgs e)
-        {
-            SourceGrid.Grid ls_gd = (SourceGrid.Grid)sender;
-            ls_gd.Focus();
-            m_ConditionGrid.m_ClickRow = ls_gd.Selection.ActivePosition.Row;
-            m_ConditionGrid.m_ClickColumn = ls_gd.Selection.ActivePosition.Column;
-        }
-
-        /// <summary>
-        /// 主窗体大小改变时,同时改变属性Grid的大小事件
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void OTSPropertyWindow_Resize(object sender, EventArgs e)
-        {
-            if (null != m_ConditionGrid)
-            {
-                m_ConditionGrid.m_PropWindow_X = this.Width;
-                m_ConditionGrid.InitGridTitlet();
-            }
-        }
-        #endregion
-
-    }
-}

+ 0 - 1253
OTSIncAReportApp/1-UI/frmReportConditionChoose.resx

@@ -1,1253 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAMMOAADDDgAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHsxFwB5MBcAeC4XCnsy
-        Fzh7MhdyfDQXrHw1FtZ8NhXvfTcV/X03Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303
-        Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303
-        Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303
-        Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303
-        Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303
-        Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303Ff99NxX/fTcV/303
-        Ff99NxX/fTcV/303Ff99NxX8fTYV63w1Fs58MxejezIXaHoxFy13LBcGejEXAHoyFwAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAHkwFwB+NxcAeS8YEnsyF1h8NRaqfTgV4X47E/mCPxT/iEUX/41JG/+RTB7/kk4g/5NP
-        IP+TTyD/k08g/5NOIP+TTiD/k08g/5NOIP+TTiD/k04g/5NPIP+TTyD/k04g/5NPIP+TTiD/k04g/5NP
-        IP+TTyH/k08h/5NPIP+TTiD/k08h/5NPIf+TTiD/k04g/5NPIP+TTyH/k08h/5NPIP+STiD/k04g/5NO
-        IP+TTyD/k04g/5NOIP+TTyD/k08h/5NPIP+TTiD/k08h/5NOIP+TTiD/k08h/5NPIP+TTiD/k04g/5NP
-        IP+TTyH/k08g/5NOIP+TTiD/k08h/5NPIP+TTiD/k04g/5NOIP+TTyD/k08h/5NPIP+TTiD/k04g/5NP
-        IP+TTyD/k04g/5NOIP+TTiD/k08g/5NPIP+TTiD/k04g/5NOIP+TTyD/k08h/5NPIP+TTyD/k08g/5NO
-        IP+TTyD/k04g/5NOIP+TTyD/k04g/5NOIP+TTyH/k08g/5NPIf+TTyH/k04g/5BMHv+MSBr/h0MX/4I+
-        FP9+OhP2fTcV2nw1F5h7MhdEdy0YCnw0FwB5MBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHcsFwB8NBcAdisYCXszF05+Nxa6gDwT9YZD
-        Ff+TTiD/pVwx/7RnP/+/bUj/w3BL/8dyTv/Ick//yHNP/8hyT//Ic0//yXNQ/8lzT//Ic0//yHJO/8hy
-        Tv/Ick//yHNQ/8hzT//Ick7/yXNP/8lzT//Ic0//yHNP/8lzT//Jc1D/yHNP/8lyT//JdFD/yHJO/8hy
-        Tv/Jck//yHJP/8hzT//Jc0//yHJO/8hyT//Ic0//yHJP/8lyT//Jck//yXNP/8lzT//Ic0//yHNP/8hz
-        T//Ic1D/yXNP/8lzT//Jc0//yXNP/8lzT//Jck//yHJO/8hyTv/Jc0//yHNP/8hyTv/Jc0//yXNP/8hy
-        Tv/Jc0//yXNQ/8lzT//Ic0//yHNP/8hyTv/Ic0//yXNP/8hyTv/Ick//yHNP/8hzT//Ick//yXNP/8hy
-        Tv/Jc0//yHJO/8lzT//Jc1D/yXRQ/8hyT//Ic0//yHJP/8hyT//Jc0//yHJO/8hyTv/Ick//yHNP/8lz
-        UP/Ick7/yHJO/8lzT//JdFD/xnFN/8NwS/+9bUf/sWQ7/6FZLf+QTB3/hEEU/387FO19NhakejIXOXEj
-        GAN7MhcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAB4LhcAgj0YAHowGBx+NxaPgT0U7olHF/+gWCz/umtE/8dxTP/LcEz/yWxH/8VmP//DYjr/wmE5/8Jf
-        N//DYTj/w2E4/8JgOP/CYDj/w2A4/8NhOf/DYTn/wmE4/8JgOP/DYDj/wmA3/8JfN//DYDj/wmA3/8Jh
-        OP/CYDj/wmA4/8NgOP/CYDj/w2E5/8NhOP/CYDj/w2A4/8NhOP/DYTj/wl83/8JgN//DYDj/w2E4/8Nh
-        OP/DYDj/w2A4/8JgOP/DYDj/wl83/8JfN//CYDf/w2E4/8JgOP/DYTn/w2E4/8NgOP/DYTn/w2A4/8Jg
-        OP/CYDj/wl42/8JgOP/CYDj/wmA4/8NgOP/DYDj/w2A4/8NhOP/DYTj/w2E5/8JgOP/CYDj/wmA3/8Nh
-        Of/DYDj/wl83/8JhOP/CYDj/wl83/8JgOP/CYDf/w2A3/8NgOP/DYDj/w2E4/8NhOf/DYTn/w2E4/8Nh
-        OP/CYDj/wmA4/8NhOf/CYDf/wmA4/8JgOP/CYDj/wmA4/8JfN//CYTj/w2E4/8NiOf/DYTn/xGM7/8Zn
-        QP/Ja0b/ynFM/8ZxTf+1aED/m1Un/4dEFf+AOxThfTYXeHkuGBF8NRcAcycXAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfDIYAP//WgB8NBg1gDsVu4VDFf2cVij/vWxG/8px
-        Tf/HaEL/wl83/8BcM//AXTP/wF00/8FdNP/BXjX/wV40/8FeNf/BXjX/wV00/8FeNf/BXjX/wV00/8Fe
-        Nf/AXTT/wV41/8FdNP/BXTT/wV00/8BdNP/BXjX/wV41/8FeNf/BXjX/wV00/8FdNP/BXTT/wV41/8Fd
-        NP/AXTT/wV41/8FeNf/BXTT/wV00/8FdNP/BXTT/wF00/8FeNf/AXDP/wFwz/8BcM//AXDP/wFwz/8Fe
-        NP/AXTT/wV41/8FeNf/BXTT/wV40/8FeNf/BXTT/wV00/8FdNP/AXDP/wF00/8BdNP/BXTT/wV41/8Fe
-        Nf/BXzb/wV00/8BdNP/BXjX/wV00/8BdNP/AXTT/wFwz/8FdNP/BXTT/wF0z/8FeNP/AXTP/wF00/8Bd
-        NP/AXDP/wFwz/8FeNP/BXTT/wV00/8FeNf/BXjX/wV00/8FdNP/BXjX/wV41/8BdNP/BXjX/wV41/8Fd
-        NP/BXTT/wV00/8FdNP/BXjX/wV00/8FeNf/BXjT/wFwz/8BcMv/AXTT/w2E5/8dpRP/Jck7/uGlC/5ZR
-        I/+DQRT4fzkWn3syGB6FPxkAeCwZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AACUVxUAfjcYPIE+FNCMSRr/sWU8/8lxTf/GZ0H/wV41/8FdNP/BXTT/wV41/8FdNP/BXjX/wV00/8Fd
-        NP/BXjX/wF00/8FdNP/BXjX/wV41/8BdNP/BXjX/wV41/8FeNf/BXjX/wV41/8FeNf/BXjX/wV00/8Fe
-        Nf/BXjX/wV00/8FeNf/BXTX/wV41/8FdNP/BXjX/wV41/8FeNf/BXjX/wV41/8FfNv/BXTT/wV41/8Fe
-        Nf/BXTT/wV41/8FeNf/BXjX/wV41/8FeNf/BXjX/wV41/8FeNf/CXzb/wF00/8BdNf/BXzb/wV41/8Fe
-        Nf/BXjX/wV41/8FeNf/BXjT/wV41/8FeNv/AXTT/wV00/8FeNf/BXjX/wV41/8FeNf/BXjX/wV41/8Fe
-        Nf/BXzb/wV41/8FeNf/AXTT/wV41/8FeNf/BXjX/wV00/8BdNP/BXjX/wV00/8FdNP/BXjX/wV41/8Fe
-        Nf/BXzb/wV41/8FeNf/BXjX/wV41/8FeNf/BXjX/wV41/8FeNf/BXjX/wV41/8FeNf/AXTT/wV41/8Fe
-        Nf/BXjX/wV00/8FeNf/AXTT/wF0z/8JfNv/IaUP/x3FN/6lfNP+IRRf9gDwVs341GSKFQBgAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg0AWAIE6GDKDQBPPlE8g/75tR//JbUf/wl82/8Bc
-        M//BXjX/wV41/8FeNf/BXzb/wV41/8FeNf/AXDP/wF00/8FeNf/BXjX/wV41/8BdNP/BXjX/wV41/8Bd
-        NP/BXjX/wV00/8FeNf/BXjX/wV82/8FeNf/AXTT/wV41/8FeNf/BXjX/wV41/8FeNf/BXjX/wl82/8Fe
-        Nf/CXzb/wV00/8FdNP/CXzb/wV41/8FdNP/BXjX/wV41/8FeNf/BXTT/wV41/8FfNv/BXjX/wV00/8Fe
-        Nf/BXjX/wV41/8FeNf/BXjX/wV00/8FfNv/BYDb/wV40/8BdNP/BXzX/wV40/8FeNf/BXzX/wWA2/8Ff
-        Nf/BXzX/wWA1/8FeNP/BXzX/wF40/8FeNP/BXjT/wV81/8FfNv/BXjX/wV41/8BdNP/BXjX/wV82/8Ff
-        Nv/BXTT/wV41/8BdNP/BXjX/wV00/8FeNf/BXjX/wF00/8BdNP/BXjX/wV41/8FeNf/BXzb/wV41/8Fe
-        Nf/BXjX/wV00/8FeNf/BXjX/wF00/8FeNf/BXjX/wF00/8FeNf/BXzb/wV41/8FdNP/BXjX/wV00/8Bc
-        M//DYTj/ym9L/7doQf+OShv/gj4UsoA3GRmDPxcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIVA
-        GACCPRgbg0ETvJdSI//Cbkj/x2dA/8BcMv/BXTT/wV41/8FeNf/AXDP/wV41/8FfNv/BXjX/wV41/8Fd
-        NP/BXjX/wV41/8FdNP/BXTT/wV41/8JfNv/BXjX/wV00/8FfNv/BXjX/wV41/8FfNv/BXjX/wV41/8Fe
-        Nf/BXjX/wV41/8FeNf/BXjX/wV00/8FeNf/BXjX/wV00/8FeNf/AXTT/wV41/8FeNf/BXjX/wV00/8Fe
-        Nf/BXjX/wV00/8FdNP/BXjX/wV00/8FdNP/BXjX/wV82/8JgNv/BXzb/wV81/8BeNP/BXjT/wV81/8Ff
-        Nf/BXjX/wV81/8FfNv/BXzX/wV81/8FfNf/BXzX/wF40/8FfNf/AXzX/wV82/8FfNv/BXjX/wV81/8Ff
-        Nf/BXzX/wWA1/8FeNP/BXjT/wV40/8FfNf/BXjT/wV81/8FeNf/BXzX/wV41/8FeNf/BXjX/wl82/8Fe
-        Nf/BXzb/wV41/8FeNf/BXjX/wV41/8FfNv/BXjX/wV41/8FeNf/BXjX/wF00/8BcM//AXTT/wV41/8Bd
-        NP/BXTT/wV41/8FeNf/BXTT/wV00/8FfNv/BXjX/wV41/8FeNP/BXjT/yGpE/7xrRP+PTRz9gkATmX43
-        GQ6IQhoAAAAAAAAAAAAAAAAAAAAAAAAAAACMSRkAgTkaCYRCE5CUUCD8wm1I/8VkPf/AXDP/wV00/8Fd
-        NP/BXjX/wF00/8FdNP/BXTT/wV41/8BdNP/BXjX/wV41/8FfNv/BXjX/wV41/8FeNf/BXzb/wV41/8Fd
-        NP/BXjX/wV42/8FdNP/BXzb/wV41/8FfNv/BXzb/wV41/8FdNP/BXTT/wV41/8FfNv/BXzb/wV41/8Fd
-        NP/BXTT/wV41/8FeNf/BXzb/wV41/8FeNf/BXTT/wV40/8FeNf/BXjX/wV41/8BeNf/BXjT/wV81/8Ff
-        Nf/BXzX/wV81/8FfNv/BXjX/wV81/8FfNv/BXzX/wV82/8FgN//BXzX/wWA2/8JhN//BYDf/wV81/8Fe
-        Nf/BXzb/wWA2/8FgNv/BYDb/wV81/8FgNv/CYDf/wWA2/8FeNf/BXzb/wV82/8FfNv/BXzb/wV81/8Be
-        NP/BXjX/wV41/8JfNv/BXzX/wV81/8FeNf/BXTT/wV40/8FfNv/BXzb/wFwz/8FeNf/AXjX/wV41/8Fe
-        Nf/BXjX/wl82/8FdNP/AXTT/wV41/8BcM//BXjX/wV00/8FeNf/CXzb/wV00/8FeNf/BXjX/wV82/8Fe
-        Nf/BXjX/wV82/8FfNf/AXTT/x2hC/7tqQ/+OSxr1hEEUbIo/IQKaUyQAAAAAAAAAAAAAAAAAAAAAAKhW
-        LwCGRBRVj0sc8bxpQ//GZD3/wFwz/8BdNP/BXjX/wV41/8FeNf/BXjX/wV41/8FeNf/BXjX/wV00/8Fe
-        Nf/BXTT/wV41/8FfNv/BXzb/wV41/8FeNf/BXjX/wV00/8FdNP/BXjX/wV00/8FeNf/BXjX/wV82/8Ff
-        Nv/BXzb/wV41/8BdNP/BXzb/wV41/8FeNf/BXzX/wV00/8BdNP/BXTT/wV41/8FeNf/BXTT/wV41/8Fe
-        NP/BXjX/wV81/8FfNf/AXjT/wV81/8FfNf/BYDb/wmA3/8FgNv/BYDb/wV81/8FfNf/CYDb/wV81/8Jg
-        Nv/CYDb/wmE3/8JfNf/CYDb/wmE3/8JgNv/BXzX/wmA1/8JgNv/CYDb/wV81/8JfNf/CYDb/wmA2/8Jg
-        Nv/CYDX/wmE2/8FgNv/CYDb/wmE3/8JhN//BXzX/wWA2/8FfNv/BXzb/wV82/8FfNf/AXzX/wV82/8Ff
-        Nf/BXzX/wV40/8FfNv/BXjX/wV00/8FeNf/BXjX/wV41/8JfNv/BXjX/wV00/8FeNf/BXzb/wV41/8Fe
-        NP/BXjX/wV41/8FfNv/AXTT/wF00/8BdNP/BXjX/wV41/8FeNf/BXjX/wl82/8FeNf/BXTP/yGhB/7Rl
-        Pf+KRxfdh0QWNYdHFQAAAAAAAAAAAAAAAACLSBcAiEcWHohHFsqwYjn/x2dA/8BdM//BXjX/wFwz/8Fe
-        Nf/BXTT/wF00/8FdNP/BXjX/wV41/8BdNP/AXTT/v100/75bMv+/XTT/v100/79dNf+/XTT/vlwz/79d
-        Nf++XTT/v100/79dNf+/XTT/v100/79eNf+/XjX/v100/79eNv+/XTT/vlwz/79dNP++XTT/vl00/79e
-        Nf+/XTT/v142/79eNf+/XjT/v100/75eNP+/Xzb/v181/79eNf+/Xzb/v182/79eNf+/XzX/v181/79f
-        Nf/AYDf/wGA2/8BfNf+/XzX/v180/8BfNf+/XzX/wF81/8BgNf/AYDX/wGA1/8BhN//AYDb/v2A1/8Bh
-        Nv/AYDb/wGA2/8BfNf/AXzX/wGA1/8BhN//AYDX/wGA1/8BgNf/AXzX/wGA2/8BgNf/AYDb/wGA2/8Bf
-        Nf+/XjT/wF81/8BgNv+/Xzb/wGA2/8BgNv/AYDf/wGA3/75eNP++XjT/v182/79eNf+/XjX/v141/75d
-        NP+/XTT/v100/79dNP++XDP/v100/79dNP+/XTT/v141/79dNP+/XTT/v100/79dNf+/XTT/v100/79d
-        NP+/XTT/wF00/8FeNf/AXTT/wV41/8FeNP/BXTT/x2pE/6VbMP+GRRSqjEoYDdiCXgAAAAAAAAAAAI5J
-        GQKGRROBnVYp/sZqRP/BXjX/wV41/8FdNP/BXTT/wV41/8FdNP/BXjX/wV41/8FeNf/AXjX/v100/75d
-        NP+9XDT/uloy/7laMv+3WTL/tlgx/7dZMv+2WTL/t1ky/7ZZMv+2WDH/t1gy/7dZM/+2WTL/tlky/7dZ
-        Mv+3WTL/tlgx/7ZYMv+3WTP/t1ky/7ZYMv+2WDH/tlgx/7ZZMf+2WjL/t1oy/7daMv+2WTL/t1s0/7da
-        M/+2WjL/t1sz/7daM/+4WzP/t1oy/7daMv+3WzP/t1oy/7dbM/+4XDT/t1sy/7hcM/+4XDP/t1ox/7db
-        Mv+3WzL/t1wz/7hcM/+3XDP/uFwz/7hcM/+3XDT/t1wz/7dbMv+3XDP/t1wz/7hcNP+3WzP/t1wz/7dc
-        M/+4XDT/t1sy/7dbM/+4XTT/uFwz/7dcM/+3XDP/t1sy/7hcM/+4XDP/t1sy/7dbMv+4WzP/uFsz/7hb
-        M/+4XDT/t1oz/7daM/+2WjP/t1sz/7ZaM/+2WjL/tlky/7ZZMf+2WTH/tlkx/7ZZMv+3WTL/t1ky/7ZZ
-        Mv+2WTL/tlky/7ZYMf+3WTL/t1ky/7hZMv+5WTL/u1sz/71cNP+/XTX/wF42/8BeNf/BXjX/wV41/8Ff
-        Nf/DXzb/wmlD/5RPIPWGRRNbajAAAAAAAACWUSEAiEYUK41KGd26ZT7/xGE5/8FeNf/BXjX/wF00/8Fe
-        Nf/BXjX/wF00/8FeNf/BXjX/wV41/8BeNf++XTT/uloz/7ZYMv+wVjH/rFQv/6lTL/+nUS7/plAt/6dR
-        Lv+nUS7/p1Eu/6ZQLf+nUi7/p1Eu/6ZQLf+nUC3/p1Et/6ZQLf+nUS7/p1Eu/6dSL/+mUS3/plEt/6dS
-        Lv+mUS3/p1Iu/6ZRLf+nUi7/p1Eu/6dSL/+nUi7/p1Iu/6hSLv+oUy7/qFIu/6hTL/+oUy7/qFQu/6hU
-        Lv+oVC//qFQv/6hUL/+oVC//qFQv/6hUL/+oUy7/qFUw/6dUL/+oVDD/qFQw/6hUL/+nVC//qFUw/6hV
-        MP+oVC//p1Qv/6hUL/+nVC//p1Qv/6dUL/+nVC//p1Qv/6hVMP+oVTD/qFUw/6hVMP+oVTD/qFUw/6hU
-        L/+oVC//qFMv/6dTLv+nUy3/qFQu/6hUL/+oVC//qFQu/6hUL/+oUy//qFMv/6hTLv+nUi7/plEt/6dS
-        Lv+nUy//p1Iv/6dSLv+nUi7/p1Iu/6dSLv+nUi7/p1Eu/6dRLv+nUS7/p1Eu/6dRLf+pUi7/q1Mu/7BW
-        Mf+1WDL/uVoz/71bM/+/XTT/wV41/8FeNf/BXzb/wV41/8BcM//GZDz/sGE4/4lHFsCJRxUTnlQlAKBY
-        KwKGRRN5n1cq/sVmP//BXTT/wFwz/8FeNf/BXjX/wV41/8FeNf/BXjX/wV41/8FeNf/BXTT/v141/7tc
-        NP+0WDL/q1Mu/6FNK/+ZSin/k0Yn/5BFJv+ORCX/jkQm/49FJv+PRSf/j0Um/49EJv+PRCb/j0Qm/49E
-        Jv+PRCX/j0Qm/49EJf+PRSb/j0Ym/49GJ/+PRSb/jkUm/45EJv+PRyj/j0cn/49GJ/+PRib/j0Yn/49G
-        Jv+QRyf/kEcn/5BHJ/+QRyf/j0cn/5BHJ/+QRyf/kEcn/5BIKP+QRyj/j0cn/5BHKP+PRyj/kEgo/5BI
-        KP+QSCj/kEgo/5BHKP+QRyj/kEgo/5BIKP+PRyj/kEgo/5BIKP+QSCj/kEgo/5BIKf+QSCn/kEgo/5BH
-        KP+QSCf/kEkp/5BIKf+QSCj/kEco/5BIKf+QSCn/kEco/5BIKP+QRyj/kEgo/5BHKP+QSCj/kEco/5BI
-        KP+QSCj/kEcn/5FIKP+QRyf/kEcm/5BHJ/+QRif/kEcn/5BGJ/+QRyf/kEco/49GJ/+PRij/j0Ym/49H
-        J/+PRSb/j0Yn/5BGJ/+QRSb/kkYn/5VIKP+bSyn/pE8s/6xTLv+1WDH/ulkx/75dNP/BXjX/wV41/8Fe
-        Nf/BXjX/wV40/8FdNP/DZ0H/llEj9YZFFFOyXzUAiUcVFotKGca1Yjn/xGA3/8FeNf/BXjX/wF00/8Fe
-        Nf/BXjX/wV41/8FeNf/BXjX/wV41/8FeNf++XDT/t1ky/65WMv+pYkX/oGVM/5ZfSf+QXEf/jFlF/4tZ
-        Rf+LWUX/illF/4pZRf+KWUX/ilhE/4pYRP+JWET/illF/4pYRP+KWET/iVlE/4lYRP+JWUT/illF/4lZ
-        Rf+JWET/iVhE/4lZRP+JWUT/iVlE/4lZRP+JWEP/iVhD/4lYQ/+JWEP/iFhD/4lYQ/+IWEP/iFhD/4hY
-        RP+IWEP/iFhD/4hXQ/+IV0P/iFdD/4hYQ/+IV0L/h1dC/4dXQv+IWEP/h1dC/4dXQf+IV0L/h1hC/4dX
-        Qv+HV0L/h1dB/4ZXQf+GVkH/hlZB/4ZWQf+FVUD/hVVA/4VVQP+FVUD/hVQ//4RUPv+EUz7/hFQ//4RU
-        P/+DUj3/g1M+/4NTPv+DUz7/g1I+/4JSPf+CUj3/glI9/4JRPP+BUTz/gVE8/4FQO/+BUDv/gVA7/4BQ
-        O/+AUDv/gE86/4BPOv+ATzr/f086/39OOv9+Tjn/fk45/35NOf9+TTj/fk04/39NOf+BTjn/hlA6/41T
-        PP+XWUD/o1Y4/7BUL/+5WjP/vl01/8BeNf/AXTT/wV41/8FeNf/BXjX/wFwz/8RhOf+qXTL/iUgWopFL
-        GwaIRhRNllEi7MFlPf/BXTT/wV82/8FeNf/AXTT/wV00/8FeNf/BXjX/wV82/8FeNf/BXjX/wF41/71c
-        NP+1WDL/qFY0/76cjv/Mwb3/yb65/8i9uP/HvLj/xry3/8a7t//Gu7b/xbq2/8W6tf/EubX/xLm0/8O4
-        tP/DuLP/w7ez/8K3sv/Ct7L/wbax/8G1sf/AtbD/wLWw/8C0r/+/tK//v7Ou/76zrv++sq7/vrKt/72y
-        rf+9saz/vLGs/7ywq/+8sKv/u6+q/7uvqv+6r6n/uq6p/7quqf+5raj/ua2o/7msp/+4rKf/uKym/7er
-        pv+3q6b/t6ql/7eqpf+2qqT/tqmk/7WppP+1qaT/taij/7Soo/+0p6L/s6ah/7KloP+xpJ//sKOe/6+i
-        nf+uoZz/raGb/6ygmv+rn5n/qp6Z/6qdmP+pnJf/qJuW/6ealf+mmZT/pZiT/6SXkv+jl5L/opaR/6KV
-        kP+hlI//oJOO/5+Tjv+eko3/nZGM/5yQi/+bj4r/m46K/5qOif+ZjYj/mIyH/5eLh/+Xi4b/loqF/5WJ
-        hP+UiIT/lIiD/5OHg/+ShoL/koaB/5KFgf+ShYH/koaC/5R7cf+fWj7/rlQu/7laM/++XTT/wV41/8Fe
-        Nf/BXTT/wV00/8FeNf/BXjX/wl00/7tjO/+PTBzZiEYUKIhGFImkWS39xGI6/8FdNP/AXTT/wV00/8Ff
-        Nv/AXTT/wV41/8FeNf/BXjT/wV41/8FeNf/BXjX/vFw0/7NXMv+kVDP/waWa/9bRz//Uzsz/1M7M/9PN
-        y//Tzcr/0szK/9LMyf/Ry8n/0crI/9DKx//Qysf/z8nG/8/Ixv/OyMX/zsfF/87HxP/NxsP/zcbD/8zF
-        w//MxcL/y8TB/8vEwf/Kw8D/ysPA/8nCv//Jwr//yMG+/8jBvv/IwL3/x8C9/8e/vP/Gv7z/xr67/8W+
-        u//Fvbr/xL26/8S8uf/EvLn/w7y4/8O7uP/Cu7f/wrq3/8G6tv/Bubb/wbm1/8C4tf/AuLX/v7e0/7+3
-        tP+/t7P/vraz/762s/+9tbL/vbSx/7yzsP+7sq//urGu/7mwrf+4r6z/t66r/7atqv+1rKn/tKuo/7Oq
-        p/+yqab/sail/7CnpP+vpqP/rqWi/62kof+so6D/q6Kf/6qhnv+poJ3/qJ+c/6efnP+mnpv/pZ2a/6Sc
-        mf+jm5j/opqX/6GZlv+gmJX/n5eV/56WlP+dlpP/nZWS/5yUkf+bk5H/mpKQ/5mSj/+YkY//mJCO/5eQ
-        jv+Ug3z/lVtD/6RQLf+yVzH/uloz/79dNP/AXTT/wV41/8FfNv/AXTT/wV00/8FfNv/BXTT/w2M7/5tT
-        JfOJRxVdikkYvLBdM//EYDj/wF00/8FdNP/BXjX/wV41/8BdNP/BXjX/wV82/8FfNv/AXDP/wV41/8Fe
-        Nf+8XDT/sFQv/6BSMv/ApJn/1tHP/9XPzP/Uzsv/1M7L/9PNyv/TzMr/0szJ/9LLyf/Ry8j/0crI/9DK
-        x//Qycb/z8nG/8/Ixf/OyMX/zsfE/83GxP/NxsP/zMXD/8zFwv/LxMH/y8TB/8vDwP/Kw8D/ysK//8nC
-        v//Jwb7/yMG+/8jAvf/HwL3/x7+8/8e/vP/Gvrv/xr67/8W9uv/Fvbr/xLy5/8S8uf/Du7j/w7u4/8O7
-        t//Curf/wrq2/8G5tv/BubX/wbi1/8C4tf/At7T/v7e0/7+3s/+/trP/vray/761sv++tbL/vbSx/7y0
-        sP+7s6//urKu/7mxrf+4sKz/t6+r/7auqv+1ran/tKyo/7Orp/+yqqb/saml/7CopP+vp6P/rqai/62l
-        of+spKD/q6Of/6qinv+poZ7/qKCd/6ifnP+nnpv/pp2a/6Wcmf+km5j/o5qX/6KZl/+hmZb/oJiV/5+X
-        lP+elpP/nZWS/5yUkv+bk5H/m5OQ/5qSj/+akpD/lIN9/41XQf+aSyr/qlMu/7ZaMv+9XDT/v100/8Bd
-        NP/BXjX/wV41/8FeNf/BXjX/wV41/8FdNP/EYTn/plou/4hIFZGQTR3it181/8JdNP/BXjX/wV41/8Fd
-        NP/BXjX/wV41/8FeNf/BXjX/wV41/8FdNP/BXTT/wV41/7xbM/+wVTD/oFIy/8Clmv/X09H/1tDN/9XP
-        zf/Vz8z/1M7M/9TOy//Tzcv/08zK/9LMyf/Sy8n/0cvI/9HKyP/Qysf/0MnG/8/Jxv/PyMX/zsjF/87H
-        xP/NxsT/zcbD/83Gw//MxcL/zMTC/8vEwf/Lw8H/ysPA/8rCv//Jwr//ycG+/8jBvv/IwL3/x8C9/8e/
-        vP/Hv7z/xr67/8a+u//Fvbr/xb26/8S9uf/EvLn/xLy4/8O7uP/Du7f/wrq3/8K6tv/Bubb/wbm2/8G5
-        tf/AuLX/wLi0/7+3tP+/t7P/v7az/762s/++tbL/vbWy/721sf+8tLD/vLOw/7uyr/+6sa3/ubCs/7iv
-        q/+3rqr/tq2p/7WsqP+0q6f/s6qm/7Kppf+xqKX/sKej/6+mov+upaL/raSh/6yjoP+rop//qqGe/6mg
-        nf+on5z/p56b/6admv+lnJn/pJuY/6ObmP+impf/oZmW/6CYlf+fl5T/n5aT/56Vk/+dlZL/nJWS/5aG
-        gP+LV0L/lUko/6dSLv+yVzH/u1w0/75dM//AXjT/wV00/8FeNf/BXjX/wV41/8FeNf/BXjX/wF00/8Rf
-        N/+vXDL/i0kYupNPH/m7YDf/wl41/8BdNP/BXjX/wl82/8FeNf/BXjX/wV00/8FeNf/BXTT/wF00/8Fe
-        Nf/AXTT/vFsz/7BVMP+fUjL/waWb/9jU0v/X0c//1tDO/9bQzv/Vz83/1c/M/9TOzP/Uzsv/083L/9PN
-        yv/SzMn/0svJ/9HLyP/Rysj/0MrH/9DJx//Pycb/z8jG/8/Ixf/Ox8T/zcfE/83Gw//NxsP/zMXC/8zF
-        wv/LxMH/y8TB/8rDwP/Kwr//ycK//8nBvv/Jwb7/yMG9/8jAvf/Hv7z/x7+8/8a/u//Gvrv/xb26/8W9
-        uv/Fvbn/xLy5/8S8uP/Du7j/w7u4/8K6t//Curf/wbm2/8G5tv/BubX/wLi1/8C4tP+/t7T/v7e0/7+2
-        s/++trP/vray/761sv+9tbH/vbSx/7yzsP+7sq//urGu/7mwrf+4r6z/t66r/7atqv+1rKn/tKuo/7Oq
-        p/+yqab/sail/7CnpP+vpqP/rqWi/62kof+so6D/q6Kf/6qhnv+poJ3/qJ+c/6eem/+mnZr/pZ2Z/6Sc
-        mf+jm5j/opqX/6GZlv+gmJX/n5eU/5+Ylf+YiIH/i1lC/5VKKf+mUi7/s1ky/7tcM/++XjX/wF82/8Ff
-        Nf/BXzX/wV81/8FfNv/BXjX/wV41/8FdNP/BXTT/xF82/7ReNP+OTRvVlVAg/75gN//BXTT/wFwz/8Je
-        Nf/BXzb/wV41/8FeNf/BXTT/wV41/8FeNf/BXjX/wV41/8BeNf+8WzP/r1Qv/59RMf/Bppz/2dXT/9jS
-        0P/X0s//19HP/9bRzv/W0M7/1dDN/9XPzP/Uzsz/1M7L/9TNy//Tzcr/0szK/9LMyf/Sy8n/0cvI/9HK
-        x//Qycf/0MnG/8/Jxv/PyMX/zsfF/87HxP/NxsT/zcbD/8zFwv/MxcL/y8TB/8vEwf/Kw8D/ysPA/8nC
-        v//Jwr//ycG+/8jBvv/IwL3/x8C8/8e/vP/Gv7z/xr67/8W+uv/Fvbr/xb26/8S8uf/EvLn/w7u4/8O7
-        uP/Durf/wrq3/8K5tv/Bubb/wbm1/8C4tf/AuLT/wLe0/7+3tP+/t7P/vraz/762sv++tbL/vbWx/720
-        sf+8s7D/u7Ov/7qxrv+5sa3/uK+s/7euq/+2rar/tayp/7SrqP+zqqf/sqmm/7Gopf+wp6T/r6aj/66l
-        ov+tpKH/rKOg/6ujn/+qoZ7/qaGd/6ignP+nn5z/pp6b/6Wdmv+knJn/pJuY/6Oal/+impj/m4qD/4xZ
-        Q/+WSyr/plMu/7NZMv+7XDT/v141/8FgNv/AXzX/wV81/8BeNP/BXjT/wV40/8FdNP/BXjX/wV41/8Fe
-        Nf/CXTT/t140/5FOHeaXUSH/v2E4/8FdNP/BXTT/wV41/8FeNf/BXjX/wF00/8FdNP/AXTT/wV41/8Jf
-        Nv/BXjX/wV82/7xcNP+vVC//oFMz/8Konf/b1tX/2dPR/9nT0f/Y09D/2NLQ/9fRz//X0c//1tDO/9bQ
-        zf/Vz83/1M7M/9TOzP/Uzsv/083K/9PMyv/SzMn/0svJ/9HLyP/Rysf/0MrH/9DJx//Pycb/z8jF/87H
-        xf/Ox8T/zcfE/83Gw//MxcP/zMXC/8zEwv/LxMH/y8PA/8rDwP/Kwr//ycK//8nBvv/Iwb7/yMC9/8fA
-        vf/Hv7z/x7+8/8a+u//Gvrv/xb66/8W9uv/EvLn/xLy5/8O8uP/Du7j/w7u3/8K6t//Curb/wbm2/8G5
-        tv/BuLX/wLi1/8C3tP+/t7T/v7ez/7+2s/++trL/vray/761sv+9tbH/vLSw/7uzr/+6sq7/ubGt/7iw
-        rP+3r6v/tq6q/7Wtqf+1rKj/s6un/7Kqpv+xqaX/sKik/6+no/+upqL/raWh/6ykoP+so6D/qqKe/6mh
-        nv+poJ3/qJ+c/6eem/+mnZr/pZ2a/52Nhv+NWkP/lUsq/6dVMP+zWjL/u141/79gNv/BYjf/wmE2/8Jf
-        Nf/CYDf/wWA2/8FgNv/BXzb/wV81/8FeNf/BXzb/wV41/8NfNv+5XzX/kk4e7JdRIP+/YDf/wV00/8Fe
-        Nf/BXTT/wV41/8BdNP/BXjX/wV41/8FeNf/BXjX/wV41/8FfNv/BXzb/u1sz/69UL/+gUjL/w6ie/9zY
-        1v/a1dP/2tTS/9nU0f/Z09H/2NPQ/9jS0P/X0c//19HO/9bQzv/W0M3/1c/N/9XPzP/Uzsz/1M7L/9PN
-        y//TzMr/0szJ/9LMyf/Ry8j/0crI/9DKx//Qycf/z8nG/8/Ixf/OyMX/zsfE/83HxP/NxsP/zcbD/8zF
-        wv/MxcL/y8TB/8vDwf/Kw8D/ysK//8nCv//Jwr7/yMG+/8jAvf/HwL3/x7+8/8e/vP/Gvrv/xr67/8W+
-        uv/Fvbr/xL25/8S8uf/DvLj/w7u4/8O7uP/Curf/wrq2/8K5tv/Bubb/wbm1/8C4tf/AuLT/wLe0/7+3
-        s/+/trP/vraz/761sv++tbL/vbWx/7y0sf+8s7D/u7Kv/7qxrv+5sK3/uK+s/7euqv+2ran/tayo/7Sr
-        p/+zqqb/sqmm/7GopP+wp6T/r6aj/66lov+tpKH/rKOg/6uin/+qoZ7/qaCd/6ignf+gkIn/j1xF/5ZM
-        K/+nVC//s1sz/7teNf+/YDb/wGA2/8JhNv/CYTX/wmE2/8JhNv/CYDb/wmA2/8FgN//BXzb/wV81/8Ff
-        Nf/BXzX/wl41/7lfNP+STx7tl1Eg/79fNv/BXTT/wV41/8FdNP/BXjX/wV41/8FeNf/BXzb/wV41/8Fe
-        Nf/BXTT/wV41/8BeNf+8XDT/r1Qv/59RMf/EqZ7/3dnX/9vW1P/b1tP/2tXT/9rU0v/Z1NL/2dPR/9jT
-        0P/Y0tD/19LP/9fRz//W0c7/1tDO/9XPzf/Vz8z/1M7M/9TOy//Tzcv/083K/9LMyf/SzMn/0cvI/9HK
-        yP/Qysf/0MnH/9DJxv/PyMb/zsjF/87HxP/Ox8T/zcbD/83Gw//MxcL/zMXC/8vEwf/LxMH/ysPA/8rD
-        v//Jwr//ycK//8jBvv/IwL3/yMC9/8fAvf/Hv7z/xr+7/8a+u//Fvrv/xb26/8S9uf/EvLn/xLy5/8O7
-        uP/Du7j/wrq3/8K6t//Curb/wbm2/8G5tf/AuLX/wLi0/8C3tP+/t7T/v7az/762s/++trL/vrWy/721
-        sf+9tLH/vLOw/7uyr/+6sa7/ubCt/7ivrP+3rqv/tq2q/7Wsqf+0q6j/s6qn/7Kppv+xqKX/sKek/6+m
-        o/+upaL/raSh/6yjoP+ro6D/o5OM/49dR/+VSyr/qFYx/7RcNP+8XzX/v2A2/8FiOP/BYjf/wmE3/8Ji
-        Nv/CYDX/wWA1/8JgNf/CYDX/wmA2/8FgNv/BYDf/wV81/8FeNf/DXzb/uF4z/5NPHu2YUSH/v183/8Fd
-        NP/BXjX/wV41/8FeNf/BXjX/wV41/8FeNf/BXjX/wF00/8FdNP/BXjX/wF41/7xbM/+vVC7/oFIy/8Wq
-        n//e2tn/3NfV/9zX1f/b1tT/29bU/9rV0//a1NL/2dTS/9nU0f/Y09H/2NLQ/9fSz//X0c//19HO/9bQ
-        zv/Vz83/1c/M/9TOzP/Uzsv/083L/9PNyv/SzMr/0szJ/9LLyf/Ry8j/0crH/9DJx//Qycb/z8jG/8/I
-        xf/Ox8T/zsfE/83GxP/NxsP/zMXC/8zFwv/LxMH/y8TB/8rDwP/Kw8D/ysK//8nCv//Jwb7/yMG+/8jA
-        vf/HwL3/x7+8/8a/vP/Gvrv/xr67/8W9uv/Fvbr/xLy5/8S8uf/Du7j/w7u4/8K6t//Curf/wrq2/8G5
-        tv/BubX/wLi1/8C4tP/At7T/v7e0/7+3s/++trP/vray/761sv+9tbL/vbSx/7y0sP+7sq//urKu/7mw
-        rf+4r6z/t66r/7atqv+1rKn/tKuo/7Oqp/+yqab/sail/7CnpP+vpqP/r6ek/6WVjv+QXkf/lkwr/6dV
-        MP+0XDT/vF82/8BiOP/CYzj/w2M4/8NjOP/CYjj/wmI3/8JiN//CYTf/wmE2/8JhNv/CYDX/wmA2/8Ff
-        Nf/CYDf/wV41/8NfNv+4XjP/k08f7ZhSIf+/Xzf/wl41/8FeNf/BXjX/wV41/8FdNP/BXTT/wV41/8Ff
-        Nv/AXTT/wF00/8BdNP/AXTT/vFw0/7BWMP+gVDP/xaug/9/b2v/e2df/3djW/9zX1f/c19X/3NbU/9vW
-        1P/a1dP/2tXS/9nU0v/Z1NH/2dPR/9jS0P/X0s//19LP/9fRzv/W0M7/1tDN/9XPzf/Vz8z/1M7M/9TN
-        y//Tzcr/08zK/9LMyf/Sy8n/0cvI/9HKx//Qysf/0MnG/8/Jxv/PyMX/zsfF/87HxP/Nx8T/zcbD/8zF
-        wv/MxcL/zMTC/8vEwf/Lw8D/ysPA/8rCv//Jwr//ycG+/8jBvv/IwL3/x8C9/8e/vP/Gv7z/xr67/8a+
-        u//Fvbr/xb26/8S8uf/EvLn/xLy4/8O7uP/Du7f/wrq3/8K6tv/Bubb/wbm2/8G4tf/AuLX/wLi0/7+3
-        tP+/t7P/v7az/762s/++trL/vbWy/721sf+8tLD/u7Ov/7uyrv+5sa3/uLCs/7evq/+2rqr/tq2p/7Ss
-        qP+0q6f/sqqm/7Kqp/+ol5D/kV9H/5ZNK/+oVjD/tV41/71hN//BZDj/wWM4/8NkOP/DYzj/w2Q4/8Nj
-        OP/CYjj/wmI4/8JiOP/CYTb/wWA1/8JhNv/CYTb/wmE2/8JgNv/BXzX/wl41/7heNP+UUB/tmVIh/79g
-        N//BXTX/wF00/8FeNf/BXjX/wV41/8FeNf/BXTT/wV41/8FeNf/BXjX/wV41/8BdNP+8XDP/r1Uv/6BT
-        M//GrKL/4N3b/97a2P/e2df/3tnX/93Y1v/d2Nb/3NfV/9zX1f/b1tT/29XT/9rV0//a1NL/2dTS/9nT
-        0f/Y09D/2NLQ/9fSz//X0c//1tDO/9bQzf/Vz83/1c/M/9TOzP/Uzsv/083K/9PMyv/SzMn/0svJ/9HL
-        yP/Rysj/0MrH/9DJx//Pycb/z8jF/87Ixf/Ox8T/zsfE/83Gw//NxcP/zMXC/8zFwv/LxMH/y8PA/8rD
-        wP/Kw8D/ycK//8nBvv/Iwb7/yMG+/8jAvf/Hv7z/x7+8/8a+u//Gvrv/xb66/8W9uv/Evbn/xLy5/8S8
-        uf/Du7j/w7u3/8K6t//Curf/wrm2/8G5tv/BuLX/wLi1/8C4tP/At7T/v7ez/7+2s/++trL/vray/761
-        sv+9tbH/vLSx/7yzsP+7sq//urGu/7mwrf+4r6z/t66q/7atqv+1rar/q5uT/5JhSf+WTSv/qFcx/7Ve
-        Nf+9YTf/wWM4/8JlOf/DZTn/w2Q5/8NkOP/CYzj/w2M3/8NjOP/CYzn/wmM4/8FhNv/BYDb/wmE2/8Jg
-        Nf/DYjf/w2E3/8JfNf/DXzb/uF81/5RQH+2ZUyL/v2A2/8FeNf/BXTT/wF00/8FeNf/BXjX/wV41/8Bd
-        NP/BXjX/wV82/8FeNf/BXjT/wF80/7xdNP+vVjD/oFQz/8eto//h3t3/4NvZ/9/b2f/f2tj/3tnX/97Z
-        1//d2Nb/3djW/9zX1f/c19X/29bU/9vW0//a1dP/2tTS/9nU0v/Z09H/2NPQ/9jS0P/X0s//19HP/9bR
-        zv/W0M7/1c/N/9XPzP/Uzsz/1M7L/9PNy//Tzcr/0szK/9LMyf/Ry8j/0crI/9HKx//Qycf/0MnG/8/I
-        xv/OyMX/zsfF/87HxP/NxsP/zcbD/8zFwv/MxcL/y8TB/8vEwf/Kw8D/ysPA/8nCv//Jwr//yMG+/8jA
-        vf/IwL3/x8C8/8e/vP/Gv7v/xr67/8W+uv/Fvbr/xb25/8S8uf/EvLn/w7u4/8O7uP/Curf/wrq3/8K6
-        tv/Bubb/wbm1/8C4tf/AuLT/wLe0/7+3s/+/trP/vraz/762sv++tbL/vbWx/720sf+8s7D/u7Kv/7qx
-        rv+5sK3/uLCt/66elv+UYkv/l08t/6hYMv+1XzX/vWI2/8FkOP/DZTn/xGY6/8RlOf/EZTn/w2Q4/8Nj
-        OP/DZDj/w2M4/8NkOf/CYjb/wmM4/8JiN//BYDb/wmE3/8FgNf/CYTb/wmI3/8RhN/+6YDX/lVEg7ZlT
-        Iv+/YDf/wV00/8FeNf/BXTT/wl82/8FeNf/BXjX/wV00/8FeNf/BXzb/wF00/8FfNf/AXjT/vF01/7BX
-        Mf+gVDT/yK6j/+Lf3v/h3Nr/4Nza/+Db2f/f29n/39rY/97Z2P/e2df/3djW/93Y1v/c19X/3NfV/9vW
-        1P/b1tT/2tXT/9rU0v/Z1NL/2dPR/9jT0f/Y0tD/19LP/9fRz//W0c7/1tDO/9XPzf/Vz8z/1c7M/9TO
-        y//Tzcv/083K/9PMyv/SzMn/0svI/9HLyP/Rysf/0MrH/9DJxv/PyMb/z8jF/87Hxf/Ox8T/zcbD/83G
-        w//MxcL/zMXC/8vEwf/LxMH/ysPA/8rDwP/Kwr//ycK//8nBvv/Iwb7/yMC9/8fAvf/Hv7z/xr+7/8a+
-        u//Gvrv/xb26/8W9uv/EvLn/xLy5/8O7uP/Du7j/wrq3/8K6t//Curb/wbm2/8G5tf/AuLX/wLi1/8C3
-        tP+/t7T/v7ez/762s/++trL/vrWy/721sv+9tLH/vLSw/7y0sf+xoZn/lWRM/5dQLP+pWTL/tl82/75j
-        OP/BZDj/w2Y6/8RnOv/EZzr/xGY6/8RmOv/EZTn/w2U5/8NlOf/CYzf/w2Q5/8NjOP/DYzj/wmI4/8Ji
-        OP/CYjf/wWA1/8JhNv/CYTX/xGI3/7lfNP+VUR/tmlMi/79gN//CXjX/wV00/8BdNP/BXTT/wF00/8Fd
-        NP/BXTX/wV41/8FeNf/BXjT/wF41/8FgNv+9XjX/sFcx/6FVNP/Ir6T/5OHf/+Le3P/h3dv/4dzb/+Dc
-        2v/g29r/39vZ/9/a2P/e2tj/3tnX/93Z1//d2Nb/3NfV/9zX1f/c1tT/29bU/9rV0//a1dL/2tTS/9nU
-        0f/Z09H/2NLQ/9fS0P/X0c//19HO/9bQzv/V0M3/1c/N/9XPzP/Uzsz/1M3L/9PNyv/TzMr/0szJ/9LL
-        yf/Ry8j/0crH/9DKx//Qycb/z8nG/8/Ixf/OyMX/zsfE/83GxP/NxsP/zMXC/8zFwv/MxMH/y8TB/8rD
-        wP/Kw8D/ysK//8nCv//Jwb7/yMG+/8jAvf/HwL3/x7+8/8a/vP/Gvrv/xr67/8W9uv/Fvbr/xLy5/8S8
-        uf/DvLj/w7u4/8O7t//Curf/wrq2/8G5tv/BubX/wLi1/8C4tf/AuLT/v7e0/7+3s/+/trP/vraz/761
-        sv++t7P/s6Ob/5VlTf+XUS3/qVoz/7ZhNv++ZTj/wmY5/8RnOv/EZzr/xGc7/8NlOf/EZjn/xGY6/8Rm
-        Ov/EZTn/xGU5/8NkOP/DZTn/w2M4/8NjOP/DYzf/wmI3/8JiN//CYjf/wmI3/8JjN//EYjf/uWA1/5ZS
-        IO2bVCP/v182/8FdNP/BXjX/wV82/8BdNP/BXzb/wV41/8BdNP/BXjX/wV81/8BeNP/BXzb/wV81/71e
-        Nf+wVzH/oVU0/8mwpf/l4uH/49/d/+Pe3f/i3tz/4d3b/+Hd2//h3Nr/4Nza/+Db2f/f2tj/3trY/97Z
-        1//e2df/3djW/93Y1v/c19X/3NfV/9vW1P/b1dP/2tXT/9rU0v/Z1NL/2dPR/9jT0P/Y0tD/19LP/9fR
-        z//W0M7/1tDN/9XPzf/Vz8z/1M7M/9TOy//Tzcr/083K/9LMyf/Sy8n/0cvI/9HKyP/Qysf/0MnH/8/J
-        xv/PyMX/z8jF/87HxP/Nx8T/zcbD/83Gw//MxcL/zMXC/8vEwf/Lw8D/ysPA/8rDwP/Jwr//ycG+/8jB
-        vv/Iwb7/yMC9/8e/vP/Hv7z/xr+7/8a+u//Fvrr/xb26/8S9uf/EvLn/xLy4/8O7uP/Du7f/wrq3/8K6
-        t//Cubb/wbm2/8G4tf/AuLX/wLi0/7+3tP+/t7P/v7i1/7Sknf+WZk3/mFEt/6lbM/+3Yjf/v2Y6/8No
-        O//EaDv/xWg6/8VoOv/EZjn/xWc7/8NmOf/EZzr/xGY5/8RmOv/EZjr/xGU5/8RlOf/DZDj/w2Q5/8Nj
-        OP/DYzj/w2M4/8NjN//CYzj/wmI4/8RiOP+6Yjb/llIh7ZtUI/+/YDf/wl41/8FeNf/BXjX/wV41/8Jf
-        Nv/BXjX/wF00/8FfNf/BXzb/wV81/8JgNv/BYDb/vV00/7BXMP+hVTT/yrGm/+bj4v/k4N7/49/e/+Pf
-        3f/j393/4t7c/+Ld3P/h3dv/4dzb/+Dc2v/g29n/39vZ/9/a2P/e2tj/3tnX/93Y1v/d2Nb/3NfV/9zX
-        1f/b1tT/29bT/9rV0//a1dL/2dTS/9nT0f/Y09D/2NLQ/9fSz//X0c//1tHO/9bQzv/V0M3/1c/N/9TO
-        zP/Uzsv/083L/9PNyv/SzMr/0szJ/9HLyP/Ry8j/0crH/9DJx//Qycb/z8jG/8/Ixf/Ox8X/zsfE/83G
-        w//NxsP/zMXC/8zFwv/LxMH/y8TB/8rDwP/Kw8D/ycK//8nCv//Jwb7/yMG+/8jAvf/HwLz/x7+8/8a/
-        vP/Gvrv/xb67/8W9uv/Fvbn/xLy5/8S8uf/Du7j/w7u4/8K6t//Curf/wrq2/8G5tv/BubX/wLi1/8G5
-        tv+1pp7/l2ZO/5hRLf+qXDX/t2I3/79mOf/DaDr/xGo8/8RoO//FaDr/xWg6/8RnOv/FaDv/xWg7/8Vn
-        Ov/EZjn/xGY5/8RmOv/EZTn/xGQ5/8RlOf/EZjr/w2U5/8NkOf/DYzn/w2M4/8JiN//CYjf/xGM5/7ph
-        Nv+XUiDtm1Uj/79gN//CXjX/wV41/8FeNf/BXjX/wV41/8FfNf/BXzX/wF41/8FgNv/CYDb/wmA2/8Fh
-        Nv+9XjT/sFcw/6FWNf/Lsqf/5+Tj/+Xh4P/l4d//5ODf/+Tg3v/j393/49/d/+Le3P/i3dz/4d3b/+Hc
-        2//g3Nr/4NvZ/9/b2f/f2tj/3trY/97Z1//d2Nb/3djW/9zX1f/c19X/29bU/9vW0//a1dP/2tXS/9nU
-        0v/Z09H/2NPR/9jS0P/Y0s//19HP/9bRzv/W0M7/1tDN/9XPzf/Uzsz/1M7L/9PNy//Tzcr/08zK/9LM
-        yf/Ry8j/0cvI/9HKx//Qysf/0MnG/8/Ixv/PyMX/zsfF/87HxP/NxsP/zcbD/8zFwv/MxcL/y8TB/8vE
-        wf/Kw8D/ysPA/8rCv//Jwr//ycG+/8jBvv/IwL3/x8C9/8e/vP/Gv7z/xr67/8a+u//Fvbr/xb26/8S8
-        uf/EvLn/w7u4/8O7uP/Du7f/wrq3/8K6tv/Curf/t6eg/5hoUP+ZUi//qlw0/7ZiN/++Zjn/w2k8/8Vq
-        PP/Gazz/xmo8/8ZqPP/FaTv/xWo7/8VpOv/FaDr/xWg6/8VoO//EZzr/xGY5/8RmOv/DZTn/xGU5/8Rl
-        Of/EZTn/w2Q4/8JjOP/DYzn/w2M4/8JjN//EYjj/umE2/5hTIe2cVST/v2A3/8BcM//BXzb/wl82/8Ff
-        Nf/BXzX/wV81/8BeNP/CYDb/wmA1/8FfNP/CYTX/wWA1/71fNv+xWTL/oVU1/8yzqf/o5eT/5uLh/+bi
-        4P/l4eD/5eHf/+Tg3//k4N7/49/d/+Pf3f/i3tz/4t7c/+Hd2//h3Nv/4Nza/+Db2v/f29n/39rY/97a
-        2P/e2df/3dnX/93Y1v/c19X/3NfV/9vW1P/b1tT/2tXT/9rV0v/a1NL/2dTR/9jT0f/Y0tD/2NLQ/9fR
-        z//X0c7/1tDO/9bQzf/Vz83/1c/M/9TOy//Uzcv/083K/9PMyv/SzMn/0svJ/9HLyP/Rysj/0MrH/9DJ
-        xv/PyMb/z8jF/87Ixf/Ox8T/zcbE/83Gw//NxsP/zMXC/8vEwf/LxMH/y8PB/8rDwP/Kwr//ycK//8nB
-        vv/Iwb7/yMC9/8fAvf/Hv7z/x7+8/8a+u//Gvrv/xb26/8W9uv/Evbn/xLy5/8O8uP/Du7j/w7y5/7io
-        of+YaFD/mVQv/6pcNP+4ZDn/wGk7/8RqPP/FbD3/xms9/8ZrPf/Gazz/xmo8/8VqO//Fajz/xWk8/8Vp
-        O//EaDr/xWg7/8VnOv/EZzr/xGY5/8NmOf/DZTj/xGY6/8RlOf/DZTn/w2Q4/8NkOP/DYzn/w2M4/8Rj
-        OP+6Yjb/mFMi7Z1WJP+/YTj/wV00/8FeNf/BXzb/wmA2/8FeNf/AXzX/wWA2/8JgNv/CYDb/wmE2/8Jh
-        Nv/BYTf/vV41/7FYMv+hVjT/zLSp/+nn5v/n5OL/5+Pi/+bj4f/m4uH/5eLg/+Xh4P/k4N//5ODe/+Pf
-        3v/j393/4t7d/+Le3P/h3dv/4d3b/+Hc2v/g3Nr/39vZ/9/a2P/f2tj/3tnX/97Z1//d2Nb/3djW/9zX
-        1f/c19T/29bU/9vV0//a1dP/2tTS/9nU0v/Z09H/2NPQ/9jS0P/X0s//19HP/9bQzv/W0M7/1c/N/9XP
-        zP/Uzsz/1M7L/9PNy//Tzcr/0szJ/9LLyf/Ry8j/0crI/9DKx//Qycf/z8nG/8/Ixv/PyMX/zsfE/83H
-        xP/NxsP/zcbD/8zFwv/MxML/y8TB/8vEwf/Kw8D/ysK//8nCv//Jwb7/ycG+/8jAvf/IwL3/x7+8/8e/
-        vP/Gv7v/xr67/8W9uv/Fvbr/xb25/8W9u/+5qaL/mWpQ/5pVMP+rXjT/uGU4/8BqO//EbD3/xWs8/8Zs
-        Pf/HbD3/xms8/8ZrPf/Fajv/xms8/8VpOv/FaTv/xWk8/8RoOv/FaDr/xWg6/8VnOv/FaDr/xWc7/8Rn
-        O//EZjr/w2U5/8RlOv/DZDn/w2Q4/8NkOf/CYzj/xGM4/7tjN/+ZVCHtnVYk/79gN//BXTT/wV82/8Fe
-        NP/BXzX/wV82/8FgNv/CYDX/wmE1/8FgNf/CYTb/wmM4/8FiOP+9YDf/slsz/6JXNf/Ntar/6ujn/+jl
-        4//o5OP/5+Tj/+fj4v/m4+H/5uLh/+bi4P/l4eD/5OHf/+Tg3v/k397/49/d/+Pf3f/i3tz/4t3c/+Hd
-        2//h3Nv/4Nza/+Db2f/f2tn/39rY/97a2P/e2df/3djW/93Y1v/c19X/3NfV/9vW1P/b1dP/2tXT/9rV
-        0v/Z1NL/2dPR/9jT0f/Y0tD/19LP/9fRz//W0M7/1tDO/9XQzf/Vz8z/1M7M/9TOy//Uzcv/083K/9LM
-        yv/SzMn/0svJ/9HLyP/Rysf/0MnH/9DJxv/PyMb/z8jF/87Hxf/Ox8T/zcbE/83Gw//MxcL/zMXC/8vE
-        wf/LxMH/ysPA/8rDwP/Jwr//ycK//8nBvv/Iwb7/yMC9/8fAvP/Hv7z/xr+8/8a+u//Gv7z/uquj/5lq
-        UP+aVS//rGA3/7lmOv/Bazz/xW09/8ZtPf/GbTz/x20+/8dtPv/Gazz/xms8/8ZrPP/Fazz/xms8/8Zq
-        O//Gajz/xWo8/8VpO//FaTv/xWg6/8RnOf/FZzr/xWg7/8RmOv/EZjn/xGY6/8RlOf/EZjr/w2U5/8Jk
-        OP/EZDn/vGQ4/5lUIu2eViX/v2A3/8BcM//BXjT/wF40/8BeNf/BXzX/wmA2/8JhNv/CYTb/wWA1/8Jj
-        OP/CYjj/wWI3/75gN/+yWjP/olg2/862q//r6ej/6ebl/+nm5P/o5eT/6OTj/+fk4//n4+L/5uPh/+bi
-        4f/m4uD/5eHg/+Xh3//k4N//5ODe/+Pf3v/j393/4t7c/+Ld3P/h3dv/4dzb/+Dc2v/g29n/39vZ/9/a
-        2P/e2tj/3tnX/93Y1v/d2Nb/3NfV/9zX1f/b1tT/29bT/9rV0//a1dL/2dTS/9nT0f/Y09H/2NLQ/9fS
-        z//X0c//1tHO/9bQzv/W0M3/1c/N/9TOzP/Uzsv/1M3L/9PNyv/TzMr/0szJ/9LLyf/Ry8j/0crH/9DK
-        x//Qycb/z8nG/8/Ixf/Ox8X/zsfE/83Gw//NxsP/zMXC/8zFwv/LxMH/y8TB/8rDwP/Kw8D/ysK//8nC
-        v//Jwb7/yMG+/8jAvf/HwL3/x8C+/7yspf+aa1H/mlcx/6xgNv+5aDr/wWw8/8VuPv/Hbz7/x249/8du
-        Pf/HbT3/x209/8dtPv/HbT7/x2s8/8dsPf/Gazz/xms8/8dsPf/Gajv/xmo7/8VpPP/EaDr/xGg6/8Vo
-        Ov/FZzn/xWc7/8RnO//EZzr/xGY5/8RlOf/EZDn/w2Q4/8VlOv+7ZDj/mlUi7Z5WJf/AYTj/wV00/8Ff
-        Nf/BXzb/wV81/8JfNf/CYTf/wmE2/8JhNf/CYjf/wmE3/8JhN//CYjf/vmE3/7JbM/+iWDb/zrer/+zq
-        6f/q5+b/6ufm/+nm5f/p5uT/6OXk/+jl4//o5OP/5+Ti/+fj4v/m4uH/5uLg/+Xh4P/l4d//5ODf/+Tg
-        3v/j397/49/d/+Le3P/i3dz/4d3b/+Hd2//g3Nr/4NvZ/9/b2f/f2tj/3trY/97Z1//d2df/3djW/93Y
-        1f/c19X/29bU/9vW1P/a1dP/2tXT/9rU0v/Z1NH/2dPR/9jT0P/Y0tD/19HP/9bRzv/W0M7/1tDN/9XP
-        zf/Vz8z/1M7L/9TOy//Tzcr/08zK/9LMyf/Sy8n/0cvI/9HKyP/Qysf/0MnG/8/Jxv/PyMX/zsjF/87H
-        xP/NxsT/zcbD/8zFw//MxcL/y8TB/8vEwf/Lw8D/ysPA/8rCv//Jwr//ycG+/8nCv/+9rqf/m21T/5pY
-        Mf+sYTb/uWk7/8FtPv/Fbz7/x3A//8hxP//Ibz7/x249/8hvPv/Ibz7/yG8+/8dtPf/HbT7/x20+/8ds
-        PP/Gazv/xms8/8ZrPf/Gazz/xmo8/8VqPP/FaTv/xWk7/8RnOf/FZzr/xWc6/8RnO//DZjn/w2U5/8Rm
-        Ov/EZTr/xWU4/7tkOP+aVSPtn1cm/8BhOP/BXjX/wWA3/8FgNv/BXzX/wmA2/8JhNv/CYTb/wWE2/8Ji
-        OP/CYjf/w2M4/8JjOP++YTf/slsz/6JYNf/PuK3/7evr/+vo5//r6Of/6ufm/+rn5v/q5uX/6ebk/+jl
-        5P/o5eP/6OTj/+fk4v/n4+L/5uPh/+bi4P/l4uD/5eHf/+Tg3//k4N7/5ODe/+Pf3f/i3t3/4t7c/+Hd
-        2//h3dv/4dza/+Db2v/f29n/39vZ/9/a2P/e2df/3tnX/93Y1v/d2Nb/3NfV/9zX1P/b1tT/29bT/9rV
-        0//a1NL/2dTR/9nT0f/Y09D/2NLQ/9fRz//X0c//1tHO/9bQzv/Vz83/1c/M/9TOzP/Uzsv/083L/9PN
-        yv/SzMn/0svJ/9HLyP/Rysj/0MrH/9DJxv/Qycb/z8jG/87Ixf/Ox8T/zsfE/83Gw//NxsP/zMXC/8zE
-        wv/LxMH/y8TB/8rDwP/LxMH/vq+n/5ttU/+bWTL/rGI3/7lpO//BbT3/xnA//8hxQP/IckD/yHA//8hx
-        P//IcD7/yG8+/8hvPv/Ibz//x249/8dtPP/GbDz/xmw9/8ZsPf/Gazz/xms8/8VrPP/Gazz/xmo8/8Vq
-        O//Fajz/xGg6/8RnOv/EZzr/xWg6/8VoO//EZzr/xGY5/8RmOf/FZTn/vGQ4/5tVI+2fWCb/wGI4/8Fe
-        Nf/BYDb/wmA2/8FfNf/BYDX/wmA1/8JiN//CYzj/wmI3/8NjOP/DYzf/wmQ4/75iN/+yWzP/olg2/9C5
-        rv/u7ez/7Orp/+zp6P/r6ef/6+jn/+rn5v/q5+b/6ufl/+nm5f/p5eT/6OXk/+jk4//n5OL/5+Pi/+bj
-        4f/m4uH/5eLg/+Xh4P/k4d//5ODf/+Tg3v/j393/497d/+Le3P/i3dz/4d3b/+Hc2v/g3Nr/4NvZ/9/b
-        2f/f2tj/3tnY/97Z1//d2db/3djW/9zX1f/c19X/29bU/9vW0//a1dP/2tTS/9nU0v/Z1NH/2NPR/9jS
-        0P/X0s//19HP/9fRzv/W0M7/1c/N/9XPzP/Uz8z/1M7L/9PNy//Tzcr/0szK/9LMyf/Sy8n/0cvI/9DK
-        x//Qycf/0MnG/8/Ixv/PyMX/zsfE/87HxP/NxsP/zcbD/8zFwv/MxcL/zMbD/7+xqf+bblP/m1ky/61j
-        N/+7azz/wm8+/8ZxQP/IckH/yXJA/8lyQP/IcD7/yHA//8hxQP/IcD//yHA+/8hwQP/Ibz//yG49/8dt
-        PP/Hbj3/xmw9/8dtPf/HbD3/x2w9/8ZrPP/Gaz3/xmo7/8ZqO//FaTv/xGg6/8VpO//FaTv/xWg7/8Vo
-        O//EZzr/xGY5/8VmOv+8ZDj/nFYk7aBYJv+/YTj/wV82/8FfNf/CYTb/wmE2/8JgNf/CYTb/wmI4/8Jj
-        OP/CYjf/w2I3/8NkOf/DZTn/v2M4/7JcNP+iWTf/0bqu/+/u7f/t6+r/7erp/+zq6f/s6ej/7Ono/+vo
-        5//r6Ob/6ufm/+rn5f/p5uX/6ebk/+jl5P/o5eP/5+Tj/+fj4v/m4+H/5uPh/+bi4P/l4eD/5eHf/+Tg
-        3//k4N7/49/e/+Pf3f/i3tz/4t7c/+Hd2//h3Nv/4Nza/+Db2f/f29n/39rY/97a2P/e2df/3dnX/93Y
-        1v/c19X/3NfV/9vW1P/b1tT/2tXT/9rV0v/Z1NL/2dTR/9nT0f/Y0tD/19LP/9fRz//X0c7/1tDO/9bQ
-        zf/Vz83/1M7M/9TOzP/Uzcv/083K/9PMyv/SzMn/0svJ/9HLyP/Rysf/0MnH/9DJxv/Pycb/z8jF/87H
-        xf/Ox8T/zcbE/87HxP/Bsqv/nW9U/5xaMv+tZDj/u2w8/8JwPv/HckD/yXRB/8l0Qf/Jc0H/yHE//8ly
-        QP/JckD/yXFA/8lxQP/IcT//yHA//8hwP//IcD//yW8//8hvP//Hbj7/x24+/8dsPf/HbD3/x2w9/8ds
-        Pv/Gaz3/xWo7/8VpOv/FaTv/xGk7/8VoOv/EZzn/xWc6/8VoO//EZzv/xmg7/71mOf+cViTtoFgn/8Bi
-        Of/CYDb/wmE2/8JhNv/CYDX/wmE3/8FhN//CYjf/wmI2/8NjOP/CYjf/w2Q4/8NkOP+/Yzj/slw0/6Na
-        N//Suq//8O/u/+7s6//u6+r/7evq/+3q6f/s6un/7Ono/+zp6P/r6Of/6+jm/+rn5v/q5+b/6ebl/+nm
-        5P/o5eT/6OXj/+jk4//n5OL/5+Ph/+bj4f/m4uH/5eHg/+Xh3//k4N//5ODe/+Pf3v/j393/4t7c/+Le
-        3P/h3dv/4d3b/+Dc2v/g29n/4NvZ/9/a2P/e2tj/3tnX/93Z1//d2Nb/3NjV/9zX1f/b1tT/29bU/9vV
-        0//a1dP/2dTS/9nU0f/Z09H/2NPQ/9jS0P/X0c//19HP/9bQzv/W0M3/1c/N/9XPzP/Uzsz/1M7L/9PN
-        yv/TzMr/0szJ/9LLyf/Ry8j/0crH/9DKx//Qycf/z8nG/8/Ixf/Pycb/wrWt/51wVf+bWjL/rmY5/7ps
-        PP/Dcj//x3RA/8h0QP/KdUL/ynRB/8p0Qf/Kc0H/yXNA/8lzQf/IckD/yXJA/8lyQP/JckD/yXJB/8dw
-        Pv/IcD//yG8+/8hvP//Hbj7/x209/8ZsPP/GbD3/x209/8ZrPf/Gazz/xmo7/8ZqO//FaTv/xGg6/8Vo
-        Ov/FZzr/xGg6/8VpPP/FZzr/vWY5/5xXJO2hWCb/wGI4/8JgNf/CYTb/wmE2/8JiN//CYzj/wmI4/8Nj
-        OP/DYzj/w2Q5/8JjN//DZDj/w2U5/79jOf+yXTT/o1o3/9K7sP/x8PD/7+3s/+/s6//u7Ov/7uvq/+3r
-        6v/t6un/7erp/+zq6P/s6ej/6+jn/+vo5//q5+b/6ufm/+nm5f/p5uT/6OXk/+jl4//o5OP/5+Ti/+fj
-        4v/m4uH/5uLh/+Xi4P/l4d//5ODf/+Tg3v/j397/49/d/+Le3f/i3tz/4t3b/+Hd2//g3Nr/4Nva/+Db
-        2f/f2tn/39rY/97Z1//e2df/3djW/93Y1v/c19X/3NbU/9vW1P/b1dP/2tXT/9rU0v/Z1NH/2dPR/9jT
-        0P/Y0tD/19HP/9fRzv/W0M7/1tDN/9XPzf/Vz8z/1M7M/9TOy//Tzcv/08zK/9LMyf/SzMn/0cvI/9HK
-        yP/Qysf/0cvI/8O2rv+dclf/m1sy/61mOf+6bT3/w3JA/8h2Qv/JdkH/ynZC/8p2Qv/KdUL/ynRB/8p1
-        Qf/KdEH/yXNA/8lyQP/JckD/yHJA/8hxPv/JckD/yHJA/8hwP//IcD//yHA//8huPv/HbT3/xm09/8Zt
-        Pf/GbDz/x2w9/8ZsPf/GbD3/xmo8/8VpO//FaTr/xWo8/8VpO//FaTv/xWk7/8ZnO/+9Zzr/nVck7aFZ
-        J//AYjj/w2E2/8JhNv/CYTb/wmM4/8JhN//DYjf/w2Q5/8NjOP/DZDj/w2Q4/8RlOf/DZTr/v2M4/7Jd
-        NP+jWjf/07yx//Lx8f/w7u3/8O7t/+/t7P/v7Ov/7+zr/+7s6//u6+r/7evp/+3q6f/s6un/7Ono/+vp
-        5//r6Of/6+jm/+rn5v/q5+X/6ebl/+nl5P/o5eT/6OTj/+fk4v/n4+L/5+Ph/+bi4f/l4uD/5eHg/+Th
-        3//k4N//5ODe/+Pf3f/j3t3/4t7c/+Ld3P/h3dv/4dza/+Dc2v/g29n/39vZ/9/a2P/e2df/3tnX/93Y
-        1v/d2Nb/3NfV/9zX1f/b1tT/29bU/9rV0//a1NL/2dTS/9nT0f/Y09H/2NLQ/9fSz//X0c//1tHO/9bQ
-        zv/Vz83/1c/M/9XOzP/Uzsv/083L/9PNyv/SzMn/0szJ/9PNyv/Dtq//mnBV/5hZMf+rZjn/uW09/8Jz
-        QP/HdkL/yXhD/8p3Qv/Kd0P/yndC/8p2Qv/KdEH/ynVB/8p1Qv/KdUL/ynRB/8p0Qf/Jc0D/yHE//8hx
-        P//JcT//yHE//8hxP//IcD//yHA//8hwP//Ibz7/xm08/8dtPf/Hbj7/x24+/8ZsPP/Gazz/xms8/8Vp
-        O//FaTv/xWk7/8RoOv/FaTv/xmg7/75nOv+eWCXtoloo/8FkOf/CYTb/wmE2/8JjOP/CYTf/wmE2/8Ni
-        Nv/CYjj/w2M4/8RlOf/EZTr/xGY6/8NlOf+/ZDj/s100/6NaN//UvLL/8/Ly//Hv7v/x7+7/8O7t//Du
-        7f/v7ez/7+3s/+/s6//u7Ov/7uvq/+3r6v/t6un/7Orp/+zp6P/s6ej/6+jn/+vo5//q5+b/6ufl/+nm
-        5f/p5uT/6OXk/+jl4//n5OP/5+Pi/+bj4v/m4uH/5uLg/+Xh4P/l4d//5ODf/+Tg3v/j393/49/d/+Le
-        3P/i3tz/4d3b/+Hc2//g3Nr/4Nva/9/b2f/f2tj/3trY/97Z1//d2df/3djW/9zX1f/c19X/3NbU/9vW
-        1P/a1dP/2tXS/9rU0v/Z1NH/2NPR/9jS0P/X0s//19HP/9fRzv/W0M7/1dDN/9XPzf/Vz8z/1M7M/9TN
-        y//Uzsz/wrew/5FrU/+MUy7/n181/69oOv+5bj3/wHJA/8R0Qf/GdkL/yHdD/8l3Qv/Jd0L/yndD/8p2
-        Qv/KdUH/ynVB/8p1Qv/KdUH/ynVB/8p0Qf/KdEL/yXNA/8lyQf/JckD/yHA//8hwP//Hbz3/yG8+/8hv
-        P//Ibz7/x249/8duPv/HbT3/x20+/8dtPv/GbD3/xms8/8ZqPP/FaTv/xWk7/8VpOv/GaDr/vmc6/59Y
-        Ju2iWif/wGM4/8JhNv/CYjf/wWA2/8JhNv/DYzf/wmI3/8NkOP/DZTj/xGU5/8RnO//EZzr/wmU4/79j
-        OP+zXjX/o1o3/9S+s//08/P/8vDv//Lw7//x7+7/8e/u//Du7f/w7u3/7+3s/+/t7P/v7Ov/7uzr/+7r
-        6v/t6+r/7erp/+3q6f/s6ej/7Ono/+vo5//r6Of/6ufm/+rn5v/p5uX/6ebk/+jl5P/o5eP/6OTj/+fk
-        4v/n4+L/5uPh/+bi4f/l4eD/5eHf/+Tg3//k4N7/49/e/+Pf3f/i3t3/4t7c/+Hd2//h3dv/4Nza/+Dc
-        2v/g29n/39rY/97a2P/e2df/3tnX/93Y1v/d2Nb/3NfV/9zX1P/b1tT/29XT/9rV0//Z1NL/2dTR/9nT
-        0f/Y09D/2NLQ/9fSz//X0c//1tDO/9bQzf/Vz83/1tDO/8G3sf+DY0//eEgo/4tTL/+bXTX/p2U5/65p
-        O/+0bD3/uG49/71wP//Bc0H/xHVC/8Z0QP/IdkL/yXdC/8l2Qf/JdUH/ynVB/8p1Qf/KdUL/yXRB/8p0
-        Qf/Kc0D/ynNB/8lyQP/IcT//yXE//8dvPv/HcD//yHE//8hvPv/Ibj7/x249/8duPv/HbT3/x20+/8ds
-        Pf/GbDz/xms9/8ZrPP/Gajz/xWk7/8ZpO/++aTv/n1kl7aNaKP/BYzj/wmI3/8FiN//CYjf/w2M4/8Nj
-        OP/DZDj/w2Q4/8RlOf/EZjr/xGY5/8RnO//EZzr/wGU5/7NeNf+jWjb/1b6z//X09P/z8fD/8/Hw//Lw
-        7//y8O//8e/u//Hv7v/x7u7/8O7t//Dt7P/v7ez/7+3s/+7s6//u6+r/7evq/+3q6f/t6un/7Ono/+zp
-        6P/r6Of/6+jn/+rn5v/q5+b/6ebl/+nm5P/p5eT/6OXj/+jk4//n5OL/5+Pi/+bj4f/m4uH/5eHg/+Xh
-        3//k4d//5ODe/+Pf3v/j393/4t7c/+Le3P/h3dv/4d3b/+Dc2v/g3Nr/4NvZ/9/a2f/e2tj/3tnX/97Z
-        1//d2Nb/3djW/9zX1f/c19X/29bU/9vV0//a1dP/2tTS/9nU0v/Z09H/2NPQ/9jS0P/X0c//19HP/9fR
-        z//CubT/d19P/2E8JP9wRSj/fUwr/4hRLf+QVS7/mFoy/59fNf+lYjf/q2c6/7JqO/+4bT3/vXFA/8Jz
-        Qf/FdUH/yHdD/8h2Qv/Kd0P/ynZC/8p2Qv/KdUL/ynVC/8p1Qv/KdED/yXNA/8hyP//IckD/yXJA/8lx
-        P//IckD/yHE//8hwP//Ibz7/yG8+/8dtPf/Hbj7/x2w9/8ZsPP/Gazz/xms9/8ZrPP/Gajz/xmo8/75p
-        O/+gWSftpFsp/8FkOv/DYjj/wmI4/8NjOP/DZDn/w2M4/8NkOP/DZTn/xGU5/8RmOv/EZzr/xWc6/8Rn
-        Ov/AZjn/s140/6NcOP/Wv7X/9vX1//Ty8f/z8vH/8/Hw//Px8P/y8PD/8vDv//Hv7//x7+7/8e/u//Du
-        7f/w7u3/7+3s/+/t7P/u7Ov/7uzr/+7r6v/t6un/7erp/+zq6P/s6ej/6+jn/+vo5//r6Ob/6ufm/+rm
-        5f/p5uX/6ebk/+jl5P/o5OP/5+Ti/+fj4v/m4+H/5uLh/+Xi4P/l4eD/5eHf/+Tg3//k4N7/49/d/+Pe
-        3f/i3tz/4t3c/+Hd2//h3Nr/4Nza/+Db2f/f29n/39rY/97Z1//e2df/3djW/93Y1v/c19X/3NfV/9vW
-        1P/b1tP/2tXT/9rU0v/Z1NL/2dPR/9jT0f/Y0tD/2NLQ/8K5tf+pm5P/rJ2U/6eTh/+iiXr/mnxo/5Js
-        VP+LYEP/hVMy/4lSLv+RVi//mlsz/6RiN/+taDr/tGs8/7tvPv/BckD/xHNA/8h3Qv/Jd0L/yXVB/8p2
-        Qv/KdkL/ynVC/8p1Qv/KdEH/ynNB/8lyQP/IcT//yXJA/8hwP//IcT//yHE//8hwPv/Ibz//yG8+/8du
-        Pf/GbT3/x2w9/8ZsPP/HbD3/xmw+/8ZrPP/Gajv/vmk7/6BaJ+2kWyn/wWQ6/8JhN//DYjf/w2I3/8Nk
-        Of/CZDf/w2Q4/8RlOf/EZTn/w2Y5/8VoO//FZzr/xGc6/8BmOf+zXzX/pF05/9bAtf/39vb/9fPz//Tz
-        8v/08vL/8/Lx//Px8f/z8fD/8vHw//Lw7//x8O//8e/u//Hv7v/w7u3/8O7t/+/t7P/v7ez/7+zr/+7s
-        6//u6+r/7evq/+3q6f/s6un/7Ono/+vp5//r6Of/6+jn/+rn5v/q5+X/6ebl/+nm5P/o5eT/6OXj/+fk
-        4//n5OL/5+Pi/+bi4f/m4uD/5eHg/+Xh3//k4N//5ODe/+Pf3f/j393/4t7c/+Le3P/h3dv/4dzb/+Dc
-        2v/g29r/39vZ/9/a2P/e2tj/3tnX/93Z1//d2Nb/3NfV/9zX1f/b1tT/29bU/9rV0//a1dP/2tTS/9nU
-        0f/Y09H/2NPR/9nT0f/Y09H/19LQ/9bRz//V0M3/0MnF/8W6tP+4p53/pIp5/5BqUf+GVjf/iFEt/5NX
-        Mf+fXzb/qmU5/7NqO/+7bz7/wnNA/8V1QP/IdkH/yndD/8p3Q//KdkP/ynVC/8p1Qv/KdUL/ynRB/8ly
-        QP/JcUD/yHE//8lyQP/IcT//yXJA/8hvPv/Ibz//yG8+/8dtPf/HbT3/x209/8dsPP/GbD3/xms9/8dr
-        PP+/ajv/oVon7aVcKv/AZDr/wmE2/8NiN//DYzj/w2Q5/8NlOf/EZTn/xGY5/8NlOP/EZzr/xWc6/8Vo
-        Ov/EaDr/v2U4/7NeNP+kXDj/18G2//f39//19PT/9fTz//Xz8//08/L/9PLy//Ty8f/z8fH/8/Hw//Lx
-        8P/y8O//8vDv//Hv7v/x7+7/8O7t//Du7f/v7ez/7+3s/+/s6//u7Ov/7uvq/+3r6v/t6un/7erp/+zp
-        6P/s6ej/6+jn/+vo5//q5+b/6ufl/+nm5f/p5uX/6eXk/+jl4//n5OP/5+Ti/+fj4v/m4+H/5uLg/+Xh
-        4P/l4d//5ODf/+Tg3v/j397/49/d/+Le3f/i3tz/4d3b/+Hc2//h3Nr/4Nza/9/b2f/f2tj/39rY/97Z
-        1//e2df/3djW/9zY1f/c19X/3NfU/9vW1P/b1dP/2tXT/9rU0v/Z1NL/2dPR/9jT0P/Y0tD/19LP/9fR
-        z//W0c7/19HP/9fRz//Uz8z/zsbD/7usov+fg3L/iV9D/4ZSL/+RVjD/nl40/6tmOf+2bDz/vnJA/8R0
-        Qf/HdkL/yXhD/8p3Q//KdUH/ynVB/8p1Qv/KdUL/ynRB/8pzQP/Jc0H/yXJA/8hxP//IckD/yHE//8dv
-        Pv/IcD//yG8+/8dtPf/HbT3/x209/8dsPf/Gazz/x2s9/8BrPP+iWyjtpVwp/8FlOv/DYzj/w2Q5/8Nl
-        Of/DZTj/xGY6/8RlOf/DZTj/xGY6/8VnOv/FaDv/xWg6/8RpO//AZzr/tF80/6RcOP/Xwrf/+Pj4//b1
-        9f/29fT/9vT0//X08//18/P/9PPy//Ty8v/08vH/8/Lx//Px8f/y8fD/8vDv//Lw7//x7+//8e/u//Du
-        7f/w7u3/8O3s/+/t7P/v7Oz/7uzr/+7r6v/t6+r/7evp/+3q6f/s6ej/7Ono/+vp5//r6Of/6ufm/+rn
-        5v/q5uX/6ebl/+nl5P/o5eP/6OTj/+fk4v/n4+L/5uPh/+bi4f/l4uD/5eHg/+Th3//k4N7/49/e/+Pf
-        3f/j3t3/4t7c/+Hd2//h3dv/4dza/+Dc2v/g29n/39rZ/9/a2P/e2df/3tnX/93Y1v/d2Nb/3NfV/9zX
-        1f/b1tT/29XT/9rV0//a1NL/2dTS/9nT0f/Y09D/2NLQ/9fSz//X0c//1tDO/9bQzf/V0M3/1tHO/9PN
-        yv/EubP/qJCB/4lfRP+GUC3/lVky/6NhNv+waTv/u3A//8J0Qf/GdUL/yHZB/8l3Qv/KdkL/ynZC/8l0
-        Qf/JdEH/yXRA/8lyQP/Jc0D/yHE//8lxP//IcT//yHE//8hvPv/Ibj3/yG4+/8dtPf/GbT3/x20+/8dt
-        Pf/Hazz/v2s8/6JbKO2mXSr/wmY7/8RjOP/DZDn/w2Q3/8RlOf/FZjv/xGY6/8RmOf/EZzr/xWc6/8Vo
-        O//FaTv/xWo8/8FoO/+0YDb/pF46/9jCt//5+fn/9/b1//f19f/29fX/9vX0//b09P/19PP/9fTz//Xz
-        8v/08/L/9PLx//Py8f/z8fH/8/Hw//Lw8P/y8O//8u/v//Hv7v/x7+7/8O7t//Dt7f/v7ez/7+3s/+7s
-        6//u7Ov/7uvq/+3r6v/t6un/7Oro/+zp6P/r6Oj/6+jn/+vo5v/q5+b/6ubl/+nm5f/p5eT/6OXk/+jk
-        4//n5OL/5+Pi/+bj4f/m4uH/5eLg/+Xh4P/l4d//5ODe/+Pf3v/j393/49/d/+Le3P/i3dz/4d3b/+Hc
-        2//g3Nr/4NvZ/9/b2f/f2tj/3trY/97Z1//d2Nb/3djW/9zX1f/c19X/29bU/9vW0//a1dP/2tXS/9nU
-        0v/Z09H/2NPR/9jS0P/X0s//19HP/9bRzv/W0M7/1tDN/9bQzv/Uz83/xbmz/6CEc/+FVzn/ilIt/5xe
-        Nf+rZjn/t209/8ByQP/FdUL/yHdC/8l3Q//KdkH/ynVB/8p0Qf/JdEH/ynRB/8p0Qf/Jcj//yXJA/8ly
-        QP/JcUD/yHE//8hwP//Ibz//yG8//8duPv/Hbj7/x2w9/8drPP+/ajr/o1wo7addK//CZTr/w2M4/8Jj
-        N//DZTj/xWY7/8RmOv/EZjr/xGc6/8RnOv/FZzr/xWg6/8VqPP/Fajz/wWg6/7RgNv+lXjn/2cO4//r6
-        +v/49/f/+Pb2//f29v/39vX/9/X1//b19P/29PT/9fTz//X08//18/P/9PPy//Ty8v/z8vH/8/Lx//Px
-        8P/y8PD/8vDv//Lw7//x7+7/8e/u//Du7f/w7u3/8O3s/+/t7P/v7Ov/7uzr/+7r6v/t6+r/7erp/+zq
-        6f/s6ej/7Ono/+vo5//r6Ob/6ufm/+rn5f/p5uX/6ebk/+jl5P/o5OP/5+Tj/+fk4v/n4+L/5uLh/+Xi
-        4P/l4eD/5eHf/+Tg3//k4N7/49/d/+Pf3f/i3tz/4t3c/+Hd2//h3dv/4Nza/+Db2f/f29n/39rY/97a
-        2P/e2df/3djW/93Y1v/d2NX/3NfV/9vW1P/b1tT/2tXT/9rV0//Z1NL/2dTR/9jT0f/Y09D/2NLQ/9fR
-        z//W0c7/1tDO/9bQzf/W0M7/083K/7mqoP+Pa1T/hFAu/5ZZMv+nZDj/tGw8/79yQP/FdUL/yHdC/8l3
-        Qv/KdkL/ynVB/8p1Qv/JdED/ynRB/8lyP//Jc0H/yHJA/8hxP//JcT//yHFA/8hwP//IcED/yG8+/8du
-        Pf/HbT3/yGw9/8BrPP+jXCntp14r/8JmOv/DYzj/w2U4/8RlOf/EZjr/xGc6/8RnOv/FaDv/xWg7/8Vp
-        O//EaDv/xmo8/8VrPP/AZzr/tGE2/6VfOv/ZxLn/+/v7//n49//49/f/+Pf3//j39v/39vb/9/b1//f1
-        9f/29fT/9vX0//X08//19PP/9fPz//Tz8v/08vL/9PLx//Py8f/z8fD/8vHw//Lw7//y8O//8e/u//Hv
-        7v/w7u3/8O7t//Dt7f/v7ez/7+zr/+7s6//u6+r/7uvq/+3q6f/t6un/7Ono/+zp6P/r6Of/6+jn/+rn
-        5v/q5+b/6ebl/+nm5P/o5eT/6OXj/+jk4//n5OL/5+Pi/+bj4f/m4uD/5eLg/+Xh3//k4N//5ODe/+Pf
-        3v/j393/4t7d/+Le3P/h3dv/4d3b/+Hc2v/g29r/39vZ/9/b2f/f2tj/3tnX/97Z1//d2Nb/3djW/9zX
-        1f/c1tT/29bU/9vW0//a1dP/2tTS/9nU0f/Z09H/2NPQ/9jS0P/X0c//19HO/9bQzv/W0M7/1tHP/8rB
-        vP+fhHP/g1Mz/5BVL/+jYTb/sms8/75xP//FdEH/yHZC/8l3Qv/Kd0P/y3dD/8p1Qv/KdUH/ynRB/8pz
-        QP/Jc0H/yHJA/8hxPv/IcD//yHE//8hwP//Hbj7/yG4+/8dvPv/IbT3/wW0+/6RdKe2oXiz/wmY7/8Nk
-        OP/EZTn/w2Q4/8RmOv/EZzr/xWc6/8VoO//FaTv/xWo8/8VpO//FaTv/xWs8/8FoOv+1YTb/pV86/9rE
-        uf/7/Pz/+fn4//n4+P/5+Pf/+Pj3//j39//49/b/9/b2//f29f/39vX/9vX1//b19P/29PT/9fTz//Xz
-        8//08/L/9PLy//Ty8f/z8vH/8/Hx//Px8P/y8O//8vDv//Hv7//x7+7/8O7u//Du7f/w7u3/7+3s/+/s
-        7P/u7Ov/7uzr/+7r6v/t6+n/7erp/+zp6P/s6ej/6+nn/+vo5//q5+b/6ufm/+rm5f/p5uX/6eXk/+jl
-        4//o5OP/5+Ti/+fj4v/m4+H/5uLh/+Xi4P/l4eD/5OHf/+Tg3v/j4N7/49/d/+Pe3f/i3tz/4d3b/+Hd
-        2//h3Nr/4Nza/+Db2f/f29n/39rY/97Z2P/e2df/3djW/93Y1v/c19X/3NfV/9vW1P/b1dP/2tXT/9rU
-        0v/Z1NL/2dPR/9jT0f/Y0tD/19LP/9fRz//W0M7/1tHP/9PMyf+sl4n/hFc6/41ULv+iYTb/sWo8/75x
-        P//FdEH/yHZB/8l3Qv/Kd0P/yndD/8p1Qf/KdUL/ynRB/8p0QP/Jc0H/yXNB/8lxP//JcUD/yHE//8hv
-        Pv/Ibj7/x249/8duPv/AbD3/pV0q7aheK//BZTr/w2Q3/8RlOv/EZjr/xGY5/8RmOv/FaDv/xWg6/8Ro
-        Ov/FaTv/xWk6/8ZqPP/Faz3/wWk7/7VjOP+lXzr/2sW6//z8/f/6+fn/+vn5//n5+P/5+Pj/+fj3//n4
-        9//49/f/+Pf2//f29v/39vX/9/b1//b19f/29fT/9vT0//X08//19PP/9fPy//Tz8v/08vL/8/Lx//Px
-        8f/z8fD/8vDw//Lw7//x8O//8e/u//Hu7v/w7u3/8O7t/+/t7P/v7ez/7uzr/+7s6v/u6+r/7evq/+3q
-        6f/s6uj/7Ono/+vp5//r6Of/6ujm/+rn5v/q5+X/6ebl/+nl5P/o5eP/6OXj/+fk4//n4+L/5uPh/+bi
-        4f/m4uD/5eHg/+Th3//k4N7/5N/e/+Pf3f/j393/4t7c/+Ld3P/h3dv/4dzb/+Dc2v/g29n/39rZ/9/a
-        2P/e2tj/3tnX/93Y1v/d2Nb/3NfV/9zX1f/b1tT/29XT/9rV0//a1dL/2dTS/9nT0f/Y09H/2NLQ/9fS
-        z//X0c//19HP/9XPzf+1pJn/hlxA/4xTLv+hYDb/sms8/75xQP/FdkL/yHdC/8p4Q//KeEP/ynZB/8p1
-        Qf/KdUL/ynRB/8p0Qf/JckD/yXNB/8lyQP/IcD7/yHA//8hwP//Ibz7/yW49/8FsPP+lXintqV8s/8Jn
-        O//EZDj/xGU5/8RmOf/EaDv/xWg7/8VpO//EaDr/xWk7/8ZqO//FaTr/xms9/8ZsPf/BaTv/tGI3/6Vg
-        O//axrr//f3+//v6+v/6+vr/+vn5//r5+f/6+fj/+fj4//n4+P/5+Pf/+Pf3//j39v/39vb/9/b2//f2
-        9f/39fX/9vX0//b09P/19PP/9fTz//Xz8//08/L/9PLy//Ty8f/z8fH/8/Hw//Lw8P/y8O//8vDv//Hv
-        7v/x7+7/8O7t//Du7f/v7ez/7+3s/+/s6//u7Ov/7uvq/+3r6v/t6un/7Orp/+zp6P/s6ej/6+jn/+vo
-        5v/q5+b/6ufl/+nm5f/p5uT/6OXk/+jk4//o5OP/5+Ti/+bj4f/m4uH/5uLg/+Xh4P/l4d//5ODf/+Tg
-        3v/j397/49/d/+Le3P/i3dz/4d3b/+Hc2//g3Nr/4NvZ/9/b2f/f2tj/3trY/97Z1//d2Nf/3djW/9zY
-        1f/c19X/29bU/9vW1P/b1dP/2tXS/9nU0v/Z09H/2NPR/9jS0P/Y0tD/19LP/9fRz/+4p57/hVtA/4tS
-        Lf+iYTf/s2s9/79xP//GdUH/yXhE/8p5RP/Kd0L/y3dD/8p2Qv/JdEH/ynRB/8pzQP/Jc0D/yXNB/8hw
-        Pv/IcD7/yHA//8hvPv/Jbz7/wm09/6ZeK+2pYC3/w2g8/8RlOf/DZTj/w2U4/8RmOf/FaDv/xWk7/8Vp
-        O//FaTv/xmo8/8ZqPP/Gazz/xmw9/8JrPf+2ZDj/pmE7/9vGu//9/v7/+/v7//v7+v/7+vr/+/r6//r5
-        +f/6+fn/+vn5//n4+P/5+Pj/+fj3//j39//49/f/+Pf2//f29v/39vX/9/X1//b19P/29PT/9vT0//X0
-        8//18/P/9PPy//Ty8v/08vH/8/Lx//Px8P/y8fD/8vDv//Lw7//x7+7/8e/u//Du7f/w7u3/8O3s/+/t
-        7P/v7Ov/7uzr/+7r6v/t6+r/7erp/+zq6f/s6uj/7Ono/+vo5//r6Of/6ufm/+rn5v/p5uX/6ebk/+jl
-        5P/o5eP/6OTj/+fk4v/n4+L/5uLh/+bi4f/l4uD/5eHf/+Tg3//k4N7/49/e/+Pf3f/i3tz/4t7c/+Ld
-        2//h3dv/4Nza/+Db2v/g29n/39rZ/9/a2P/e2df/3dnX/93Y1v/d2Nb/3NfV/9zW1P/b1tT/29XT/9rV
-        0//a1NL/2dTR/9nT0f/Y09D/2NLQ/9fSz/+5qZ//h11C/41UL/+kYjf/tWw8/8ByP//Hd0L/ynhD/8p2
-        Qf/KdkH/ynVB/8p2Qv/KdUL/ynRA/8p0QP/Jc0D/yXJA/8lxQP/IcD//yHA+/8lwPv/Cbj3/p18q7apg
-        Lf/DZzz/xGU5/8RmOv/EZzv/xmk8/8VpO//FaDr/xWk7/8ZqO//Fajv/xms8/8dsPP/HbT3/wms8/7Zk
-        OP+mYTv/3Me8//7////8/Pv//Pv7//z7+//7+/v/+/r6//v6+v/6+vr/+vn5//r5+f/5+fj/+fj4//n4
-        +P/4+Pf/+Pf3//j39v/39vb/9/b2//f29f/29fX/9vX0//b09P/19PP/9fPz//Tz8v/08vL/9PLy//Py
-        8f/z8fD/8vHw//Lw8P/y8O//8e/v//Hv7v/w7u3/8O7t//Du7f/v7ez/7+zr/+7s6//u7Ov/7uvq/+3q
-        6f/t6un/7Oro/+zp6P/r6ef/6+jn/+ro5v/q5+b/6ubl/+nm5f/p5eT/6OXk/+jk4//n5OL/5+Pi/+bj
-        4f/m4uH/5eLg/+Xh4P/k4N//5ODf/+Tg3v/j393/497d/+Le3P/i3dz/4d3b/+Hc2v/g3Nr/4NvZ/9/b
-        2f/f2tj/3tnX/97Z1//d2Nb/3djW/9zX1f/c19X/29bU/9vW0//a1dP/2tTS/9nU0v/Z09H/2NPR/9jT
-        0f+3ppz/hFg6/5FWMP+nYzj/uG09/8N0Qf/Id0L/ynhD/8t4RP/KeEP/yndD/8p2Qv/JdUH/yXRA/8ly
-        P//JckH/yXJA/8hwPv/IcD//yXA+/8JuPv+nXyvtq2At/8NoPP/EZjn/xGY5/8VnOv/FaDr/xWk7/8Vp
-        O//Fajv/xmo8/8ZrPP/HbD3/x209/8ZtPf/CbDz/tmQ4/6ZgOv/cx7z///////38/P/8/Pz//Pz8//z7
-        +//8+/v/+/v7//v6+v/7+vr/+vr5//r5+f/6+fn/+fn4//n4+P/5+Pj/+Pj3//j39//49/b/9/b2//f2
-        9v/39vX/9vX1//b19P/29PT/9fTz//Xz8//18/L/9PPy//Ty8v/z8vH/8/Hx//Px8P/y8PD/8vDv//Hv
-        7//x7+7/8e7u//Du7f/w7u3/7+3s/+/t7P/u7Ov/7uzr/+7r6v/t6+r/7erp/+zq6f/s6ej/6+nn/+vo
-        5//r6Ob/6ufm/+rn5f/p5uX/6eXk/+jl5P/o5eP/5+Tj/+fj4v/m4+L/5uLh/+bi4P/l4eD/5eHf/+Tg
-        3//k4N7/49/d/+Pf3f/i3tz/4t7c/+Hd2//h3Nv/4Nza/+Db2f/f29n/39rY/97a2P/e2df/3dnW/93Y
-        1v/c19X/3NfV/9vW1P/b1tT/2tXT/9rU0v/Z1NL/2dTR/9jS0P+sl4n/g1Mz/5dbM/+sZzr/vHFA/8V1
-        Qf/Jd0L/ynhD/8p4Q//Ld0P/ynVB/8p1Qf/KdUL/yXNA/8lyQP/IckD/yXE//8hxP//JcT//wm8+/6hg
-        LO2sYS3/w2k9/8RmOf/EZzr/xWg6/8RnOf/FaTv/xWk7/8ZqO//Gajz/xms8/8ZsPP/HbT3/xm4+/8Jr
-        PP+2ZDj/pmE7/93Ivf///////f39//39/f/9/Pz//Pz8//z8/P/8+/v//Pv7//v7+//7+/r/+/r6//r6
-        +f/6+vn/+vn5//r5+P/5+Pj/+fj4//n49//49/f/+Pf2//f29v/39vb/9/b1//b19f/29fT/9vX0//X0
-        9P/19PP/9fPy//Tz8v/08vL/9PLx//Px8f/z8fD/8vHw//Lw7//y8O//8e/u//Hv7v/w7u3/8O7t/+/t
-        7P/v7ez/7+zr/+7s6//u6+r/7evq/+3q6f/s6uj/7Ono/+zp6P/r6Of/6+jm/+rn5v/q5+X/6ufm/+nm
-        5f/l4d//49/d/+Le3P/i3tz/4t3b/+Hd2v/h3Nr/4NzZ/+Db2f/f29j/39rY/97a1//e2df/3tnW/93Y
-        1v/c19X/3NfU/9zW1P/b1tP/29bT/93Y1v/f29n/3tnY/93Y1v/d2Nb/3NfV/9zX1f/b1tT/29bU/9rV
-        0//a1dL/2tXT/9TNyv+egW7/hVEu/51eNP+yazz/wHRC/8d2Qf/KeEP/yndC/8p3Qv/Kd0P/ynZB/8p1
-        Qf/JdED/yXNA/8lyQP/IckD/yXJA/8lxQP/Cbz3/qWEs7axiLv/DaT3/xGY6/8VnO//FaDr/xWg6/8Vp
-        O//Gajv/xms9/8ZrPf/HbD3/x2w9/8dtPf/Hbz7/w2w8/7ZlOP+mYjz/3ci9///////+/v7//v39//39
-        /f/9/f3//f38//38/P/8/Pz//Pz7//z7+//7+/v/+/v6//v6+v/6+vr/+vr5//r5+f/6+fn/+fj4//n4
-        +P/5+Pf/+Pf3//j39//49vb/9/b2//f29f/39fX/9vX0//b19P/29PT/9fTz//Xz8//08/L/9PPy//Ty
-        8f/z8vH/8/Hw//Px8P/y8O//8vDv//Hv7v/x7+7/8O7u//Du7f/w7ez/7+3s/+/s6//u7Ov/7uvq/+3r
-        6v/t6un/7erp/+zp6P/s6ej/6+jn/+zp6P/e2db/p5qQ/417bf+OfG7/jn1u/418bv+Ne23/jXtt/4x7
-        bf+Me23/jHps/4x6bP+Lemz/i3lr/4t5a/+LeWv/i3lr/4t4av+KeGr/i3hq/4t4av+JdGb/i3do/7So
-        n//d2NX/39rY/97Z1//e2df/3djW/93Y1v/c19X/29bU/9vW1P/b1dP/29bU/8zCvf+OaVD/jFMu/6Vk
-        OP+4bz//w3RA/8l4Q//KeEP/y3hD/8p4Q//Kd0L/ynVB/8p0Qf/KdEH/ynNA/8lzQf/JcT//ynFA/8Jw
-        P/+qYSztrWIv/8NoPP/EZTj/xWc6/8VoO//Fajz/xWo8/8ZqO//Gazz/xms8/8dsPf/HbT3/yG4+/8du
-        Pf/DbT3/tmY5/6ZiO//dyb3///////7+/v/+/v7//v7+//79/f/9/f3//f39//39/f/9/Pz//Pz8//z8
-        +//8+/v//Pv7//v7+v/7+vr/+/r6//r6+f/6+fn/+vn5//n5+P/5+Pj/+fj4//j39//49/f/+Pf2//f2
-        9v/39vX/9/X1//b19f/29fT/9vT0//X08//18/P/9PPy//Tz8v/08vH/8/Lx//Px8P/z8fD/8vDw//Lw
-        7//x7+//8e/u//Hv7v/w7u3/8O3t/+/t7P/v7ez/7uzr/+7s6//u6+r/7erp/+3q6f/t6un/4d3b/5iK
-        fv+dj4T/y8O9/9XOyv/Uzsr/1M7J/9PNyf/TzMj/08zI/9LMx//Sy8f/0cvG/9HKxv/QysX/0MnF/9DJ
-        xP/PyMT/z8jD/8/Hw//Ox8L/zsbC/8rBvP+rnJL/e2JQ/6ydk//f29n/39vZ/9/a2P/e2df/3tnX/93Y
-        1v/d2Nb/3NfV/9zX1f/b1tT/3NfV/7uqoP+FVjf/lloz/61oOv+9cUD/xndC/8p4Q//LeEP/ynhD/8p3
-        Q//KdkP/ynZC/8p1Qv/KdEH/yXJA/8hyP//Kc0H/xHFA/6phLe2tYy//w2k9/8VnOv/FaDr/xWk6/8Vq
-        PP/Gajv/xmo8/8VqO//Gazz/xm09/8duPf/Hbjz/x28//8NtPf+1Zjn/pmM8/93Kvv//////////////
-        ///+/v7//v7+//7+/v/+/v3//f39//39/f/9/f3//fz8//z8/P/8/Pz//Pz7//z7+//7+/v/+/r6//v6
-        +v/6+vr/+vn5//r5+f/5+fj/+fj4//n4+P/4+Pf/+Pf3//j39v/49vb/9/b2//f29f/29fX/9vX0//b0
-        9P/19PP/9fTz//Tz8v/08/L/9PLy//Py8f/z8fH/8/Hw//Lx8P/y8O//8e/v//Hv7v/x7+7/8O7t//Du
-        7f/v7ez/7+3s/+/s6//u7Ov/7uvq/+/s6/+7sqv/pZmP/+nl5P/t6+r/7Ono/+zp6P/r6Of/6+jn/+rn
-        5v/q5+b/6ebl/+nm5P/o5eT/6OXj/+jk4//n5OL/5+Pi/+bi4f/m4uH/5eHg/+Xh3//k4N//5ODf/+Tg
-        3v+8san/gGlX/8/Hwv/h3dv/4NvZ/9/b2f/f2tj/3trY/97Z1//d2df/3djW/9zX1f/c19X/2NPQ/6CD
-        cf+HUS3/oWE2/7ZuPv/CdEH/yHhC/8p4Qv/LeUT/y3hD/8t4RP/KdkL/y3ZD/8p0Qf/Jcj//yXJA/8pz
-        Qv/EckD/q2It7a5jMP/EaT3/xWg6/8VoO//FaTv/xWo8/8ZrPP/Fajv/x2w8/8dsPf/HbT3/yG49/8du
-        Pf/Hbz7/wm09/7ZlOP+nYjz/3cq+/////////////////////////////v7+//7+/v/+/v7//v79//39
-        /f/9/f3//f39//38/P/8/Pz//Pz8//z8+//8+/v/+/v7//v6+v/7+vr/+/r6//r5+f/6+fn/+fn4//n4
-        +P/5+Pj/+fj3//j39//49/b/+Pf2//f29v/39vX/9vX1//b19P/29fT/9fTz//X08//18/P/9PPy//Ty
-        8v/z8vH/8/Hx//Px8P/y8fD/8vDv//Hw7//x7+7/8e/u//Du7f/w7u3/7+3s/+/t7P/v7Ov/7+3s/7Oq
-        ov/Vz8v/7+3s/+/t7P/v7ez/7+zr/+7r6//t6+r/7evq/+zq6f/s6ej/7Ono/+vo6P/r6Of/6ufm/+rn
-        5v/p5uX/6ebl/+jl5P/o5eP/5+Tj/+fj4v/m4+L/5uPh/+Dc2v+Pe2z/vrOs/+Tg3v/h3Nv/4Nza/+Db
-        2v/f29n/39rY/97a2P/e2df/3dnX/93Y1v/d2df/yr64/4pgQ/+TWDD/rGk7/7xxPv/Hd0L/ynlD/8t5
-        RP/LeUT/ynhD/8p2Qv/Kd0L/yXRB/8p0Qf/KdEH/ynNB/8NxP/+rYy3trmQw/8RqPf/FZzr/xWk7/8Vq
-        PP/FaTv/xmw9/8ZrPP/HbD3/x209/8duPv/Ibz7/yG8//8dvPv/Dbj7/tmc6/6djPP/dyb7/////////
-        //////////////////////////////7+/v/+/v7//v7+//7+/v/+/f3//f39//39/f/9/fz//fz8//z8
-        /P/8/Pz//Pv7//v7+//7+/r/+/r6//v6+v/6+vn/+vn5//r5+P/5+fj/+fj4//n49//49/f/+Pf2//j3
-        9v/39vb/9/b1//f19f/29fX/9vX0//b09P/19PP/9fPz//Tz8v/08vL/9PLx//Px8f/z8fD/8vHw//Lw
-        7//y8O//8e/u//Hv7v/w7u3/8O7t//Dt7P/w7u3/vraw/+Pf3f/f29j/vrSt/720rP+9tKz/vbOr/72z
-        q/+9s6v/vbKq/7yyqv+8sar/vLGp/7yxqf+7sKj/u7Co/7uvp/+6r6f/uq+n/7qupv+5rqb/ua2m/7mt
-        pf+5rqb/08zI/5+Ogv+8sKj/5eHg/+Le3P/h3dv/4d3b/+Dc2v/g3Nr/4NvZ/9/a2P/e2tj/3tnX/97Z
-        1//c2Nb/p45+/4dSLv+iYjf/tm4+/8N1Qf/JeEP/y3lD/8t5RP/LeEP/yndC/8p2Qv/KdkL/ynRB/8p1
-        Qv/LdEL/xHJA/6xjLu2vZDD/xGo8/8VnOf/Fajv/xWk6/8VqO//Gaz3/xms8/8dtPv/Hbj7/x249/8hv
-        Pv/Ibz7/x3E//8NuPf+3aDr/p2Q9/97Jvv//////////////////////////////////////////////
-        /////v7//v7+//7+/v/+/v7//v39//39/f/9/f3//f38//38/P/8/Pz//Pz8//z7+//7+/v/+/v6//v6
-        +v/7+vr/+vr5//r5+f/6+fn/+fn4//n4+P/5+Pj/+Pf3//j39//49/b/9/b2//f29f/39fX/9vX1//b1
-        9P/29PT/9fTz//Xz8//18/L/9PPy//Ty8f/z8vH/8/Hw//Px8P/y8PD/8vDv//Hv7v/x7+7/8e/u//Hv
-        7v/AuLL/5eHf/9fSzv+ilYr/oZSI/6KUif+jlIn/o5WJ/6OUiP+ilIj/opOI/6KTh/+ik4f/opOH/6GT
-        hv+hkob/oZGG/6GRhf+gkYX/oJCF/6CQhf+fkIT/n5CE/6GRhf/Lwrz/oZGF/7yxqf/m4uH/49/d/+Pf
-        3f/i3tz/4t3c/+Hd2//h3Nr/4Nza/+Db2f/f29n/39rY/9/b2f/Kv7j/il9C/5ZbMv+vajv/vnM//8h3
-        Q//LekT/y3lE/8t5RP/Kd0L/yndD/8p3Q//KdUL/yXRB/8t0Qf/EckD/rGMu7a9lMf/Eaj3/xWg6/8Vp
-        O//Gajz/xWo7/8VqPP/Gajv/x209/8dtPf/Ibj3/yHA//8hwPv/HcD//xG8+/7ZmOP+nYzz/3sq+////
-        //////////////////////////////////////////////////////////////7+/v/+/v7//v7+//79
-        /f/+/f3//f39//39/f/9/Pz//fz8//z8/P/8+/v//Pv7//v7+//7+/r/+/r6//r6+v/6+fn/+vn5//r5
-        +P/5+Pj/+fj4//j49//49/f/+Pf2//j29v/39vb/9/b1//f19f/29fT/9vT0//X08//18/P/9fPz//Tz
-        8v/08vL/8/Lx//Px8f/z8fD/8vDw//Lw7//x8O//8vDv/8C5s//k4N7/8O7t/+/t7P/v7Ov/7uzr/+7r
-        6v/u6+r/7erp/+3q6f/s6ej/7Ono/+vo5//r6Of/6ufm/+rn5v/p5uX/6ebl/+nl5P/o5eP/6OTj/+fk
-        4v/n4+L/5uPh/+bi4P+gkIT/vbKq/+fk4//k4N//5ODe/+Pf3f/j393/4t7c/+Ld3P/h3dv/4d3b/+Dc
-        2v/g29n/4NvZ/93Y1v+gg2//i1Qv/6dlOf+5cD//xXZC/8t6Rf/MekT/y3hD/8t4RP/LeET/yndD/8p1
-        Qf/KdUH/y3VC/8VzQf+tZC7tsGUx/8RqPf/FaTr/xWk7/8VpOv/Gazz/xmw9/8dtPf/HbT3/x249/8du
-        Pv/IcD7/yHE//8hxP//Dbz7/t2g6/6dlPf/eyr7/////////////////////////////////////////
-        ///////////////////////////////////+/v7//v7+//7+/v/+/v3//v39//39/f/9/f3//fz8//z8
-        /P/8/Pz//Pz7//z7+//7+/v/+/r6//v6+v/7+vr/+vn5//r5+f/6+fn/+fj4//n4+P/5+Pf/+Pf3//j3
-        9//49/b/9/b2//f29f/39fX/9vX0//b19P/19PP/9fTz//Xz8//08/L/9PLy//Py8f/z8fH/8/Hw//Lx
-        8P/z8fD/wbq0/+Xh3//y8O//8vDv//Hv7//x7+7/8e/u//Du7f/w7e3/7+3s/+/t7P/u7Ov/7uvr/+7r
-        6v/t6un/7erp/+zp6f/s6ej/6+jn/+vo5//q5+b/6ufm/+nm5f/p5uX/5+Tj/6GRhf++s6v/6OXk/+Xi
-        4P/l4d//5ODf/+Tg3v/j397/49/d/+Le3P/i3tz/4d3b/+Hc2//g3Nr/4d3c/7+vpf+GVTT/nmA1/7Rt
-        Pf/CdEH/ynlE/8x6RP/LeUP/y3lE/8t4Q//Kd0L/y3dD/8p0QP/LdUL/xXRB/65lL+2wZjH/xGs9/8Vp
-        Ov/FaTv/xWk6/8ZrPP/HbD3/x20+/8duPf/Hbj3/yHA//8dvPf/IcT//yHFA/8NuPf+3aTr/qGU9/97K
-        vv//////////////////////////////////////////////////////////////////////////////
-        //////////7+//7+/v/+/v7//v7+//39/f/9/f3//f39//38/P/8/Pz//Pz8//z8+//8+/v/+/v7//v7
-        +v/7+vr/+/r6//r6+f/6+fn/+vn5//n5+P/5+Pj/+fj3//j39//49/f/+Pf2//f29v/39vX/9/b1//b1
-        9f/29fT/9fT0//X08//18/P/9PPy//Ty8v/08vH/8/Lx//Ty8f/Cu7X/5uPh/+jl4//QycT/0MnD/9DJ
-        w//QycP/0MnD/9DIwv/PyML/z8fB/87Hwf/Ox8H/zsbA/87GwP/Nxb//zcW//8zEvv/MxL7/zMO9/8vD
-        vf/Lwrz/ysK8/8vCvP/c19T/opKG/7+0rP/p5uX/5uPh/+bi4P/l4eD/5eHf/+Tg3//k4N7/49/e/+Pf
-        3f/i3t3/4t7c/+Hd2//i3tz/1c3I/5BpT/+VWjL/r2o8/79zQP/IeUP/y3pD/8x6RP/LeUT/y3hD/8p4
-        Q//KeEP/ynZB/8p0Qf/FdEH/r2Uw7bJmMf/Eaz3/xmk7/8ZrPP/Fajz/x2w9/8dsPf/GbDz/x209/8dt
-        Pf/IcD7/yHE//8lxQP/IckD/xHA//7dpOv+oZT7/3sq/////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7//v7+//7+
-        /v/+/v3//f39//39/f/9/fz//fz8//z8/P/8/Pz//Pv7//v7+//7+/r/+/r6//v6+v/6+vn/+vn5//r5
-        +f/5+fj/+fj4//n49//49/f/+Pf3//j39v/39vb/9/b1//f29f/29fX/9vX0//b09P/19PP/9fTz//Xz
-        8v/08/L/9fPz/8K7tf/o5eP/19HN/5iKfv+YiXz/mop8/5uLff+bi3z/mot8/5qLfP+ainz/mop7/5mK
-        e/+ZiXv/mYl7/5iJev+YiHr/mIh5/5iIev+Yh3n/mId5/5eGeP+Xhnj/mId5/8rBu/+klIj/wLWt/+ro
-        5//n5OL/5+Pi/+bj4f/m4uH/5eLg/+Xh4P/k4d//5ODe/+Pf3v/j393/497d/+Le3P/h3dz/o4dz/4xV
-        L/+oZzr/u3E//8d4Q//Le0T/zHpE/8t5Q//LeEP/y3hD/8p4Q//Kd0L/y3ZC/8V1Qv+vZjDtsmcy/8Rs
-        Pv/Gajv/xms9/8ZrPP/Gazz/x2w9/8ZsO//Hbj3/yG8+/8hwP//IcD//yXJA/8hyQP/FcUD/t2k6/6hm
-        Pv/eyr7/////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//38
-        /P/9/Pz//Pz8//z7+//8+/v/+/v7//v7+v/7+vr/+vr6//r5+f/6+fn/+vn4//n4+P/5+Pj/+fj3//j3
-        9//49/b/9/b2//f29v/39vX/9vX1//b19P/29PT/9fTz//X08//19PT/w7y2/+fk4v/08vH/8e/u//Hv
-        7v/x7u7/8O7t//Du7P/v7ez/7+3s/+/s6//u7Ov/7uvq/+3r6f/t6un/7Orp/+zp6P/s6ef/6+jn/+vo
-        5//q5+b/6ufl/+nm5f/p5uT/6ebl/6OUh//Atq7/6+no/+jl5P/o5OP/6OTj/+fj4v/m4+H/5uLh/+bi
-        4P/l4eD/5eHf/+Tg3//k4N7/49/e/+Th3/+4pZn/iVc0/6JkOP+4cD//xnhE/8t7Rf/Me0X/y3lD/8t5
-        RP/LeUT/y3hE/8p3Q//LdkL/xnVC/7BmMO2yZzL/xGw+/8ZqO//Fajz/xms8/8dtPf/HbD3/x209/8hu
-        Pv/IcD//yHA//8hxP//JcT//yHNB/8VxP/+3aTr/qGY+/97Kvv//////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////7+/v/+/v7//v7+//7+/v/+/f3//f39//39/f/9/Pz//fz8//z8/P/8/Pv//Pv7//v7
-        +//7+/r/+/r6//r6+v/6+fn/+vn5//r5+f/5+Pj/+fj4//n49//49/f/+Pf3//j39v/39vb/9/b1//f1
-        9f/29fT/9vT0//b19f/Evbf/6OXj//b09P/29fX/9vX0//X09P/19PP/9fPz//Tz8v/08vL/8/Lx//Px
-        8f/z8fD/8vDw//Lw7//x7+//8e/u//Du7v/w7u3/8O3t/+/t7P/v7Oz/7uzr/+7s6//s6ej/pJSI/8G3
-        r//t6un/6ebl/+nm5P/o5eT/6OXj/+jk4//n5OL/5+Pi/+bi4f/m4uH/5eLg/+Xh3//k4N//5eHg/8/F
-        vv+KXDz/nWA1/7RuPv/Ed0P/y3tF/8x7Rf/MekT/y3pE/8t4Q//LeET/yndC/8t2Qv/GdUH/sWcx7bNo
-        M//Eaz3/xmo8/8ZrPf/GbD3/x209/8duPv/HbT3/yG4+/8dvPv/IcUD/yXE//8lyQf/Jc0H/xHE//7dp
-        Ov+oZj7/3sq+////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////////////////////////////////v7//v7+//7+
-        /v/+/v7//v39//39/f/9/f3//fz8//38/P/8/Pz//Pz7//z7+//8+/v/+/v6//v6+v/7+vr/+vr5//r5
-        +f/6+fn/+fn4//n4+P/5+Pf/+Pf3//j39//49/b/9/b2//f29f/39fX/9/b2/8S+uP/q5+b/5ODd/7yz
-        q/+8s6r/vLOq/72zqf+9s6r/vbOp/72yqf+9sqn/vbKo/7yxqP+8saj/u7Cn/7uwp/+6sKb/uq+m/7qv
-        pv+6r6X/uq6l/7mupP+4raT/ua6l/9jSzv+llon/wriw/+7r6v/q5+b/6ufm/+nm5f/p5uT/6OXk/+jl
-        4//o5OP/5+Ti/+fj4v/m4+H/5uLh/+Xi4P/m4uH/2tLP/5FqTv+YXTT/sW0+/8F1Qf/Ke0T/zHxF/817
-        Rf/MekT/y3lE/8t4Q//Kd0L/y3ZC/8Z2Qv+xZzHttGgz/8VsPv/Gajv/xmw9/8dtPf/HbT7/x209/8dt
-        PP/Hbj3/x3A+/8hxQP/JckD/yXJB/8lzQf/EcT//t2k6/6hmPv/ey7//////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////7+/v/+/v7//v7+//7+/f/9/f3//f39//39
-        /P/9/Pz//Pz8//z8/P/8+/v/+/v7//v7+//7+vr/+/r6//r6+f/6+fn/+vn5//n5+P/5+Pj/+fj3//j4
-        9//49/f/+Pf2//f29v/49/f/xb64/+vp5//e2tb/p5yR/6ibkP+onJD/qZyQ/6mckP+pnJD/qZyP/6mb
-        j/+pm4//qZuP/6ibj/+om47/p5qO/6eajv+nmY3/p5mN/6eZjP+mmIz/pZiM/6WXi/+nmI3/0svF/6aW
-        iv/CuLH/7+zs/+vp5//r6Of/6ufm/+rn5v/q5+X/6ebl/+nl5P/o5eP/6OTj/+fk4v/n4+L/5uPh/+bj
-        4v/f2tf/nXxl/5NaMv+uazz/wHVB/8p7Rf/NfEb/zHtE/8x6RP/LeUT/y3hD/8p4Q//Ld0P/xnVC/7Jo
-        Me20aDP/xm0//8ZrPP/Gazz/x209/8dtPf/HbTz/yG8+/8hvPv/IcUD/yHJA/8lyQP/Jc0D/yXNA/8Vx
-        P/+3ajv/qGc+/97Lv///////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////+/v7//v7+//7+/v/+/v7//f39//39/f/9/f3//fz8//z8/P/8/Pz//Pv7//z7
-        +//7+/v/+/r6//v6+v/6+vn/+vr5//r5+f/5+fj/+fj4//n4+P/5+Pf/+Pf3//n49//Gv7n/6ujm//j3
-        9v/39vb/9/b1//f19f/29fX/9vX0//X09P/19PP/9fPz//Tz8v/08vL/9PLx//Px8f/z8fD/8vHw//Lw
-        7//y8O//8e/u//Hv7v/w7u3/8O7t/+/t7P/u7Ov/pZaK/8O5sv/w7e3/7Oro/+zp6P/s6ej/6+jn/+vo
-        5v/q5+b/6ufl/+nm5f/p5eT/6OXk/+jl4//n5OP/5+Ti/+Tg3/+ni3j/j1gw/6xqO/++dUL/yXtF/818
-        Rv/NfEf/zHtE/8t5RP/LeUT/y3hD/8t4Q//GdkL/smgy7bVpNP/GbT//xmo8/8dtPv/HbT7/x249/8hu
-        Pv/Ibj7/yHE//8hxP//Jcj//yXJA/8lzQP/JdED/xHI//7hqO/+oZz7/3su/////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////////////////////////////////////v7+//7+
-        /v/+/v7//v7+//79/f/9/f3//f39//39/P/9/Pz//Pz8//z8+//8+/v/+/v7//v7+v/7+vr/+vr6//r6
-        +f/6+fn/+vn5//n4+P/5+Pj/+fn4/8bAuv/r6ef/+fj4//n4+P/49/f/+Pf3//j29v/39vb/9/b1//b1
-        9f/29fT/9vT0//X08//18/P/9PPy//Tz8v/08vL/8/Lx//Px8f/y8fD/8vDw//Lw7//x7+//8e/u/+/t
-        7P+ll4r/xLqy//Hv7v/t6+r/7erp/+zq6f/s6ej/7Ono/+vo5//r6Ob/6ufm/+rn5v/p5uX/6ebk/+jl
-        5P/o5eP/6ebl/7CYh/+MVS7/qmk7/711Qv/Je0X/zXxG/8x8Rf/MekT/zHpE/8x6RP/LeUP/y3hD/8Z3
-        Q/+zaTLttmk0/8VtP//FaTr/xms8/8ZsPf/Ibz//yG4+/8hvPv/IcD//yXFA/8hwP//JckD/ynRA/8hz
-        P//Ecj//uGs8/6hnPv/ey7//////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////+/v/+/v7//v7+//7+/v/+/f3//f39//39
-        /f/9/f3//fz8//z8/P/8/Pv//Pv7//z7+//7+/r/+/r6//v6+v/6+vn/+vn5//r5+f/6+vn/x8G7/+3q
-        6f/u6+r/1M/K/9TPyf/Uzsn/1M7J/9TOyP/Uzsj/1M7I/9PNx//Tzcf/08zG/9LMxv/SzMb/0cvF/9HL
-        xf/RysT/0crE/9DJxP/QycP/0MnD/8/Iwv/QycP/49/c/6aXi//Eu7P/8vDv/+7s6//u6+r/7uvq/+3q
-        6f/t6un/7Oro/+zp6P/r6Of/6+jn/+ro5v/q5+b/6ubl/+nm5P/r6Oj/t6GS/4xXMP+paDr/vHRB/8h7
-        Rf/NfUb/zXxG/8x7Rf/Ne0X/zHpE/8t5Q//LeEP/xndD/7RpMu22ajT/xWw9/8ZqO//HbT3/xmw8/8du
-        Pf/Ibj7/x289/8dwPv/JckD/yHI//8pzQf/LdUL/yXVC/8VyP/+3ajv/qGc+/97Lv///////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////7//v7+//7+/v/+/v7//v39//39/f/9/f3//f39//38/P/8/Pz//Pz7//z7
-        +//8+/v/+/v7//v6+v/7+vr/+vr6//v6+v/Hwbv/7uzr/9zY1P+ekYX/nZCD/56Rg/+ekYP/n5GD/5+R
-        g/+ekYP/npGC/56Qgv+ekIL/no+B/52Qgf+dj4H/nY6B/52Ogf+djoH/nY6A/5yNgP+cjYD/nIx//5+Q
-        g//RysT/qJmN/8W8tP/y8fD/7+3s/+/s6//v7Ov/7uzr/+7r6v/t6un/7erp/+zq6f/s6ej/6+nn/+vo
-        5//r5+b/6ufm/+vp6P+/rJ//jlo1/6dnOf+8dUH/yHtF/8x9Rv/OfUb/zXtF/8x6Rf/MekT/y3lC/8x5
-        RP/HeEP/tGkz7bdqNf/GbT//x2w9/8dtPv/Hbj7/yG8+/8huPv/IcD7/yHA+/8lyQP/Jc0H/ynNB/8p0
-        QP/JdED/xHJA/7drPP+oZz//3su/////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////////////////////////////////////7+
-        /v/+/v7//v7+//7+/f/9/f3//f39//39/f/9/Pz//Pz8//z8/P/8+/v//Pv7//v7+//7+vr//Pv7/8jC
-        vP/t6+r/+vn5//f29f/39vX/9vX1//b19P/29PT/9fTz//X08//18/L/9PPy//Ty8v/08vH/8/Lx//Px
-        8P/z8fD/8vDv//Lw7//y8O//8e/u//Hv7v/w7u3/8O7t//Hv7v+nmYz/xr21//Ty8v/w7u3/8O7t/+/t
-        7P/v7ez/7+zr/+7s6//u6+r/7evq/+3q6f/s6un/7Ono/+vp5//r6Of/7Orp/8Cuof+OWzb/p2g5/7x1
-        Qv/IfEX/zH1H/818Rf/NfEb/zHtF/8x5RP/LeUP/zHlE/8d3Q/+1ajPtt2s1/8ZuQP/Gazv/x209/8dt
-        Pf/Hbj3/yG8+/8hxP//IcD7/yXE//8lzQf/Kc0D/yXRA/8l2Qv/Fc0D/t2w8/6loP//ey7//////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v39//39
-        /f/9/f3//f38//38/P/8/Pz//Pz7//z7+//8/Pz/yMO9/+7s6v/8+/v//Pv7//v7+//7+/r/+/r6//r6
-        +v/6+fn/+vn5//n5+P/5+Pj/+fj4//j39//49/f/+Pf2//f29v/39vX/9/X1//b19f/29PT/9fT0//X0
-        8//18/P/8/Hx/6eZjf/Hvrb/9fPz//Hv7v/x7+7/8O7t//Du7f/v7ez/7+3s/+/s6//u7Ov/7uvq/+3r
-        6v/t6un/7erp/+zp6P/t6+v/wa+h/5BdN/+oaTr/vXVC/8h7RP/MfUX/zXxF/818Rf/Me0T/zHpF/8x6
-        RP/MekT/x3hD/7VqNO24azb/xm4//8drPP/HbT7/yG4+/8hwP//IcD7/yHJA/8lxP//JckD/yXJA/8p0
-        Qf/KdEH/yXVB/8V0Qf+4bDz/qWk//97Lv///////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////7+//7+/v/+/v7//v7+//79/f/9/f3//f39//39/P/9/Pz//Pz8//39
-        /f/Jw73/7+3r//b08//n5OH/5+Th/+fk4P/n4+D/5+Pg/+bj4P/m4t//5uLf/+bi3//l4d7/5eHe/+Xh
-        3f/k4N3/5ODd/+Tf3P/j39z/49/b/+Pe2//i3tr/4t7a/+Le2v/t6uj/qJqO/8e+t//19PT/8vDw//Lw
-        7//x7+7/8e/u//Hu7v/w7u3/8O3t/+/t7P/v7ez/7uzr/+7r6v/t6+r/7evq/+/t7P++qZv/j1s0/6pr
-        PP+9dkL/yXxF/81+Rv/NfUX/zX1G/818Rv/Me0X/zHlD/8x6RP/IeET/tms17blsNv/Gbj//x2s8/8Zs
-        Pf/Hbj3/yG8+/8hwP//IcUD/yXFA/8lyQP/Jcj//ynRB/8p1Qf/KdkL/xXRB/7htPf+paD//3su/////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////////////////+
-        /v/+/v7//v7+//7+/v/+/f3//f39//39/f/9/f3//v39/8nEvv/x7+7/3NjU/5aJev+WiHn/l4l6/5iK
-        ev+Yinr/mIp6/5iJev+YiXr/mIl5/5iJef+YiHn/mIh5/5eIeP+XiHj/l4d4/5eHeP+Xh3f/loZ3/5WF
-        dv+WhXb/l4d3/9DJw/+qnJD/yL+4//b19f/z8fD/8/Hw//Lw8P/y8O//8e/v//Hv7v/x7+7/8O7t//Dt
-        7f/v7ez/7+3s/+7s6//u7Ov/8O7u/7ihkP+OWDD/rGw8/793Qv/KfUb/zn9G/81+R//NfUb/zXxG/8x7
-        Rf/MekT/zHpE/8h5Rf+3bDTtuWw2/8ZuP//HbDz/x209/8huPf/Ibz//yHA+/8hxQP/JcT//yXNB/8ly
-        QP/JdED/ynZC/8p3Qv/FdUL/uGw9/6lpP//ey7//////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////////////////////v7+//7+/v/+/v7//v79//39
-        /f/+/v7/ysS+//Du7f/4+Pf/7uzq/+7r6f/t6+n/7evp/+3r6P/t6uj/7ero/+zq5//s6ef/7Onn/+vp
-        5v/r6Ob/6+jl/+vo5f/q5+X/6ufk/+rm5P/p5uP/6eXj/+nl4//p5eL/8O7s/6mcj//IwLj/9/b2//Ty
-        8v/z8vH/8/Hx//Px8P/y8fD/8vDv//Hv7//x7+7/8e/u//Du7f/w7u3/7+3s/+/t7P/v7ez/tJqH/5Ja
-        Mf+ubTz/wHdB/8p+Rv/OgEf/zX5G/819Rv/NfUb/zXxG/817Rf/MekP/yHlE/7dsNe25bTf/xm5A/8dt
-        Pf/HbT3/yG8+/8hwQP/Hbz7/yHA//8lxP//Jc0H/ynRB/8p0Qf/KdUH/yndD/8V1Qf+4bTz/qWk//97L
-        v///////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////7+/v/+/v7//v7+///////Kxb//8O/t//7+/v///v///v7+//7+
-        /v/+/v7//v39//39/f/9/f3//fz8//z8/P/8/Pz//Pv7//v7+//7+/r/+/r6//r6+v/6+fn/+vn5//n5
-        +P/5+Pj/+fj4//j39//39vX/qpyP/8nBuf/49/f/9fPz//Tz8v/08vL/9PLx//Px8f/z8fD/8vHw//Lw
-        7//y8O//8e/u//Hv7v/w7u3/8O7t/+vo5v+qjHX/l14z/7FvPv/CeUT/y39H/8+ASP/Of0f/zX1G/818
-        Rf/Me0T/zHpE/8x6RP/IeUT/uGw17bptN//Hbj//x2w9/8duPv/Ibz7/yG8+/8hwP//IcT//yHE//8ly
-        QP/KdEH/yXVB/8l0QP/Kd0P/xXVB/7htPf+paD//3su/////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////8vGwP/x8O7/+/v6//Py8P/z8fD/8/Hv//Px7//y8e//8vDv//Lw7v/x8O7/8e/u//Hv
-        7f/x7+3/8O7t//Du7P/w7uz/8O3s/+/t6//v7ev/7+zq/+7s6v/u6+r/7uvp//Py8P+rnZD/ysK6//n4
-        +P/29PT/9fTz//Xz8//18/L/9PPy//Ty8f/z8vH/8/Hx//Px8P/y8PD/8vDv//Hv7//x8O//5+Lf/556
-        Xv+dYjb/tnNA/8V8Rv/Mf0f/zoBI/85/SP/Nfkb/zn1G/818Rv/MekT/zHlD/8h5Q/+4bTbtum44/8Zu
-        P//HbD3/yG8+/8huPv/Hbj7/yHA//8lxQP/IcT//yXJA/8p1Qv/KdEH/ynRA/8l2Qv/FdEH/uG08/6lp
-        QP/ey7//////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////zMbA//Py8f/g3Nj/m46A/5uN
-        fv+bjn7/m45+/5uNfv+bjX7/m41+/5uNfv+bjH3/m419/5qMff+ajH3/mot8/5qLfP+ajHz/mYt8/5mK
-        e/+Zinv/mop7/5qLfP+djX3/1c7H/62fkv/Lwrv/+vn5//b19f/29fT/9vT0//X08//19PP/9fPy//Tz
-        8v/08vH/8/Lx//Px8f/z8fD/8vDw//Px8f/j3Nf/lWlI/6JmOP+5dUH/x3xF/82ASP/OgEj/zn9H/81/
-        R//Ofkf/zX1G/8x6Q//NekX/yHpF/7ltN+27bjf/x29B/8dtPf/Ibz7/yG8+/8hxP//IckD/yXFA/8ly
-        QP/JckD/yXRA/8p1Qf/KdUH/yndC/8V1Qf+5bj3/qWpA/97Lv///////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////Fvrj/7evp//j39v/o5eL/6OTh/+jk4f/o5OH/5+Tg/+fj4P/n4+D/5+Pg/+bj
-        3//m4t//5uLf/+bi3v/l4d7/5eHe/+Xh3v/k4d3/5ODd/+Tg3P/k4Nz/5N/c/+Tg3P/v7ev/o5OE/83E
-        vP/6+vr/9/b2//f29f/39fX/9vX0//b09P/19PP/9fTz//Xz8//08/L/9PLy//Py8f/z8fH/9PPy/9HD
-        uP+TYjz/qGo7/7x3Qv/Jfkf/zoBI/86AR//OgEf/zX5G/819Rv/NfUf/zHtF/817Rf/JekX/um437bxu
-        OP/Hb0D/x209/8hvPv/Hbj3/yHA+/8hxQP/JckD/yXNB/8p0Qf/KdEH/ynVB/8p2Qv/JdkL/xXVC/7lt
-        Pf+paT//3su/////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////////////////////////7+4sP/Iwrv/////////
-        ///////////////////////////////////+/v///v7+//7+/v/+/v7//f39//39/f/9/f3//fz8//z8
-        /P/8/Pz//Pv7//v7+//7+/v//f39/+Xh3f+Ld2T/29XP//r6+v/49/f/+Pf2//f29v/39vX/9/X1//b1
-        9P/29fT/9fTz//X08//18/P/9PPy//Ty8v/19PT/u6OR/5VgNv+vbz7/wXpE/8t/Rv/OgUj/z4FJ/86A
-        SP/Nf0f/zX1G/819Rv/MfEb/zXtF/8l6Rf+7bzftvW85/8dwQf/HbT3/yG8+/8hvP//IcD//x289/8ly
-        QP/Jc0H/ynNA/8l0Qf/KdUH/yndC/8l2Qf/GdUL/uW08/6lqP//ezL//////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////5eLe/5iMfv/PycL/9/b1//////////////////////////////////7+
-        ///+/v7//v7+//79/v/+/f3//f39//39/f/9/Pz//Pz8//z8/P/8+/v//Pv7//j39v/h3dj/mIZ1/6KS
-        g//08/H/+fn4//n49//4+Pf/+Pf3//j39v/39vb/9/b1//f29f/29fX/9vX0//b09P/19PP/9fT0/+7r
-        6f+nhWr/nGI1/7VyP//FfUb/zIBH/8+BSf/PgUj/zn9H/85/R//Nfkf/zX1G/818Rv/Ne0X/yXpF/7tv
-        N+29bzj/x3BB/8duPf/Ibj3/yHA//8hxP//IcD//yXJA/8lzQf/Jc0D/ynVC/8p1Qf/KdkL/ynhE/8Z2
-        Qv+5bj3/qmk//97Lv///////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////19LN/5WI
-        eP+ajXz/ppmJ/6iaiv+pm4v/qpuL/6qbiv+qm4v/qpuK/6qbiv+qm4r/qpuK/6qbiv+qm4r/qpqJ/6qa
-        if+qmor/qpqJ/6uaif+qmon/pJKB/415ZP+klIX/6ufk//v7+v/6+fn/+fn4//n4+P/5+Pj/+fj3//j3
-        9//49/b/9/b2//f29f/39vX/9vX1//b19P/39vb/39XO/5drRv+majv/u3dC/8h/R//OgUn/z4FJ/86A
-        R//Of0b/zX5G/81+R//OfUb/zXxF/817Rf/Kekb/vG837b1vOf/HcEH/x24+/8huPf/Ibj3/x289/8hx
-        P//JckD/yXJA/8lzP//JdEH/ynRB/8p2Qv/KeET/xnZD/7lvPf+paT//3su/////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////8vDu/9jTzP/SzMP/1MzE/9TNxP/VzcT/1c3E/9XN
-        xP/VzcT/1c3E/9XNxP/VzcT/1c3D/9TMw//UzMP/1MzD/9TMw//UzML/1MvC/9PLwv/Uy8P/4NrV//f1
-        9P/8+/v/+/r6//r6+v/6+fn/+vn5//r5+P/5+Pj/+fj4//n49//49/f/+Pf2//j29v/39vb/9/b1//f2
-        9v/Bq5n/l2I3/69wPv/Be0X/y4FJ/8+DSf/PgUj/zoBH/85/Rv/Nf0b/zX1G/819Rv/NfEb/zHtE/8p7
-        Rv+8cDjtvnA5/8dwQf/Hbj7/yG8+/8hvPv/HcD7/yXJA/8lzQf/Jc0D/ynRB/8p0Qf/KdkH/yndC/8p4
-        Q//GdkL/uG49/6lqQP/ey7//////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////+/////v7+//7+/v/9/f3//Pz7//z7+//7+/v/+/v6//v6+v/7+vr/+vn5//r5
-        +f/6+fn/+fj4//n4+P/5+Pf/+Pf3//j39//4+Pf/7enm/6R+YP+hZzj/uHVB/8Z9Rv/Ogkn/z4NJ/8+C
-        Sf/PgUj/zoBH/85/R//Nfkf/zX1G/818Rv/Ne0b/yntG/71wOO2/cTr/x29A/8dtPf/Hbj3/x28+/8dv
-        Pv/IckD/yXNB/8lyQP/Jc0D/ynZC/8p1Qf/KdkL/ynlE/8V0Qf+5bjz/qWk//97Lv///////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////Ty8P/c1s7/3tbM/+HXy//j2Mn/5NfH/+PV
-        xP/i08H/4dG+/9/Pu//ezLj/3cu2/9zIsv/axq//2MOs/9fCqf/Wv6b/1L2j/9K6oP/Ntp3/xa6W/7yo
-        k//j3db//f39//z8+//8+/v//Pv7//v7+//7+vr/+/r6//r6+f/6+fn/+vn5//n5+P/5+Pj/+fj4//n5
-        +f/QwLP/l2U8/61wP//Ae0X/yoBH/86DSf/Pg0n/0INJ/8+CSf/OgEf/zn9G/81+Rv/Nfkb/zX1H/817
-        Rf/Ke0X/vXE57b9xOv/Hb0D/x208/8huPv/IcD//x28+/8hwP//JckD/yXNB/8p0Qf/KdUH/ynVB/8p3
-        Qv/KeUT/xnZC/7huPf+qakD/3su/////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////4d3Y/4BpTf+DYzz/mHNF/6d9Sf+yhE3/tYdP/7aHTv+3hk3/t4dO/7eGTP+3hUv/t4RK/7eD
-        Sf+2gkj/t4NJ/7eDSf+2gUj/sn9G/6l3Qf+Xajn/k29K/+Xe1//+/v7//fz8//z8/P/8/Pz//Pv7//z7
-        +//7+/v/+/r6//v6+v/7+vn/+vn5//r5+f/6+fn/8e7r/6qHaf+gZzj/t3ZC/8V/Rv/NgUf/0IRK/9CD
-        Sf/Pgkj/z4JJ/86AR//OgEf/zX5G/819Rf/NfEb/zXtF/8p6Rf++cTntv3E6/8dwQf/HbTz/x249/8hw
-        Pv/IcUD/yXJA/8hxP//KdEH/ynRA/8p1Qv/KdUH/ynZC/8p4Q//GdkL/uG08/6pqQP/ey7//////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////5+Pf/n412/35dM/+ZcT//rn9G/7yJ
-        S//Ej0//x5FQ/8iSUf/JklL/yJJR/8iSUP/JkVD/yZFR/8mQUP/JkE//yI5P/8aNT/+/iEz/sn1F/5tt
-        O/+1m4H/+fj3//7+/v/9/f3//f39//38/P/9/Pz//Pz8//z7+//8+/v/+/v7//v7+v/7+vr/+/r6//v6
-        +v/OvK3/mmg+/65xPv/AfEX/yoFI/8+DSv/QhEr/0INJ/8+CSf/PgUj/zoBI/86ASP/Of0j/zX1G/818
-        Rf/Ne0X/yntG/79xOu3AcTr/x3BA/8dtPP/Ibj7/yHA//8hxP//JckD/yXNB/8lzQf/KdED/ynVC/8p1
-        Qf/Kd0P/ynhD/8Z1Qv+5bj3/qmo//97Lv///////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////WzsT/hmhD/5VuPf+tgEf/wI1O/8uVUv/RmVX/1JtW/9WaVf/VmlX/1ZtV/9ab
-        Vv/VmlX/1JlU/9OXU//RlFL/zJFQ/8GJTf+ve0T/oXhL/9/UyP///////v7+//7+/v/+/f3//f39//39
-        /f/9/fz//fz8//z8/P/8/Pv//Pv7//v7+//8/Pz/6+Tf/6R8W/+kajr/uXhC/8eBSP/Og0j/0IRK/9CE
-        Sv/Qg0n/z4JJ/8+BSP/OgUj/zoBH/81+Rv/NfUb/zXxF/8x7RP/Ke0b/v3I67cFyO//HcUH/xmw7/8hu
-        Pf/Ibz//x3A+/8lyQP/Jc0H/ynRC/8p1Qf/KdEH/y3dC/8p3Qv/Kd0P/xnZC/7luPf+qaj//3su/////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////////////////////r5+P+yoYz/h2Q4/591
-        Qf+1hkr/xpFR/8+YVf/Um1X/15xW/9idVv/YnVb/2ZxW/9icVv/VmVT/05dU/86UUv/Fi0z/tYBH/6Fy
-        P//AqI//+/r4/////////v7//v7+//7+/v/+/v7//v39//39/f/9/f3//f39//38/P/8/Pz//fz8//j3
-        9v+8oIr/nWg7/7N1Qv/Cfkb/y4RK/8+FSv/RhUr/0IRJ/8+DSf/Pg0n/z4JJ/86BSP/OgEf/zX5G/81+
-        Rv/NfUb/zHtE/8p7Rf/AczrtwXI7/8hxQf/HbT3/yG4+/8hvP//IcUD/yXJA/8lyQf/Jc0D/ynRB/8l1
-        Qf/KdkH/ynZB/8p3Qv/FdUH/uW49/6lqQP/ey7//////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////+/s6P+hi3D/iGQ3/591Qf+yg0j/v4xO/8iRUf/NlVP/0JdU/9GZ
-        Vf/RmFX/z5VS/8uSUP/Hj1D/vohL/7J+Rv+fcD3/r5Jx//Ds5/////////////////////////////7+
-        /v/+/v7//v7+//7+/f/9/f3//f39//39/f/9/f3/1MO1/55tRP+tcT//vnxE/8mCR//OhUr/0IZL/9GG
-        S//RhUr/0IRK/8+DSv/PgUf/z4FI/86AR//Nf0f/zn5H/859Rv/Me0T/yntF/8BzO+3Bczz/x3BB/8ds
-        PP/Ibz//yG8+/8dvPv/JcT//yXJA/8p0Qf/KdUL/ynZC/8p1Qf/Kd0L/yXdB/8V1Qf+5bj3/qWk//97L
-        v///////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////////////////////////////////////////+vn
-        4v+ijXP/h2M5/5duPP+nekT/soJI/7qGSv++ik3/wIxO/8CLTv++iEv/uYRI/7KAR/+nd0H/mm4+/6yP
-        b//q5N7////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//////+Xc
-        1P+le1b/p208/7p6RP/Hgkj/zoZK/9CGS//Rhkr/0YVK/9CESv/QhEr/z4NJ/86AR//Of0f/zn9H/81/
-        R//NfUb/zXxF/817Rf/LfEb/wXM77cJzPP/HcEH/x24+/8huPv/Hbz3/yHA//8hxP//JckD/ynNB/8p0
-        Qf/KdkL/ynZC/8p2Qv/KeEP/xnZC/7lvPv+qakD/3su/////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////Du6/+5qpf/jXBM/4pmOf+Uazr/nnE+/6R3
-        Qv+nekT/p3lD/6R1QP+dcDz/l2w8/5l1Tf+9qJH/7+vm////////////////////////////////////
-        /////////////////////////v7+///////w6ub/r4ts/6NsO/+4eUT/xIBH/82GS//Qhkv/0IZK/9GH
-        S//RhUr/0IRJ/8+DSf/Pgkn/z4JI/86ASP/OgEj/zX9H/819Rv/NfEX/zXtF/8t7Rv/BczvtwnM8/8hx
-        Qv/HbT3/yG4+/8hvPv/HcD//yXE//8lyQP/Kc0H/ynRB/8p1Qf/KdUH/yndD/8p4Q//GdUH/uW49/6pp
-        QP/ey77/////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////z8+//h29T/uqqY/5+Gaf+TdFH/jmxE/41qQP+QbUT/l3ZR/6OIaf+9qpX/4trR//v6
-        +f//////////////////////////////////////////////////////////////////////9PDt/7ma
-        f/+ibDz/tXhD/8OASP/LhUr/0IhM/9GITP/Rh0v/0YZK/9GESv/Qg0j/z4JH/8+CSf/Pgkn/zoBH/85/
-        Rv/Nfkb/zX1G/817RP/Me0X/y3xH/8J0PO3DdDz/x29A/8dsPP/Ibz7/yHA//8dwP//IcT//yXJB/8lz
-        Qf/KdEH/ynVB/8p2Qv/Kd0L/ynhD/8V1Qf+4bTz/qWpA/97Lv///////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v//9fPw/+rm
-        4P/k3tf/49zU/+Xe1//q5eD/9PLv//7+/v//////////////////////////////////////////////
-        //////////////////////////////Tw7P+6nIH/oWw9/7R4Q//CgEf/y4VL/8+IS//RiU3/0ohL/9GH
-        S//Sh0v/0IVK/8+DSP/Pg0n/z4NJ/8+BSP/OgEj/zoBH/81/R//NfUb/zXtE/8x6RP/LfEb/wnU87cN0
-        Pf/IcEH/x208/8hvPv/IcD//yHA//8lzQf/Jc0H/yXJA/8p0Qf/KdUH/ynVB/8p2Qv/KeET/xnZC/7lu
-        Pf+qakD/3su/////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////z7ur/upyA/6Jt
-        Pf+0d0H/woFI/8qGSv/PiEv/0YlM/9KITP/RiEz/0YZK/9GGSv/RhUv/0IRK/8+DSf/Pgkn/z4JJ/86B
-        SP/Of0f/zX5G/819Rv/NfUb/zHtF/8t8R//DdD3txHU9/8hwQf/HbT3/yG8//8hvPv/Hbz7/yXE//8ly
-        QP/Jc0H/ynVB/8p1Qf/KdkL/yndD/8p4Q//FdUH/uG49/6lqQP/ey7//////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////7ebg/7eWd/+kbz7/tXlD/8KCSP/Lh0v/0IhL/9GJTf/SiUz/0olN/9GI
-        TP/Rh0v/0YZL/9CFSv/QhEr/z4JI/8+BSP/PgUj/zoFI/85/R//NfUb/zX1G/8x7RP/Me0X/y3xH/8N1
-        Pe3EdT3/yHBB/8dtPf/Ibz//yG8//8hwP//JckD/yXJB/8pzQf/KdEH/ynVC/8p1Qv/Kd0P/yndC/8Z1
-        Qv+4bTz/qWk//97Mv///////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////////////////////v7+/+TZzv+wimf/p3A//7d7
-        RP/Dgkf/zIdL/9CKTf/Si0//0opO/9KJTP/SiEv/0YhM/9GHS//RhUr/0IVK/9CESf/Pgkj/z4JJ/86A
-        R//OgEf/zn9H/819Rv/NfUf/zHtF/8x7RP/MfEf/xHY97cV1Pv/IcEH/x249/8duPv/Ibz7/x3A+/8hw
-        P//JckH/yXJB/8p0Qf/KdUH/ynZC/8p3Q//Jd0L/xnZC/7htPP+paT//3su/////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////j18//Svqv/qX1T/6tzP/+7fkb/xYRJ/82JTf/Rik3/0YpM/9OLTv/Sik3/0olM/9KI
-        TP/RiEz/0YdL/9GFSv/QhEr/z4JI/9CDSv/Pgkj/zoBH/86AR//Nf0b/zX5H/819Rf/MfEX/zXtF/8t8
-        Rv/Edj3txnY+/8hxQv/HbT3/x249/8hvPv/IcD//yHE//8lxQP/JcUD/yXI//8lzQP/KdEH/ynZC/8l3
-        Q//GdkL/uW09/6lpP//ey7//////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////39/f/n3tT/vJx9/6d0RP+xeEH/v4BH/8mH
-        S//Oik3/0YxO/9OMTv/Ti03/04pM/9KKTf/SiUz/0YhL/9GHS//Rhkr/0YVK/9CESv/Qg0n/0IRL/8+C
-        SP/OgEf/zn5G/81+Rv/Nfkf/zX1G/8x7Rf/Me0X/y3xG/8V3Pe3Gdj//yHFC/8ZsPP/Hbj7/yG4+/8hw
-        P//JckH/yXJA/8lyQP/Jc0D/ynVC/8p0Qf/KdkL/yXdC/8V2Qv+6bz7/q2pA/9/Mv///////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////////////////////////////////////39
-        /P/v5+H/ya+W/6x/U/+sdUD/un5G/8OESf/KiEr/0ItN/9KNT//UjU//1IxO/9OLTf/Tik3/0otN/9OK
-        Tf/SiUz/0YdL/9GGSv/QhUv/0YVK/9CDSf/Pgkn/z4JJ/86AR//OgEf/zX5G/85/SP/NfUb/zHxG/8x6
-        Rf/LfEf/xXc+6cZ4QPzIckP/x2w9/8duPf/Hbj3/x289/8hwP//JckD/yXJA/8lzQP/KdED/ynVC/8p1
-        Qf/JdkL/xnZC/7xvPv+ubEH/4M3A////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////r59//n3dP/ya6U/7GGXP+sdkL/tnxE/8GDSf/Ih0r/zotO/9GN
-        Tv/SjU7/04xN/9SNTv/TjE3/04tN/9OLTf/Sik3/0olM/9GHS//Rhkr/0YZL/9GFS//QhEr/0INJ/8+D
-        Sf/PgUf/zn9G/86AR//NfUX/zX5H/818Rf/MfEb/zXtG/8t+Sf/FeD7bxnlA68l0Rf/HbD3/x24+/8hu
-        Pv/Hbz7/x3A+/8lxP//IcD//yXJA/8lzQP/KdEH/ynZC/8l2Qv/HdkH/vnE//7NvQv/jzsH/////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////+/v7/+/n4/+zk2//YxbL/v558/65/
-        UP+ueEL/uH1F/8GESf/IiUz/zYxO/9CNT//TjlD/1I5P/9SPUP/Ujk//04xN/9OMTv/Tik3/04tO/9KJ
-        TP/RiEv/0ohM/9GHS//Rhkv/0YVL/9CESv/Pg0n/z4JJ/86AR//OgEf/zX5G/81+R//NfUb/zXtE/8x7
-        Rf/Ne0b/zH9K/8V2PMPGdz3JyndG/8dtPv/HbT3/yG8+/8hvPv/Hbz7/yXJA/8hyQP/Jc0H/ynRB/8l0
-        QP/JdEH/ynZC/8d3Qv/Bcj//unNE/+LIt//49PH/9/Lw//fy7//28u//9vLv//by7//28u//9vLv//by
-        7//28u//9vLv//by8P/28/D/9vPw//bz8P/28/D/9vPw//bz7//28/D/9/Pw//fz8P/38/D/9/Pw//fz
-        8P/38/D/9/Pw//fz8P/38/D/9/Pw//fz8P/38/D/9/Pw//fz8P/38/D/9/Pw//fz8P/39PD/9/Tw//f0
-        8P/39PD/9/Tw//f08P/39PD/9/Tw//f08P/39PD/9/Tw//f08P/39PD/9/Tw//f08P/39PD/9/Tw//f0
-        8P/39PD/9/Tw//f08P/39PD/9/Tw//f08P/39PD/9/Tw//f08P/39PD/9/Tw//f08P/39PD/8+7p/+7m
-        3f/n3ND/3Mu5/8yzmP+7l3D/s4ZY/656Rf+ze0P/u4FH/8OFSf/JiUv/zo1P/9GPUP/TkFD/1I9Q/9SO
-        Tv/Ujk//1I5P/9SNT//UjU//04xO/9OLTv/Sik3/04pN/9GITP/Rh0v/0YZK/9GGS//QhUr/0IRJ/8+D
-        Sf/PgUn/zoFI/86ASP/Nfkb/zX5G/818Rf/Me0X/zHtF/818Rv/Mf0r/xXQ6n8Z2OpjKekj/x25A/8dt
-        Pf/Hbj3/yG8//8dwPv/IcD//yXJA/8lzQv/KdEH/ynRB/8p0Qf/KdkL/yXhD/8V0Qf/Ac0L/w4Rb/8KL
-        aP+8iGb/uIZk/7aFZP+1hmT/todl/7eHZf+2h2X/t4hl/7eHZf+3iGX/t4lm/7iKZ/+3imb/t4pm/7iL
-        Z/+4jWj/uI1o/7mNaP+5jmn/uY5o/7qPaf+6kGr/uo9p/7qQaf+7kWr/u5Jr/7uSa/+7k2v/u5Jr/7uT
-        a/+7k2v/vJRs/7yUbP+8lGv/u5Vs/7yVbP+9lm3/vJZt/72Xbf+9l23/vZdt/72Xbv+9mG7/vZht/72Y
-        bv+9mG7/vplv/72Ybv+9mW7/vZlu/72Zbv+9mW//vZlu/72Zbv+9mW//vZlu/72Zb/+9mW//vZlu/72Y
-        bv+9mG7/vZhu/72Ybv+9mG7/vZhu/76Ybv+6kmb/totb/7KCTv+wfEX/tH5G/7iARf+9g0j/w4dL/8eK
-        Tf/MjU7/0I9Q/9OQUf/UkVH/1JFQ/9SQUP/Vj1D/1Y9P/9SOT//Ujk//1I1P/9OMTf/Ti07/04tO/9KL
-        Tv/SiUz/0YhM/9CFSf/RhUr/0IVK/9CESv/Pg0n/z4JI/8+BSP/OgEf/zn9H/81+Rv/Nfkb/zXxF/8x7
-        Rf/MekT/zX5K/8p+SPjFdTlsxnY6Xsp8RvPJdEb/xmw8/8duPv/Ibz7/yHA+/8hxP//IcT//yXJA/8ly
-        QP/JdED/ynVC/8p2Q//Jd0P/yHZC/8V1Qv+/cD3/um48/7ZsO/+0azr/s2w7/7JsO/+ybTz/s248/7Nu
-        PP+0bz3/tG89/7RxPf+1cT3/tXI+/7ZzPv+2dD//tnU//7Z1P/+2dkD/uHdB/7h4Qf+4eUH/uXlC/7l6
-        Qv+4e0P/uXtD/7l7Qv+5fEP/un1E/7p+RP+6f0X/u39F/7t/Rf+7gEb/u4JH/7uBRv+7gkb/u4NH/7uD
-        Rv+8hEf/vIRH/7yFSf+9hUn/vYVI/72GSf+9hkj/vYdJ/72HSf+9iEr/vodJ/76HSf++h0r/vohK/76I
-        Sv++h0n/vodJ/76ISv++iEn/vohK/72ISv+9iEr/vYdJ/72HSf+9hkj/vIVH/7yFSP+9hUf/voZI/7+H
-        Sf/Ah0n/w4pM/8WLTP/IjU//y41O/86QUP/QkFD/0pJR/9SSUf/VklH/1ZFR/9WRUP/VkVD/1JBQ/9WQ
-        UP/Ujk//1I5P/9SOT//UjU7/04xO/9OKTf/Sik3/0olM/9GIS//Rh0v/0YZK/9GFSv/QhEr/0IRJ/8+D
-        Sf/OgUf/zoFH/86AR//Of0f/zX5G/819Rv/NfEX/zHtF/8x5RP/OgU7/yHpC4sZ1OTfGdTgkyHpB1st6
-        Tf/GbDz/yG8//8hwP//IcD//yHA//8lyQP/Jc0H/ynNB/8p0Qf/JdEH/ynZC/8p3Q//JeEP/yXhD/8d2
-        Qf/FdkL/xHZC/8R3Qv/Dd0L/w3hD/8N5RP/EekT/xHpF/8V8Rf/FfEX/xX1G/8Z9Rf/Gfkb/x4BI/8eB
-        SP/HgUj/x4FH/8iCSP/Ig0n/yYRL/8mGSv/Khkv/yYZK/8qIS//LiU3/y4hM/8uKTf/Likz/zItN/8yM
-        T//NjU7/zYxN/82NT//Nj0//zI5O/82PT//NkE//zZFR/82RUP/OkVD/zpNR/86TUv/Pk1L/z5NT/8+U
-        U//PlFL/z5VT/8+VU//PlFL/z5VT/8+VU//PlVP/z5VT/8+WU//PlVL/z5VS/8+VUv/PlVP/z5ZU/8+V
-        U//PlFH/z5RT/8+TUv/PklD/z5NS/86TUv/OklH/z5JR/9CTUf/Qk1H/0pNR/9OTUv/VlVP/1ZRS/9WT
-        Uf/WlFL/1pJR/9aTUv/WklH/1pFQ/9WQUP/Vj0//1Y9Q/9SPUP/UjU7/1I1O/9OMTf/TjE7/04tO/9KK
-        Tf/SiUz/0YdK/9CFSf/RhUn/0YVL/9CESf/Pgkj/0INK/8+CSf/PgUj/zoBH/85/Rv/Nf0f/zX1G/818
-        Rv/MekT/zXxH/86DUP/Hdz23xnQ4Dcd3PgXHdzuTzH9N/8lyRP/HbT3/yG4+/8hwP//HcD7/yHE//8lz
-        Qf/Jc0H/ynRB/8p1Qv/KdUH/yndC/8p4Q//KeUT/ynlE/8t6RP/LekT/y3tF/8t6RP/Le0T/y31G/8x+
-        Rv/MfkX/zYBH/82AR//Og0n/z4NK/8+ESv/PhEr/z4VJ/8+GSf/Phkr/0YdL/9CJTP/RiUz/0YtO/9GL
-        Tf/Si03/0o1N/9KNTv/Tjk//1I9Q/9OQUP/UkVH/1ZJR/9SRUP/VklD/1ZNR/9WUUf/VlFH/1pZU/9aW
-        U//Wl1P/1pdU/9aXU//WmFT/1phU/9eZVf/XmVX/2JpV/9eaVf/XmlT/2JtW/9ibVv/Ym1b/15tV/9ib
-        Vv/Xm1X/15tW/9ebVf/Ym1b/2JtW/9ibVv/Ym1X/15pV/9iaVv/YmlX/2JpV/9eZVP/XmVX/15hU/9eY
-        VP/XmFT/15dU/9aWU//Xl1T/2JdU/9eWU//XlVP/15VT/9eTUv/Wk1H/1pNS/9aSUP/VkVH/1ZBQ/9WO
-        T//Ujk//1I9P/9SOT//UjU7/04xN/9OLTf/Sikz/0opN/9KITP/Rh0v/0YZK/9GFSv/QhEr/0IRK/8+C
-        SP/PgUf/z4FI/86BSP/NfkX/zX5G/819R//NfUb/zX1G/8x5Q//PgU//zIFL+8Z0OWrLgEkBxXI2AMd2
-        OT/KfETrzX5S/8dtPv/Hbj3/yG8+/8hwP//IcT//yXNB/8lzQf/Jc0D/ynVB/8l0QP/KdUH/yndD/8t4
-        RP/LeEP/y3pD/8x6RP/Me0X/zHxF/819Rv/NfUb/zn5G/8+BSP/OgUj/z4JJ/8+CSf/Qg0r/0IRJ/9CE
-        Sv/RhUr/0YdK/9GITP/SiEz/0opN/9KKTP/Ti07/04xO/9SNTv/Ujk//1I5O/9SOT//WkFH/1ZBQ/9WR
-        UP/WkU//1pJR/9eTUv/XlFL/15RT/9eUUv/XllP/15ZT/9iWU//YmFT/15hV/9iZVf/YmVT/2JlU/9iZ
-        VP/ZmlX/2ZtW/9maVv/ZmlX/2ZtW/9mbVf/Zm1b/2ZtW/9mbVf/ZnFb/2ZpV/9maVP/anFf/2ptW/9qb
-        V//ZmlX/2ZpV/9mbVv/Zm1b/2ZpV/9mZVf/YmFT/2JhU/9iYVP/Xl1T/2JdU/9eWVP/Yl1T/15VS/9eU
-        Uv/XlFL/15NS/9aSUf/WklH/1ZFQ/9WQUP/Vj0//1I5O/9SPUP/Ujk7/1I1O/9ONTv/Ti03/04pN/9KK
-        TP/SiEv/0YZK/9GHS//Rhkr/0IVK/9CDSf/Qg0n/z4NJ/8+CSf/PgUj/zoBI/81+Rf/NfUX/zn1G/819
-        Rv/Me0X/zXtH/9CHV//IekDUx3U5Icl7QgAAAAAAx3Y8CMd3O6DNglH/ynVI/8dtPP/Ibz//yHA+/8hx
-        P//JckH/yXJB/8pzQP/KdEH/ynRB/8p2Qf/KdkL/yndC/8p3Qv/LeUP/zHpE/8x7Rf/Me0X/zXxF/819
-        Rf/NfUb/zoBH/86BSP/Pgkj/z4JI/8+DSf/QhEn/0IRK/9CESv/RhUn/0YhM/9GIS//SiU3/0opN/9KJ
-        TP/Ti07/04xO/9SNT//UjlD/1I5P/9SPT//VkFD/1ZFR/9aRUP/WklH/1pNR/9aTUf/XlFL/15RS/9eV
-        Uv/XllP/15ZU/9eVUv/XllL/2JhU/9iYVP/YmVX/2JlV/9iZVf/YmVX/2JpW/9mbVv/Zmlb/2ZpV/9mb
-        Vv/ZmlX/2ZpV/9maVf/ZmlX/2ZpV/9qbV//Zm1f/2ZpV/9iZVP/ZmlX/2JlV/9maVv/Zmlb/2JlU/9iY
-        VP/Xl1P/15dT/9eXVP/XllP/2JdV/9eWU//XlVL/15NR/9eTUf/Wk1L/1pJQ/9WRUP/VkVL/1ZBQ/9SO
-        T//Ujk//1I1O/9SNT//UjE7/04tM/9OKTf/Sikz/0opN/9KJTf/Qhkr/0YZK/9GGS//QhUv/0IRK/8+D
-        Sf/Pgkj/z4FJ/86BSf/Of0f/zX5G/818Rf/NfEX/zXxG/8x5Q//QhVP/zIJN/MZ1OnnHekgAAAAAAAAA
-        AADFcjMAyHY6Ncp7QuHPhFj/yHBB/8duPf/IcD//yHA//8lxP//IcT//yXJA/8p0Qf/JdEH/ynZC/8p1
-        Qf/Kd0L/yndC/8t5Rf/LekT/zHpE/8x6RP/NfEX/zXxF/819Rv/NfUX/z4BI/86AR//PgUj/z4FH/9CD
-        SP/QhEr/0IVK/9GFSv/Rh0z/0YdL/9GIS//SiUz/0ohL/9OKTv/TjE7/1IxO/9SMTv/Ujk7/1I5P/9WP
-        UP/VkFD/1ZBR/9aRUP/WkVD/1pJR/9eUUv/Xk1H/15RS/9eVU//XlVP/15dU/9eXU//Yl1P/15dT/9eX
-        U//XmFT/2JlV/9iYU//YmFP/2JlU/9iZVP/Zmlb/2ZpW/9maVf/YmVT/2ZpU/9iZVP/YmlX/2ZtX/9mb
-        V//YmVX/2JlV/9mZVf/YmFP/2JlU/9iZVf/XmFX/15hU/9eXU//XllP/15ZU/9eWU//XllT/15VT/9eT
-        Uv/Xk1H/1pNS/9aRUP/WkVD/1ZBQ/9WQUf/VkFH/1I1O/9SNTv/Ujk//1I1P/9OMTf/Ti07/0opN/9KK
-        TP/SiU3/0YdL/9GHS//Rhkr/0YVL/9CESf/QhEn/z4JJ/8+CSf/PgUj/zoBI/85+Rv/Nfkb/zX1G/818
-        Rf/Me0X/zoBM/9GKWf/IeD3GyHY6HMd5QQAAAAAAAAAAANuekwDJekADyHY5dMyAS/nOgVb/x208/8hv
-        P//IcD7/yHA//8hxP//Jc0H/ynRB/8p1Qf/KdUL/ynVB/8p3Qv/LeEP/y3lD/8x6RP/MekT/zHpE/8x8
-        Rf/NfEX/zX1G/81+Rv/PgEj/zn9H/8+CSf/Pgkn/z4JI/9CESv/QhEr/0YVL/9GHS//Rhkv/0YdK/9KI
-        S//SiUz/0opM/9OKTf/TjE7/04xN/9SNT//TjU3/1I5P/9WPT//Vj0//1ZBR/9aRUP/WklH/1pJR/9aT
-        Uf/WklD/15NS/9eVU//XllP/2JdV/9eWU//XllP/15dU/9eXU//Xl1P/2JhU/9iYVP/YmFT/2JhU/9ma
-        Vf/ZmVX/2ZlV/9maVf/YmVT/2JlU/9iaVf/ZmVX/2ZlU/9iYU//YmVX/2JlV/9iZVf/YmFT/2JhU/9eY
-        VP/Xl1T/15ZU/9eWU//XlVL/15VS/9eVU//XlFP/15NR/9aTUf/WklH/1pFQ/9WQUP/VkFD/1Y9P/9SP
-        UP/Uj1D/1I1O/9SNTv/UjE7/04xO/9OKTf/SiUz/0olM/9KHS//Rh0v/0YhM/9GGSv/QhEr/0IRK/9CD
-        Sv/PgUf/z4JI/8+ASP/Of0f/zX5G/819Rv/NfUb/zHtE/85+Sf/Tjl//y35F7Md2OVDNhFUAAAAAAAAA
-        AAAAAAAAAAAAAMl4PQDIeD0RyXc6o8+EUv7OgFb/x208/8hwPv/IcD//yHE//8lzQv/Jcj//ynRB/8p1
-        Qv/KdUH/yndD/8p3Qv/Kd0L/y3hD/8t5Q//MekT/zHtF/818Rf/NfUb/zX1G/85/R//OgEf/zoBG/8+B
-        SP/Pg0n/0IRK/9CESv/QhUr/0YVK/9GHS//Rh0v/0ohM/9KKTf/Sikz/04lM/9OLTf/TjE3/04xO/9SM
-        Tf/UjU7/1I5Q/9SOT//Vj0//1ZFR/9aSUv/WklH/1pJR/9aSUP/XlFL/15RT/9eUU//XlVP/15VT/9eW
-        U//XllP/15ZT/9eWU//XllL/2JdU/9iYVP/YmFX/2JlU/9iYU//YmFT/2JpV/9iZVf/YmFT/2JlV/9iY
-        VP/YmFX/15hU/9eYVP/YmFX/15dU/9eXU//XllL/15dU/9eXVf/XllP/15VR/9eVUv/XlFL/15RS/9eT
-        Uv/WklH/1ZJQ/9WRUP/VkE//1ZBR/9WQUP/Uj0//1I9Q/9SNTv/UjE3/1I1O/9OLTf/Sikz/0opL/9KJ
-        TP/SiEz/0YhM/9GHS//Rhkr/0IVL/9CESf/Qg0n/z4JI/8+BR//PgUj/zoBH/86ASP/NfUb/zX1G/818
-        RP/MfEb/1I9h/86CTPnIdjmBynxCBcl4PwAAAAAAAAAAAAAAAAAAAAAAAAAAAMd1OADKeD0gyXg8utCH
-        Vv/Pglj/yG8+/8dwPf/JcT//yXJA/8hxP//KdEH/ynRB/8p0QP/KdkL/yndC/8p3Qv/LeUP/y3lE/8x6
-        RP/Me0X/zXxG/818Rf/NfUb/zX5G/86AR//Of0b/z4FI/8+CSf/Pg0n/0IRK/9CESv/RhUr/0YdL/9GF
-        Sf/Rh0v/0ohM/9KKTP/SiUz/04tO/9OMTv/TjU7/1I1P/9SNTv/Ujk//1I5P/9WPUP/VkFH/1ZBQ/9WR
-        UP/WklH/1pNS/9aTUv/WklD/15NS/9eUUv/XlVP/15RR/9eVUv/XllP/15dU/9eWU//XllP/2JdU/9iX
-        VP/Yl1P/2JhU/9eYVf/XmFT/15hU/9eYVf/XmFX/15hU/9iXVP/XllP/15ZS/9iXVP/Yl1T/15ZT/9eV
-        U//XlVL/15VS/9eVUv/XlFL/15RT/9eUUv/Xk1L/1pNS/9aSUP/WklH/1ZFR/9WQUP/Vj0//1Y9Q/9SP
-        UP/Uj1D/1I1P/9SMTf/Ti03/04pN/9OLTv/SiEv/0olM/9KITP/Rh0z/0YdL/9GGS//RhUv/0INJ/9CD
-        Sv/Pgkn/z4FH/8+BSP/OgEf/zX5G/819Rv/NfEX/zX5I/9SQY//PhVH8yXY6nMp5PxLJeTwAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMl1OADJeDwoyXg8vdCHVf7Qhl3/yHFB/8dvPf/Jc0H/yXJA/8pz
-        QP/KdUL/ynZC/8t2Qv/Kd0L/yndC/8t4Q//LeUP/zHpE/8x6RP/MfEX/zXxG/819Rv/Nfkb/zn9G/85/
-        R//OgUf/z4JJ/8+DSf/Qg0r/0IRJ/9GFS//Rhkv/0YZK/9GHTP/SiEz/0ohM/9KKTf/Si03/04tN/9OL
-        Tf/UjU7/1I1O/9ONTv/Ujk//1I5P/9WPUP/VkFH/1ZBQ/9aSUv/Xk1L/1pJR/9WSUP/WklH/15NR/9eU
-        Uv/XlFL/15VT/9eVUv/XllP/15ZT/9eWU//XllT/2JdU/9eWU//XlVL/15ZT/9eWU//XllP/2JdU/9eW
-        U//XllP/15ZT/9eWU//XllP/15ZU/9eWU//WlVL/15ZU/9eVUv/XlFL/15RT/9eTUv/Xk1H/1pJR/9aR
-        UP/WkVD/1ZFQ/9WRUv/VkFD/1Y9Q/9SOTv/Ujk//1I5P/9SNTv/TjE3/04xN/9OKTP/Tik3/0opN/9KJ
-        TP/SiUz/0YdM/9GHS//Rhkv/0YVL/9CESv/QhEr/z4JJ/8+CSf/PgUf/zoBH/85/Rv/NfkX/zXxE/9CD
-        T//Vk2b/z4VQ/Ml2OqHKeT4XyHU5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy3tDAMdz
-        NADJeT0lyXg7rc+EUPzTjGP/zHtO/8hxP//IcD3/yHI//8p0Qf/JdED/ynVB/8p2Qv/Kd0L/ynhD/8t4
-        Qv/LekT/zHpE/818Rf/NfUb/zn5G/819Rv/Mfkb/zn9G/85/R//PgUj/0IJJ/9CDSv/QhEr/0IVK/9CF
-        Sv/Rhkv/0ohM/9GITP/SiUz/0olM/9KKTf/SiUz/04pN/9KLTf/TjE7/1I1P/9SOT//Ujk7/1I9Q/9WP
-        T//Vjk//1ZBQ/9WQUP/WkVD/1pJR/9aSUv/WkVD/15RS/9aTUf/XlVP/15NR/9eTUf/XlFL/15VT/9eV
-        U//XlFL/15VS/9eVU//XlVL/15ZT/9eWU//XllT/15ZT/9eWU//XllP/15ZU/9eVUv/XlVP/15VT/9eV
-        Uv/XlFL/15RS/9eTUv/Wk1H/1pNS/9aSUv/WklH/1pFQ/9WQT//VkFD/1ZBQ/9WPT//VjlD/1I5P/9SO
-        T//UjU7/1I1O/9OMTf/Tik3/0olM/9OLTf/Sikz/0ohM/9GHS//Rh0v/0YZL/9GFSv/QhEr/0INJ/9CD
-        Sf/Pgkn/z4FI/86AR//OgEf/zX1E/81+R//TjVz/1pRm/86CSvbJdzqVyno+GMl2OgDMgEcAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzH5GAMl5PADLeT4Yync6is1+RuvSjF//0oph/8x6
-        TP/IcT7/yXA8/8pzP//JdED/ynZC/8p3Q//Kd0P/y3hE/8t5Q//LekT/zHtF/8x8Rv/NfUb/zX1G/81+
-        R//OgEj/zn9H/86BSP/PgUj/0INJ/8+DSf/Pg0n/0IRK/9CFSv/Sh0z/0YdL/9GHTP/RiEv/0olN/9KK
-        Tf/Ti03/04pN/9OLTf/UjU7/1I1O/9SOTv/Uj0//1I5P/9WPT//Vj0//1ZBR/9WRUf/VkVH/1pFQ/9aS
-        UP/WklH/1pNR/9aTUv/Wk1H/15NR/9eUU//XlVP/15RT/9aUUf/XlVL/15VT/9eVU//XlVP/1pRR/9eV
-        U//XlVL/15VT/9eVU//XlVP/15VS/9eUUv/XlFL/15RS/9eUU//Wk1H/1pNR/9aSUf/WklD/1pJR/9aS
-        Uf/VkVH/1ZBQ/9WPUP/Vj0//1I9Q/9SNTv/TjE3/1I5P/9SNTv/TjE7/04tN/9OKTv/Sik3/0olM/9KI
-        TP/RiEz/0ohM/9GGSv/RhUr/0IVK/9CFSv/Pg0n/z4JJ/8+BSP/OgEb/zX1E/85/Rv/SiVf/1pZp/9OO
-        XP/MfEHfyXY5a8t7QA3JeT0A05VmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAMp5PADMfEIHync6S8p5PbrPg075045i/9ONZP/Pglb/zHlJ/8l0Qf/KdED/ynVA/8l1
-        P//KdkD/y3dC/8p3QP/LeEL/zHlC/8x5Qv/Ne0P/zHtE/8x8Q//NfUT/zX5E/85/Rf/PgUf/zn9F/86A
-        Rf/Qgkf/z4NH/9CDSP/RhUj/0IVI/9CGSf/Rh0n/0YhK/9GISv/SiUv/04pM/9KKTP/Ti0v/04tL/9SM
-        Tf/UjU3/1I1N/9SNTf/Ujk3/1I5N/9SOTv/Uj07/1ZBO/9WQTv/VkE3/1ZBN/9aRT//WklD/1pJP/9aR
-        T//VkU3/1pFO/9eSUP/WklD/1pJQ/9eTUf/WkU7/15NR/9aSUP/WklD/15JQ/9aST//Xk1D/1pJP/9aR
-        T//VkU7/1pFP/9WQTv/VkU//1ZBN/9WQTv/Vj07/1Y9O/9SOTv/UjU3/1I1N/9SNTf/TjEz/1IxM/9SL
-        TP/Ti0z/0opL/9KKS//SiEr/0YhK/9GISv/Rh0n/0YdK/9GGSv/QhUj/0IRI/8+CR//Pgkf/z4JH/8+B
-        Rv/PgUf/zoBH/9GHUf/VkWD/1pZp/9SRYv/Ogkrwync6pMp3OjrVmWsBynk+AAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMt7QADJczQAyng+FMp3
-        OmPLej65zoJL7NKLW//VkGX/1JBm/9ONYv/SiV3/0IdY/9CHV//Rh1j/0YhY/9GIWP/SiVn/0opZ/9KK
-        Wv/Tiln/0opZ/9ONW//TjVv/041b/9SPXP/Uj1z/1ZFe/9WRXf/VkV3/1ZJe/9aTX//WlF//1pVg/9aU
-        X//Xll//15dh/9eWX//Yl2H/2Jdh/9iZYv/YmWH/2Zpi/9maYv/ZmmL/2Ztj/9mcY//anGP/2pxj/9qc
-        ZP/anmX/2p5l/9qeZP/anWP/259l/9ufZf/boGb/259l/9qeZP/an2T/26Bl/9ugZf/bn2X/259k/9uf
-        Zf/boGX/259l/9ygZv/bn2X/26Bl/9ugZf/boGX/259l/9qfZP/bn2X/255k/9qeZP/anGP/2p1k/9qd
-        ZP/anGP/2Zti/9mbYv/Zm2P/2Zti/9maYv/ZmWH/2Jlh/9iZYf/YmGL/2Jdh/9eXYf/Xl2H/15Zg/9eV
-        YP/WlWD/1pNd/9aUXv/Wk1//1ZFc/9WSXv/Wk2H/1pRj/9iXaP/Xl2n/1pVn/9OMWf3NgUjmyng8qsl2
-        Ok3LekEMyXU3AMt9QwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLekEAw2kmAMt5PhPLeDpOy3c6lsx7QNLOgEj50IZQ/9KK
-        WP/Tjl7/1JBh/9SQYf/UkGH/1JFh/9SRYv/UkWH/1ZFi/9SRYf/UkWH/1ZJi/9WTY//VkmL/1ZNi/9WT
-        Y//Vk2P/1ZRi/9aUY//VlGP/1pRj/9aVY//WlWP/1pVj/9aVY//WlWT/1pVk/9aVZP/XlmT/15Zk/9eW
-        Zf/XlmT/15dl/9eXZP/Xl2T/15dl/9eXZf/Xl2T/15dk/9eXZf/Xl2X/15hl/9eYZf/XmGX/2Jll/9iY
-        Zf/YmGb/2Jhm/9iYZv/XmGX/15hl/9iYZv/YmGX/15hl/9eYZP/XmGX/15hl/9eYZf/YmGb/2Jhm/9eY
-        Zf/XmGX/15hl/9eXZf/XmGX/15hl/9eYZf/Xl2T/15dl/9eXZf/Xl2T/15dk/9eXZf/XlmT/15Zk/9eX
-        ZP/XlmT/15Zk/9eWZP/WlWT/1pZk/9aVZP/WlmT/1pVk/9aVY//WlWP/1pVj/9aUY//WlGP/1ZNi/9SR
-        X//Si1j/0IVP/86AR/TLej7GynY6h8p3OkLMfEALyXM3AMt7QgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAf///gAAAAAAAAAAAAAAAAB///gAAAAAAAAAAA
-        AAAAAAH//wAAAAAAAAAAAAAAAAAA//4AAAAAAAAAAAAAAAAAAH/8AAAAAAAAAAAAAAAAAAA/+AAAAAAA
-        AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/gAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAB8AA
-        AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAA
-        AAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAB/AAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAA
-        AAAAAAAf/AAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAH//AAAAAAAAAAAAAAAAAAD//8AAAAAA
-        AAAAAAAAAAAD///wAAAAAAAAAAAAAAAAD/8=
-</value>
-  </data>
-</root>

+ 0 - 345
OTSIncAReportApp/2-CommonFunction/OTSSampleReportInfo/OTSSampleReportInfo.cs

@@ -1,345 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-//this module's enum definition are the shadow of the PropParam.h in the OTSMODEL(C++)
-//that means there're a same contrast definition in that module.that's because export an enum definition to C# from C++ through clr project is difficult.
-namespace OTSIncAReportApp.OTSSampleReportInfo
-{
-    #region 相关枚举定义
-    /// <summary>
-    /// document标签标识
-    /// </summary>
-    /// 
-
-    public enum REPORT_GRID_DATA_TYPE
-    {
-        STRING = 0,
-        PARTICLE = 1,
-        INT = 2,
-        FLOAT = 3
-    }
-
-    public enum DisplayPicutureType
-    {
-        //分析图
-        AnalyzeImg = 0,
-        //分析数据表
-        AnalyzeDataTable = 1,
-        //分析数据图
-        AnalyzeDataChart = 2
-    }
-    public enum IMAGE_DISPLAY_TYPE
-    {
-        INVALID = -1,
-        GENERAL = 0,
-        IMAGE_GRID = 1,
-
-    }
-    public enum IMAGE_TYPE
-    {
-        INVALID = -1,
-        BSE = 0,
-        CLASSIFIED = 1,
-
-    }
-    public enum CALCULATE_TABLE_TYPE
-    {
-        INVALID = -1,
-        MEASURE_INFO = 0,
-        PARTICALE_GENE_INFO = 1,
-        PARTICALE_COMP = 2,
-        ELEMENT_COMP = 3,
-        PARTICALE_SIZE_DISTRIBUTION = 4,
-        AVE_ELEMENT_COMP = 5,
-        GB_Method1 = 6,
-        GB_Method2 = 7,
-        ASTM = 8,
-        DIN = 9
-
-    }
-    public enum CALCULATE_CHART_TYPE
-    {
-        INVALID = -1,
-        COMMON_FIVE = 0,
-        PARTICALE_COMP = 1,
-        ELEMENT_COMP = 2,
-        PARTICALE_SIZE_DISTRIBUTION = 3,
-        TRIO_CHART = 4,
-
-
-    }
-    /// <summary>
-    /// 显示计算方法的类型
-    /// </summary>
-    public enum ComputedColNameEnum
-    {
-        //最长直径
-        MaxDiameter = 0,
-        //最短直径
-        MinDiameter = 1,
-        //面积
-        Area = 2,
-        //等效圆直径
-        EquivalentCircleDiameter = 3,
-        //费雷特直径
-        FerretDiameter = 4,
-        //长短直径比
-        DiameterRatio = 5
-    }
-
-    /// <summary>
-    /// 标记分析物的类型
-    /// </summary>
-    public enum OTS_SOFT_PACKAGE_ID
-    {
-        //INVALID = -1,
-        //MIN = 0,
-        OTSIncA = 0,             //夹杂物分析
-        OTSPartA = 1,            //颗粒度分析
-        //MAX = 1
-    };
-    //国标信息表类型
-    public enum GBTypeEnum
-    {
-        GB1 = 0,
-        GB2 = 1
-    }
-    /// <summary>
-    /// 样品属性值的名称
-    /// </summary>
-    public enum OTS_REPORT_PROP_GRID_ITEMS
-    {
-        INVALID = -1,  //image 0\3\2\7\8\5\10\13
-        MIN = 0,
-        /// <summary>
-        /// 数据源
-        /// </summary>
-        DATA_SOURCE = 0,
-        /// <summary>
-        /// 数据类型
-        /// </summary>
-        DATA_SOURCE_TYPE = 1,
-        /// <summary>
-        /// 分布图中,测量图类型
-        /// </summary>
-        IMAGE_TYPE = 2,
-        /// <summary>
-        /// 分布图中,测量图显示方式
-        /// </summary>
-        IMAGE_DISPLAY_TYPE = 3,
-        /// <summary>
-        /// 
-        /// </summary>
-        MEASURE_DATA_TYPE = 4,
-        /// <summary>
-        /// 数据表,类型,查看什么表
-        /// </summary>
-        CALCULATE_TABLE_TYPE = 5,
-        /// <summary>
-        /// 数据图,类型,查看什么图
-        /// </summary>
-        CALCULATE_CHART_TYPE = 6,
-        /// <summary>
-        /// 颗粒类型,分布图中,全部,分析颗粒
-        /// </summary>
-        PARTICLE_TYPE = 7,
-        /// <summary>
-        /// 
-        /// </summary>
-        STD_ID = 8,
-        /// <summary>
-        /// 粒级表
-        /// </summary>
-        GRAIN_SIZE_CLASS_TABLE = 9,
-        /// <summary>
-        /// 粒级,全部,自定义等
-        /// </summary>
-        GRAIN_SIZE_CLASS = 10,
-        /// <summary>
-        /// 粒级,最小颗粒
-        /// </summary>
-        GRAIN_SIZE_MIN = 11,
-        /// <summary>
-        /// 粒级,最大颗粒
-        /// </summary>
-        GRAIN_SIZE_MAX = 12,
-        /// <summary>
-        /// 尺寸计算法
-        /// </summary>
-        SIZE_CAL_METHOD_TYPE = 13,
-        /// <summary>
-        /// 
-        /// </summary>
-        SIZE_GRID_CAL_METHOD_TYPE = 14,
-        /// <summary>
-        /// 三元相图模板
-        /// </summary>
-        TRIO_CHART_TYPE = 15,
-        MAX = 16
-    };
-
-    /// <summary>
-    /// 样品属性值的类型
-    /// </summary>
-    public enum OTS_ITEM_TYPES
-    {
-        BOOL = 0,
-        DOUBLE = 2,
-        COMBO = 4,
-    };
-
-    /// <summary>
-    /// 消息框相关按钮样式
-    /// </summary>
-    public enum MessageBoxRev
-    {
-        DIALOG_YES = 0,
-        DIALOG_NO = 1,
-        DIALOG_CANCEL = 2
-    };
-
-
-    #endregion
-
-    #region 相关结构类定义
-    /// <summary>
-    /// 树控件结构类,ReportApp 给 RetMgrWindow 发送添加测量结果文件的信息
-    /// </summary>
-    public class CTreeSampleRst
-    {
-        public string sSampleTitleName;                             
-        public List<OTS_REPORT_PROP_GRID_ITEMS> List_ShowGrid_Items;   
-        public bool bSwitch;                                       
-    };
-
-    /// <summary>
-    /// 测量结果属性数据类
-    /// </summary>
-    public class ConditionItem
-    {
-        public OTS_REPORT_PROP_GRID_ITEMS iItemId;                //具体标题在哪行
-        public String sSCaptionName;                               //样品标题名         //具体名称                    
-        public OTS_ITEM_TYPES iItemValType;                       //样品标题名对应值的类型(bool,int~~~~)
-        public bool bReadOnly;                                      //值的类型(可读、不可读)
-        public string sDescriptionInfo;                             //描述信息
-        public Object itemVal;                                    //样品标题名对应值 
-        public List<String> comboDownList = new List<string>();     //如果iSampleValType是combobox则在此处存储下拉列表
-    }
-    /// <summary>
-    /// 测量结构信息类
-    /// </summary>
-    public class ReportCondition
-    {
-        #region 变量定义
-
-        /// <summary>
-        /// 样品属性数据
-        /// </summary>
-        public List<ConditionItem> ConditionItemList;
-        /// <summary>
-        /// 树控件类,全局变量
-        /// </summary>
-        public CTreeSampleRst TSampleRst;
-        /// <summary>
-        /// 索引
-        /// </summary>
-        public DisplayPicutureType TabIndex;
-        #endregion
-
-        #region 构造函数
-        /// <summary>
-        /// 构造函数
-        /// </summary>
-        public ReportCondition()
-        {
-            ConditionItemList = new List<ConditionItem>();
-            TSampleRst = new CTreeSampleRst();
-        }
-        #endregion
-        /// <param name="in_list_sampledata"></param>
-        /// <param name="in_orpgi"></param>
-        /// <returns></returns>
-        public int GetPropIndexByPropItemName( OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
-        {
-            for (int i = 0; i < ConditionItemList.Count; i++)
-            {
-                if (ConditionItemList[i].iItemId == in_orpgi)
-                {
-                    return i;
-                }
-            }
-            return -1;
-        }
-        public object GetPropItemValueByPropItemName(OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
-        {
-            for (int i = 0; i < ConditionItemList.Count; i++)
-            {
-                if (ConditionItemList[i].iItemId == in_orpgi)
-                {
-                    return ConditionItemList[i].itemVal;
-                }
-            }
-            return -1;
-        }
-        public void SetPropByPropItemName(OTS_REPORT_PROP_GRID_ITEMS in_orpgi, string val)
-        {
-            int i = GetPropIndexByPropItemName(in_orpgi);
-
-            ConditionItemList[i].itemVal = val;
-        }
-        public int GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
-        {
-            int i = GetPropIndexByPropItemName(in_orpgi);
-
-           return ConditionItemList[i].comboDownList.IndexOf(ConditionItemList[i].itemVal.ToString());
-
-        }
-        public List<String> GetComboDownListByItemName(OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
-        {
-            int i = GetPropIndexByPropItemName(in_orpgi);
-
-            return ConditionItemList[i].comboDownList;
-
-        }
-
-        public List<String> SetComboDownListByItemName(OTS_REPORT_PROP_GRID_ITEMS in_orpgi, List<String> comboDownList)
-        {
-            int i = GetPropIndexByPropItemName(in_orpgi);
-
-            return ConditionItemList[i].comboDownList = comboDownList;
-
-        }
-        public string GetItemvalByItemName(OTS_REPORT_PROP_GRID_ITEMS in_orpgi)
-        {
-            int i = GetPropIndexByPropItemName(in_orpgi);
-
-            return ConditionItemList[i].itemVal.ToString();
-
-        }
-        /// <summary>
-        /// 按照枚举字符串,过滤Source掉不显示的项
-        /// </summary>
-        /// <param name="source"></param>
-        /// <returns></returns>
-        public void FilterData(ReportCondition source)
-        {
-            ReportCondition ret = this;
-            ret.TabIndex = source.TabIndex;
-
-
-            //new
-            List<OTS_REPORT_PROP_GRID_ITEMS> list_shogrid_items = source.TSampleRst.List_ShowGrid_Items;
-            for (int i = 0; i < source.ConditionItemList.Count; i++)
-            {
-                if (list_shogrid_items.Contains(source.ConditionItemList[i].iItemId))
-                {
-                    ret.ConditionItemList.Add(source.ConditionItemList[i]);
-                }
-            }
-
-            return ;
-        }
-
-    };
-    #endregion
-}

+ 6 - 6
OTSIncAReportApp/OTSIncAReportApp.csproj

@@ -247,10 +247,10 @@
     <Compile Include="1-UI\frmMeasureRstMgr.Designer.cs">
       <DependentUpon>frmMeasureRstMgr.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\frmReportConditionChoose.cs">
+    <Compile Include="1-UI\OTSDisplaySourceGridData\frmReportConditionChoose.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="1-UI\frmReportConditionChoose.Designer.cs">
+    <Compile Include="1-UI\OTSDisplaySourceGridData\frmReportConditionChoose.Designer.cs">
       <DependentUpon>frmReportConditionChoose.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\frmMultiSourceSelect.cs">
@@ -388,7 +388,7 @@
     <Compile Include="3-ServiceCenter\DataOperation\Model\ResultFile.cs" />
     <Compile Include="3-ServiceCenter\DataOperation\Model\RptConfigFile.cs" />
     <Compile Include="3-ServiceCenter\DataOperation\Model\XRay.cs" />
-    <Compile Include="1-UI\OTSDisplaySGridData\ChangeGridCellValEvent.cs" />
+    <Compile Include="1-UI\OTSDisplaySourceGridData\ChangeGridCellValEvent.cs" />
     <Compile Include="1-UI\GBCalculate\ASTMStandardABCDDS.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -426,7 +426,7 @@
       <DependentUpon>frmPartSizeEditorNew.cs</DependentUpon>
     </Compile>
     <Compile Include="2-CommonFunction\OTSDataMgrFunction\ResultDataMgr.cs" />
-    <Compile Include="1-UI\OTSDisplaySGridData\OTSSourceGrid.cs" />
+    <Compile Include="1-UI\OTSDisplaySourceGridData\OTSSourceGrid.cs" />
     <Compile Include="1-UI\OTSMgrInfo\Triangulation_Edit.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -503,7 +503,7 @@
       <DependentUpon>OTSReport_GetEChartImage.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\OTSRibbon\OTSRibbonFun.cs" />
-    <Compile Include="2-CommonFunction\OTSSampleReportInfo\OTSSampleReportInfo.cs" />
+    <Compile Include="1-UI\OTSDisplaySourceGridData\OTSSampleReportInfo\OTSSampleReportInfo.cs" />
     <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_TemplateDesignerRM.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -572,7 +572,7 @@
     <EmbeddedResource Include="1-UI\frmMeasureRstMgr.resx">
       <DependentUpon>frmMeasureRstMgr.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="1-UI\frmReportConditionChoose.resx">
+    <EmbeddedResource Include="1-UI\OTSDisplaySourceGridData\frmReportConditionChoose.resx">
       <DependentUpon>frmReportConditionChoose.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="1-UI\frmMultiSourceSelect.resx">