From 973524ee779df3814587b9822656f4977a676a30 Mon Sep 17 00:00:00 2001 From: "Arin(asus)" Date: Tue, 26 Nov 2024 20:15:16 +0900 Subject: [PATCH] initial commit --- .gitignore | 13 + Alert.ico | Bin 0 -> 15086 bytes ArinLog.Net4.dll | Bin 0 -> 14336 bytes ArinSetting.Net4.dll | Bin 0 -> 14336 bytes CHANGELOG | 2 + DLL/Winsock Orcas.dll | Bin 0 -> 108032 bytes DLL/arCommSM.dll | Bin 0 -> 15360 bytes DLL/arCommUtil.dll | Bin 0 -> 187904 bytes DLL/arMasterK.dll | Bin 0 -> 36864 bytes JdModbus/Attributes/CoilAttribute.cs | 11 + JdModbus/Attributes/HoldingAttribute.cs | 11 + JdModbus/Attributes/InputAttribute.cs | 11 + JdModbus/Attributes/ModbusAddressAttribute.cs | 13 + JdModbus/Configures/RtuConfigure.cs | 17 + JdModbus/Configures/TcpConfigure.cs | 11 + JdModbus/JdModbus.cs | 151 + JdModbus/JdModbusV1.csproj | 14 + README.md | 1 + Smiley.ico | Bin 0 -> 4286 bytes Sub/CommData/CommData.csproj | 55 + Sub/CommData/Enum.cs | 314 + Sub/CommData/EnumDIO.cs | 180 + Sub/CommData/EnumMot.cs | 43 + Sub/CommData/EnumVAR.cs | 61 + Sub/CommData/Enum_MotPosition.cs | 199 + Sub/CommData/Properties/AssemblyInfo.cs | 36 + Sub/WinsockOracs/About.txt | 23 + Sub/WinsockOracs/AsyncSocket.vb | 1247 +++ Sub/WinsockOracs/Backup/About.txt | 23 + Sub/WinsockOracs/Backup/AsyncSocket.vb | 1247 +++ Sub/WinsockOracs/Backup/Deque.vb | 185 + Sub/WinsockOracs/Backup/Enumerations.vb | 49 + Sub/WinsockOracs/Backup/EventArgs.vb | 422 ++ Sub/WinsockOracs/Backup/History.txt | 28 + Sub/WinsockOracs/Backup/IWinsock.vb | 111 + .../Backup/My Project/Application.Designer.vb | 13 + .../Backup/My Project/Application.myapp | 10 + .../Backup/My Project/AssemblyInfo.vb | 35 + .../Backup/My Project/Resources.Designer.vb | 70 + .../Backup/My Project/Resources.resx | 124 + .../Backup/My Project/Settings.Designer.vb | 73 + .../Backup/My Project/Settings.settings | 7 + Sub/WinsockOracs/Backup/ObjectPacker.vb | 53 + .../Backup/Resources/k-koding.png | Bin 0 -> 30384 bytes Sub/WinsockOracs/Backup/SharedMethods.vb | 85 + Sub/WinsockOracs/Backup/Winsock Orcas.vbproj | 129 + Sub/WinsockOracs/Backup/Winsock.png | Bin 0 -> 749 bytes Sub/WinsockOracs/Backup/Winsock.vb | 583 ++ Sub/WinsockOracs/Backup/WinsockCollection.vb | 571 ++ Sub/WinsockOracs/Backup/WinsockDesigner.vb | 236 + Sub/WinsockOracs/Backup/WinsockFileData.vb | 83 + Sub/WinsockOracs/Backup/frmAbout.Designer.vb | 146 + Sub/WinsockOracs/Backup/frmAbout.resx | 149 + Sub/WinsockOracs/Backup/frmAbout.vb | 24 + Sub/WinsockOracs/Deque.vb | 185 + Sub/WinsockOracs/Enumerations.vb | 49 + Sub/WinsockOracs/EventArgs.vb | 422 ++ Sub/WinsockOracs/History.txt | 28 + Sub/WinsockOracs/IWinsock.vb | 111 + .../My Project/Application.Designer.vb | 13 + Sub/WinsockOracs/My Project/Application.myapp | 10 + Sub/WinsockOracs/My Project/AssemblyInfo.vb | 35 + .../My Project/Resources.Designer.vb | 73 + Sub/WinsockOracs/My Project/Resources.resx | 124 + .../My Project/Settings.Designer.vb | 73 + Sub/WinsockOracs/My Project/Settings.settings | 7 + Sub/WinsockOracs/ObjectPacker.vb | 53 + Sub/WinsockOracs/Resources/k-koding.png | Bin 0 -> 30384 bytes Sub/WinsockOracs/SharedMethods.vb | 85 + Sub/WinsockOracs/UpgradeLog.htm | 299 + Sub/WinsockOracs/Winsock Orcas.sln | 25 + Sub/WinsockOracs/Winsock Orcas.vbproj | 136 + Sub/WinsockOracs/Winsock.png | Bin 0 -> 749 bytes Sub/WinsockOracs/Winsock.vb | 583 ++ Sub/WinsockOracs/WinsockCollection.vb | 571 ++ Sub/WinsockOracs/WinsockDesigner.vb | 236 + Sub/WinsockOracs/WinsockFileData.vb | 83 + Sub/WinsockOracs/frmAbout.Designer.vb | 146 + Sub/WinsockOracs/frmAbout.resx | 149 + Sub/WinsockOracs/frmAbout.vb | 24 + TEST/DigitalIndicator/App.config | 6 + TEST/DigitalIndicator/DigitalIndicator.csproj | 90 + TEST/DigitalIndicator/Form1.Designer.cs | 220 + TEST/DigitalIndicator/Form1.cs | 123 + TEST/DigitalIndicator/Form1.resx | 123 + TEST/DigitalIndicator/Program.cs | 22 + .../Properties/AssemblyInfo.cs | 33 + .../Properties/Resources.Designer.cs | 71 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + TEST/DigitalIndicator/packages.config | 4 + TEST/chart_new/App.config | 6 + TEST/chart_new/CustomChartControl.cs | 501 ++ TEST/chart_new/Form1.Designer.cs | 74 + TEST/chart_new/Form1.cs | 51 + TEST/chart_new/Form1.resx | 120 + TEST/chart_new/Program.cs | 22 + TEST/chart_new/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 71 + TEST/chart_new/Properties/Resources.resx | 117 + .../chart_new/Properties/Settings.Designer.cs | 30 + TEST/chart_new/Properties/Settings.settings | 7 + TEST/chart_new/chart_new.csproj | 86 + TEST/chart_scottplot/App.config | 22 + TEST/chart_scottplot/Form1.Designer.cs | 86 + TEST/chart_scottplot/Form1.cs | 267 + TEST/chart_scottplot/Form1.resx | 120 + TEST/chart_scottplot/OpenTK.dll.config | 25 + TEST/chart_scottplot/Program.cs | 22 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 71 + .../chart_scottplot/Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + TEST/chart_scottplot/chart_scottplot.csproj | 138 + TEST/chart_scottplot/packages.config | 19 + TrendCtrlII/CChinfo.cs | 40 + TrendCtrlII/CMouseinfo.cs | 105 + TrendCtrlII/CStyle.cs | 339 + TrendCtrlII/CTimeinfo.cs | 28 + TrendCtrlII/CUserCursor.cs | 41 + TrendCtrlII/Properties/AssemblyInfo.cs | 36 + TrendCtrlII/Properties/Resources.Designer.cs | 133 + TrendCtrlII/Properties/Resources.resx | 143 + TrendCtrlII/Resources/Backup Green Button.png | Bin 0 -> 4897 bytes TrendCtrlII/Resources/Blue Ball.png | Bin 0 -> 4104 bytes TrendCtrlII/Resources/Clear Green Button.png | Bin 0 -> 4514 bytes .../Resources/Get Info Blue Button.png | Bin 0 -> 4311 bytes TrendCtrlII/Resources/Red Ball.png | Bin 0 -> 4071 bytes TrendCtrlII/Resources/down_16.png | Bin 0 -> 3284 bytes TrendCtrlII/Resources/down_orange.png | Bin 0 -> 3242 bytes TrendCtrlII/TrendCtrlII.cs | 1807 +++++ TrendCtrlII/TrendCtrlII.cs.bak | 1196 +++ TrendCtrlII/TrendCtrlII.csproj | 103 + TrendCtrlII/TrendCtrlII.resx | 120 + TrendCtrlII/TrendCtrlII.sln | 20 + TrendView.pdf | Bin 0 -> 451371 bytes TrendView.pptx | Bin 0 -> 2176715 bytes VMSMonitor/App.config | 6 + VMSMonitor/ArinXMl.vb | 144 + VMSMonitor/Form1.Designer.vb | 172 + VMSMonitor/Form1.resx | 284 + VMSMonitor/Form1.vb | 306 + VMSMonitor/Frm_monitor.Designer.vb | 179 + VMSMonitor/Frm_monitor.resx | 284 + VMSMonitor/Frm_monitor.vb | 337 + VMSMonitor/My Project/Application.Designer.vb | 44 + VMSMonitor/My Project/Application.myapp | 10 + VMSMonitor/My Project/AssemblyInfo.vb | 35 + VMSMonitor/My Project/Resources.Designer.vb | 63 + VMSMonitor/My Project/Resources.resx | 117 + VMSMonitor/My Project/Settings.Designer.vb | 73 + VMSMonitor/My Project/Settings.settings | 7 + VMSMonitor/VMSMonitor.sln | 20 + VMSMonitor/VMSMonitor.vbproj | 148 + VMSMonitor/monitor.ico | Bin 0 -> 4286 bytes VMSMonitor/system.ico | Bin 0 -> 18718 bytes Viewer/AlarmViewer/AlarmViewer.csproj | 232 + Viewer/AlarmViewer/Alert.ico | Bin 0 -> 15086 bytes Viewer/AlarmViewer/Class/CFDBA.cs | 363 + .../Dialog/Frm_Alamlist.Designer.cs | 480 ++ Viewer/AlarmViewer/Dialog/Frm_Alamlist.cs | 221 + Viewer/AlarmViewer/Dialog/Frm_Alamlist.resx | 450 ++ Viewer/AlarmViewer/Dialog/fLog.Designer.cs | 60 + Viewer/AlarmViewer/Dialog/fLog.cs | 54 + Viewer/AlarmViewer/Dialog/fLog.resx | 120 + .../AlarmViewer/DocumentElement.Designer.cs | 6743 +++++++++++++++++ Viewer/AlarmViewer/DocumentElement.cs | 15 + Viewer/AlarmViewer/DocumentElement.xsc | 9 + Viewer/AlarmViewer/DocumentElement.xsd | 196 + Viewer/AlarmViewer/DocumentElement.xss | 20 + Viewer/AlarmViewer/MethodExts.cs | 39 + .../AlarmViewer/My Project/Application.myapp | 10 + .../DataSources/ChartData.datasource | 10 + Viewer/AlarmViewer/My Project/Resources.resx | 133 + .../AlarmViewer/My Project/Settings.settings | 9 + Viewer/AlarmViewer/My Project/licenses.licx | 0 Viewer/AlarmViewer/OpenTK.dll.config | 25 + Viewer/AlarmViewer/Program.cs | 42 + Viewer/AlarmViewer/Properties/AssemblyInfo.cs | 43 + .../Properties/Resources.Designer.cs | 173 + Viewer/AlarmViewer/Properties/Resources.resx | 154 + .../Properties/Settings.Designer.cs | 26 + .../AlarmViewer/Properties/Settings.settings | 6 + Viewer/AlarmViewer/Properties/app.manifest | 74 + Viewer/AlarmViewer/Properties/licenses.licx | 0 .../AlarmViewer/Properties/licenses.licx.bak | 1 + Viewer/AlarmViewer/ReadMe.txt | 1 + .../Resources/Backup Green Button.png | Bin 0 -> 4897 bytes Viewer/AlarmViewer/Resources/Blue Ball.png | Bin 0 -> 4104 bytes .../Resources/Clear Green Button.png | Bin 0 -> 4514 bytes .../Resources/Get Info Blue Button.png | Bin 0 -> 4311 bytes Viewer/AlarmViewer/Resources/Green Ball.png | Bin 0 -> 4111 bytes Viewer/AlarmViewer/Resources/Orange Ball.png | Bin 0 -> 4074 bytes Viewer/AlarmViewer/Resources/Purple Ball.png | Bin 0 -> 4098 bytes Viewer/AlarmViewer/Resources/Red Ball.png | Bin 0 -> 4071 bytes Viewer/AlarmViewer/Resources/down_16.png | Bin 0 -> 3284 bytes Viewer/AlarmViewer/Resources/down_orange.png | Bin 0 -> 3242 bytes Viewer/AlarmViewer/Resources/up_16.png | Bin 0 -> 3197 bytes Viewer/AlarmViewer/Setting/CSetting.cs | 162 + Viewer/AlarmViewer/app.config | 35 + Viewer/AlarmViewer/packages.config | 9 + Viewer/AlarmViewer/pub.cs | 145 + Viewer/TrendViewer/Alert.ico | Bin 0 -> 15086 bytes Viewer/TrendViewer/Class/CFDB.cs | 346 + Viewer/TrendViewer/Class/CFDBA.cs | 195 + Viewer/TrendViewer/Class/CFDBK.cs | 215 + Viewer/TrendViewer/Class/ChartData.cs | 40 + Viewer/TrendViewer/Class/EventArgs.cs | 19 + Viewer/TrendViewer/Class/StructAndEnum.cs | 37 + Viewer/TrendViewer/DS1.Designer.cs | 1380 ++++ Viewer/TrendViewer/DS1.xsc | 9 + Viewer/TrendViewer/DS1.xsd | 42 + Viewer/TrendViewer/DS1.xss | 13 + .../TrendViewer/Dialog/Frm_SMsg.Designer.cs | 68 + Viewer/TrendViewer/Dialog/Frm_SMsg.cs | 18 + Viewer/TrendViewer/Dialog/Frm_SMsg.resx | 120 + .../Dialog/Frm_SelectCH.Designer.cs | 168 + Viewer/TrendViewer/Dialog/Frm_SelectCH.cs | 92 + Viewer/TrendViewer/Dialog/Frm_SelectCH.resx | 377 + .../Dialog/fPleaseWait.Designer.cs | 64 + Viewer/TrendViewer/Dialog/fPleaseWait.cs | 20 + Viewer/TrendViewer/Dialog/fPleaseWait.resx | 120 + .../TrendViewer/DocumentElement.Designer.cs | 6743 +++++++++++++++++ Viewer/TrendViewer/DocumentElement.cs | 15 + Viewer/TrendViewer/DocumentElement.xsc | 9 + Viewer/TrendViewer/DocumentElement.xsd | 196 + Viewer/TrendViewer/DocumentElement.xss | 20 + Viewer/TrendViewer/Frm_GraphSetup.Designer.cs | 219 + Viewer/TrendViewer/Frm_GraphSetup.cs | 83 + Viewer/TrendViewer/Frm_GraphSetup.resx | 120 + Viewer/TrendViewer/Frm_trend.Designer.cs | 895 +++ Viewer/TrendViewer/Frm_trend.cs | 1337 ++++ Viewer/TrendViewer/Frm_trend.resx | 597 ++ Viewer/TrendViewer/MethodExts.cs | 69 + .../TrendViewer/My Project/Application.myapp | 10 + .../DataSources/ChartData.datasource | 10 + Viewer/TrendViewer/My Project/Resources.resx | 133 + .../TrendViewer/My Project/Settings.settings | 9 + Viewer/TrendViewer/My Project/licenses.licx | 0 Viewer/TrendViewer/OpenTK.dll.config | 25 + Viewer/TrendViewer/Program.cs | 41 + Viewer/TrendViewer/Properties/AssemblyInfo.cs | 43 + .../Properties/Resources.Designer.cs | 183 + Viewer/TrendViewer/Properties/Resources.resx | 157 + .../Properties/Settings.Designer.cs | 26 + .../TrendViewer/Properties/Settings.settings | 6 + Viewer/TrendViewer/Properties/app.manifest | 74 + Viewer/TrendViewer/Properties/licenses.licx | 0 .../TrendViewer/Properties/licenses.licx.bak | 1 + Viewer/TrendViewer/ReadMe.txt | 32 + .../Resources/Backup Green Button.png | Bin 0 -> 4897 bytes Viewer/TrendViewer/Resources/Blue Ball.png | Bin 0 -> 4104 bytes .../Resources/Clear Green Button.png | Bin 0 -> 4514 bytes .../Resources/Get Info Blue Button.png | Bin 0 -> 4311 bytes Viewer/TrendViewer/Resources/Green Ball.png | Bin 0 -> 4111 bytes Viewer/TrendViewer/Resources/Orange Ball.png | Bin 0 -> 4074 bytes Viewer/TrendViewer/Resources/Purple Ball.png | Bin 0 -> 4098 bytes Viewer/TrendViewer/Resources/Red Ball.png | Bin 0 -> 4071 bytes Viewer/TrendViewer/Resources/down_16.png | Bin 0 -> 3284 bytes Viewer/TrendViewer/Resources/down_orange.png | Bin 0 -> 3242 bytes .../Resources/icons8-positive-dynamic-48.png | Bin 0 -> 375 bytes Viewer/TrendViewer/Resources/up_16.png | Bin 0 -> 3197 bytes Viewer/TrendViewer/Setting/CSetting.cs | 104 + .../Setting/Frm_Config.Designer.cs | 122 + Viewer/TrendViewer/Setting/Frm_Config.cs | 53 + Viewer/TrendViewer/Setting/Frm_Config.resx | 157 + Viewer/TrendViewer/TrendViewer.csproj | 317 + .../UControl/TrendCtrlII/CChinfo.cs | 40 + .../UControl/TrendCtrlII/CMouseinfo.cs | 105 + .../UControl/TrendCtrlII/CStyle.cs | 339 + .../UControl/TrendCtrlII/CTimeinfo.cs | 28 + .../UControl/TrendCtrlII/CUserCursor.cs | 41 + .../UControl/TrendCtrlII/MethodExts.cs | 23 + .../UControl/TrendCtrlII/TrendCtrlII.cs | 1946 +++++ .../UControl/TrendCtrlII/TrendCtrlII.resx | 120 + Viewer/TrendViewer/app.config | 52 + Viewer/TrendViewer/packages.config | 19 + Viewer/TrendViewer/pub.cs | 288 + Viewer/TrendViewer/pubC.cs | 233 + cVMS.NET.sln | 334 + cVMS.NET_CS/Alert.ico | Bin 0 -> 15086 bytes cVMS.NET_CS/Class/CFDB.cs | 342 + cVMS.NET_CS/Class/CFDBA.cs | 360 + cVMS.NET_CS/Class/CFDBK.cs | 215 + cVMS.NET_CS/Class/ChartData.cs | 40 + cVMS.NET_CS/Class/EventArgs.cs | 19 + cVMS.NET_CS/Class/NotifyData.cs | 54 + cVMS.NET_CS/Class/StructAndEnum.cs | 37 + cVMS.NET_CS/DS1.Designer.cs | 1380 ++++ cVMS.NET_CS/DS1.cs | 8 + cVMS.NET_CS/DS1.xsc | 9 + cVMS.NET_CS/DS1.xsd | 42 + cVMS.NET_CS/DS1.xss | 13 + cVMS.NET_CS/Device/Base/CMachine.cs | 160 + cVMS.NET_CS/Device/Base/DAQDA100.cs | 529 ++ cVMS.NET_CS/Device/DA100.cs | 1232 +++ cVMS.NET_CS/Device/DigitalIndicator.cs | 72 + cVMS.NET_CS/Device/GM10.cs | 1422 ++++ cVMS.NET_CS/Device/GM10_WS.cs | 1154 +++ cVMS.NET_CS/Device/StateMachine.cs | 88 + cVMS.NET_CS/Dialog/Frm_About.Designer.cs | 176 + cVMS.NET_CS/Dialog/Frm_About.cs | 130 + cVMS.NET_CS/Dialog/Frm_About.resx | 249 + cVMS.NET_CS/Dialog/Frm_Msg.Designer.cs | 169 + cVMS.NET_CS/Dialog/Frm_Msg.cs | 117 + cVMS.NET_CS/Dialog/Frm_Msg.resx | 249 + cVMS.NET_CS/Dialog/Frm_SMsg.Designer.cs | 68 + cVMS.NET_CS/Dialog/Frm_SMsg.cs | 18 + cVMS.NET_CS/Dialog/Frm_SMsg.resx | 120 + cVMS.NET_CS/Dialog/Frm_SelectCH.Designer.cs | 168 + cVMS.NET_CS/Dialog/Frm_SelectCH.cs | 115 + cVMS.NET_CS/Dialog/Frm_SelectCH.resx | 377 + .../TrendView/Frm_trend_real.Designer.cs | 281 + .../Dialog/TrendView/Frm_trend_real.cs | 555 ++ .../Dialog/TrendView/Frm_trend_real.resx | 398 + cVMS.NET_CS/Dialog/fLog.Designer.cs | 60 + cVMS.NET_CS/Dialog/fLog.cs | 53 + cVMS.NET_CS/Dialog/fLog.resx | 120 + cVMS.NET_CS/Dialog/fPleaseWait.Designer.cs | 64 + cVMS.NET_CS/Dialog/fPleaseWait.cs | 20 + cVMS.NET_CS/Dialog/fPleaseWait.resx | 120 + cVMS.NET_CS/DocumentElement.Designer.cs | 6657 ++++++++++++++++ cVMS.NET_CS/DocumentElement.cs | 15 + cVMS.NET_CS/DocumentElement.xsc | 9 + cVMS.NET_CS/DocumentElement.xsd | 194 + cVMS.NET_CS/DocumentElement.xss | 20 + cVMS.NET_CS/DocumentElement1.Designer.cs | 6743 +++++++++++++++++ cVMS.NET_CS/FMain.Designer.cs | 850 +++ cVMS.NET_CS/FMain.cs | 2358 ++++++ cVMS.NET_CS/FMain.resx | 1179 +++ cVMS.NET_CS/Frm_Sub.Designer.cs | 337 + cVMS.NET_CS/Frm_Sub.cs | 1397 ++++ cVMS.NET_CS/Frm_Sub.resx | 942 +++ cVMS.NET_CS/HMI/MainDisplay/BarGraph.cs | 205 + cVMS.NET_CS/HMI/MainDisplay/BarGraph.resx | 120 + cVMS.NET_CS/HMI/MainDisplay/CButton.cs | 34 + cVMS.NET_CS/HMI/MainDisplay/CGROUP.cs | 419 + cVMS.NET_CS/HMI/MainDisplay/CITEM.cs | 374 + cVMS.NET_CS/HMI/MainDisplay/CMouseinfo.cs | 58 + cVMS.NET_CS/HMI/MainDisplay/CWINDOW.cs | 149 + cVMS.NET_CS/HMI/MainDisplay/DispCtrl.cs | 1964 +++++ cVMS.NET_CS/HMI/MainDisplay/DispCtrl.resx | 120 + cVMS.NET_CS/HMI/TrendCtrlII/CChinfo.cs | 40 + cVMS.NET_CS/HMI/TrendCtrlII/CMouseinfo.cs | 105 + cVMS.NET_CS/HMI/TrendCtrlII/CStyle.cs | 339 + cVMS.NET_CS/HMI/TrendCtrlII/CTimeinfo.cs | 28 + cVMS.NET_CS/HMI/TrendCtrlII/CUserCursor.cs | 41 + cVMS.NET_CS/HMI/TrendCtrlII/TrendCtrlII.cs | 2004 +++++ cVMS.NET_CS/HMI/TrendCtrlII/TrendCtrlII.resx | 120 + .../VMS 메뉴얼 v1.0 - 여수한화솔루션.pdf | Bin 0 -> 3397822 bytes .../VMS 메뉴얼 v1.1 - 대전한화솔루션.pdf | Bin 0 -> 2883746 bytes cVMS.NET_CS/MethodExts.cs | 67 + .../Modbus/Attributes/CoilAttribute.cs | 15 + .../Modbus/Attributes/HoldingAttribute.cs | 15 + .../Modbus/Attributes/InputAttribute.cs | 15 + .../Attributes/ModbusAddressAttribute.cs | 19 + cVMS.NET_CS/Modbus/Configures/RtuConfigure.cs | 27 + cVMS.NET_CS/Modbus/Configures/TcpConfigure.cs | 22 + cVMS.NET_CS/Modbus/JdModbusRTU.cs | 90 + cVMS.NET_CS/My Project/Application.myapp | 10 + .../DataSources/ChartData.datasource | 10 + cVMS.NET_CS/My Project/Resources.resx | 133 + cVMS.NET_CS/My Project/Settings.settings | 9 + cVMS.NET_CS/My Project/licenses.licx | 0 cVMS.NET_CS/OpenTK.dll.config | 25 + cVMS.NET_CS/PUBC.cs | 234 + cVMS.NET_CS/Program.cs | 41 + cVMS.NET_CS/Properties/AssemblyInfo.cs | 43 + cVMS.NET_CS/Properties/Resources.Designer.cs | 183 + cVMS.NET_CS/Properties/Resources.resx | 157 + cVMS.NET_CS/Properties/Settings.Designer.cs | 26 + cVMS.NET_CS/Properties/Settings.settings | 6 + cVMS.NET_CS/Properties/app.manifest | 74 + cVMS.NET_CS/Properties/licenses.licx | 0 cVMS.NET_CS/Properties/licenses.licx.bak | 1 + cVMS.NET_CS/Resources/Backup Green Button.png | Bin 0 -> 4897 bytes cVMS.NET_CS/Resources/Blue Ball.png | Bin 0 -> 4104 bytes cVMS.NET_CS/Resources/Clear Green Button.png | Bin 0 -> 4514 bytes .../Resources/Get Info Blue Button.png | Bin 0 -> 4311 bytes cVMS.NET_CS/Resources/Green Ball.png | Bin 0 -> 4111 bytes cVMS.NET_CS/Resources/Orange Ball.png | Bin 0 -> 4074 bytes cVMS.NET_CS/Resources/Purple Ball.png | Bin 0 -> 4098 bytes cVMS.NET_CS/Resources/Red Ball.png | Bin 0 -> 4071 bytes cVMS.NET_CS/Resources/down_16.png | Bin 0 -> 3284 bytes cVMS.NET_CS/Resources/down_orange.png | Bin 0 -> 3242 bytes .../Resources/icons8-positive-dynamic-48.png | Bin 0 -> 375 bytes cVMS.NET_CS/Resources/up_16.png | Bin 0 -> 3197 bytes cVMS.NET_CS/RunCode/Device/_CONNECT.cs | 139 + .../RunCode/RunSequence/RUN_GETDATA.cs | 175 + .../RunCode/RunSequence/RUN_SAVEDATA.cs | 307 + cVMS.NET_CS/RunCode/StateMachine/_Events.cs | 63 + cVMS.NET_CS/RunCode/StateMachine/_Loop.cs | 152 + cVMS.NET_CS/RunCode/StateMachine/_SPS.cs | 26 + cVMS.NET_CS/RunCode/Step/_STEP_CLOSE.cs | 67 + cVMS.NET_CS/RunCode/Step/_STEP_ERROR.cs | 18 + cVMS.NET_CS/RunCode/Step/_STEP_IDLE.cs | 28 + cVMS.NET_CS/RunCode/Step/_STEP_INIT.cs | 74 + cVMS.NET_CS/RunCode/Step/_STEP_RUN.cs | 105 + cVMS.NET_CS/RunCode/Step/_STEP_WAITSTART.cs | 17 + cVMS.NET_CS/RunCode/_00_System_Initialize.cs | 26 + cVMS.NET_CS/RunCode/_04_JobStart_Check.cs | 23 + cVMS.NET_CS/RunCode/_95_SPS.cs | 30 + cVMS.NET_CS/RunCode/_97_Utility.cs | 60 + cVMS.NET_CS/RunCode/_99_System_Shutdown.cs | 31 + cVMS.NET_CS/Setting/CSetting.cs | 268 + cVMS.NET_CS/Setting/Frm_Alam.Designer.cs | 411 + cVMS.NET_CS/Setting/Frm_Alam.cs | 139 + cVMS.NET_CS/Setting/Frm_Alam.resx | 141 + cVMS.NET_CS/Setting/Frm_Cell.Designer.cs | 603 ++ cVMS.NET_CS/Setting/Frm_Cell.cs | 409 + cVMS.NET_CS/Setting/Frm_Cell.resx | 200 + cVMS.NET_CS/Setting/Frm_Config.Designer.cs | 3035 ++++++++ cVMS.NET_CS/Setting/Frm_Config.cs | 1019 +++ cVMS.NET_CS/Setting/Frm_Config.resx | 658 ++ cVMS.NET_CS/Setting/Frm_Config1.Designer.cs | 2910 +++++++ cVMS.NET_CS/Setting/Frm_Config1.cs | 995 +++ cVMS.NET_CS/Setting/Frm_Config2.resx | 676 ++ cVMS.NET_CS/Setting/Frm_Grp.Designer.cs | 71 + cVMS.NET_CS/Setting/Frm_Grp.cs | 96 + cVMS.NET_CS/Setting/Frm_Grp.resx | 120 + cVMS.NET_CS/Setting/Frm_Win.Designer.cs | 71 + cVMS.NET_CS/Setting/Frm_Win.cs | 59 + cVMS.NET_CS/Setting/Frm_Win.resx | 120 + .../Setting/fDesignSetting.Designer.cs | 233 + cVMS.NET_CS/Setting/fDesignSetting.cs | 85 + cVMS.NET_CS/Setting/fDesignSetting.resx | 377 + cVMS.NET_CS/app.config | 35 + cVMS.NET_CS/cVMS.NET_CS.csproj | 535 ++ cVMS.NET_CS/packages.config | 22 + cVMS.NET_CS/pub.cs | 946 +++ cVMS.NET_CS/pub.cs.bak | 912 +++ v.m.pdf | Bin 0 -> 637656 bytes v.m.s.ppt | Bin 0 -> 1345024 bytes 435 files changed, 103766 insertions(+) create mode 100644 .gitignore create mode 100644 Alert.ico create mode 100644 ArinLog.Net4.dll create mode 100644 ArinSetting.Net4.dll create mode 100644 CHANGELOG create mode 100644 DLL/Winsock Orcas.dll create mode 100644 DLL/arCommSM.dll create mode 100644 DLL/arCommUtil.dll create mode 100644 DLL/arMasterK.dll create mode 100644 JdModbus/Attributes/CoilAttribute.cs create mode 100644 JdModbus/Attributes/HoldingAttribute.cs create mode 100644 JdModbus/Attributes/InputAttribute.cs create mode 100644 JdModbus/Attributes/ModbusAddressAttribute.cs create mode 100644 JdModbus/Configures/RtuConfigure.cs create mode 100644 JdModbus/Configures/TcpConfigure.cs create mode 100644 JdModbus/JdModbus.cs create mode 100644 JdModbus/JdModbusV1.csproj create mode 100644 README.md create mode 100644 Smiley.ico create mode 100644 Sub/CommData/CommData.csproj create mode 100644 Sub/CommData/Enum.cs create mode 100644 Sub/CommData/EnumDIO.cs create mode 100644 Sub/CommData/EnumMot.cs create mode 100644 Sub/CommData/EnumVAR.cs create mode 100644 Sub/CommData/Enum_MotPosition.cs create mode 100644 Sub/CommData/Properties/AssemblyInfo.cs create mode 100644 Sub/WinsockOracs/About.txt create mode 100644 Sub/WinsockOracs/AsyncSocket.vb create mode 100644 Sub/WinsockOracs/Backup/About.txt create mode 100644 Sub/WinsockOracs/Backup/AsyncSocket.vb create mode 100644 Sub/WinsockOracs/Backup/Deque.vb create mode 100644 Sub/WinsockOracs/Backup/Enumerations.vb create mode 100644 Sub/WinsockOracs/Backup/EventArgs.vb create mode 100644 Sub/WinsockOracs/Backup/History.txt create mode 100644 Sub/WinsockOracs/Backup/IWinsock.vb create mode 100644 Sub/WinsockOracs/Backup/My Project/Application.Designer.vb create mode 100644 Sub/WinsockOracs/Backup/My Project/Application.myapp create mode 100644 Sub/WinsockOracs/Backup/My Project/AssemblyInfo.vb create mode 100644 Sub/WinsockOracs/Backup/My Project/Resources.Designer.vb create mode 100644 Sub/WinsockOracs/Backup/My Project/Resources.resx create mode 100644 Sub/WinsockOracs/Backup/My Project/Settings.Designer.vb create mode 100644 Sub/WinsockOracs/Backup/My Project/Settings.settings create mode 100644 Sub/WinsockOracs/Backup/ObjectPacker.vb create mode 100644 Sub/WinsockOracs/Backup/Resources/k-koding.png create mode 100644 Sub/WinsockOracs/Backup/SharedMethods.vb create mode 100644 Sub/WinsockOracs/Backup/Winsock Orcas.vbproj create mode 100644 Sub/WinsockOracs/Backup/Winsock.png create mode 100644 Sub/WinsockOracs/Backup/Winsock.vb create mode 100644 Sub/WinsockOracs/Backup/WinsockCollection.vb create mode 100644 Sub/WinsockOracs/Backup/WinsockDesigner.vb create mode 100644 Sub/WinsockOracs/Backup/WinsockFileData.vb create mode 100644 Sub/WinsockOracs/Backup/frmAbout.Designer.vb create mode 100644 Sub/WinsockOracs/Backup/frmAbout.resx create mode 100644 Sub/WinsockOracs/Backup/frmAbout.vb create mode 100644 Sub/WinsockOracs/Deque.vb create mode 100644 Sub/WinsockOracs/Enumerations.vb create mode 100644 Sub/WinsockOracs/EventArgs.vb create mode 100644 Sub/WinsockOracs/History.txt create mode 100644 Sub/WinsockOracs/IWinsock.vb create mode 100644 Sub/WinsockOracs/My Project/Application.Designer.vb create mode 100644 Sub/WinsockOracs/My Project/Application.myapp create mode 100644 Sub/WinsockOracs/My Project/AssemblyInfo.vb create mode 100644 Sub/WinsockOracs/My Project/Resources.Designer.vb create mode 100644 Sub/WinsockOracs/My Project/Resources.resx create mode 100644 Sub/WinsockOracs/My Project/Settings.Designer.vb create mode 100644 Sub/WinsockOracs/My Project/Settings.settings create mode 100644 Sub/WinsockOracs/ObjectPacker.vb create mode 100644 Sub/WinsockOracs/Resources/k-koding.png create mode 100644 Sub/WinsockOracs/SharedMethods.vb create mode 100644 Sub/WinsockOracs/UpgradeLog.htm create mode 100644 Sub/WinsockOracs/Winsock Orcas.sln create mode 100644 Sub/WinsockOracs/Winsock Orcas.vbproj create mode 100644 Sub/WinsockOracs/Winsock.png create mode 100644 Sub/WinsockOracs/Winsock.vb create mode 100644 Sub/WinsockOracs/WinsockCollection.vb create mode 100644 Sub/WinsockOracs/WinsockDesigner.vb create mode 100644 Sub/WinsockOracs/WinsockFileData.vb create mode 100644 Sub/WinsockOracs/frmAbout.Designer.vb create mode 100644 Sub/WinsockOracs/frmAbout.resx create mode 100644 Sub/WinsockOracs/frmAbout.vb create mode 100644 TEST/DigitalIndicator/App.config create mode 100644 TEST/DigitalIndicator/DigitalIndicator.csproj create mode 100644 TEST/DigitalIndicator/Form1.Designer.cs create mode 100644 TEST/DigitalIndicator/Form1.cs create mode 100644 TEST/DigitalIndicator/Form1.resx create mode 100644 TEST/DigitalIndicator/Program.cs create mode 100644 TEST/DigitalIndicator/Properties/AssemblyInfo.cs create mode 100644 TEST/DigitalIndicator/Properties/Resources.Designer.cs create mode 100644 TEST/DigitalIndicator/Properties/Resources.resx create mode 100644 TEST/DigitalIndicator/Properties/Settings.Designer.cs create mode 100644 TEST/DigitalIndicator/Properties/Settings.settings create mode 100644 TEST/DigitalIndicator/packages.config create mode 100644 TEST/chart_new/App.config create mode 100644 TEST/chart_new/CustomChartControl.cs create mode 100644 TEST/chart_new/Form1.Designer.cs create mode 100644 TEST/chart_new/Form1.cs create mode 100644 TEST/chart_new/Form1.resx create mode 100644 TEST/chart_new/Program.cs create mode 100644 TEST/chart_new/Properties/AssemblyInfo.cs create mode 100644 TEST/chart_new/Properties/Resources.Designer.cs create mode 100644 TEST/chart_new/Properties/Resources.resx create mode 100644 TEST/chart_new/Properties/Settings.Designer.cs create mode 100644 TEST/chart_new/Properties/Settings.settings create mode 100644 TEST/chart_new/chart_new.csproj create mode 100644 TEST/chart_scottplot/App.config create mode 100644 TEST/chart_scottplot/Form1.Designer.cs create mode 100644 TEST/chart_scottplot/Form1.cs create mode 100644 TEST/chart_scottplot/Form1.resx create mode 100644 TEST/chart_scottplot/OpenTK.dll.config create mode 100644 TEST/chart_scottplot/Program.cs create mode 100644 TEST/chart_scottplot/Properties/AssemblyInfo.cs create mode 100644 TEST/chart_scottplot/Properties/Resources.Designer.cs create mode 100644 TEST/chart_scottplot/Properties/Resources.resx create mode 100644 TEST/chart_scottplot/Properties/Settings.Designer.cs create mode 100644 TEST/chart_scottplot/Properties/Settings.settings create mode 100644 TEST/chart_scottplot/chart_scottplot.csproj create mode 100644 TEST/chart_scottplot/packages.config create mode 100644 TrendCtrlII/CChinfo.cs create mode 100644 TrendCtrlII/CMouseinfo.cs create mode 100644 TrendCtrlII/CStyle.cs create mode 100644 TrendCtrlII/CTimeinfo.cs create mode 100644 TrendCtrlII/CUserCursor.cs create mode 100644 TrendCtrlII/Properties/AssemblyInfo.cs create mode 100644 TrendCtrlII/Properties/Resources.Designer.cs create mode 100644 TrendCtrlII/Properties/Resources.resx create mode 100644 TrendCtrlII/Resources/Backup Green Button.png create mode 100644 TrendCtrlII/Resources/Blue Ball.png create mode 100644 TrendCtrlII/Resources/Clear Green Button.png create mode 100644 TrendCtrlII/Resources/Get Info Blue Button.png create mode 100644 TrendCtrlII/Resources/Red Ball.png create mode 100644 TrendCtrlII/Resources/down_16.png create mode 100644 TrendCtrlII/Resources/down_orange.png create mode 100644 TrendCtrlII/TrendCtrlII.cs create mode 100644 TrendCtrlII/TrendCtrlII.cs.bak create mode 100644 TrendCtrlII/TrendCtrlII.csproj create mode 100644 TrendCtrlII/TrendCtrlII.resx create mode 100644 TrendCtrlII/TrendCtrlII.sln create mode 100644 TrendView.pdf create mode 100644 TrendView.pptx create mode 100644 VMSMonitor/App.config create mode 100644 VMSMonitor/ArinXMl.vb create mode 100644 VMSMonitor/Form1.Designer.vb create mode 100644 VMSMonitor/Form1.resx create mode 100644 VMSMonitor/Form1.vb create mode 100644 VMSMonitor/Frm_monitor.Designer.vb create mode 100644 VMSMonitor/Frm_monitor.resx create mode 100644 VMSMonitor/Frm_monitor.vb create mode 100644 VMSMonitor/My Project/Application.Designer.vb create mode 100644 VMSMonitor/My Project/Application.myapp create mode 100644 VMSMonitor/My Project/AssemblyInfo.vb create mode 100644 VMSMonitor/My Project/Resources.Designer.vb create mode 100644 VMSMonitor/My Project/Resources.resx create mode 100644 VMSMonitor/My Project/Settings.Designer.vb create mode 100644 VMSMonitor/My Project/Settings.settings create mode 100644 VMSMonitor/VMSMonitor.sln create mode 100644 VMSMonitor/VMSMonitor.vbproj create mode 100644 VMSMonitor/monitor.ico create mode 100644 VMSMonitor/system.ico create mode 100644 Viewer/AlarmViewer/AlarmViewer.csproj create mode 100644 Viewer/AlarmViewer/Alert.ico create mode 100644 Viewer/AlarmViewer/Class/CFDBA.cs create mode 100644 Viewer/AlarmViewer/Dialog/Frm_Alamlist.Designer.cs create mode 100644 Viewer/AlarmViewer/Dialog/Frm_Alamlist.cs create mode 100644 Viewer/AlarmViewer/Dialog/Frm_Alamlist.resx create mode 100644 Viewer/AlarmViewer/Dialog/fLog.Designer.cs create mode 100644 Viewer/AlarmViewer/Dialog/fLog.cs create mode 100644 Viewer/AlarmViewer/Dialog/fLog.resx create mode 100644 Viewer/AlarmViewer/DocumentElement.Designer.cs create mode 100644 Viewer/AlarmViewer/DocumentElement.cs create mode 100644 Viewer/AlarmViewer/DocumentElement.xsc create mode 100644 Viewer/AlarmViewer/DocumentElement.xsd create mode 100644 Viewer/AlarmViewer/DocumentElement.xss create mode 100644 Viewer/AlarmViewer/MethodExts.cs create mode 100644 Viewer/AlarmViewer/My Project/Application.myapp create mode 100644 Viewer/AlarmViewer/My Project/DataSources/ChartData.datasource create mode 100644 Viewer/AlarmViewer/My Project/Resources.resx create mode 100644 Viewer/AlarmViewer/My Project/Settings.settings create mode 100644 Viewer/AlarmViewer/My Project/licenses.licx create mode 100644 Viewer/AlarmViewer/OpenTK.dll.config create mode 100644 Viewer/AlarmViewer/Program.cs create mode 100644 Viewer/AlarmViewer/Properties/AssemblyInfo.cs create mode 100644 Viewer/AlarmViewer/Properties/Resources.Designer.cs create mode 100644 Viewer/AlarmViewer/Properties/Resources.resx create mode 100644 Viewer/AlarmViewer/Properties/Settings.Designer.cs create mode 100644 Viewer/AlarmViewer/Properties/Settings.settings create mode 100644 Viewer/AlarmViewer/Properties/app.manifest create mode 100644 Viewer/AlarmViewer/Properties/licenses.licx create mode 100644 Viewer/AlarmViewer/Properties/licenses.licx.bak create mode 100644 Viewer/AlarmViewer/ReadMe.txt create mode 100644 Viewer/AlarmViewer/Resources/Backup Green Button.png create mode 100644 Viewer/AlarmViewer/Resources/Blue Ball.png create mode 100644 Viewer/AlarmViewer/Resources/Clear Green Button.png create mode 100644 Viewer/AlarmViewer/Resources/Get Info Blue Button.png create mode 100644 Viewer/AlarmViewer/Resources/Green Ball.png create mode 100644 Viewer/AlarmViewer/Resources/Orange Ball.png create mode 100644 Viewer/AlarmViewer/Resources/Purple Ball.png create mode 100644 Viewer/AlarmViewer/Resources/Red Ball.png create mode 100644 Viewer/AlarmViewer/Resources/down_16.png create mode 100644 Viewer/AlarmViewer/Resources/down_orange.png create mode 100644 Viewer/AlarmViewer/Resources/up_16.png create mode 100644 Viewer/AlarmViewer/Setting/CSetting.cs create mode 100644 Viewer/AlarmViewer/app.config create mode 100644 Viewer/AlarmViewer/packages.config create mode 100644 Viewer/AlarmViewer/pub.cs create mode 100644 Viewer/TrendViewer/Alert.ico create mode 100644 Viewer/TrendViewer/Class/CFDB.cs create mode 100644 Viewer/TrendViewer/Class/CFDBA.cs create mode 100644 Viewer/TrendViewer/Class/CFDBK.cs create mode 100644 Viewer/TrendViewer/Class/ChartData.cs create mode 100644 Viewer/TrendViewer/Class/EventArgs.cs create mode 100644 Viewer/TrendViewer/Class/StructAndEnum.cs create mode 100644 Viewer/TrendViewer/DS1.Designer.cs create mode 100644 Viewer/TrendViewer/DS1.xsc create mode 100644 Viewer/TrendViewer/DS1.xsd create mode 100644 Viewer/TrendViewer/DS1.xss create mode 100644 Viewer/TrendViewer/Dialog/Frm_SMsg.Designer.cs create mode 100644 Viewer/TrendViewer/Dialog/Frm_SMsg.cs create mode 100644 Viewer/TrendViewer/Dialog/Frm_SMsg.resx create mode 100644 Viewer/TrendViewer/Dialog/Frm_SelectCH.Designer.cs create mode 100644 Viewer/TrendViewer/Dialog/Frm_SelectCH.cs create mode 100644 Viewer/TrendViewer/Dialog/Frm_SelectCH.resx create mode 100644 Viewer/TrendViewer/Dialog/fPleaseWait.Designer.cs create mode 100644 Viewer/TrendViewer/Dialog/fPleaseWait.cs create mode 100644 Viewer/TrendViewer/Dialog/fPleaseWait.resx create mode 100644 Viewer/TrendViewer/DocumentElement.Designer.cs create mode 100644 Viewer/TrendViewer/DocumentElement.cs create mode 100644 Viewer/TrendViewer/DocumentElement.xsc create mode 100644 Viewer/TrendViewer/DocumentElement.xsd create mode 100644 Viewer/TrendViewer/DocumentElement.xss create mode 100644 Viewer/TrendViewer/Frm_GraphSetup.Designer.cs create mode 100644 Viewer/TrendViewer/Frm_GraphSetup.cs create mode 100644 Viewer/TrendViewer/Frm_GraphSetup.resx create mode 100644 Viewer/TrendViewer/Frm_trend.Designer.cs create mode 100644 Viewer/TrendViewer/Frm_trend.cs create mode 100644 Viewer/TrendViewer/Frm_trend.resx create mode 100644 Viewer/TrendViewer/MethodExts.cs create mode 100644 Viewer/TrendViewer/My Project/Application.myapp create mode 100644 Viewer/TrendViewer/My Project/DataSources/ChartData.datasource create mode 100644 Viewer/TrendViewer/My Project/Resources.resx create mode 100644 Viewer/TrendViewer/My Project/Settings.settings create mode 100644 Viewer/TrendViewer/My Project/licenses.licx create mode 100644 Viewer/TrendViewer/OpenTK.dll.config create mode 100644 Viewer/TrendViewer/Program.cs create mode 100644 Viewer/TrendViewer/Properties/AssemblyInfo.cs create mode 100644 Viewer/TrendViewer/Properties/Resources.Designer.cs create mode 100644 Viewer/TrendViewer/Properties/Resources.resx create mode 100644 Viewer/TrendViewer/Properties/Settings.Designer.cs create mode 100644 Viewer/TrendViewer/Properties/Settings.settings create mode 100644 Viewer/TrendViewer/Properties/app.manifest create mode 100644 Viewer/TrendViewer/Properties/licenses.licx create mode 100644 Viewer/TrendViewer/Properties/licenses.licx.bak create mode 100644 Viewer/TrendViewer/ReadMe.txt create mode 100644 Viewer/TrendViewer/Resources/Backup Green Button.png create mode 100644 Viewer/TrendViewer/Resources/Blue Ball.png create mode 100644 Viewer/TrendViewer/Resources/Clear Green Button.png create mode 100644 Viewer/TrendViewer/Resources/Get Info Blue Button.png create mode 100644 Viewer/TrendViewer/Resources/Green Ball.png create mode 100644 Viewer/TrendViewer/Resources/Orange Ball.png create mode 100644 Viewer/TrendViewer/Resources/Purple Ball.png create mode 100644 Viewer/TrendViewer/Resources/Red Ball.png create mode 100644 Viewer/TrendViewer/Resources/down_16.png create mode 100644 Viewer/TrendViewer/Resources/down_orange.png create mode 100644 Viewer/TrendViewer/Resources/icons8-positive-dynamic-48.png create mode 100644 Viewer/TrendViewer/Resources/up_16.png create mode 100644 Viewer/TrendViewer/Setting/CSetting.cs create mode 100644 Viewer/TrendViewer/Setting/Frm_Config.Designer.cs create mode 100644 Viewer/TrendViewer/Setting/Frm_Config.cs create mode 100644 Viewer/TrendViewer/Setting/Frm_Config.resx create mode 100644 Viewer/TrendViewer/TrendViewer.csproj create mode 100644 Viewer/TrendViewer/UControl/TrendCtrlII/CChinfo.cs create mode 100644 Viewer/TrendViewer/UControl/TrendCtrlII/CMouseinfo.cs create mode 100644 Viewer/TrendViewer/UControl/TrendCtrlII/CStyle.cs create mode 100644 Viewer/TrendViewer/UControl/TrendCtrlII/CTimeinfo.cs create mode 100644 Viewer/TrendViewer/UControl/TrendCtrlII/CUserCursor.cs create mode 100644 Viewer/TrendViewer/UControl/TrendCtrlII/MethodExts.cs create mode 100644 Viewer/TrendViewer/UControl/TrendCtrlII/TrendCtrlII.cs create mode 100644 Viewer/TrendViewer/UControl/TrendCtrlII/TrendCtrlII.resx create mode 100644 Viewer/TrendViewer/app.config create mode 100644 Viewer/TrendViewer/packages.config create mode 100644 Viewer/TrendViewer/pub.cs create mode 100644 Viewer/TrendViewer/pubC.cs create mode 100644 cVMS.NET.sln create mode 100644 cVMS.NET_CS/Alert.ico create mode 100644 cVMS.NET_CS/Class/CFDB.cs create mode 100644 cVMS.NET_CS/Class/CFDBA.cs create mode 100644 cVMS.NET_CS/Class/CFDBK.cs create mode 100644 cVMS.NET_CS/Class/ChartData.cs create mode 100644 cVMS.NET_CS/Class/EventArgs.cs create mode 100644 cVMS.NET_CS/Class/NotifyData.cs create mode 100644 cVMS.NET_CS/Class/StructAndEnum.cs create mode 100644 cVMS.NET_CS/DS1.Designer.cs create mode 100644 cVMS.NET_CS/DS1.cs create mode 100644 cVMS.NET_CS/DS1.xsc create mode 100644 cVMS.NET_CS/DS1.xsd create mode 100644 cVMS.NET_CS/DS1.xss create mode 100644 cVMS.NET_CS/Device/Base/CMachine.cs create mode 100644 cVMS.NET_CS/Device/Base/DAQDA100.cs create mode 100644 cVMS.NET_CS/Device/DA100.cs create mode 100644 cVMS.NET_CS/Device/DigitalIndicator.cs create mode 100644 cVMS.NET_CS/Device/GM10.cs create mode 100644 cVMS.NET_CS/Device/GM10_WS.cs create mode 100644 cVMS.NET_CS/Device/StateMachine.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_About.Designer.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_About.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_About.resx create mode 100644 cVMS.NET_CS/Dialog/Frm_Msg.Designer.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_Msg.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_Msg.resx create mode 100644 cVMS.NET_CS/Dialog/Frm_SMsg.Designer.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_SMsg.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_SMsg.resx create mode 100644 cVMS.NET_CS/Dialog/Frm_SelectCH.Designer.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_SelectCH.cs create mode 100644 cVMS.NET_CS/Dialog/Frm_SelectCH.resx create mode 100644 cVMS.NET_CS/Dialog/TrendView/Frm_trend_real.Designer.cs create mode 100644 cVMS.NET_CS/Dialog/TrendView/Frm_trend_real.cs create mode 100644 cVMS.NET_CS/Dialog/TrendView/Frm_trend_real.resx create mode 100644 cVMS.NET_CS/Dialog/fLog.Designer.cs create mode 100644 cVMS.NET_CS/Dialog/fLog.cs create mode 100644 cVMS.NET_CS/Dialog/fLog.resx create mode 100644 cVMS.NET_CS/Dialog/fPleaseWait.Designer.cs create mode 100644 cVMS.NET_CS/Dialog/fPleaseWait.cs create mode 100644 cVMS.NET_CS/Dialog/fPleaseWait.resx create mode 100644 cVMS.NET_CS/DocumentElement.Designer.cs create mode 100644 cVMS.NET_CS/DocumentElement.cs create mode 100644 cVMS.NET_CS/DocumentElement.xsc create mode 100644 cVMS.NET_CS/DocumentElement.xsd create mode 100644 cVMS.NET_CS/DocumentElement.xss create mode 100644 cVMS.NET_CS/DocumentElement1.Designer.cs create mode 100644 cVMS.NET_CS/FMain.Designer.cs create mode 100644 cVMS.NET_CS/FMain.cs create mode 100644 cVMS.NET_CS/FMain.resx create mode 100644 cVMS.NET_CS/Frm_Sub.Designer.cs create mode 100644 cVMS.NET_CS/Frm_Sub.cs create mode 100644 cVMS.NET_CS/Frm_Sub.resx create mode 100644 cVMS.NET_CS/HMI/MainDisplay/BarGraph.cs create mode 100644 cVMS.NET_CS/HMI/MainDisplay/BarGraph.resx create mode 100644 cVMS.NET_CS/HMI/MainDisplay/CButton.cs create mode 100644 cVMS.NET_CS/HMI/MainDisplay/CGROUP.cs create mode 100644 cVMS.NET_CS/HMI/MainDisplay/CITEM.cs create mode 100644 cVMS.NET_CS/HMI/MainDisplay/CMouseinfo.cs create mode 100644 cVMS.NET_CS/HMI/MainDisplay/CWINDOW.cs create mode 100644 cVMS.NET_CS/HMI/MainDisplay/DispCtrl.cs create mode 100644 cVMS.NET_CS/HMI/MainDisplay/DispCtrl.resx create mode 100644 cVMS.NET_CS/HMI/TrendCtrlII/CChinfo.cs create mode 100644 cVMS.NET_CS/HMI/TrendCtrlII/CMouseinfo.cs create mode 100644 cVMS.NET_CS/HMI/TrendCtrlII/CStyle.cs create mode 100644 cVMS.NET_CS/HMI/TrendCtrlII/CTimeinfo.cs create mode 100644 cVMS.NET_CS/HMI/TrendCtrlII/CUserCursor.cs create mode 100644 cVMS.NET_CS/HMI/TrendCtrlII/TrendCtrlII.cs create mode 100644 cVMS.NET_CS/HMI/TrendCtrlII/TrendCtrlII.resx create mode 100644 cVMS.NET_CS/Manual/VMS 메뉴얼 v1.0 - 여수한화솔루션.pdf create mode 100644 cVMS.NET_CS/Manual/VMS 메뉴얼 v1.1 - 대전한화솔루션.pdf create mode 100644 cVMS.NET_CS/MethodExts.cs create mode 100644 cVMS.NET_CS/Modbus/Attributes/CoilAttribute.cs create mode 100644 cVMS.NET_CS/Modbus/Attributes/HoldingAttribute.cs create mode 100644 cVMS.NET_CS/Modbus/Attributes/InputAttribute.cs create mode 100644 cVMS.NET_CS/Modbus/Attributes/ModbusAddressAttribute.cs create mode 100644 cVMS.NET_CS/Modbus/Configures/RtuConfigure.cs create mode 100644 cVMS.NET_CS/Modbus/Configures/TcpConfigure.cs create mode 100644 cVMS.NET_CS/Modbus/JdModbusRTU.cs create mode 100644 cVMS.NET_CS/My Project/Application.myapp create mode 100644 cVMS.NET_CS/My Project/DataSources/ChartData.datasource create mode 100644 cVMS.NET_CS/My Project/Resources.resx create mode 100644 cVMS.NET_CS/My Project/Settings.settings create mode 100644 cVMS.NET_CS/My Project/licenses.licx create mode 100644 cVMS.NET_CS/OpenTK.dll.config create mode 100644 cVMS.NET_CS/PUBC.cs create mode 100644 cVMS.NET_CS/Program.cs create mode 100644 cVMS.NET_CS/Properties/AssemblyInfo.cs create mode 100644 cVMS.NET_CS/Properties/Resources.Designer.cs create mode 100644 cVMS.NET_CS/Properties/Resources.resx create mode 100644 cVMS.NET_CS/Properties/Settings.Designer.cs create mode 100644 cVMS.NET_CS/Properties/Settings.settings create mode 100644 cVMS.NET_CS/Properties/app.manifest create mode 100644 cVMS.NET_CS/Properties/licenses.licx create mode 100644 cVMS.NET_CS/Properties/licenses.licx.bak create mode 100644 cVMS.NET_CS/Resources/Backup Green Button.png create mode 100644 cVMS.NET_CS/Resources/Blue Ball.png create mode 100644 cVMS.NET_CS/Resources/Clear Green Button.png create mode 100644 cVMS.NET_CS/Resources/Get Info Blue Button.png create mode 100644 cVMS.NET_CS/Resources/Green Ball.png create mode 100644 cVMS.NET_CS/Resources/Orange Ball.png create mode 100644 cVMS.NET_CS/Resources/Purple Ball.png create mode 100644 cVMS.NET_CS/Resources/Red Ball.png create mode 100644 cVMS.NET_CS/Resources/down_16.png create mode 100644 cVMS.NET_CS/Resources/down_orange.png create mode 100644 cVMS.NET_CS/Resources/icons8-positive-dynamic-48.png create mode 100644 cVMS.NET_CS/Resources/up_16.png create mode 100644 cVMS.NET_CS/RunCode/Device/_CONNECT.cs create mode 100644 cVMS.NET_CS/RunCode/RunSequence/RUN_GETDATA.cs create mode 100644 cVMS.NET_CS/RunCode/RunSequence/RUN_SAVEDATA.cs create mode 100644 cVMS.NET_CS/RunCode/StateMachine/_Events.cs create mode 100644 cVMS.NET_CS/RunCode/StateMachine/_Loop.cs create mode 100644 cVMS.NET_CS/RunCode/StateMachine/_SPS.cs create mode 100644 cVMS.NET_CS/RunCode/Step/_STEP_CLOSE.cs create mode 100644 cVMS.NET_CS/RunCode/Step/_STEP_ERROR.cs create mode 100644 cVMS.NET_CS/RunCode/Step/_STEP_IDLE.cs create mode 100644 cVMS.NET_CS/RunCode/Step/_STEP_INIT.cs create mode 100644 cVMS.NET_CS/RunCode/Step/_STEP_RUN.cs create mode 100644 cVMS.NET_CS/RunCode/Step/_STEP_WAITSTART.cs create mode 100644 cVMS.NET_CS/RunCode/_00_System_Initialize.cs create mode 100644 cVMS.NET_CS/RunCode/_04_JobStart_Check.cs create mode 100644 cVMS.NET_CS/RunCode/_95_SPS.cs create mode 100644 cVMS.NET_CS/RunCode/_97_Utility.cs create mode 100644 cVMS.NET_CS/RunCode/_99_System_Shutdown.cs create mode 100644 cVMS.NET_CS/Setting/CSetting.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Alam.Designer.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Alam.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Alam.resx create mode 100644 cVMS.NET_CS/Setting/Frm_Cell.Designer.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Cell.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Cell.resx create mode 100644 cVMS.NET_CS/Setting/Frm_Config.Designer.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Config.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Config.resx create mode 100644 cVMS.NET_CS/Setting/Frm_Config1.Designer.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Config1.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Config2.resx create mode 100644 cVMS.NET_CS/Setting/Frm_Grp.Designer.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Grp.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Grp.resx create mode 100644 cVMS.NET_CS/Setting/Frm_Win.Designer.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Win.cs create mode 100644 cVMS.NET_CS/Setting/Frm_Win.resx create mode 100644 cVMS.NET_CS/Setting/fDesignSetting.Designer.cs create mode 100644 cVMS.NET_CS/Setting/fDesignSetting.cs create mode 100644 cVMS.NET_CS/Setting/fDesignSetting.resx create mode 100644 cVMS.NET_CS/app.config create mode 100644 cVMS.NET_CS/cVMS.NET_CS.csproj create mode 100644 cVMS.NET_CS/packages.config create mode 100644 cVMS.NET_CS/pub.cs create mode 100644 cVMS.NET_CS/pub.cs.bak create mode 100644 v.m.pdf create mode 100644 v.m.s.ppt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7e78b6a --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +*.suo +*.user +*.pdb +bin +obj +desktop.ini +.vs +packages +*.patch +/Project/SourceSetup.exe +/Setup_BK +/Setup_HWCA1 +/Setup_HWCA4 diff --git a/Alert.ico b/Alert.ico new file mode 100644 index 0000000000000000000000000000000000000000..62233153eb4fcc0f4fcf5678211f283f437aa579 GIT binary patch literal 15086 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 are#G^MT?j|?od`FRTh>NMbgZ&qW=a@HT}2% literal 0 HcmV?d00001 diff --git a/ArinLog.Net4.dll b/ArinLog.Net4.dll new file mode 100644 index 0000000000000000000000000000000000000000..be589fc21c225a2101023bb313250244d7d7a785 GIT binary patch literal 14336 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 IKY$1R3wQ)q(f|Me literal 0 HcmV?d00001 diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..5c5bf6f --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,2 @@ +240925 chi Ʈ Ŀ +240925 chi initial commit \ No newline at end of file diff --git a/DLL/Winsock Orcas.dll b/DLL/Winsock Orcas.dll new file mode 100644 index 0000000000000000000000000000000000000000..10ccd6eb67f1dac5986132cadfd905314a6c5d18 GIT binary patch literal 108032 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%0Ds}^IuKEYy@r|DY{v-J%U|rI} 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 s?EJ12nF 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�lTp@1Nte+{xVWpfwvz92C!@ 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 address, byte slave=1) where TAddress : Enum + { + ThrowIfNullClient(); + + var attr = GetAddressAttribute(address); + var result = _client.ReadCoils(slave, attr.Address, 1); + + return result[0]; + } + + public void WriteCoil(TAddress address, bool value, byte slave = 1) where TAddress : Enum + { + ThrowIfNullClient(); + + var attr = GetAddressAttribute(address); + _client.WriteSingleCoil(slave, attr.Address, value); + } + + public void WriteCoils(TAdddress address, bool[] value, byte slave = 1) where TAdddress : Enum + { + ThrowIfNullClient(); + + var attr = GetAddressAttribute (address); + _client.WriteMultipleCoils(slave, attr.Address, value); + } + + public bool[] ReadCoils(TAddress address, ushort numOfCoils, byte slave=1) where TAddress : Enum + { + ThrowIfNullClient(); + + var attr = GetAddressAttribute(address); + var result = _client.ReadCoils(slave, attr.Address, numOfCoils); + + return result; + } + + public ushort ReadHoldingRegister(TAddress address, byte slave = 1) where TAddress : Enum + { + ThrowIfNullClient(); + + var attr = GetAddressAttribute(address); + var result = _client.ReadHoldingRegisters(slave, attr.Address, 1); + + return result[0]; + } + + public ushort[] ReadHoldingRegisters(TAddress address, ushort numOfCoils, byte slave = 1) where TAddress : Enum + { + ThrowIfNullClient(); + + var attr = GetAddressAttribute(address); + var result = _client.ReadHoldingRegisters(slave, attr.Address, numOfCoils); + + return result; + } + + public void WriteHoldingRegister(TAddress address, ushort value, byte slave = 1) where TAddress : Enum + { + ThrowIfNullClient(); + + var attr = GetAddressAttribute(address); + _client.WriteSingleRegister(slave, attr.Address, value); + } + + public void WriteHoldingRegisters(TAddress address, ushort[] value, byte slave = 1) where TAddress : Enum + { + ThrowIfNullClient(); + + var attr = GetAddressAttribute(address); + _client.WriteMultipleRegisters(slave, attr.Address, value); + } + + private static TAttribute GetAddressAttribute(Enum value) where TAttribute : ModbusAddressAttribute + { + var fieldInfo = value.GetType().GetField(value.ToString()); + var attribute = fieldInfo.GetCustomAttributes(typeof(TAttribute), false); + + if (attribute.Length == 0) + throw new ArgumentException($"`{value}`는 {nameof(ModbusAddressAttribute)} 속성을 지정하지 않았습니다."); + + return (TAttribute)attribute[0]; + } + + public void Dispose() => _client?.Dispose(); + + + private void ThrowIfNullClient() + { + if (_client == null) + throw new NullReferenceException("Modbus Client가 초기화 되지 않았습니다."); + } +} diff --git a/JdModbus/JdModbusV1.csproj b/JdModbus/JdModbusV1.csproj new file mode 100644 index 0000000..c113183 --- /dev/null +++ b/JdModbus/JdModbusV1.csproj @@ -0,0 +1,14 @@ + + + + net8.0 + enable + enable + + + + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..bfc4341 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +VMS 2016 + GM10 Visual Basic .Net C# Port Version \ No newline at end of file diff --git a/Smiley.ico b/Smiley.ico new file mode 100644 index 0000000000000000000000000000000000000000..ecd1ce0b0b2f8d826b04dcdc157c3fe1e088f52c GIT binary patch literal 4286 zcmeH~eN5F=7{^a(uvLq)m$~dk1umC1GTsCX3>8Q)mb||W_@gA>kj9LF%291G!MPM8 zqa2jWG0TcoVr^LIl2St;&`g~qVwrE~OcXEo>HEFhGk*T&y@Bh$f_-_;InVQazUQ3Z zy%$jGCVWqxtoTzk-l^1mN+~OZB^3>E-PMR-$j;8b3)~4=Sy}fWPE1Zt zejqb5^FfRs(&8MtAM<;Yl9KLr_IP1_dwhJnC*nA=|H+@;g@uKzp8!qC$jF!mg~K~? z?xL5H17F?prghcM-Imp@hrQRd{Y7zXUA1FRP{l`U6BfUmf_+4xJ_36PMy~~&iMhGC zxAE?{2lKi0d}>XH;yzi+^Po2rab8SOWl2Egwids-Zi#5>m4w#wGQaJTWFE9R#4*>H zV@*J1^Y+-HH_FhPl%AeG)42zp$HT4vx=v+2zkl_28+_mCmO0;?megPDGOtS{x=kef zN0HFhVR6hg=2*j8_B>MkZT(oz@BLO6wm0(peQMg@4s7g^`Q0{&?GOor&tu=a7i(C{ z9`^dyw68Zle|qTqHb?K;Ze>tS$ftes6wVa&lSt4mk-$-kwd`Rp8DQ2JxUT)zA5h-I zs(f_wF^Nb2jJ@#1J>Q7fO9olsRyx_P{p$`Y@4ABlmWCq|+c_jr`*3dDr%|(Uu7U$1 zWrsyp_6)1^kjS(9@fzSgnd-?P%MVPlA(#F>?;cW6ZFoz+%a|k-L6fZLx*)7E_K-nV7?@0$QObKm!meI2oDKq65)9edV_!`?F*ngyS$ zqY`V`qx%`jB%2=E&m4U>9zPzr&nAzfHmrR_33#SYE?zD%F)^bOYuRIDkV!T@%)WZ= z`{9WzkzIBP$KJ!Z2dCoj+MW>?FA)(DqY`V`qx%`jB%2=E&m1kAPF{)Zwo7s^KEDh~ z!H(0$DE1f`WRgt}v#*|88c!Xc(J>_H?ERNTCfW4Re&%S|e5NII&!A+`yYE_+of4_- z9~Q@B&67zsJQN$v7sGd_pA2pp|DumMtrCh+|`pV|RJ7$RwK{+Rq&Q zKDjU@;ERirc2p$yB=+$8h|120;P<&h92;{SyUUYBCfW2b`|7#hXBQPzAKP|S3cyVL z13peI!ky2WHOnE6^}3F(@??-jCfW4Re&%Rxx}>1#)3y%C0=!-qoEAyJ-l^O_@%a@L z?eemSV9 za{Nt>So`!|o4kU%eh$w&Z47&0EqmBY23by~gKzfLbL-ZtigMI$z3PE+?c7$ItORE{ zUh{d}2ga!`#2jl_%O3WU0eLu?4!-s?NB`y_MX^>3^Qw@RAu0aVF16=GUW1Cj&&S>7 zz>DITYs|5Rwd`T9<}hl$*;mi~x7n2o1!Mia(Cv1~Yq!hmcrUNUdwSFPVR6hg=2*j8 zh&|WkX+LxH{|b9_uSv)+g_@zgkj*KMxyBr8+;Ysm|IbJM2mY_!g-xj^`jzs6JPq>V i`emgacILc#kROe7J$uQZMByX10{`~*c;b4m{rVf3NYwBE literal 0 HcmV?d00001 diff --git a/Sub/CommData/CommData.csproj b/Sub/CommData/CommData.csproj new file mode 100644 index 0000000..b5bf931 --- /dev/null +++ b/Sub/CommData/CommData.csproj @@ -0,0 +1,55 @@ + + + + + Debug + AnyCPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623} + Library + Properties + VarData + VarData + v4.8 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + IDE1006,IDE0019,IDE1005,IDE0031 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sub/CommData/Enum.cs b/Sub/CommData/Enum.cs new file mode 100644 index 0000000..df9b787 --- /dev/null +++ b/Sub/CommData/Enum.cs @@ -0,0 +1,314 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace COMM +{ + + public enum EALAMTYPE + { + 그룹설정을따름, + 개별알람, + 개별알람자동, + 사용안함 + } + + public enum EALAMRAISETYPE + { + HIGH_OFF = 0, + HIGH_ON = 1, + LOW_OFF = 2, + LOW_ON = 3, + A1_ON = 4, + A1_OFF = 5, + A2_ON = 6, + A2_OFF = 7, + OVER_ON = 8, + OVER_OFF = 9, + } + + public enum eDataSource + { + Measure, + SLT + } + public enum eVldResult + { + notset= 0, + Fail , + Pass, + Error, + Offline, + NoLotInfo, + CalData, + } + public enum EJob + { + OfflineOff_BTM=0, + OfflineOn_TOP, + Local_BTM, + Local_TOP, + Remote, + RepeatOff_BTM, + RepeatOn_Top, + None=999, + } + + public enum ESMStep : byte + { + //예약영역(1) + NOTSET = 0, + INIT = 1, + IDLE = 10, + ZAGING, //Z축 모션 aging + + RUN = 50, + TEST, + + RUN_MGZ_LOADER, + RUN_MGZ_UNLOADER, + + RUN_PICKER_LOADER, + RUN_PICKER_UNLOADER, + + RUN_PUSHER_LOADER, + RUN_PUSHER_UNLOADER, + + + RUN_TABLE, + //RUN_TABLE_WITH_PICKER, + + + RUN_MGZ_OUT_UNLOADER, + RUN_MGZ_OUT_LOADER, + RUN_MGZ_IN_UNLOADER, + RUN_MGZ_IN_LOADER, + + + + + RUN_SAVEDATA, + + //예약영역(2) + EMERGENCY = 200, + HOME_FULL = 201, + HOME_DELAY, + + CLOSING = 250, + CLOSEWAIT = 251, + CLOSED = 252, + + //사용자 영역 + FINISH = 100, + + HOME_QUICK, + PAUSE, + WAITSTART, + ERROR, + HOME_CONFIRM, + } + + public enum eStatusMesage : byte + { + LoaderMGZ = 0, + UnLoaderMGZ, + LoaderPicker, + UnLoaderPicker, + Sensor, + Main, + } + public enum eILock + { + EMG = 0, + PAUSE, + HOMESET, + //HOMEVALID, + DOOR, + DISABLE, + Z_POS, + Y_POS, + X_POS, + PCB, + SAFTYAREA, + + LEFTPICKER, + RIGHTPICKER, + LOADERPUSHER, + STOPPER, + UNLOADERPUSHER, + PCBOUT, + PRESSDOWN, + } + + + public enum eBuzzer + { + Alarm, + Finish, + All, + } + + public enum eWorkMZ + { + Loader = 0, + UnLoader + } + + + public enum eWaitType : byte + { + Normal = 0, + } + + + public enum StepResult + { + Wait = 0, + Complete, + Error, + Cancel, + } + + public enum eResult : byte + { + NOERROR, + EMERGENCY, + SAFTY, + SETUP, + HARDWARE, + DEVELOP, + VISION, + SENSOR, + SOFTWARE, + MOTION, + OPERATION, + COMMUNICATION, + TIMEOUT, + } + + + public enum eECode : byte + { + + NOTSET = 0, + EMERGENCY, + NOMODELV,//작업모델 + NOMODELM,//모션모델 + DOORSAFTY, + AREASAFTY, + MOT_HSET, + MOT_SVOFF, + MOT_HSEARCH, + MOT_CMD, + HOME_TIMEOUT, + AIRNOOUT, + NOFUNCTION, + DOOFF,//출력 off + DOON,//출력 on + DIOFF,//입력off + DION,//입력 on + MESSAGE_INFO, + MESSAGE_ERROR, + AZJINIT, + USER_STOP, + USER_STEP, + SEP_MOT_HOME, + SECS_NOTONLINE, + MODEL_MISSMATCH, + + /// + /// 로더측 Y,Z가 정위치가 아닙니다. + /// + INITPOS_LOADER_MAGAZIN = 100, + INITPOS_UNLOADER_MAGAZIN, + INITPOS_LOADER_PICKER, + INITPOS_UNLOADER_PICKER, + + INITPOS_LOADER_PUSHER, + INITPOS_UNLOADER_PUSHER, + + TENKEY_STOP, + UNLOADER_RAIL_PCBDETECT, + LOADER_RAIL_PCBDETECT, + + UNLOADER_RAIL_OUT_PCBDETECT, + LOADER_RAIL_OUT_PCBDETECT, + + LOADER_MGZ_OUT_FULL, + UNLOADER_MGZ_OUT_FULL, + + LOADER_RAIL_EMPTY, + UNLOADER_RAIL_EMPTY, + + LOADER_PCBRAILOUT, + UNLOADER_PCBRAILOUT, + + LOADER_MGZ_DETECT, + UNLOADER_MGZ_DETECT, + LOADER_MGZ_CLAMPDOWN, + UNLOADER_MGZ_CLAMPDOWN, + + LOADER_MGZ_CLAMPUP, + UNLOADER_MGZ_CLAMPUP, + + LOADER_PICKER_PCBDETECT, + UNLOADER_PICKER_PCBDETECT, + + Y_MGZ_LOADER_POSITION, + Y_MGZ_UNLOADER_POSITION, + + LOADER_PUSHER_NOBACK, + LOADER_OVERLOAD, + UNLOADER_OVERLOAD, + + SIDE_CLAMP_NOTOPEN, + ENDCAP_LOADER, + TABLE_NOT_READY, + TABLE_VAC_ERROR, + NOBARCODE, + + LOADER_MGZ_CLAMPDOWN_HOME, + UNLOADER_MGZ_CLAMPDOWN_HOME, + ENDCAP_UNLOADER, + + LOADER_MZ_NOTREADY, + UNLOADER_MZ_NOTREADY, + STRIP_NOT_DETECT, + + LOADER_MGZ_NOT_DETECT, + UNLOADER_MGZ_NOT_DETECT, + DOORSAFTY_REAL, + AREASAFTY_REAL, + MOT_POWEROFF, + MOT_ALM, + + LOADER_RAIL_NOPCB, + UNLOADER_RAIL_NOPCB, + + LOADER_RAIL_IMCOMPLETE_PCB, + UNLOADER_RAIL_IMCOMPLETE_NOPCB, + + SECS_RECVLOT_ERROR, + SECS_RECVLOT_ERROR_FORMAT, + + GETTHICK_FROMDB, + LOWAIR, + + LOADER_MGZ_CLAMPSENSOR_ERROR, + UNLOADER_MGZ_CLAMPSENSOR_ERROR, + + + CREDIT = 255, + + } + + public enum eNextStep : byte + { + NOTHING = 0, + PAUSE, + PAUSENOMESAGE, + ERROR + } + +} diff --git a/Sub/CommData/EnumDIO.cs b/Sub/CommData/EnumDIO.cs new file mode 100644 index 0000000..07127b4 --- /dev/null +++ b/Sub/CommData/EnumDIO.cs @@ -0,0 +1,180 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace COMM +{ + public enum EDIName : byte + { + EMERGENCY_F1 = 0x00, + EMERGENCY_F2, + EMERGENCY_R1, + EMERGENCY_R2, + + AIR_DETECT, + BUTTON_AIR, + BUTTON_START, + BUTTON_STOP, + BUTTON_RESET, + + DOOR_FC, + DOOR_FR, + DOOR_FL, + DOOR_RC, + DOOR_RL, + DOOR_RR, + + Loader_MGZ_Check = 0x10, + Loader_MGZ_Arrive, + Loader_Elevator_MGZ_Check, + Loader_MGZ_Out, + Loader_MGZ_Gripper_MGZ_Check1, + Loader_MGZ_Gripper_MGZ_Check2, + Loader_MGZ_Clamp_Down, + Loader_MGZ_Clamp_Up, + Loader_MGZ_Clamp_Bwd, + Loader_MGZ_Clamp_Fwd, + Loader_Pusher_Back, + Loader_Pusher_Fwd, + Loader_Pusher_Overload, + Loader_PCB_MGZ_Out, + Index_Gripper_Open, + Index_Gripper_Close, + + Loader_MGZ_EndCap_Check = 0x20, + Loader_Rail_PCB_CheckL, + Loader_Rail_PCB_CheckM, + Loader_Rail_PCB_CheckR, + PickerL_Close, + PickerL_Open, + Picker1_PCB_Check1, + Picker1_PCB_Check2, + PickerU_Close, + PickerU_Open, + Picker2_PCB_Check1, + Picker2_PCB_Check2, + + SaftyArea_Left = 0x2E, + SaftyArea_Right, + + UnLoader_Rail_PCB_CheckL = 0x30, + UnLoader_Rail_PCB_CheckM, + UnLoader_Rail_PCB_CheckR, + UnLoader_Pusher_Overload, + Unloader_MGZ_Check, + UnLoader_MGZ_Arrive, + UnLoader_Elevator_MGZ_Check, + UnLoader_MGZ_Out, + UnLoader_MGZ_Gripper_MGZ_Check1, + UnLoader_MGZ_Gripper_MGZ_Check2, + UnLoader_MGZ_Clamp_Up, + UnLoader_MGZ_Clamp_Down, + UnLoader_MGZ_Clamp_Fwd, + UnLoader_MGZ_Clamp_Bwd, + UnLoader_PCB_MGZ_Out, + UnLoader_MGZ_EndCap_Check = 0x3F, + + Table_Vac_Check = 0x40, + Side_Clamp1_Close = 0x43, + Side_Clamp1_Open, + Side_Clamp2_Close, + Side_Clamp2_Open, + + Glass_Press1_Up = 0x48, + Glass_Press1_Down, + Glass_Press2_Up, + Glass_Press2_Down, + + SR2000_OK = 0x04D, + SR2000_ER, + SR2000_BS, + + CL3000U_RUN=0x50, + CL3000U_ALM, + CL3000U_ERR, + + CL3000D_RUN = 0x54, + CL3000D_ALM, + CL3000D_ERR, + + Loader_MGZ_Stopper_Up = 0x57, + Loader_MGZ_Stopper_Down, + UnLoader_MGZ_Stopper_Up, + UnLoader_MGZ_Stopper_Down + + + } + + public enum EDOName : byte + {//output + + EMERGENCY_F1 = 0x000, + EMERGENCY_F2 = 0x001, + EMERGENCY_R1 = 0x002, + EMERGENCY_R2 = 0x003, + + BUTTON_AIR = 0x005, + BUTTON_START = 0x006, + BUTTON_STOP = 0x007, + BUTTON_RESET = 0x008, + AIR_DETECT = 0x009, + BUZZER_ERROR = 0x00A, + + TOWER_GRN = 0x00B, + TOWER_YEL = 0x00C, + TOWER_RED = 0x00D, + + ROOM_LIGHT = 0x00F, + + Loader_MGZ_Clamp_Up = 0x10, + Loader_MGZ_Clamp_Down, + Loader_MGZ_Clamp_Fwd, + Loader_MGZ_Clamp_Bwd, + Loader_Pusher_Fwd, + Index_Gripper_Close, + PickerL_Open, + PCB_Side_Clamp_Close, + PCB_Glass_Press_Plate_Down, + PickerU_Open = 0x19, + Unloader_MGZ_Clamp_Up, + UnLoader_MGZ_Clamp_Down, + UnLoader_MGZ_Clamp_Fwd, + Unloader_MGZ_Clamp_Bwd, + Table_Eject1_On, + Table_Vacuum1_On, + + Loader_MGZ_InMotor_Run = 0x20, + Loader_MGZ_OutMotor_Run, + UnLoader_MGZ_InMotor_Run, + UnLoader_MGZ_OutMotor_Run, + + MOTOR_01_POWER_OFF = 0x024, + MOTOR_02_POWER_OFF, + MOTOR_03_POWER_OFF, + MOTOR_04_POWER_OFF, + MOTOR_05_POWER_OFF, + MOTOR_06_POWER_OFF, + MOTOR_07_POWER_OFF, + MOTOR_08_POWER_OFF, + MOTOR_09_POWER_OFF, + MOTOR_10_POWER_OFF, + MOTOR_11_POWER_OFF, + + CL_3000L_POWER = 0x30, + CL_3000R_POWER, + + CL_3000L_ZERO1 = 0x33, + CL_3000L_ZERO2, + + CL_3000R_ZERO1 = 0x35, + CL_3000R_ZERO2, + + Loader_MGZ_Stopper_Up=0x38, + UnLoader_MGZ_Stopper_Up, + + SR2000_TRIGGER = 0x3F, + } + + +} diff --git a/Sub/CommData/EnumMot.cs b/Sub/CommData/EnumMot.cs new file mode 100644 index 0000000..f2e0b49 --- /dev/null +++ b/Sub/CommData/EnumMot.cs @@ -0,0 +1,43 @@ +#pragma warning disable IDE1006 // 명명 스타일 +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + +namespace COMM +{ + public enum eAxis : byte + { + + [Category("Y"), Description("Loader Y - Front/Back")] + LOADER_FRONTBACK = 0, + + [Category("Z"), Description("Loader Z - Up/Down")] + LOADER_UPDOWN, + [Category("X"), Description("Loader Pusher X - Left/Right")] + LOADER_PUSHER, + [Category("Z"), Description("Loader Picker Z - Up/Down")] + LPICKER_UPDOWN, + + [Category("Z"), Description("UnLoader Picket Z - Up/Down")] + UPICKER_UPDOWN, + [Category("X"), Description("Unloader Pusher X - Left/Right")] + UNLOADER_PUSHER, + + [Category("Y"), Description("UnLoader Y - Front/Back")] + UNLOADER_FRONTBACK, + [Category("Z"), Description("UnLoader Z - Up/Down")] + UNLOADER_UPDOWN, + [Category("X"), Description("Loader Picker X - Left/Right")] + LPICKER_LEFTRIGHT, + [Category("Y"), Description("Glass table Y - Front/Back")] + TABLE, + + [Category("X"), Description("UnLoader Picket X - Left/Right")] + UPICKER_LEFTRIGHT, + [Description("미사용 위치")] + SPARE, + + } +} diff --git a/Sub/CommData/EnumVAR.cs b/Sub/CommData/EnumVAR.cs new file mode 100644 index 0000000..d12ccf0 --- /dev/null +++ b/Sub/CommData/EnumVAR.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace COMM +{ + #region "VAR DATA" + public enum EVarI32 + { + None = 0, + DevConnectSeq, + CONNTRY_PLC, + CONNTRY_INDICATOR, + ChargeWaitSec, + + DataIndex, + } + + public enum EVarDBL + { + + } + + public enum EVarBool + { + //comm area start(0~31) + None = 0, + INIT_SYSTEM, + SMRUN, + DebugMode, + SQLCONN, + RESUMEJOB, + USERSTEP, + } + + + public enum EVarString + { + MCStatus, + JobMode, + } + + public enum EVarTime + { + MOTIONLINK, + AREALTIME, + AREARTIME, + LIVEVIEWR, + CONNTRY_PLC, + CONNTRY_INDICATOR, + JOB_START, + JOB_END, + JOB_REFRESH, + + } + #endregion + + + +} diff --git a/Sub/CommData/Enum_MotPosition.cs b/Sub/CommData/Enum_MotPosition.cs new file mode 100644 index 0000000..10ca25f --- /dev/null +++ b/Sub/CommData/Enum_MotPosition.cs @@ -0,0 +1,199 @@ +using System.ComponentModel; + +namespace Project +{ + //public enum EDefLoc : byte + //{//포지션 현재 축이 어디있는지 상태값 + // UNKNOWN = 0, + // LIMITP, + // LIMITN, + // HOME, + // ERROR, + //} + + public enum EYLoader : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50, + A01_MGZ_GRIP_START, + A02_MGZ_GRIP_CLOSE, + A03_MGZ_ENDCAP_CHECK, + A04_MGZ_WORKING_FIRST, + A05_MGZ_WORKING_PITCH, + A06_MGZ_OUT_START, + A07_MGZ_OUT_END, + } + public enum EZLoader : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50,// + A01_MGZ_GRIP_START, + A02_MGZ_GRIP_UP, + A03_MGZ_ENDCAP_CHECK, + A04_MGZ_WORKING_FIRST, + A05_MGZ_WORKING_PITCH, + A06_MGZ_OUT, + A07_MGZ_OUT_DOWN, + } + + + + //public enum EYUnLoader : byte + //{ + // //포지션 현재 축이 어디있는지 상태값 + // UNKNOWN = 0, + // LIMITP, + // LIMITN, + // HOME, + // ERROR, + + // [Description("대기위치")] + // A00_READY = 50, + // A01_MGZ_GRIP_START, + // A02_MGZ_GRIP_CLOSE, + // A03_MGZ_WORKING_FIRST, + // A04_MGZ_WORKING_PITCH, + // A05_MGZ_OUT_START, + // A06_MGZ_OUT_END, + + //} + //public enum EZUnLoader : byte + //{ + // //포지션 현재 축이 어디있는지 상태값 + // UNKNOWN = 0, + // LIMITP, + // LIMITN, + // HOME, + // ERROR, + + // [Description("대기위치")] + // A00_READY = 50, + // A01_MGZ_GRIP_START, + // A02_MGZ_GRIP_UP, + // A03_MGZ_WORKING_FIRST, + // A04_MGZ_WORKING_PITCH, + // A05_MGZ_OUT, + // A06_MGZ_OUT_DOWN, + //} + + public enum EXLoaderPusher : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50, + A01_BARCODE_END, + A02_PICKON , + A03_PICKOFF, + A04_PICKOFFBACK, + } + + public enum EXUnLoaderPusher : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50, + A01_PUSH_START, + A02_PUSH_SLOW_START, + A03_PUSH_SLOW_END, + A04_PUSH_END, + } + public enum EXLoaderPicker : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50, + A01_PICKON, + A02_PICKOFF, + } + public enum EZLoaderPicker : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50, + A01_PICKON, + A02_PICKOFF, + } + + + public enum EXUnLoaderPicker : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50, + A01_PICKON, + A02_PICKOFF, + } + + public enum EZUnLoaderPicker : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50, + A01_PICKON, + A02_PICKOFF, + } + public enum EYGlass : byte + { + //포지션 현재 축이 어디있는지 상태값 + UNKNOWN = 0, + LIMITP, + LIMITN, + HOME, + ERROR, + + [Description("대기위치")] + A00_READY = 50, + A01_MEASURE, + } + +} \ No newline at end of file diff --git a/Sub/CommData/Properties/AssemblyInfo.cs b/Sub/CommData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8d44db4 --- /dev/null +++ b/Sub/CommData/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("VarData")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("VarData")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("14e8c9a5-013e-49ba-b435-efefc77dd623")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Sub/WinsockOracs/About.txt b/Sub/WinsockOracs/About.txt new file mode 100644 index 0000000..b1678af --- /dev/null +++ b/Sub/WinsockOracs/About.txt @@ -0,0 +1,23 @@ +Winsock Orcas is the result of refining a project that started when I graduated from VB6 to VB.NET 2003. + +.NET no longer supported the old Winsock control that had been so easy to use in VB6. Instead they gave us something with much more power, but also much more complexity: the Socket. + +It took me a bit of time to figure the socket out, but when I did I decided to create a wrapper that worked just like the old control I was familiar with - making sockets much easier. + +The first version was wrought with bugs and wasn't thread-safe. When VS 2005 came out, and revealed even more functions with regards to the socket - I resolved to make a new version. + +That was Winsock 2005. It was thread-safe (to a point), and fixed the major bugs of the previous version. It even had UDP support. + +In April of 2007 I started work on Winsock 2007. Due to a project I was working on at the time, I was looking into Remoting to synchronize an object between server/client. I decided Remoting wasn't for my project (couldn't implement blacklist), thus a new version of Winsock was born. + +Winsock 2007 enabled synchronizing of objects (via BinaryFormatter), making the Send/Get routines simpler. The thread-safe events have been improved, as has UDP support. IPv6 support was added making it much easier to use with Vista. + +Winsock Orcas (version 4.0.0) was made just to keep this going. It had come to my attention that VS2008 had problems compiling the code for previous version, so I made this version. This version streamlines the code, making it simpler to read (mainly by removing the WinsockMonitor class), and also adds in some Generics support on the Get/Peek methods to do automatic conversion to the type you want (watch out, you could cause exceptions for casting to the wrong type). + +All in all I've enjoyed creating this component, and hope others find it as helpful as I have. + +To report bugs please visit: http://www.k-koding.com/ and use the bug tracker. + +Thanks for using it, + +Chris Kolkman \ No newline at end of file diff --git a/Sub/WinsockOracs/AsyncSocket.vb b/Sub/WinsockOracs/AsyncSocket.vb new file mode 100644 index 0000000..4d2c512 --- /dev/null +++ b/Sub/WinsockOracs/AsyncSocket.vb @@ -0,0 +1,1247 @@ +Option Strict On + +Imports System.Net +Imports System.Net.Sockets +Imports System.Threading + +''' +''' A class that encapsulates all the raw functions of the System.Net.Sockets.Socket +''' +Public Class AsyncSocket + + Private myParent As IWinsock ' The parent Winsock - allows access to properties and event raising + Private mSock1 As Socket ' for IPv4 (listening) or both IPv4 and IPv6 (connections) + Private mSock2 As Socket ' for IPv6 (listening) only + Private byteBuffer() As Byte ' Stores the incoming bytes waiting to be processed + Private incBufferSize As Integer = 8192 ' The buffer size of the socket + Private _buff As ByteBufferCol ' Temporary byte buffer - used while an object is being assembled + Private _closing As Boolean = False ' Prevents the Close() method from being run while it already running + Private qBuffer As Queue ' The Buffer Queue - where objects wait to be picked up by the Get() method + Private phProcessor As PacketHeader ' The PacketHeader processor - looks for and reads the packet header added to the byte array + Private sBufferMutex As New Mutex() + Private sendBuffer As Deque ' The Sending Buffer Queue - where objects wait to be sent. + Private thdSendLoop As Thread ' Used to send everything in the sendBuffer + Private lckSendLoop As Object ' Used for a syncronized lock on the SendLoop thread + Private bIsSending As Boolean ' Used internally to tell if a sending loop is in progress. + + Public Sub New(ByRef parent As IWinsock) + Try + myParent = parent + phProcessor = New PacketHeader + qBuffer = New Queue + _buff = New ByteBufferCol + sendBuffer = New Deque + lckSendLoop = New Object() + ReDim byteBuffer(incBufferSize) + Catch ex As Exception + SharedMethods.RaiseError(myParent, "Unable to initialize the AsyncSocket.") + End Try + End Sub + + ''' + ''' Gets a value containing the remote IP address. + ''' + Protected Friend ReadOnly Property RemoteIP() As String + Get + Dim rEP As System.Net.IPEndPoint = CType(mSock1.RemoteEndPoint, System.Net.IPEndPoint) + Return rEP.Address.ToString() + End Get + End Property + + ''' + ''' Gets a value containing the remote port number. + ''' + Protected Friend ReadOnly Property RemotePort() As Integer + Get + Dim rEP As System.Net.IPEndPoint = CType(mSock1.RemoteEndPoint, System.Net.IPEndPoint) + Return rEP.Port + End Get + End Property + + ''' + ''' Gets a value containing the local port number. + ''' + Protected Friend ReadOnly Property LocalPort() As Integer + Get + Dim lEP As System.Net.IPEndPoint = CType(mSock1.LocalEndPoint, IPEndPoint) + Return lEP.Port + End Get + End Property + + Protected Friend ReadOnly Property BufferCount() As Integer + Get + Dim i As Integer = -1 + SyncLock qBuffer.SyncRoot + i = qBuffer.Count + End SyncLock + Return i + End Get + End Property + + Protected Friend Property BufferSize() As Integer + Get + Return incBufferSize + End Get + Set(ByVal value As Integer) + incBufferSize = value + End Set + End Property + + Protected Friend ReadOnly Property UnderlyingStream() As Net.Sockets.NetworkStream + Get + If mSock1 IsNot Nothing Then Return New Net.Sockets.NetworkStream(mSock1, IO.FileAccess.ReadWrite, False) + Return Nothing + End Get + End Property + +#Region " Public Methods " + + ''' + ''' Accepts an incoming connection and starts the data listener. + ''' + ''' The client to accept. + Public Function Accept(ByVal client As Socket) As Boolean + Try + If myParent.State <> WinsockStates.Closed Then + Throw New Exception("Cannot accept a connection while the State is not closed.") + End If + mSock1 = client + Receive() + myParent.ChangeState(WinsockStates.Connected) + Dim e As New WinsockConnectedEventArgs(CType(mSock1.RemoteEndPoint, System.Net.IPEndPoint).Address.ToString, CType(mSock1.RemoteEndPoint, System.Net.IPEndPoint).Port) + myParent.OnConnected(e) + Return True + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + Return False + End Try + End Function + + ''' + ''' Closes the socket if its already open or listening. + ''' + Public Sub Close() + Try + ' If we are already closing then exit the subroutine + If _closing Then Exit Sub + ' Set the closing flag so that this doesn't get run more than once + ' at a time. + _closing = True + ' If we are already closed - exit the subroutine + If myParent.State = WinsockStates.Closed Then _closing = False : Exit Sub + Dim bAllowDisconnect As Boolean = False + ' Close the Socket(s) as necessary + Select Case myParent.State + Case WinsockStates.Connected + ' Change the state to Closing + myParent.ChangeState(WinsockStates.Closing) + If mSock1 IsNot Nothing Then mSock1.Close() + ' Allow disconnect event to raise + bAllowDisconnect = True + Case WinsockStates.Listening + ' Change the state to Closing + myParent.ChangeState(WinsockStates.Closing) + If mSock1 IsNot Nothing Then mSock1.Close() + If mSock2 IsNot Nothing Then mSock2.Close() + ' Do not allow Disconnect event - we weren't connected to anything + ' only listening. + bAllowDisconnect = False + End Select + ' Change state to Closed + myParent.ChangeState(WinsockStates.Closed) + ' Raise the Disconnected event - if allowed to + If bAllowDisconnect Then myParent.OnDisconnected() + _closing = False + Catch ex As Exception + _closing = False + If ex.InnerException IsNot Nothing Then + SharedMethods.RaiseError(myParent, ex.Message, ex.InnerException.Message) + Else + SharedMethods.RaiseError(myParent, ex.Message) + End If + End Try + End Sub + + ''' + ''' Starts Listening for incoming connections. For UDP sockets it starts listening for incoming data. + ''' + ''' The port to start listening on. + ''' The maximum length of the pending connections queue. + Public Sub Listen(ByVal port As Integer, ByVal max_pending As Integer) + Try + If myParent.Protocol = WinsockProtocol.Tcp Then + Dim blnChangePort As Boolean = False + ' Start listening on IPv4 - if available + If Socket.SupportsIPv4 Then + mSock1 = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) + Dim ipLocal As New IPEndPoint(IPAddress.Any, port) + mSock1.Bind(ipLocal) + mSock1.Listen(max_pending) + mSock1.BeginAccept(New AsyncCallback(AddressOf ListenCallback), mSock1) + End If + ' if port was 0 find port used for IPv4 and use it for IPv6 + If port = 0 Then + Dim lEP As System.Net.IPEndPoint = CType(mSock1.LocalEndPoint, IPEndPoint) + port = lEP.Port + blnChangePort = True + End If + ' Start listening on IPv6 - if available + If Socket.OSSupportsIPv6 Then + mSock2 = New Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp) + Dim ipLocal As New IPEndPoint(IPAddress.IPv6Any, port) + mSock2.Bind(ipLocal) + mSock2.Listen(max_pending) + mSock2.BeginAccept(New AsyncCallback(AddressOf ListenCallback), mSock2) + End If + If blnChangePort Then + myParent.ChangeLocalPort(port) + End If + ' Change state to Listening + myParent.ChangeState(WinsockStates.Listening) + ElseIf myParent.Protocol = WinsockProtocol.Udp Then + If port <= 0 Then + Throw New ArgumentException("While port 0 works for getting random port for UPD, there is no way for the server operator to know the port used until a completed send/receive method call is used which means the port is known already.", "port") + End If + ' Start data listening on IPv4 - if available + If Socket.SupportsIPv4 Then + mSock1 = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) + + Dim ipLocal As New IPEndPoint(IPAddress.Any, port) + Dim ipeSender As New IPEndPoint(IPAddress.Any, 0) + + Dim xe As New UdpReceiveState() + xe.SendingSocket = mSock1 + xe.ReceivingEndpoint = ipeSender + + mSock1.Bind(ipLocal) + mSock1.BeginReceiveFrom(byteBuffer, 0, incBufferSize, SocketFlags.None, xe.ReceivingEndpoint, New AsyncCallback(AddressOf ReceiveCallbackUDP), xe) + End If + ' Start data listening on IPv6 - if available + If Socket.OSSupportsIPv6 Then + mSock2 = New Socket(AddressFamily.InterNetworkV6, SocketType.Dgram, ProtocolType.Udp) + + Dim ipLocal As New IPEndPoint(IPAddress.IPv6Any, port) + Dim ipeSender As New IPEndPoint(IPAddress.IPv6Any, 0) + + Dim xe As New UdpReceiveState() + xe.SendingSocket = mSock2 + xe.ReceivingEndpoint = ipeSender + + mSock2.Bind(ipLocal) + mSock2.BeginReceiveFrom(byteBuffer, 0, incBufferSize, SocketFlags.None, xe.ReceivingEndpoint, New AsyncCallback(AddressOf ReceiveCallbackUDP), xe) + End If + myParent.ChangeState(WinsockStates.Listening) + End If + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' Starts Listening for incoming connections on the specified IP address. For UDP sockets it starts listening for incoming data. + ''' + ''' The port to start listening on. + ''' The maximum length of the pending connections queue. + ''' The IP address on which to listen. + Public Sub Listen(ByVal port As Integer, ByVal max_pending As Integer, ByVal ip As IPAddress) + Try + ' IP contains information on type (IPv4 vs. IPv6) so we can just work with that + If myParent.Protocol = WinsockProtocol.Tcp Then + mSock1 = New Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp) + Dim ipLocal As New IPEndPoint(ip, port) + mSock1.Bind(ipLocal) + mSock1.Listen(max_pending) + mSock1.BeginAccept(New AsyncCallback(AddressOf ListenCallback), mSock1) + If port = 0 Then + Dim lEP As System.Net.IPEndPoint = CType(mSock1.LocalEndPoint, IPEndPoint) + myParent.ChangeLocalPort(lEP.Port) + End If + ElseIf myParent.Protocol = WinsockProtocol.Udp Then + If port <= 0 Then + Throw New ArgumentException("While port 0 works for getting random port for UPD, there is no way for the server operator to know the port used until a completed send/receive method call is used which means the port is known already.", "port") + End If + mSock1 = New Socket(ip.AddressFamily, SocketType.Dgram, ProtocolType.Udp) + + Dim ipLocal As New IPEndPoint(ip, port) + Dim ipeSender As New IPEndPoint(ip, 0) + + Dim xe As New UdpReceiveState() + xe.SendingSocket = mSock1 + xe.ReceivingEndpoint = ipeSender + + mSock1.Bind(ipLocal) + mSock1.BeginReceiveFrom(byteBuffer, 0, incBufferSize, SocketFlags.None, xe.ReceivingEndpoint, New AsyncCallback(AddressOf ReceiveCallbackUDP), xe) + End If + myParent.ChangeState(WinsockStates.Listening) + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' Gets the first object in the buffer without removing it. + ''' + Public Function PeekData() As Byte() + Dim ret() As Byte + SyncLock qBuffer.SyncRoot + If qBuffer.Count = 0 Then + ret = Nothing + Else + ret = DirectCast(qBuffer.Peek(), Byte()) + End If + End SyncLock + Return ret + End Function + + ''' + ''' Gets and removes the first object in the buffer. + ''' + Public Function GetData() As Byte() + Dim ret() As Byte + SyncLock qBuffer.SyncRoot + If qBuffer.Count = 0 Then + ret = Nothing + Else + ret = DirectCast(qBuffer.Dequeue, Byte()) + End If + End SyncLock + Return ret + End Function + + ''' + ''' Attemps to connect to a remote computer. + ''' + ''' The remote host or IP address of the remote computer. + ''' The port number on which to connect to the remote computer. + Public Sub Connect(ByVal remoteHostOrIp As String, ByVal remote_port As Integer) + Try + If myParent.State <> WinsockStates.Closed Then + Throw New Exception("Cannot connect to a remote host when the Winsock State is not closed.") + End If + + myParent.ChangeState(WinsockStates.ResolvingHost) + + Dim resolvedIP As IPAddress = Nothing + If IPAddress.TryParse(remoteHostOrIp, resolvedIP) Then + myParent.ChangeState(WinsockStates.HostResolved) + Connect(resolvedIP, remote_port) + Else + Dns.BeginGetHostEntry(remoteHostOrIp, New AsyncCallback(AddressOf DoConnectCallback), remote_port) + End If + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + ''' + ''' Attempts to connect to a remote computer. + ''' + ''' The IP address of the remote computer. + ''' The port number on which to connect to the remote computer. + Public Sub Connect(ByVal remIP As IPAddress, ByVal port As Integer) + Try + Dim remEP As New IPEndPoint(remIP, port) + If myParent.State <> WinsockStates.HostResolved Then Exit Sub + mSock1 = New Socket(remIP.AddressFamily, SocketType.Stream, ProtocolType.Tcp) + myParent.ChangeState(WinsockStates.Connecting) + mSock1.BeginConnect(remEP, New AsyncCallback(AddressOf ConnectCallback), mSock1) + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message, ex.ToString) + End Try + End Sub + + ''' + ''' Sends data to the remote computer. + ''' + ''' The byte array of data to send. + Public Sub Send(ByVal byt() As Byte) + Try + ' If it's going out UDP, get the location it's going to + Dim remEP As IPEndPoint = Nothing + If myParent.Protocol = WinsockProtocol.Udp Then + Dim ihe As IPHostEntry = Dns.GetHostEntry(myParent.RemoteHost) + remEP = New IPEndPoint(ihe.AddressList(0), myParent.RemotePort) + End If + + ' LegacySupport doesn't need a header, so if it's NOT active we can add one + If Not myParent.LegacySupport Then + ' LegacySupport INACTIVE - add a packet header, the other end knows how to decode it + phProcessor.AddHeader(byt) + End If + + ' Create the data object and add it to the queue + Dim sqData As New SendQueueData(remEP, byt) + ' We must lock access to the send buffer to prevent simultaneous access + ' from multiple threads + SyncLock sendBuffer.SyncRoot + sendBuffer.Enqueue(sqData) + End SyncLock + + ' Start the sending process - if the process isn't already started. + SyncLock lckSendLoop + If Not bIsSending Then + thdSendLoop = New Thread(AddressOf DoSend) + thdSendLoop.Start() + End If + End SyncLock + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + +#End Region + +#Region " Callback Methods " + + ''' + ''' The callback for the listener - only used for a TCP listener. + ''' + ''' This routine starts again when finished making it loop to continuously receive connections. + Private Sub ListenCallback(ByVal ar As IAsyncResult) + Try + ' Get the socket doing the listening, if it's not there + ' we can't continue. + Dim listener As Socket = TryCast(ar.AsyncState, Socket) + If listener Is Nothing Then + Throw New Exception("Listener object no longer exists.") + End If + + ' End the Accept that was started + Dim client As Socket = listener.EndAccept(ar) + ' Raise ConnectionRequest event + Dim e As New WinsockConnectionRequestEventArgs(client) + myParent.OnConnectionRequest(e) + + ' If the Winsock is no longer in the listening state + ' close and exit gracefully. + If myParent.State <> WinsockStates.Listening Then + listener.Close() + Exit Sub + End If + ' start listening again + listener.BeginAccept(New AsyncCallback(AddressOf ListenCallback), listener) + Catch exO As ObjectDisposedException + ' Close was called, destroying the object - exit without + ' displaying an error. + Exit Try + Catch exS As SocketException + ' There was a problem with the connection + ' If the SocketError is not Success, then close and + ' show an error message + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + 'Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + Exit Try + End Select + Catch ex As Exception + ' General execption - show an error message. + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for the Receive method (UDP only) - used when there is incoming data. + ''' + Private Sub ReceiveCallbackUDP(ByVal ar As IAsyncResult) + Try + ' Get actively receiving socket and IPEndPoint + Dim xe As UdpReceiveState = CType(ar.AsyncState, UdpReceiveState) + Dim cb_UDP As Socket = CType(xe.SendingSocket, Socket) + ' Get the size of the received data + Dim iSize As Integer = cb_UDP.EndReceiveFrom(ar, xe.ReceivingEndpoint) + Dim remEP As IPEndPoint = TryCast(xe.ReceivingEndpoint, IPEndPoint) + If iSize < 1 Then + SyncLock _buff.SyncRoot + If _buff.Count > 0 Then _buff.Clear() + End SyncLock + Close() + Exit Sub + End If + ' Process the receieved data + ProcessIncoming(byteBuffer, iSize, remEP.Address.ToString, remEP.Port) + ' Clear and resize the buffer + ReDim byteBuffer(incBufferSize) + ' Restart data listener + Dim ipeSender As IPEndPoint + If remEP.AddressFamily = AddressFamily.InterNetwork Then + ipeSender = New IPEndPoint(IPAddress.Any, 0) + Else + ipeSender = New IPEndPoint(IPAddress.IPv6Any, 0) + End If + xe.ReceivingEndpoint = ipeSender + cb_UDP.BeginReceiveFrom(byteBuffer, 0, incBufferSize, SocketFlags.None, xe.ReceivingEndpoint, New AsyncCallback(AddressOf ReceiveCallbackUDP), xe) + Catch exO As ObjectDisposedException + ' Close was called, destroying the object - exit without + ' displaying an error. + Exit Try + Catch exS As SocketException + ' There was a problem with the connection + ' If the SocketError is not Success, then close and + ' show an error message + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + 'Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + Exit Try + End Select + Catch ex As Exception + ' General execption - show an error message. + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback for the Connect method - used on the client to start looking for data. + ''' + Private Sub ConnectCallback(ByVal ar As IAsyncResult) + Try + If myParent.State <> WinsockStates.Connecting Then Exit Sub + Dim sock As Socket = CType(ar.AsyncState, Socket) + sock.EndConnect(ar) + If myParent.State <> WinsockStates.Connecting Then sock.Close() : Exit Sub + ' start listening for data + Receive() + ' Finished - raise events... + myParent.ChangeState(WinsockStates.Connected) + ' Raise the Connected event + Dim ipE As IPEndPoint = DirectCast(sock.RemoteEndPoint, IPEndPoint) + Dim e As New WinsockConnectedEventArgs(ipE.Address.ToString, ipE.Port) + myParent.OnConnected(e) + Catch exS As SocketException + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + Exit Try + End Select + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for the Receive method (TCP only) - used when there is incoming data. + ''' + Private Sub ReceiveCallback(ByVal ar As IAsyncResult) + Try + ' Get the possible error code + Dim errCode As SocketError = CType(ar.AsyncState, SocketError) + ' Get the size of the incoming data while ending the receive + Dim iSize As Integer = mSock1.EndReceive(ar) + If iSize < 1 Then + ' no size identified - connection closed + SyncLock _buff.SyncRoot + If _buff.Count > 0 Then _buff.Clear() + End SyncLock + Close() + Exit Sub + End If + ' Get the remote IP address + Dim ipE As IPEndPoint = CType(mSock1.RemoteEndPoint, IPEndPoint) + ' Process the incoming data (also raises DataArrival) + ProcessIncoming(byteBuffer, iSize, ipE.Address.ToString, ipE.Port) + ReDim byteBuffer(incBufferSize) + ' Start listening for data again + mSock1.BeginReceive(byteBuffer, 0, incBufferSize, SocketFlags.None, errCode, New AsyncCallback(AddressOf ReceiveCallback), errCode) + Catch exS As SocketException + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + End Select + Catch exO As ObjectDisposedException + Exit Try + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for the Send method (TCP only) - loops if not all the data was sent. + ''' + Private Sub SendCallback(ByVal ar As IAsyncResult) + Try + ' Retrieve the AsyncState + Dim ssState As SendState = DirectCast(ar.AsyncState, SendState) + ' Update the total sent - while ending this send call + ssState.TotalSent += ssState.SendingSocket.EndSend(ar) + ' Build the event args for the event that will be raised + Dim e As New WinsockSendEventArgs(RemoteIP, ssState.TotalSent, ssState.Length) + If ssState.SendCompleted Then + ' Object finished sending - raise the SendComplete event + myParent.OnSendComplete(e) + ' Check for more items in the buffer - if so run the send again + ' we can't run DoSend from within the SyncLock, or we'll run into + ' a deadlock + Dim blnRunAgain As Boolean = False + SyncLock sendBuffer.SyncRoot + If sendBuffer.Count > 0 Then + blnRunAgain = True + End If + End SyncLock + If blnRunAgain Then DoSend() + Else + ' Raise SendProgress event + myParent.OnSendProgress(e) + ' Object still has more data in the buffer, get the next part and send it + Dim byt() As Byte + SyncLock sendBuffer.SyncRoot + Dim sqData As SendQueueData = sendBuffer.Dequeue(Of SendQueueData)() + byt = sqData.Data + If byt.GetUpperBound(0) > incBufferSize Then + Dim tmpByt() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, incBufferSize + 1) + sqData.Data = DirectCast(byt.Clone(), Byte()) + sendBuffer.Push(sqData) + byt = DirectCast(tmpByt.Clone(), Byte()) + End If + End SyncLock + ssState.SendingSocket.BeginSend(byt, 0, byt.Length, SocketFlags.None, ssState.ErrCode, New AsyncCallback(AddressOf SendCallback), ssState) + End If + Catch exS As SocketException + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + End Select + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for the Send method (UDP only) - loops if not all the data was sent. + ''' + Private Sub SendToCallback(ByVal ar As IAsyncResult) + Try + ' Retrieve the AsyncState + Dim ssState As SendState = DirectCast(ar.AsyncState, SendState) + ' Update the total sent - while ending this send call + ssState.TotalSent += ssState.SendingSocket.EndSendTo(ar) + ' Build the event args for the event that will be raised + Dim e As New WinsockSendEventArgs(ssState.SendToAddress.Address.ToString(), ssState.TotalSent, ssState.Length) + If ssState.SendCompleted Then + ' Object finished sending - raise the SendComplete event + myParent.OnSendComplete(e) + ' Check for more items in the buffer - if so run the send again + ' we can't run DoSend from within the SyncLock, or we'll run into + ' a deadlock + Dim blnRunAgain As Boolean = False + SyncLock sendBuffer.SyncRoot + If sendBuffer.Count > 0 Then + blnRunAgain = True + End If + End SyncLock + If blnRunAgain Then DoSend() + Else + ' Raise the SendProgress event + myParent.OnSendProgress(e) + ' Object still has more data in the buffer, get it and send it. + Dim byt() As Byte + SyncLock sendBuffer.SyncRoot + Dim sqData As SendQueueData = sendBuffer.Dequeue(Of SendQueueData)() + byt = sqData.Data + If byt.GetUpperBound(0) > incBufferSize Then + Dim tmpByt() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, incBufferSize + 1) + sqData.Data = DirectCast(byt.Clone(), Byte()) + sendBuffer.Push(sqData) + byt = DirectCast(tmpByt.Clone(), Byte()) + End If + End SyncLock + ssState.SendingSocket.BeginSendTo(byt, 0, byt.Length, SocketFlags.None, ssState.SendToAddress, New AsyncCallback(AddressOf SendToCallback), ssState) + End If + Catch exS As SocketException + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + End Select + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for resolving the address given - starts the socket on connecting. + ''' + Public Sub DoConnectCallback(ByVal ar As IAsyncResult) + Try + Dim port As Integer = DirectCast(ar.AsyncState, Integer) + Dim resolved As IPHostEntry + Try + resolved = Dns.EndGetHostEntry(ar) + Catch ex As SocketException + resolved = Nothing + End Try + If resolved Is Nothing OrElse resolved.AddressList.Length = 0 Then + Dim name As String = CStr(IIf(resolved IsNot Nothing, """" & resolved.HostName & """ ", "")) + Throw New Exception("Hostname " & name & "could not be resolved.") + End If + myParent.ChangeState(WinsockStates.HostResolved) + Connect(resolved.AddressList(0), port) + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + +#End Region + +#Region " Private Methods " + + ''' + ''' Processes raw data that was received from the socket and places it into the appropriate buffer. + ''' + ''' The raw byte buffer containing the data received from the socket. + ''' The size of the data received from the socket (reported from the EndReceive). + ''' The IP address the data came from, used for event raising. + ''' The Port the data arrived on, used for event raising. + Private Sub ProcessIncoming(ByVal byt() As Byte, ByVal iSize As Integer, ByVal source_ip As String, ByVal source_port As Integer) + 'check if we are using LegacySupport + If myParent.LegacySupport Then + ' legacy support is active just output the data to the buffer + ' if we actually received some data + If iSize > 0 Then + ' yes we received some data - resize the array + ResizeArray(byt, iSize) + ' add the byte array to the buffer queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(byt) + End SyncLock + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(iSize, source_ip, source_port) + myParent.OnDataArrival(e) + End If + Else + SyncLock _buff.SyncRoot + ' legacy support is inactive + ' if total size is <= 0 no data came in - exit + If iSize <= 0 Then Exit Sub + ' reduce the size of the array to the reported size (fixes trailling zeros) + ResizeArray(byt, iSize) + ' Do we have a packet header? + If Not phProcessor.Completed And _buff.Count > 1 Then + ' no packet header and already have more than enough data for a header + ' most likely no header is coming - throw an error to use LegacySupport + phProcessor.Reset() + Throw New Exception("Unable to determine size of incoming packet. It's possible you may need to use Legacy Support.") + ElseIf Not phProcessor.Completed Then + phProcessor.ProcessHeader(byt, _buff) + If Not phProcessor.Completed Then + ProcessIncoming(byt, byt.Length, source_ip, source_port) + End If + End If + + ' Packet Header obtained... Process data, raise data arrival when all is received + If _buff.Count = 0 AndAlso byt.Length >= phProcessor.Size Then + ' everything is located in the byte array + If byt.GetUpperBound(0) > phProcessor.Size Then + ' everything and MORE in byte array + ' remove our data, and run process again on the rest + Dim tmp() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, phProcessor.Size) + ' add the data to the queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(tmp) + End SyncLock + ' reset the packet header processor + phProcessor.Reset() + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, tmp.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(tmp.Length, source_ip, source_port) + myParent.OnDataArrival(e) + ' process the extra data + ProcessIncoming(byt, byt.Length, source_ip, source_port) + Else + ' add everything to the queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(byt) + End SyncLock + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, byt.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + ' reset the packet header processor + phProcessor.Reset() + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(byt.Length, source_ip, source_port) + myParent.OnDataArrival(e) + End If + ElseIf _buff.Count > 0 AndAlso _buff.Combine().Length + byt.Length >= phProcessor.Size Then + ' if you include the temp buffer, we have all the data + ' get everything + _buff.Add(byt) + Dim tmp() As Byte = _buff.Combine() + ' clear the temp buffer + _buff.Clear() + If tmp.GetUpperBound(0) > phProcessor.Size Then + ' tmp contains more than what we need + ' remove what wee need, and then run the process again on the rest + Dim t2() As Byte = SharedMethods.ShrinkArray(Of Byte)(tmp, phProcessor.Size) + ' add the data to the queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(t2) + End SyncLock + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, tmp.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + ' reset the packet header processor + phProcessor.Reset() + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(tmp.Length, source_ip, source_port) + myParent.OnDataArrival(e) + ' process the extra data + ProcessIncoming(tmp, tmp.Length, source_ip, source_port) + Else + ' tmp contains only what we need - add it to the queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(tmp) + End SyncLock + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, tmp.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + ' reset the packet header processor + phProcessor.Reset() + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(tmp.Length, source_ip, source_port) + myParent.OnDataArrival(e) + End If + Else + _buff.Add(byt) + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, _buff.Combine.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + End If + End SyncLock + End If + End Sub + + ''' + ''' Resizes an array to the desired length - preserving the data at the begining of the array. + ''' + ''' The array to be resized. + ''' The size to resize the array to. + Private Sub ResizeArray(ByRef byt() As Byte, ByVal iSize As Integer) + If iSize - 1 < byt.GetUpperBound(0) Then + ReDim Preserve byt(iSize - 1) + End If + End Sub + + ''' + ''' Starts listening for incoming packets on the socket. + ''' + ''' The is private because, the user should never have to call this. + Private Sub Receive() + Try + Dim errorState As SocketError + mSock1.BeginReceive(byteBuffer, 0, incBufferSize, SocketFlags.None, errorState, New AsyncCallback(AddressOf ReceiveCallback), errorState) + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' Starts the sending of an object in the send buffer. + ''' + Private Sub DoSend() + Try + ' Retrieve the bytes to send + Dim byt() As Byte + Dim fullSize As Integer + Dim remEP As IPEndPoint + SyncLock sendBuffer.SyncRoot + If sendBuffer.Count = 0 Then Exit Sub + Dim sqData As SendQueueData = sendBuffer.Dequeue(Of SendQueueData)() + If sqData Is Nothing Then + Throw New Exception("Buffer count was greater than zero, yet a nothing was retrieved. Something broke.") + End If + remEP = sqData.IPAddress + byt = sqData.Data() + fullSize = byt.GetUpperBound(0) + If byt.GetUpperBound(0) > incBufferSize Then + Dim tmpByt() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, incBufferSize + 1) + sqData.Data = DirectCast(byt.Clone(), Byte()) + sendBuffer.Push(sqData) + byt = DirectCast(tmpByt.Clone(), Byte()) + End If + End SyncLock + + ' Send according to the appropriate protocol + If myParent.Protocol = WinsockProtocol.Tcp Then + Dim ssState As SendState = SendState.Build(fullSize, mSock1, incBufferSize) + mSock1.BeginSend(byt, 0, byt.Length, SocketFlags.None, ssState.ErrCode, New AsyncCallback(AddressOf SendCallback), ssState) + ElseIf myParent.Protocol = WinsockProtocol.Udp Then + Dim tmpSock As New Socket(remEP.AddressFamily, SocketType.Dgram, ProtocolType.Udp) + + Dim ssState As SendState = SendState.Build(fullSize, tmpSock, incBufferSize) + ssState.SendToAddress = remEP + tmpSock.BeginSendTo(byt, 0, byt.Length, SocketFlags.None, remEP, New AsyncCallback(AddressOf SendToCallback), ssState) + End If + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + +#End Region + +#Region " Private Classes " + + ''' + ''' A class that decodes and stores the packet header information. + ''' + Public Class PacketHeader + + Private _delimiter As Byte + Private _hasDelim As Boolean + Private _size As Integer + + Public Sub New() + _size = -1 + _delimiter = Byte.MinValue + _hasDelim = False + End Sub + + ''' + ''' A Boolean value to determine if the class has found a delimiter yet. + ''' + Public ReadOnly Property HasDelimiter() As Boolean + Get + Return _hasDelim + End Get + End Property + + ''' + ''' A Boolean value to determine if the class has found the size or not. + ''' + Public ReadOnly Property HasSize() As Boolean + Get + Return _size > -1 + End Get + End Property + + ''' + ''' A Boolean value to determine if the header processing has been completed or not. + ''' + ''' Based on HasDelimiter and HasSize + Public ReadOnly Property Completed() As Boolean + Get + Return HasDelimiter AndAlso HasSize + End Get + End Property + + ''' + ''' The determined Size that was contained within the header. + ''' + Public ReadOnly Property Size() As Integer + Get + Return _size + End Get + End Property + + ''' + ''' The delimiter found within the header (typically the first byte). + ''' + Public Property Delimiter() As Byte + Get + Return _delimiter + End Get + Set(ByVal value As Byte) + _delimiter = value + _hasDelim = True + End Set + End Property + + ''' + ''' Processes a received byte array for possible header information to decode the length of the data received. + ''' + ''' The byte array to process. + ''' A temporary byte buffer to stored data in. + ''' The parameters must be passed ByRef to allow the other routines to work with the exact same data (and modified data). + Public Sub ProcessHeader(ByRef byt() As Byte, ByRef _buff As ByteBufferCol) + ' Do we have an opening delimiter? + If Not HasDelimiter Then + ' We do now + Delimiter = SharedMethods.ShrinkArray(Of Byte)(byt, 1)(0) + If byt Is Nothing OrElse byt.Length = 0 Then Exit Sub + End If + ' check for the next instance of the delimiter + Dim idx As Integer = Array.IndexOf(byt, _delimiter) + If idx = -1 Then + ' delimiter not found - add bytes to temp buffer + _buff.Add(byt) + Exit Sub + End If + ' delimiter was found, grab the size (part may be in the temp buffer) so combine them + Dim temp() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, (idx + 1)) + ReDim Preserve temp(temp.GetUpperBound(0) - 1) + _buff.Add(temp) + temp = _buff.Combine() + ' Clear the temp buffer + _buff.Clear() + ' convert the bytes containing the size back to string + Dim strSize As String = System.Text.Encoding.ASCII.GetString(temp) + ' try converting the string back to an integer + If Not Integer.TryParse(strSize, _size) Then + ' data not an integer, maybe legacy support should be used + ' reset the delimiter and the size + Reset() + ' throw the exception + Throw New Exception("Unable to determine size of incoming packet. It's possible you may need to use Legacy Support.") + End If + ' is there data to follow? + If _size = 0 Then + ' no data followed the size + ' reset the size and the delimiter + Reset() + ' exit + Exit Sub + End If + End Sub + + ''' + ''' Resets the packet processor for another run. + ''' + Public Sub Reset() + _delimiter = Byte.MinValue + _hasDelim = False + _size = -1 + End Sub + + ''' + ''' Adds a packet header to the byte array given. + ''' + ''' The byte array to prepend with a packet header. + Public Sub AddHeader(ByRef byt() As Byte) + 'Dim arrSize As Integer = byt.GetUpperBound(0) 'Gets the size of the data to be sent + Dim arrSize As Integer = byt.Length ' Gets the size of the data to be sent + Dim strSize() As Byte = System.Text.Encoding.ASCII.GetBytes(arrSize.ToString) ' Converts the size to a string (to handle sizes larger than 255) and converts that to a byte array + Dim fByte As Byte = FreeByte(strSize) ' Determines a byte not used by the size (delimiter) + strSize = EncloseByte(fByte, strSize) ' Put the delimeter around the size header + byt = AppendByte(strSize, byt) ' Combine the header with the data + End Sub + + ''' + ''' Determines which byte value was not used in the byte array. + ''' + ''' The byte array to check. + Private Function FreeByte(ByVal byt() As Byte) As Byte + 'look for a free byte between 1 and 255 + Dim lowest As Byte = 0 + For i As Integer = 1 To 255 + If Array.IndexOf(byt, CByte(i)) = -1 Then + lowest = CByte(i) + Exit For + End If + Next + Return lowest + End Function + + ''' + ''' Encloses a byte array with another byte. + ''' + ''' A byte to enclose around a byte array. + ''' The byte array that needs a byte enclosed around it. + Private Function EncloseByte(ByVal byt As Byte, ByVal bytArr() As Byte) As Byte() + Dim orig As Integer = bytArr.GetUpperBound(0) + Dim newa As Integer = orig + 2 + Dim ar(newa) As Byte + ar(0) = byt + Array.Copy(bytArr, 0, ar, 1, bytArr.Length) + ar(newa) = byt + Return ar + End Function + + ''' + ''' Combines two byte arrays. + ''' + Private Function AppendByte(ByVal first() As Byte, ByVal sec() As Byte) As Byte() + Dim orig As Integer = first.GetUpperBound(0) + sec.Length + Dim ar(orig) As Byte + Array.Copy(first, 0, ar, 0, first.Length) + Array.Copy(sec, 0, ar, first.GetUpperBound(0) + 1, sec.Length) + Return ar + End Function + + End Class + + ''' + ''' A class that allows a state to be transfered from the calling method to the asyncrounous callback method. + ''' This class is used for receiving data via UDP. + ''' + Private Class UdpReceiveState + + ''' + ''' The incoming socket information - allows UDP to determine the sender. + ''' + Public SendingSocket As Object + ''' + ''' The EndPoint on which the data was received (server side). + ''' + Public ReceivingEndpoint As EndPoint + + End Class + + ''' + ''' A class that helps store data waiting to be sent in the SendQueue + ''' + ''' + ''' This class was borne out of necessity - not for TCP, but for UDP. + ''' I realized that if you are sending large data chunks out via UDP + ''' to different remote addresses, you could end up sending data to + ''' the wrong remote host. This class allows the component to recognize + ''' that it needs to send to a different remote host. + ''' + Private Class SendQueueData + + ''' + ''' Initializes a new instance of the SendQueueData class. + ''' + ''' An IPEndPoint containing the IP address that you will be sending to. + ''' The data that needs to be sent. + Public Sub New(ByVal ip As IPEndPoint, ByVal byt() As Byte) + _ip = ip + _data = byt + End Sub + + Private _data() As Byte + Private _ip As IPEndPoint + + ''' + ''' The IPEndPoint that contains the IP address information needed to send the data. + ''' + Public ReadOnly Property IPAddress() As IPEndPoint + Get + Return _ip + End Get + End Property + + ''' + ''' The data that needs to be sent. + ''' + Public Property Data() As Byte() + Get + Return _data + End Get + Set(ByVal value As Byte()) + _data = value + End Set + End Property + + End Class + + ''' + ''' A class that allows a state to be transfered from the calling method to the asyncrounous callback method. + ''' This class is used when sending data. + ''' + Private Class SendState + + ''' + ''' The total length of the original byte array to be sent. (Includes packet header) + ''' + Public Length As Integer + ''' + ''' The error code as reported by the socket - used during the callback method. + ''' + Public ErrCode As SocketError + ' '' + ' '' The bytes that are to be sent. + ' '' + 'Public Bytes() As Byte + ''' + ''' The index at which to start sending - usefull when sending packets larger than the buffer size. + ''' + Public StartIndex As Integer + ''' + ''' The number of bytes to send during this time - usefull when sending packets larger than the buffer size. + ''' + Public SendLength As Integer + ''' + ''' The total number of bytes actually transmitted. + ''' + Public TotalSent As Integer + ''' + ''' The socket that is doing the sending - used for UDP statistic information during the callback method. + ''' + Public SendingSocket As Socket + ''' + ''' The IP address of the computer you are sending to - used for UDP statistic information during the callback method. + ''' + Public SendToAddress As IPEndPoint + + ''' + ''' Builds and returns an instance of the SendState class. + ''' + ''' The UpperBound of the byte array that will be sent. + ''' The socket to assign to the SendState. + ''' The socket's buffer size. + Public Shared Function Build(ByVal bytUpperBound As Integer, ByRef sock As Socket, ByVal buffer_size As Integer) As SendState + Dim ret As New SendState + ret.Length = bytUpperBound + 1 + ret.StartIndex = 0 + If bytUpperBound > buffer_size Then + ret.SendLength = buffer_size + 1 + Else + ret.SendLength = bytUpperBound + End If + ret.SendingSocket = sock + Return ret + End Function + + ''' + ''' Returns a boolean indicating whether the object being sent has completed or not. + ''' + Public ReadOnly Property SendCompleted() As Boolean + Get + Return Not (TotalSent < Length) + End Get + End Property + End Class + +#End Region + +End Class + +''' +''' A special collection class to act as a byte buffer. +''' +Public Class ByteBufferCol + Inherits CollectionBase + + ''' + ''' Adds a byte to the byte buffer. + ''' + ''' The byte to add to the buffer. + Public Sub Add(ByVal byt As Byte) + List.Add(byt) + End Sub + + ''' + ''' Adds a byte array to the byte buffer. + ''' + ''' The byte array to add to the buffer. + ''' Adds all the bytes in the array individually - not the array itself. + Public Sub Add(ByVal byt() As Byte) + For i As Integer = 0 To UBound(byt) + List.Add(byt(i)) + Next + End Sub + + ''' + ''' Combines all the bytes in the buffer into one byte array. + ''' + Public Function Combine() As Byte() + If List.Count = 0 Then Return Nothing + Dim ar(List.Count - 1) As Byte + For i As Integer = 0 To List.Count - 1 + ar(i) = CByte(List.Item(i)) + Next + Return ar + End Function + + Public ReadOnly Property SyncRoot() As Object + Get + Dim iCL As ICollection = CType(Me, ICollection) + ' Return CType(llList, ICollection).SyncRoot + Return iCL.SyncRoot + End Get + End Property + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/About.txt b/Sub/WinsockOracs/Backup/About.txt new file mode 100644 index 0000000..b1678af --- /dev/null +++ b/Sub/WinsockOracs/Backup/About.txt @@ -0,0 +1,23 @@ +Winsock Orcas is the result of refining a project that started when I graduated from VB6 to VB.NET 2003. + +.NET no longer supported the old Winsock control that had been so easy to use in VB6. Instead they gave us something with much more power, but also much more complexity: the Socket. + +It took me a bit of time to figure the socket out, but when I did I decided to create a wrapper that worked just like the old control I was familiar with - making sockets much easier. + +The first version was wrought with bugs and wasn't thread-safe. When VS 2005 came out, and revealed even more functions with regards to the socket - I resolved to make a new version. + +That was Winsock 2005. It was thread-safe (to a point), and fixed the major bugs of the previous version. It even had UDP support. + +In April of 2007 I started work on Winsock 2007. Due to a project I was working on at the time, I was looking into Remoting to synchronize an object between server/client. I decided Remoting wasn't for my project (couldn't implement blacklist), thus a new version of Winsock was born. + +Winsock 2007 enabled synchronizing of objects (via BinaryFormatter), making the Send/Get routines simpler. The thread-safe events have been improved, as has UDP support. IPv6 support was added making it much easier to use with Vista. + +Winsock Orcas (version 4.0.0) was made just to keep this going. It had come to my attention that VS2008 had problems compiling the code for previous version, so I made this version. This version streamlines the code, making it simpler to read (mainly by removing the WinsockMonitor class), and also adds in some Generics support on the Get/Peek methods to do automatic conversion to the type you want (watch out, you could cause exceptions for casting to the wrong type). + +All in all I've enjoyed creating this component, and hope others find it as helpful as I have. + +To report bugs please visit: http://www.k-koding.com/ and use the bug tracker. + +Thanks for using it, + +Chris Kolkman \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/AsyncSocket.vb b/Sub/WinsockOracs/Backup/AsyncSocket.vb new file mode 100644 index 0000000..4d2c512 --- /dev/null +++ b/Sub/WinsockOracs/Backup/AsyncSocket.vb @@ -0,0 +1,1247 @@ +Option Strict On + +Imports System.Net +Imports System.Net.Sockets +Imports System.Threading + +''' +''' A class that encapsulates all the raw functions of the System.Net.Sockets.Socket +''' +Public Class AsyncSocket + + Private myParent As IWinsock ' The parent Winsock - allows access to properties and event raising + Private mSock1 As Socket ' for IPv4 (listening) or both IPv4 and IPv6 (connections) + Private mSock2 As Socket ' for IPv6 (listening) only + Private byteBuffer() As Byte ' Stores the incoming bytes waiting to be processed + Private incBufferSize As Integer = 8192 ' The buffer size of the socket + Private _buff As ByteBufferCol ' Temporary byte buffer - used while an object is being assembled + Private _closing As Boolean = False ' Prevents the Close() method from being run while it already running + Private qBuffer As Queue ' The Buffer Queue - where objects wait to be picked up by the Get() method + Private phProcessor As PacketHeader ' The PacketHeader processor - looks for and reads the packet header added to the byte array + Private sBufferMutex As New Mutex() + Private sendBuffer As Deque ' The Sending Buffer Queue - where objects wait to be sent. + Private thdSendLoop As Thread ' Used to send everything in the sendBuffer + Private lckSendLoop As Object ' Used for a syncronized lock on the SendLoop thread + Private bIsSending As Boolean ' Used internally to tell if a sending loop is in progress. + + Public Sub New(ByRef parent As IWinsock) + Try + myParent = parent + phProcessor = New PacketHeader + qBuffer = New Queue + _buff = New ByteBufferCol + sendBuffer = New Deque + lckSendLoop = New Object() + ReDim byteBuffer(incBufferSize) + Catch ex As Exception + SharedMethods.RaiseError(myParent, "Unable to initialize the AsyncSocket.") + End Try + End Sub + + ''' + ''' Gets a value containing the remote IP address. + ''' + Protected Friend ReadOnly Property RemoteIP() As String + Get + Dim rEP As System.Net.IPEndPoint = CType(mSock1.RemoteEndPoint, System.Net.IPEndPoint) + Return rEP.Address.ToString() + End Get + End Property + + ''' + ''' Gets a value containing the remote port number. + ''' + Protected Friend ReadOnly Property RemotePort() As Integer + Get + Dim rEP As System.Net.IPEndPoint = CType(mSock1.RemoteEndPoint, System.Net.IPEndPoint) + Return rEP.Port + End Get + End Property + + ''' + ''' Gets a value containing the local port number. + ''' + Protected Friend ReadOnly Property LocalPort() As Integer + Get + Dim lEP As System.Net.IPEndPoint = CType(mSock1.LocalEndPoint, IPEndPoint) + Return lEP.Port + End Get + End Property + + Protected Friend ReadOnly Property BufferCount() As Integer + Get + Dim i As Integer = -1 + SyncLock qBuffer.SyncRoot + i = qBuffer.Count + End SyncLock + Return i + End Get + End Property + + Protected Friend Property BufferSize() As Integer + Get + Return incBufferSize + End Get + Set(ByVal value As Integer) + incBufferSize = value + End Set + End Property + + Protected Friend ReadOnly Property UnderlyingStream() As Net.Sockets.NetworkStream + Get + If mSock1 IsNot Nothing Then Return New Net.Sockets.NetworkStream(mSock1, IO.FileAccess.ReadWrite, False) + Return Nothing + End Get + End Property + +#Region " Public Methods " + + ''' + ''' Accepts an incoming connection and starts the data listener. + ''' + ''' The client to accept. + Public Function Accept(ByVal client As Socket) As Boolean + Try + If myParent.State <> WinsockStates.Closed Then + Throw New Exception("Cannot accept a connection while the State is not closed.") + End If + mSock1 = client + Receive() + myParent.ChangeState(WinsockStates.Connected) + Dim e As New WinsockConnectedEventArgs(CType(mSock1.RemoteEndPoint, System.Net.IPEndPoint).Address.ToString, CType(mSock1.RemoteEndPoint, System.Net.IPEndPoint).Port) + myParent.OnConnected(e) + Return True + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + Return False + End Try + End Function + + ''' + ''' Closes the socket if its already open or listening. + ''' + Public Sub Close() + Try + ' If we are already closing then exit the subroutine + If _closing Then Exit Sub + ' Set the closing flag so that this doesn't get run more than once + ' at a time. + _closing = True + ' If we are already closed - exit the subroutine + If myParent.State = WinsockStates.Closed Then _closing = False : Exit Sub + Dim bAllowDisconnect As Boolean = False + ' Close the Socket(s) as necessary + Select Case myParent.State + Case WinsockStates.Connected + ' Change the state to Closing + myParent.ChangeState(WinsockStates.Closing) + If mSock1 IsNot Nothing Then mSock1.Close() + ' Allow disconnect event to raise + bAllowDisconnect = True + Case WinsockStates.Listening + ' Change the state to Closing + myParent.ChangeState(WinsockStates.Closing) + If mSock1 IsNot Nothing Then mSock1.Close() + If mSock2 IsNot Nothing Then mSock2.Close() + ' Do not allow Disconnect event - we weren't connected to anything + ' only listening. + bAllowDisconnect = False + End Select + ' Change state to Closed + myParent.ChangeState(WinsockStates.Closed) + ' Raise the Disconnected event - if allowed to + If bAllowDisconnect Then myParent.OnDisconnected() + _closing = False + Catch ex As Exception + _closing = False + If ex.InnerException IsNot Nothing Then + SharedMethods.RaiseError(myParent, ex.Message, ex.InnerException.Message) + Else + SharedMethods.RaiseError(myParent, ex.Message) + End If + End Try + End Sub + + ''' + ''' Starts Listening for incoming connections. For UDP sockets it starts listening for incoming data. + ''' + ''' The port to start listening on. + ''' The maximum length of the pending connections queue. + Public Sub Listen(ByVal port As Integer, ByVal max_pending As Integer) + Try + If myParent.Protocol = WinsockProtocol.Tcp Then + Dim blnChangePort As Boolean = False + ' Start listening on IPv4 - if available + If Socket.SupportsIPv4 Then + mSock1 = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) + Dim ipLocal As New IPEndPoint(IPAddress.Any, port) + mSock1.Bind(ipLocal) + mSock1.Listen(max_pending) + mSock1.BeginAccept(New AsyncCallback(AddressOf ListenCallback), mSock1) + End If + ' if port was 0 find port used for IPv4 and use it for IPv6 + If port = 0 Then + Dim lEP As System.Net.IPEndPoint = CType(mSock1.LocalEndPoint, IPEndPoint) + port = lEP.Port + blnChangePort = True + End If + ' Start listening on IPv6 - if available + If Socket.OSSupportsIPv6 Then + mSock2 = New Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp) + Dim ipLocal As New IPEndPoint(IPAddress.IPv6Any, port) + mSock2.Bind(ipLocal) + mSock2.Listen(max_pending) + mSock2.BeginAccept(New AsyncCallback(AddressOf ListenCallback), mSock2) + End If + If blnChangePort Then + myParent.ChangeLocalPort(port) + End If + ' Change state to Listening + myParent.ChangeState(WinsockStates.Listening) + ElseIf myParent.Protocol = WinsockProtocol.Udp Then + If port <= 0 Then + Throw New ArgumentException("While port 0 works for getting random port for UPD, there is no way for the server operator to know the port used until a completed send/receive method call is used which means the port is known already.", "port") + End If + ' Start data listening on IPv4 - if available + If Socket.SupportsIPv4 Then + mSock1 = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) + + Dim ipLocal As New IPEndPoint(IPAddress.Any, port) + Dim ipeSender As New IPEndPoint(IPAddress.Any, 0) + + Dim xe As New UdpReceiveState() + xe.SendingSocket = mSock1 + xe.ReceivingEndpoint = ipeSender + + mSock1.Bind(ipLocal) + mSock1.BeginReceiveFrom(byteBuffer, 0, incBufferSize, SocketFlags.None, xe.ReceivingEndpoint, New AsyncCallback(AddressOf ReceiveCallbackUDP), xe) + End If + ' Start data listening on IPv6 - if available + If Socket.OSSupportsIPv6 Then + mSock2 = New Socket(AddressFamily.InterNetworkV6, SocketType.Dgram, ProtocolType.Udp) + + Dim ipLocal As New IPEndPoint(IPAddress.IPv6Any, port) + Dim ipeSender As New IPEndPoint(IPAddress.IPv6Any, 0) + + Dim xe As New UdpReceiveState() + xe.SendingSocket = mSock2 + xe.ReceivingEndpoint = ipeSender + + mSock2.Bind(ipLocal) + mSock2.BeginReceiveFrom(byteBuffer, 0, incBufferSize, SocketFlags.None, xe.ReceivingEndpoint, New AsyncCallback(AddressOf ReceiveCallbackUDP), xe) + End If + myParent.ChangeState(WinsockStates.Listening) + End If + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' Starts Listening for incoming connections on the specified IP address. For UDP sockets it starts listening for incoming data. + ''' + ''' The port to start listening on. + ''' The maximum length of the pending connections queue. + ''' The IP address on which to listen. + Public Sub Listen(ByVal port As Integer, ByVal max_pending As Integer, ByVal ip As IPAddress) + Try + ' IP contains information on type (IPv4 vs. IPv6) so we can just work with that + If myParent.Protocol = WinsockProtocol.Tcp Then + mSock1 = New Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp) + Dim ipLocal As New IPEndPoint(ip, port) + mSock1.Bind(ipLocal) + mSock1.Listen(max_pending) + mSock1.BeginAccept(New AsyncCallback(AddressOf ListenCallback), mSock1) + If port = 0 Then + Dim lEP As System.Net.IPEndPoint = CType(mSock1.LocalEndPoint, IPEndPoint) + myParent.ChangeLocalPort(lEP.Port) + End If + ElseIf myParent.Protocol = WinsockProtocol.Udp Then + If port <= 0 Then + Throw New ArgumentException("While port 0 works for getting random port for UPD, there is no way for the server operator to know the port used until a completed send/receive method call is used which means the port is known already.", "port") + End If + mSock1 = New Socket(ip.AddressFamily, SocketType.Dgram, ProtocolType.Udp) + + Dim ipLocal As New IPEndPoint(ip, port) + Dim ipeSender As New IPEndPoint(ip, 0) + + Dim xe As New UdpReceiveState() + xe.SendingSocket = mSock1 + xe.ReceivingEndpoint = ipeSender + + mSock1.Bind(ipLocal) + mSock1.BeginReceiveFrom(byteBuffer, 0, incBufferSize, SocketFlags.None, xe.ReceivingEndpoint, New AsyncCallback(AddressOf ReceiveCallbackUDP), xe) + End If + myParent.ChangeState(WinsockStates.Listening) + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' Gets the first object in the buffer without removing it. + ''' + Public Function PeekData() As Byte() + Dim ret() As Byte + SyncLock qBuffer.SyncRoot + If qBuffer.Count = 0 Then + ret = Nothing + Else + ret = DirectCast(qBuffer.Peek(), Byte()) + End If + End SyncLock + Return ret + End Function + + ''' + ''' Gets and removes the first object in the buffer. + ''' + Public Function GetData() As Byte() + Dim ret() As Byte + SyncLock qBuffer.SyncRoot + If qBuffer.Count = 0 Then + ret = Nothing + Else + ret = DirectCast(qBuffer.Dequeue, Byte()) + End If + End SyncLock + Return ret + End Function + + ''' + ''' Attemps to connect to a remote computer. + ''' + ''' The remote host or IP address of the remote computer. + ''' The port number on which to connect to the remote computer. + Public Sub Connect(ByVal remoteHostOrIp As String, ByVal remote_port As Integer) + Try + If myParent.State <> WinsockStates.Closed Then + Throw New Exception("Cannot connect to a remote host when the Winsock State is not closed.") + End If + + myParent.ChangeState(WinsockStates.ResolvingHost) + + Dim resolvedIP As IPAddress = Nothing + If IPAddress.TryParse(remoteHostOrIp, resolvedIP) Then + myParent.ChangeState(WinsockStates.HostResolved) + Connect(resolvedIP, remote_port) + Else + Dns.BeginGetHostEntry(remoteHostOrIp, New AsyncCallback(AddressOf DoConnectCallback), remote_port) + End If + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + ''' + ''' Attempts to connect to a remote computer. + ''' + ''' The IP address of the remote computer. + ''' The port number on which to connect to the remote computer. + Public Sub Connect(ByVal remIP As IPAddress, ByVal port As Integer) + Try + Dim remEP As New IPEndPoint(remIP, port) + If myParent.State <> WinsockStates.HostResolved Then Exit Sub + mSock1 = New Socket(remIP.AddressFamily, SocketType.Stream, ProtocolType.Tcp) + myParent.ChangeState(WinsockStates.Connecting) + mSock1.BeginConnect(remEP, New AsyncCallback(AddressOf ConnectCallback), mSock1) + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message, ex.ToString) + End Try + End Sub + + ''' + ''' Sends data to the remote computer. + ''' + ''' The byte array of data to send. + Public Sub Send(ByVal byt() As Byte) + Try + ' If it's going out UDP, get the location it's going to + Dim remEP As IPEndPoint = Nothing + If myParent.Protocol = WinsockProtocol.Udp Then + Dim ihe As IPHostEntry = Dns.GetHostEntry(myParent.RemoteHost) + remEP = New IPEndPoint(ihe.AddressList(0), myParent.RemotePort) + End If + + ' LegacySupport doesn't need a header, so if it's NOT active we can add one + If Not myParent.LegacySupport Then + ' LegacySupport INACTIVE - add a packet header, the other end knows how to decode it + phProcessor.AddHeader(byt) + End If + + ' Create the data object and add it to the queue + Dim sqData As New SendQueueData(remEP, byt) + ' We must lock access to the send buffer to prevent simultaneous access + ' from multiple threads + SyncLock sendBuffer.SyncRoot + sendBuffer.Enqueue(sqData) + End SyncLock + + ' Start the sending process - if the process isn't already started. + SyncLock lckSendLoop + If Not bIsSending Then + thdSendLoop = New Thread(AddressOf DoSend) + thdSendLoop.Start() + End If + End SyncLock + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + +#End Region + +#Region " Callback Methods " + + ''' + ''' The callback for the listener - only used for a TCP listener. + ''' + ''' This routine starts again when finished making it loop to continuously receive connections. + Private Sub ListenCallback(ByVal ar As IAsyncResult) + Try + ' Get the socket doing the listening, if it's not there + ' we can't continue. + Dim listener As Socket = TryCast(ar.AsyncState, Socket) + If listener Is Nothing Then + Throw New Exception("Listener object no longer exists.") + End If + + ' End the Accept that was started + Dim client As Socket = listener.EndAccept(ar) + ' Raise ConnectionRequest event + Dim e As New WinsockConnectionRequestEventArgs(client) + myParent.OnConnectionRequest(e) + + ' If the Winsock is no longer in the listening state + ' close and exit gracefully. + If myParent.State <> WinsockStates.Listening Then + listener.Close() + Exit Sub + End If + ' start listening again + listener.BeginAccept(New AsyncCallback(AddressOf ListenCallback), listener) + Catch exO As ObjectDisposedException + ' Close was called, destroying the object - exit without + ' displaying an error. + Exit Try + Catch exS As SocketException + ' There was a problem with the connection + ' If the SocketError is not Success, then close and + ' show an error message + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + 'Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + Exit Try + End Select + Catch ex As Exception + ' General execption - show an error message. + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for the Receive method (UDP only) - used when there is incoming data. + ''' + Private Sub ReceiveCallbackUDP(ByVal ar As IAsyncResult) + Try + ' Get actively receiving socket and IPEndPoint + Dim xe As UdpReceiveState = CType(ar.AsyncState, UdpReceiveState) + Dim cb_UDP As Socket = CType(xe.SendingSocket, Socket) + ' Get the size of the received data + Dim iSize As Integer = cb_UDP.EndReceiveFrom(ar, xe.ReceivingEndpoint) + Dim remEP As IPEndPoint = TryCast(xe.ReceivingEndpoint, IPEndPoint) + If iSize < 1 Then + SyncLock _buff.SyncRoot + If _buff.Count > 0 Then _buff.Clear() + End SyncLock + Close() + Exit Sub + End If + ' Process the receieved data + ProcessIncoming(byteBuffer, iSize, remEP.Address.ToString, remEP.Port) + ' Clear and resize the buffer + ReDim byteBuffer(incBufferSize) + ' Restart data listener + Dim ipeSender As IPEndPoint + If remEP.AddressFamily = AddressFamily.InterNetwork Then + ipeSender = New IPEndPoint(IPAddress.Any, 0) + Else + ipeSender = New IPEndPoint(IPAddress.IPv6Any, 0) + End If + xe.ReceivingEndpoint = ipeSender + cb_UDP.BeginReceiveFrom(byteBuffer, 0, incBufferSize, SocketFlags.None, xe.ReceivingEndpoint, New AsyncCallback(AddressOf ReceiveCallbackUDP), xe) + Catch exO As ObjectDisposedException + ' Close was called, destroying the object - exit without + ' displaying an error. + Exit Try + Catch exS As SocketException + ' There was a problem with the connection + ' If the SocketError is not Success, then close and + ' show an error message + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + 'Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + Exit Try + End Select + Catch ex As Exception + ' General execption - show an error message. + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback for the Connect method - used on the client to start looking for data. + ''' + Private Sub ConnectCallback(ByVal ar As IAsyncResult) + Try + If myParent.State <> WinsockStates.Connecting Then Exit Sub + Dim sock As Socket = CType(ar.AsyncState, Socket) + sock.EndConnect(ar) + If myParent.State <> WinsockStates.Connecting Then sock.Close() : Exit Sub + ' start listening for data + Receive() + ' Finished - raise events... + myParent.ChangeState(WinsockStates.Connected) + ' Raise the Connected event + Dim ipE As IPEndPoint = DirectCast(sock.RemoteEndPoint, IPEndPoint) + Dim e As New WinsockConnectedEventArgs(ipE.Address.ToString, ipE.Port) + myParent.OnConnected(e) + Catch exS As SocketException + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + Exit Try + End Select + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for the Receive method (TCP only) - used when there is incoming data. + ''' + Private Sub ReceiveCallback(ByVal ar As IAsyncResult) + Try + ' Get the possible error code + Dim errCode As SocketError = CType(ar.AsyncState, SocketError) + ' Get the size of the incoming data while ending the receive + Dim iSize As Integer = mSock1.EndReceive(ar) + If iSize < 1 Then + ' no size identified - connection closed + SyncLock _buff.SyncRoot + If _buff.Count > 0 Then _buff.Clear() + End SyncLock + Close() + Exit Sub + End If + ' Get the remote IP address + Dim ipE As IPEndPoint = CType(mSock1.RemoteEndPoint, IPEndPoint) + ' Process the incoming data (also raises DataArrival) + ProcessIncoming(byteBuffer, iSize, ipE.Address.ToString, ipE.Port) + ReDim byteBuffer(incBufferSize) + ' Start listening for data again + mSock1.BeginReceive(byteBuffer, 0, incBufferSize, SocketFlags.None, errCode, New AsyncCallback(AddressOf ReceiveCallback), errCode) + Catch exS As SocketException + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + End Select + Catch exO As ObjectDisposedException + Exit Try + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for the Send method (TCP only) - loops if not all the data was sent. + ''' + Private Sub SendCallback(ByVal ar As IAsyncResult) + Try + ' Retrieve the AsyncState + Dim ssState As SendState = DirectCast(ar.AsyncState, SendState) + ' Update the total sent - while ending this send call + ssState.TotalSent += ssState.SendingSocket.EndSend(ar) + ' Build the event args for the event that will be raised + Dim e As New WinsockSendEventArgs(RemoteIP, ssState.TotalSent, ssState.Length) + If ssState.SendCompleted Then + ' Object finished sending - raise the SendComplete event + myParent.OnSendComplete(e) + ' Check for more items in the buffer - if so run the send again + ' we can't run DoSend from within the SyncLock, or we'll run into + ' a deadlock + Dim blnRunAgain As Boolean = False + SyncLock sendBuffer.SyncRoot + If sendBuffer.Count > 0 Then + blnRunAgain = True + End If + End SyncLock + If blnRunAgain Then DoSend() + Else + ' Raise SendProgress event + myParent.OnSendProgress(e) + ' Object still has more data in the buffer, get the next part and send it + Dim byt() As Byte + SyncLock sendBuffer.SyncRoot + Dim sqData As SendQueueData = sendBuffer.Dequeue(Of SendQueueData)() + byt = sqData.Data + If byt.GetUpperBound(0) > incBufferSize Then + Dim tmpByt() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, incBufferSize + 1) + sqData.Data = DirectCast(byt.Clone(), Byte()) + sendBuffer.Push(sqData) + byt = DirectCast(tmpByt.Clone(), Byte()) + End If + End SyncLock + ssState.SendingSocket.BeginSend(byt, 0, byt.Length, SocketFlags.None, ssState.ErrCode, New AsyncCallback(AddressOf SendCallback), ssState) + End If + Catch exS As SocketException + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + End Select + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for the Send method (UDP only) - loops if not all the data was sent. + ''' + Private Sub SendToCallback(ByVal ar As IAsyncResult) + Try + ' Retrieve the AsyncState + Dim ssState As SendState = DirectCast(ar.AsyncState, SendState) + ' Update the total sent - while ending this send call + ssState.TotalSent += ssState.SendingSocket.EndSendTo(ar) + ' Build the event args for the event that will be raised + Dim e As New WinsockSendEventArgs(ssState.SendToAddress.Address.ToString(), ssState.TotalSent, ssState.Length) + If ssState.SendCompleted Then + ' Object finished sending - raise the SendComplete event + myParent.OnSendComplete(e) + ' Check for more items in the buffer - if so run the send again + ' we can't run DoSend from within the SyncLock, or we'll run into + ' a deadlock + Dim blnRunAgain As Boolean = False + SyncLock sendBuffer.SyncRoot + If sendBuffer.Count > 0 Then + blnRunAgain = True + End If + End SyncLock + If blnRunAgain Then DoSend() + Else + ' Raise the SendProgress event + myParent.OnSendProgress(e) + ' Object still has more data in the buffer, get it and send it. + Dim byt() As Byte + SyncLock sendBuffer.SyncRoot + Dim sqData As SendQueueData = sendBuffer.Dequeue(Of SendQueueData)() + byt = sqData.Data + If byt.GetUpperBound(0) > incBufferSize Then + Dim tmpByt() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, incBufferSize + 1) + sqData.Data = DirectCast(byt.Clone(), Byte()) + sendBuffer.Push(sqData) + byt = DirectCast(tmpByt.Clone(), Byte()) + End If + End SyncLock + ssState.SendingSocket.BeginSendTo(byt, 0, byt.Length, SocketFlags.None, ssState.SendToAddress, New AsyncCallback(AddressOf SendToCallback), ssState) + End If + Catch exS As SocketException + Select Case exS.SocketErrorCode + Case Is <> SocketError.Success + Close() + SharedMethods.RaiseError(myParent, exS.Message, "", exS.SocketErrorCode) + End Select + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' The callback method for resolving the address given - starts the socket on connecting. + ''' + Public Sub DoConnectCallback(ByVal ar As IAsyncResult) + Try + Dim port As Integer = DirectCast(ar.AsyncState, Integer) + Dim resolved As IPHostEntry + Try + resolved = Dns.EndGetHostEntry(ar) + Catch ex As SocketException + resolved = Nothing + End Try + If resolved Is Nothing OrElse resolved.AddressList.Length = 0 Then + Dim name As String = CStr(IIf(resolved IsNot Nothing, """" & resolved.HostName & """ ", "")) + Throw New Exception("Hostname " & name & "could not be resolved.") + End If + myParent.ChangeState(WinsockStates.HostResolved) + Connect(resolved.AddressList(0), port) + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + +#End Region + +#Region " Private Methods " + + ''' + ''' Processes raw data that was received from the socket and places it into the appropriate buffer. + ''' + ''' The raw byte buffer containing the data received from the socket. + ''' The size of the data received from the socket (reported from the EndReceive). + ''' The IP address the data came from, used for event raising. + ''' The Port the data arrived on, used for event raising. + Private Sub ProcessIncoming(ByVal byt() As Byte, ByVal iSize As Integer, ByVal source_ip As String, ByVal source_port As Integer) + 'check if we are using LegacySupport + If myParent.LegacySupport Then + ' legacy support is active just output the data to the buffer + ' if we actually received some data + If iSize > 0 Then + ' yes we received some data - resize the array + ResizeArray(byt, iSize) + ' add the byte array to the buffer queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(byt) + End SyncLock + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(iSize, source_ip, source_port) + myParent.OnDataArrival(e) + End If + Else + SyncLock _buff.SyncRoot + ' legacy support is inactive + ' if total size is <= 0 no data came in - exit + If iSize <= 0 Then Exit Sub + ' reduce the size of the array to the reported size (fixes trailling zeros) + ResizeArray(byt, iSize) + ' Do we have a packet header? + If Not phProcessor.Completed And _buff.Count > 1 Then + ' no packet header and already have more than enough data for a header + ' most likely no header is coming - throw an error to use LegacySupport + phProcessor.Reset() + Throw New Exception("Unable to determine size of incoming packet. It's possible you may need to use Legacy Support.") + ElseIf Not phProcessor.Completed Then + phProcessor.ProcessHeader(byt, _buff) + If Not phProcessor.Completed Then + ProcessIncoming(byt, byt.Length, source_ip, source_port) + End If + End If + + ' Packet Header obtained... Process data, raise data arrival when all is received + If _buff.Count = 0 AndAlso byt.Length >= phProcessor.Size Then + ' everything is located in the byte array + If byt.GetUpperBound(0) > phProcessor.Size Then + ' everything and MORE in byte array + ' remove our data, and run process again on the rest + Dim tmp() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, phProcessor.Size) + ' add the data to the queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(tmp) + End SyncLock + ' reset the packet header processor + phProcessor.Reset() + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, tmp.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(tmp.Length, source_ip, source_port) + myParent.OnDataArrival(e) + ' process the extra data + ProcessIncoming(byt, byt.Length, source_ip, source_port) + Else + ' add everything to the queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(byt) + End SyncLock + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, byt.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + ' reset the packet header processor + phProcessor.Reset() + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(byt.Length, source_ip, source_port) + myParent.OnDataArrival(e) + End If + ElseIf _buff.Count > 0 AndAlso _buff.Combine().Length + byt.Length >= phProcessor.Size Then + ' if you include the temp buffer, we have all the data + ' get everything + _buff.Add(byt) + Dim tmp() As Byte = _buff.Combine() + ' clear the temp buffer + _buff.Clear() + If tmp.GetUpperBound(0) > phProcessor.Size Then + ' tmp contains more than what we need + ' remove what wee need, and then run the process again on the rest + Dim t2() As Byte = SharedMethods.ShrinkArray(Of Byte)(tmp, phProcessor.Size) + ' add the data to the queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(t2) + End SyncLock + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, tmp.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + ' reset the packet header processor + phProcessor.Reset() + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(tmp.Length, source_ip, source_port) + myParent.OnDataArrival(e) + ' process the extra data + ProcessIncoming(tmp, tmp.Length, source_ip, source_port) + Else + ' tmp contains only what we need - add it to the queue + SyncLock qBuffer.SyncRoot + qBuffer.Enqueue(tmp) + End SyncLock + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, tmp.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + ' reset the packet header processor + phProcessor.Reset() + ' raise the DataArrival event + Dim e As New WinsockDataArrivalEventArgs(tmp.Length, source_ip, source_port) + myParent.OnDataArrival(e) + End If + Else + _buff.Add(byt) + ' raise the received progress event + Dim eR As New WinsockReceiveProgressEventArgs(source_ip, _buff.Combine.Length, phProcessor.Size) + myParent.OnReceiveProgress(eR) + End If + End SyncLock + End If + End Sub + + ''' + ''' Resizes an array to the desired length - preserving the data at the begining of the array. + ''' + ''' The array to be resized. + ''' The size to resize the array to. + Private Sub ResizeArray(ByRef byt() As Byte, ByVal iSize As Integer) + If iSize - 1 < byt.GetUpperBound(0) Then + ReDim Preserve byt(iSize - 1) + End If + End Sub + + ''' + ''' Starts listening for incoming packets on the socket. + ''' + ''' The is private because, the user should never have to call this. + Private Sub Receive() + Try + Dim errorState As SocketError + mSock1.BeginReceive(byteBuffer, 0, incBufferSize, SocketFlags.None, errorState, New AsyncCallback(AddressOf ReceiveCallback), errorState) + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + + ''' + ''' Starts the sending of an object in the send buffer. + ''' + Private Sub DoSend() + Try + ' Retrieve the bytes to send + Dim byt() As Byte + Dim fullSize As Integer + Dim remEP As IPEndPoint + SyncLock sendBuffer.SyncRoot + If sendBuffer.Count = 0 Then Exit Sub + Dim sqData As SendQueueData = sendBuffer.Dequeue(Of SendQueueData)() + If sqData Is Nothing Then + Throw New Exception("Buffer count was greater than zero, yet a nothing was retrieved. Something broke.") + End If + remEP = sqData.IPAddress + byt = sqData.Data() + fullSize = byt.GetUpperBound(0) + If byt.GetUpperBound(0) > incBufferSize Then + Dim tmpByt() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, incBufferSize + 1) + sqData.Data = DirectCast(byt.Clone(), Byte()) + sendBuffer.Push(sqData) + byt = DirectCast(tmpByt.Clone(), Byte()) + End If + End SyncLock + + ' Send according to the appropriate protocol + If myParent.Protocol = WinsockProtocol.Tcp Then + Dim ssState As SendState = SendState.Build(fullSize, mSock1, incBufferSize) + mSock1.BeginSend(byt, 0, byt.Length, SocketFlags.None, ssState.ErrCode, New AsyncCallback(AddressOf SendCallback), ssState) + ElseIf myParent.Protocol = WinsockProtocol.Udp Then + Dim tmpSock As New Socket(remEP.AddressFamily, SocketType.Dgram, ProtocolType.Udp) + + Dim ssState As SendState = SendState.Build(fullSize, tmpSock, incBufferSize) + ssState.SendToAddress = remEP + tmpSock.BeginSendTo(byt, 0, byt.Length, SocketFlags.None, remEP, New AsyncCallback(AddressOf SendToCallback), ssState) + End If + Catch ex As Exception + SharedMethods.RaiseError(myParent, ex.Message) + End Try + End Sub + +#End Region + +#Region " Private Classes " + + ''' + ''' A class that decodes and stores the packet header information. + ''' + Public Class PacketHeader + + Private _delimiter As Byte + Private _hasDelim As Boolean + Private _size As Integer + + Public Sub New() + _size = -1 + _delimiter = Byte.MinValue + _hasDelim = False + End Sub + + ''' + ''' A Boolean value to determine if the class has found a delimiter yet. + ''' + Public ReadOnly Property HasDelimiter() As Boolean + Get + Return _hasDelim + End Get + End Property + + ''' + ''' A Boolean value to determine if the class has found the size or not. + ''' + Public ReadOnly Property HasSize() As Boolean + Get + Return _size > -1 + End Get + End Property + + ''' + ''' A Boolean value to determine if the header processing has been completed or not. + ''' + ''' Based on HasDelimiter and HasSize + Public ReadOnly Property Completed() As Boolean + Get + Return HasDelimiter AndAlso HasSize + End Get + End Property + + ''' + ''' The determined Size that was contained within the header. + ''' + Public ReadOnly Property Size() As Integer + Get + Return _size + End Get + End Property + + ''' + ''' The delimiter found within the header (typically the first byte). + ''' + Public Property Delimiter() As Byte + Get + Return _delimiter + End Get + Set(ByVal value As Byte) + _delimiter = value + _hasDelim = True + End Set + End Property + + ''' + ''' Processes a received byte array for possible header information to decode the length of the data received. + ''' + ''' The byte array to process. + ''' A temporary byte buffer to stored data in. + ''' The parameters must be passed ByRef to allow the other routines to work with the exact same data (and modified data). + Public Sub ProcessHeader(ByRef byt() As Byte, ByRef _buff As ByteBufferCol) + ' Do we have an opening delimiter? + If Not HasDelimiter Then + ' We do now + Delimiter = SharedMethods.ShrinkArray(Of Byte)(byt, 1)(0) + If byt Is Nothing OrElse byt.Length = 0 Then Exit Sub + End If + ' check for the next instance of the delimiter + Dim idx As Integer = Array.IndexOf(byt, _delimiter) + If idx = -1 Then + ' delimiter not found - add bytes to temp buffer + _buff.Add(byt) + Exit Sub + End If + ' delimiter was found, grab the size (part may be in the temp buffer) so combine them + Dim temp() As Byte = SharedMethods.ShrinkArray(Of Byte)(byt, (idx + 1)) + ReDim Preserve temp(temp.GetUpperBound(0) - 1) + _buff.Add(temp) + temp = _buff.Combine() + ' Clear the temp buffer + _buff.Clear() + ' convert the bytes containing the size back to string + Dim strSize As String = System.Text.Encoding.ASCII.GetString(temp) + ' try converting the string back to an integer + If Not Integer.TryParse(strSize, _size) Then + ' data not an integer, maybe legacy support should be used + ' reset the delimiter and the size + Reset() + ' throw the exception + Throw New Exception("Unable to determine size of incoming packet. It's possible you may need to use Legacy Support.") + End If + ' is there data to follow? + If _size = 0 Then + ' no data followed the size + ' reset the size and the delimiter + Reset() + ' exit + Exit Sub + End If + End Sub + + ''' + ''' Resets the packet processor for another run. + ''' + Public Sub Reset() + _delimiter = Byte.MinValue + _hasDelim = False + _size = -1 + End Sub + + ''' + ''' Adds a packet header to the byte array given. + ''' + ''' The byte array to prepend with a packet header. + Public Sub AddHeader(ByRef byt() As Byte) + 'Dim arrSize As Integer = byt.GetUpperBound(0) 'Gets the size of the data to be sent + Dim arrSize As Integer = byt.Length ' Gets the size of the data to be sent + Dim strSize() As Byte = System.Text.Encoding.ASCII.GetBytes(arrSize.ToString) ' Converts the size to a string (to handle sizes larger than 255) and converts that to a byte array + Dim fByte As Byte = FreeByte(strSize) ' Determines a byte not used by the size (delimiter) + strSize = EncloseByte(fByte, strSize) ' Put the delimeter around the size header + byt = AppendByte(strSize, byt) ' Combine the header with the data + End Sub + + ''' + ''' Determines which byte value was not used in the byte array. + ''' + ''' The byte array to check. + Private Function FreeByte(ByVal byt() As Byte) As Byte + 'look for a free byte between 1 and 255 + Dim lowest As Byte = 0 + For i As Integer = 1 To 255 + If Array.IndexOf(byt, CByte(i)) = -1 Then + lowest = CByte(i) + Exit For + End If + Next + Return lowest + End Function + + ''' + ''' Encloses a byte array with another byte. + ''' + ''' A byte to enclose around a byte array. + ''' The byte array that needs a byte enclosed around it. + Private Function EncloseByte(ByVal byt As Byte, ByVal bytArr() As Byte) As Byte() + Dim orig As Integer = bytArr.GetUpperBound(0) + Dim newa As Integer = orig + 2 + Dim ar(newa) As Byte + ar(0) = byt + Array.Copy(bytArr, 0, ar, 1, bytArr.Length) + ar(newa) = byt + Return ar + End Function + + ''' + ''' Combines two byte arrays. + ''' + Private Function AppendByte(ByVal first() As Byte, ByVal sec() As Byte) As Byte() + Dim orig As Integer = first.GetUpperBound(0) + sec.Length + Dim ar(orig) As Byte + Array.Copy(first, 0, ar, 0, first.Length) + Array.Copy(sec, 0, ar, first.GetUpperBound(0) + 1, sec.Length) + Return ar + End Function + + End Class + + ''' + ''' A class that allows a state to be transfered from the calling method to the asyncrounous callback method. + ''' This class is used for receiving data via UDP. + ''' + Private Class UdpReceiveState + + ''' + ''' The incoming socket information - allows UDP to determine the sender. + ''' + Public SendingSocket As Object + ''' + ''' The EndPoint on which the data was received (server side). + ''' + Public ReceivingEndpoint As EndPoint + + End Class + + ''' + ''' A class that helps store data waiting to be sent in the SendQueue + ''' + ''' + ''' This class was borne out of necessity - not for TCP, but for UDP. + ''' I realized that if you are sending large data chunks out via UDP + ''' to different remote addresses, you could end up sending data to + ''' the wrong remote host. This class allows the component to recognize + ''' that it needs to send to a different remote host. + ''' + Private Class SendQueueData + + ''' + ''' Initializes a new instance of the SendQueueData class. + ''' + ''' An IPEndPoint containing the IP address that you will be sending to. + ''' The data that needs to be sent. + Public Sub New(ByVal ip As IPEndPoint, ByVal byt() As Byte) + _ip = ip + _data = byt + End Sub + + Private _data() As Byte + Private _ip As IPEndPoint + + ''' + ''' The IPEndPoint that contains the IP address information needed to send the data. + ''' + Public ReadOnly Property IPAddress() As IPEndPoint + Get + Return _ip + End Get + End Property + + ''' + ''' The data that needs to be sent. + ''' + Public Property Data() As Byte() + Get + Return _data + End Get + Set(ByVal value As Byte()) + _data = value + End Set + End Property + + End Class + + ''' + ''' A class that allows a state to be transfered from the calling method to the asyncrounous callback method. + ''' This class is used when sending data. + ''' + Private Class SendState + + ''' + ''' The total length of the original byte array to be sent. (Includes packet header) + ''' + Public Length As Integer + ''' + ''' The error code as reported by the socket - used during the callback method. + ''' + Public ErrCode As SocketError + ' '' + ' '' The bytes that are to be sent. + ' '' + 'Public Bytes() As Byte + ''' + ''' The index at which to start sending - usefull when sending packets larger than the buffer size. + ''' + Public StartIndex As Integer + ''' + ''' The number of bytes to send during this time - usefull when sending packets larger than the buffer size. + ''' + Public SendLength As Integer + ''' + ''' The total number of bytes actually transmitted. + ''' + Public TotalSent As Integer + ''' + ''' The socket that is doing the sending - used for UDP statistic information during the callback method. + ''' + Public SendingSocket As Socket + ''' + ''' The IP address of the computer you are sending to - used for UDP statistic information during the callback method. + ''' + Public SendToAddress As IPEndPoint + + ''' + ''' Builds and returns an instance of the SendState class. + ''' + ''' The UpperBound of the byte array that will be sent. + ''' The socket to assign to the SendState. + ''' The socket's buffer size. + Public Shared Function Build(ByVal bytUpperBound As Integer, ByRef sock As Socket, ByVal buffer_size As Integer) As SendState + Dim ret As New SendState + ret.Length = bytUpperBound + 1 + ret.StartIndex = 0 + If bytUpperBound > buffer_size Then + ret.SendLength = buffer_size + 1 + Else + ret.SendLength = bytUpperBound + End If + ret.SendingSocket = sock + Return ret + End Function + + ''' + ''' Returns a boolean indicating whether the object being sent has completed or not. + ''' + Public ReadOnly Property SendCompleted() As Boolean + Get + Return Not (TotalSent < Length) + End Get + End Property + End Class + +#End Region + +End Class + +''' +''' A special collection class to act as a byte buffer. +''' +Public Class ByteBufferCol + Inherits CollectionBase + + ''' + ''' Adds a byte to the byte buffer. + ''' + ''' The byte to add to the buffer. + Public Sub Add(ByVal byt As Byte) + List.Add(byt) + End Sub + + ''' + ''' Adds a byte array to the byte buffer. + ''' + ''' The byte array to add to the buffer. + ''' Adds all the bytes in the array individually - not the array itself. + Public Sub Add(ByVal byt() As Byte) + For i As Integer = 0 To UBound(byt) + List.Add(byt(i)) + Next + End Sub + + ''' + ''' Combines all the bytes in the buffer into one byte array. + ''' + Public Function Combine() As Byte() + If List.Count = 0 Then Return Nothing + Dim ar(List.Count - 1) As Byte + For i As Integer = 0 To List.Count - 1 + ar(i) = CByte(List.Item(i)) + Next + Return ar + End Function + + Public ReadOnly Property SyncRoot() As Object + Get + Dim iCL As ICollection = CType(Me, ICollection) + ' Return CType(llList, ICollection).SyncRoot + Return iCL.SyncRoot + End Get + End Property + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/Deque.vb b/Sub/WinsockOracs/Backup/Deque.vb new file mode 100644 index 0000000..256dc3c --- /dev/null +++ b/Sub/WinsockOracs/Backup/Deque.vb @@ -0,0 +1,185 @@ +Option Strict On +''' +''' Represents both a last-in, first-out (LIFO) and a first-in, first-out (FIFO) non-generic collection of objects. +''' +''' +''' While the System.Collections.Stack and the System.Collections.Queue +''' have seemingly different ways of operating, they can be combined easily +''' by just manipulating the way in which an item in inserted into the list. +''' +''' This allows the removal from the list to remain the same, whether you +''' are treating this class like a Stack or a Queue. The also allows the +''' Peek() method to work for both at the same time. +''' +''' Helping tidbit - Deque is pronounced like "deck." +''' +Public Class Deque + Implements ICollection, IEnumerable, ICloneable + +#Region " Private Members " + + ''' + ''' Stores the list of items within this instance. + ''' + Private llList As LinkedList(Of Object) + +#End Region + +#Region " Constructor " + + ''' + ''' Initializes a new instance of the Deque class that is empty and has the default initial capacity. + ''' + Public Sub New() + llList = New LinkedList(Of Object) + End Sub + + ''' + ''' Initializes a new instance of the Deque class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied. + ''' + ''' The collection whose elements are copied to the new Deque. + Public Sub New(ByVal col As ICollection) + llList = New LinkedList(Of Object)(CType(col, IEnumerable(Of Object))) + End Sub + +#End Region + +#Region " Interface Method Implementations " + + ''' + ''' Copies the entire Deque to a compatible one-dimensional array, starting at the specified index of the target array. + ''' + ''' The one-dimensional Array that is the destination of the elements copied from Deque. The Array must have zero-based indexing. + ''' The zero-based index in array at which copying begins. + Public Sub CopyTo(ByVal array As System.Array, ByVal index As Integer) Implements System.Collections.ICollection.CopyTo + If array.Rank > 1 Then Throw New ArgumentException("Array must have only a single dimension.", "array") + llList.CopyTo(CType(array, Object()), index) + End Sub + + ''' + ''' Gets the number of elements actually contained in the Deque. + ''' + ''' The number of elements actually contained in the Deque. + Public ReadOnly Property Count() As Integer Implements System.Collections.ICollection.Count + Get + Return llList.Count + End Get + End Property + + ''' + ''' Gets a value indicating whether access to the ICollection is synchronized (thread safe). + ''' + ''' true if access to the ICollection is synchronized (thread safe); otherwise, false. In the default implementation of List, this property always returns false. + Public ReadOnly Property IsSynchronized() As Boolean Implements System.Collections.ICollection.IsSynchronized + Get + Return CType(llList, ICollection).IsSynchronized + End Get + End Property + + ''' + ''' Gets an object that can be used to synchronize access to the ICollection. + ''' + ''' An object that can be used to synchronize access to the ICollection. In the default implementation of List, this property always returns the current instance. + Public ReadOnly Property SyncRoot() As Object Implements System.Collections.ICollection.SyncRoot + Get + Return CType(llList, ICollection).SyncRoot + End Get + End Property + + ''' + ''' Returns an enumerator that iterates through the Queue. + ''' + Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return llList.GetEnumerator() + End Function + + ''' + ''' Creates a shallow copy of the Queue. + ''' + Public Function Clone() As Object Implements System.ICloneable.Clone + Return New Deque(llList) + End Function + +#End Region + +#Region " Methods common to both Queues and Stacks " + + ''' + ''' Removes all elements from the Deque. + ''' + Public Sub Clear() + llList.Clear() + End Sub + + ''' + ''' Determines whether an element is in the Deque. + ''' + ''' The object to locate in the Deque. The value can be a null reference (Nothing in Visual Basic) for reference types. + Public Function Contains(ByVal obj As Object) As Boolean + Return llList.Contains(obj) + End Function + + ''' + ''' Returns the object at the beginning (top) of the Deque without removing it. + ''' + ''' The object at the beginning (top) of the Deque. + Public Function Peek(Of dataType)() As dataType + If llList.Count = 0 Then Return Nothing + Return DirectCast(llList.First().Value, dataType) + End Function + + ''' + ''' Returns a String that represents the current Object. + ''' + ''' A String that represents the current Object. + Public Overrides Function ToString() As String + Return llList.ToString() + End Function + +#End Region + +#Region " Queue methods " + + ''' + ''' Removes and returns the object at the beginning of the Deque. + ''' + ''' The object that is removed from the beginning of the Deque. + ''' Synonymous with Pop(). + Public Function Dequeue(Of dataType)() As dataType + Dim oRet As dataType = Peek(Of dataType)() + llList.RemoveFirst() + Return oRet + End Function + + ''' + ''' Adds an object to the end of the Deque. + ''' + ''' The object to add to the Deque. The value can be a null reference (Nothing in Visual Basic). + Public Sub Enqueue(ByVal obj As Object) + llList.AddLast(obj) + End Sub + +#End Region + +#Region " Stack methods " + + ''' + ''' Removes and returns the object at the top of the Deque. + ''' + ''' The Object removed from the top of the Deque. + ''' Synonymous with Dequeue(). + Public Function Pop(Of dataType)() As dataType + Return Dequeue(Of dataType)() + End Function + + ''' + ''' Inserts an object at the top of the Deque. + ''' + ''' The Object to push onto the Deque. The value can be a null reference (Nothing in Visual Basic). + Public Sub Push(ByVal obj As Object) + llList.AddFirst(obj) + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/Enumerations.vb b/Sub/WinsockOracs/Backup/Enumerations.vb new file mode 100644 index 0000000..d132c37 --- /dev/null +++ b/Sub/WinsockOracs/Backup/Enumerations.vb @@ -0,0 +1,49 @@ +Option Strict On + +''' +''' Enumeration containing the various supported network protocols. +''' +Public Enum WinsockProtocol + ''' + ''' Transmission Control Protocol - a connection oriented protocol. + ''' + Tcp = 0 + ''' + ''' User Datagram Protocol - a connection-less protocol. + ''' + Udp = 1 +End Enum + +''' +''' Enumeration containing the various Winsock states. +''' +Public Enum WinsockStates + ''' + ''' The Winsock is closed. + ''' + Closed = 0 + ''' + ''' The Winsock is listening (TCP for connections, UDP for data). + ''' + Listening = 1 + ''' + ''' The Winsock is attempting the resolve the remote host. + ''' + ResolvingHost = 2 + ''' + ''' The remote host has been resolved to IP address. + ''' + HostResolved = 3 + ''' + ''' The Winsock is attempting to connect to the remote host. + ''' + Connecting = 4 + ''' + ''' The Winsock is connected to a remote source (client or server). + ''' + Connected = 5 + ''' + ''' The Winsock is attempting to close the connection. + ''' + Closing = 6 +End Enum \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/EventArgs.vb b/Sub/WinsockOracs/Backup/EventArgs.vb new file mode 100644 index 0000000..0bed9ec --- /dev/null +++ b/Sub/WinsockOracs/Backup/EventArgs.vb @@ -0,0 +1,422 @@ +Option Strict On + +''' +''' Provides data for the Winsock.ErrorReceived event. +''' +Public Class WinsockErrorReceivedEventArgs + Inherits System.EventArgs + + Private m_errorMsg As String + Private m_function As String + Private m_errorCode As System.Net.Sockets.SocketError + Private m_Details As String + + ''' + ''' Initializes a new instance of the WinsockErrorEventArgs class. + ''' + ''' A String containing the error message. + Public Sub New(ByVal error_message As String) + Me.New(error_message, Nothing) + End Sub + ''' + ''' Initializes a new instance of the WinsockErrorEventArgs class. + ''' + ''' A String containing the error message. + ''' A String containing the name of the function that produced the error. + Public Sub New(ByVal error_message As String, ByVal function_name As String) + Me.New(error_message, function_name, Nothing) + End Sub + ''' + ''' Initializes a new instance of the WinsockErrorEventArgs class. + ''' + ''' A String containing the error message. + ''' A String containing the name of the function that produced the error. + ''' A String containing extra details for the error message. + Public Sub New(ByVal error_message As String, ByVal function_name As String, ByVal extra_details As String) + Me.New(error_message, function_name, extra_details, Net.Sockets.SocketError.Success) + End Sub + ''' + ''' Initializes a new instance of the WinsockErrorEventArgs class. + ''' + ''' A String containing the error message. + ''' A String containing the name of the function that produced the error. + ''' A String containing extra details for the error message. + ''' A value containing the socket's ErrorCode. + Public Sub New(ByVal error_message As String, ByVal function_name As String, ByVal extra_details As String, ByVal error_code As System.Net.Sockets.SocketError) + m_errorMsg = error_message + m_function = function_name + m_Details = extra_details + m_errorCode = error_code + End Sub + + ''' + ''' Gets a value containing the error message. + ''' + Public ReadOnly Property Message() As String + Get + Return m_errorMsg + End Get + End Property + + ''' + ''' Gets a value containing the name of the function that produced the error. + ''' + Public ReadOnly Property [Function]() As String + Get + Return m_function + End Get + End Property + + ''' + ''' Gets a value indicating the error code returned by the socket. + ''' + ''' If it wasn't returned by the socket, it defaults to success. + Public ReadOnly Property ErrorCode() As System.Net.Sockets.SocketError + Get + Return m_errorCode + End Get + End Property + + ''' + ''' Gets a value containing more details than the typical error message. + ''' + Public ReadOnly Property Details() As String + Get + Return m_Details + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.ConnectionRequest event. +''' +Public Class WinsockConnectionRequestEventArgs + Inherits System.EventArgs + + Private _client As System.Net.Sockets.Socket + Private _cancel As Boolean = False + + ''' + ''' Initializes a new instance of the WinsockClientReceivedEventArgs class. + ''' + ''' A Socket object containing the new client that needs to be accepted. + Public Sub New(ByVal new_client As System.Net.Sockets.Socket) + _client = new_client + End Sub + + ''' + ''' Gets a value containing the client information. + ''' + ''' Used in accepting the client. + Public ReadOnly Property Client() As System.Net.Sockets.Socket + Get + Return _client + End Get + End Property + + ''' + ''' Gets a value containing the incoming clients IP address. + ''' + Public ReadOnly Property ClientIP() As String + Get + Dim rEP As System.Net.IPEndPoint = CType(_client.RemoteEndPoint, System.Net.IPEndPoint) + Return rEP.Address.ToString() + End Get + End Property + + ''' + ''' Gets or sets a value indicating whether the incoming client request should be cancelled. + ''' + Public Property Cancel() As Boolean + Get + Return _cancel + End Get + Set(ByVal value As Boolean) + _cancel = value + End Set + End Property +End Class + +''' +''' Provides data for the Winsock.StateChanged event. +''' +Public Class WinsockStateChangedEventArgs + Inherits System.EventArgs + + Private m_OldState As WinsockStates + Private m_NewState As WinsockStates + + ''' + ''' Initializes a new instance of the WinsockStateChangingEventArgs class. + ''' + ''' The old state of the Winsock control. + ''' The state the Winsock control is changing to. + Public Sub New(ByVal oldState As WinsockStates, ByVal newState As WinsockStates) + m_OldState = oldState + m_NewState = newState + End Sub + + ''' + ''' Gets a value indicating the previous state of the Winsock control. + ''' + Public ReadOnly Property Old_State() As WinsockStates + Get + Return m_OldState + End Get + End Property + + ''' + ''' Gets a value indicating the new state of the Winsock control. + ''' + Public ReadOnly Property New_State() As WinsockStates + Get + Return m_NewState + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.DataArrival event. +''' +Public Class WinsockDataArrivalEventArgs + Inherits System.EventArgs + + Private _bTotal As Integer + Private _IP As String + Private _Port As Integer + + ''' + ''' Initializes a new instance of the WinsockDataArrivalEventArgs class. + ''' + ''' The number of bytes that were received. + ''' The source address of the bytes. + ''' The source port of the bytes. + Public Sub New(ByVal bytes_total As Integer, ByVal source_ip As String, ByVal source_port As Integer) + _bTotal = bytes_total + _IP = source_ip + _Port = source_port + End Sub + + ''' + ''' Gets a value indicating the number of bytes received. + ''' + Public ReadOnly Property TotalBytes() As Integer + Get + Return _bTotal + End Get + End Property + + ''' + ''' Gets a value indicating the data's originating address. + ''' + Public ReadOnly Property SourceIP() As String + Get + Return _IP + End Get + End Property + + ''' + ''' Gets a value indicating the data's originating port. + ''' + Public ReadOnly Property SourcePort() As Integer + Get + Return _Port + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.Connected event. +''' +Public Class WinsockConnectedEventArgs + Inherits System.EventArgs + + Private _IP As String + Private _Port As Integer + + ''' + ''' Initializes a new instance of the WinsockConnectedEventArgs class. + ''' + ''' The source address of the connection. + ''' The source port of the connection. + Public Sub New(ByVal source_ip As String, ByVal source_port As Integer) + _IP = source_ip + _Port = source_port + End Sub + + ''' + ''' Gets a value indicating the remote address of the connection. + ''' + Public ReadOnly Property SourceIP() As String + Get + Return _IP + End Get + End Property + + ''' + ''' Gets a value indicating the remote port of the connection. + ''' + Public ReadOnly Property SourcePort() As Integer + Get + Return _Port + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.SendComplete event. +''' +Public Class WinsockSendEventArgs + Inherits System.EventArgs + + Private _bTotal As Integer + Private _bSent As Integer + Private _IP As String + + ''' + ''' Initializes a new instance of the WinsockSendEventArgs class. + ''' + ''' The destination of the bytes sent. + ''' The total number of bytes sent. + ''' The total number of bytes that were supposed to be sent. + Public Sub New(ByVal dest_ip As String, ByVal bytes_sent As Integer, ByVal bytes_total As Integer) + _IP = dest_ip + _bTotal = bytes_total + _bSent = bytes_sent + End Sub + + ''' + ''' Gets a value indicating the destination of the bytes sent. + ''' + Public ReadOnly Property DestinationIP() As String + Get + Return _IP + End Get + End Property + + ''' + ''' Gets a value indicating the number of bytes sent. + ''' + Public ReadOnly Property BytesSent() As Integer + Get + Return _bSent + End Get + End Property + + ''' + ''' Gets a value indicating the total number of bytes that should have been sent. + ''' + Public ReadOnly Property BytesTotal() As Integer + Get + Return _bTotal + End Get + End Property + + ''' + ''' Gets a value indicating the percentage (0-100) of bytes that where sent. + ''' + Public ReadOnly Property SentPercent() As Double + Get + Return (_bSent / _bTotal) * 100 + End Get + End Property + +End Class + +''' +''' Provides data for the WinsockCollection.CountChanged event. +''' +Public Class WinsockCollectionCountChangedEventArgs + Inherits System.EventArgs + + Private _oldCount As Integer + Private _newCount As Integer + + ''' + ''' Initializes a new instance of the WinsockCollectionCountChangedEventArgs class. + ''' + ''' The old number of items in the collection. + ''' The new number of items in the collection. + Public Sub New(ByVal old_count As Integer, ByVal new_count As Integer) + _oldCount = old_count + _newCount = new_count + End Sub + + ''' + ''' Gets a value indicating the previous number of items in the collection. + ''' + Public ReadOnly Property OldCount() As Integer + Get + Return _oldCount + End Get + End Property + + ''' + ''' Gets a value indicating the current number of items in the collection. + ''' + Public ReadOnly Property NewCount() As Integer + Get + Return _newCount + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.ReceiveProgress event. +''' +Public Class WinsockReceiveProgressEventArgs + Inherits System.EventArgs + + Private _bTotal As Integer + Private _bIn As Integer + Private _IP As String + + ''' + ''' Initializes a new instance of the WinsockReceiveProgressEventArgs class. + ''' + ''' The source ip of the bytes received. + ''' The total number of bytes received. + ''' The total number of bytes that were supposed to be received. + Public Sub New(ByVal source_ip As String, ByVal bytes_received As Integer, ByVal bytes_total As Integer) + _IP = source_ip + _bTotal = bytes_total + _bIn = bytes_received + End Sub + + ''' + ''' Gets a value indicating the source of the bytes sent. + ''' + Public ReadOnly Property SourceIP() As String + Get + Return _IP + End Get + End Property + + ''' + ''' Gets a value indicating the number of bytes received. + ''' + Public ReadOnly Property BytesReceived() As Integer + Get + Return _bIn + End Get + End Property + + ''' + ''' Gets a value indicating the total number of bytes that should be received. + ''' + Public ReadOnly Property BytesTotal() As Integer + Get + Return _bTotal + End Get + End Property + + ''' + ''' Gets a value indicating the percentage (0-100) of bytes that where received. + ''' + Public ReadOnly Property ReceivedPercent() As Double + Get + Return (_bIn / _bTotal) * 100 + End Get + End Property + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/History.txt b/Sub/WinsockOracs/Backup/History.txt new file mode 100644 index 0000000..d9081e3 --- /dev/null +++ b/Sub/WinsockOracs/Backup/History.txt @@ -0,0 +1,28 @@ +04.21.2008 - Fixed RaiseEventSafe in Winsock.vb and WinsockCollection.vb to use BeginInvoke instead of Invoked. Changed order of operations in ReceiveCallbackUDP to allow remote IP address to be detected properly. + +03.25.2008 - Added a NetworkStream property to expose a NetworkStream object that uses the connection made by this component. + +03.24.2008 - Fixed Listen methods to properly raise state changed events for UDP as well as TCP. Modified IWinsock, Winsock, and AsyncSocket to allow AsyncSocket to modify the LocalPort property of the component. + +02.14.2008 - Fixed a bug in UDP receiving that caused it to always receive at the full byte buffer instead of size of the incoming data. + +12.28.2007 - Winsock.Get and Winsock.Peek updated to check for nothing. + SyncLock added to all qBuffer instances in AsyncSocket and _buff (ProcessIncoming) + +12.26.2007 - Added new event ReceiveProgress. + +12.13.2007 - Fixed PacketHeader.AddHeader to use .Length instead of .GetUpperBound(0). Also changed AsyncSocket.ProcessIncoming in two places with the same change (second half of the first nested IF statements with the >= comparison operator). + +11.19.2007 - Completed WinsockDesigner to original intentions. Can now jump to event code using the Action list. + +11.14.2007 - Demo programs completed, and test ran successfully (quick tests) + +11.06.2007 - Began work on version 4.0.0 + +Interim time - various bug fixes + +04.27.2007 - Third release using VS 2005 (called Winsock 2007) + +06.12.2006 - Second release using VS 2005 (called Winsock 2005) + +08.24.2005 - First release using VB 2003 (called Winsock.NET) \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/IWinsock.vb b/Sub/WinsockOracs/Backup/IWinsock.vb new file mode 100644 index 0000000..e962a8c --- /dev/null +++ b/Sub/WinsockOracs/Backup/IWinsock.vb @@ -0,0 +1,111 @@ +Option Strict On + +Public Interface IWinsock + +#Region " Events " + + ''' + ''' Occurs when connection is achieved (client and server). + ''' + Event Connected(ByVal sender As Object, ByVal e As WinsockConnectedEventArgs) + ''' + ''' Occurs on the server when a client is attempting to connect. + ''' + ''' Client registers connected at this point. Server must Accept in order for it to be connected. + Event ConnectionRequest(ByVal sender As Object, ByVal e As WinsockConnectionRequestEventArgs) + ''' + ''' Occurs when data arrives on the socket. + ''' + ''' Raised only after all parts of the data have been collected. + Event DataArrival(ByVal sender As Object, ByVal e As WinsockDataArrivalEventArgs) + ''' + ''' Occurs when disconnected from the remote computer (client and server). + ''' + Event Disconnected(ByVal sender As Object, ByVal e As System.EventArgs) + ''' + ''' Occurs when an error is detected in the socket. + ''' + ''' May also be raised on disconnected (depending on disconnect circumstance). + Event ErrorReceived(ByVal sender As Object, ByVal e As WinsockErrorReceivedEventArgs) + ''' + ''' Occurs while the receive buffer is being filled with data. + ''' + Event ReceiveProgress(ByVal sender As Object, ByVal e As WinsockReceiveProgressEventArgs) + ''' + ''' Occurs when sending of data is completed. + ''' + Event SendComplete(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + ''' + ''' Occurs when the send buffer has been sent but not all the data has been sent yet. + ''' + Event SendProgress(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + ''' + ''' Occurs when the state of the socket changes. + ''' + Event StateChanged(ByVal sender As Object, ByVal e As WinsockStateChangedEventArgs) + + ''' + ''' Raises the Connected event. + ''' + Sub OnConnected(ByVal e As WinsockConnectedEventArgs) + ''' + ''' Raises the ConnectionRequest event. + ''' + Sub OnConnectionRequest(ByVal e As WinsockConnectionRequestEventArgs) + ''' + ''' Raises the DataArrival event. + ''' + Sub OnDataArrival(ByVal e As WinsockDataArrivalEventArgs) + ''' + ''' Raises the Disconnected event. + ''' + Sub OnDisconnected() + ''' + ''' Raises the ErrorReceived event. + ''' + Sub OnErrorReceived(ByVal e As WinsockErrorReceivedEventArgs) + ''' + ''' Raises the ReceiveProgress event. + ''' + Sub OnReceiveProgress(ByVal e As WinsockReceiveProgressEventArgs) + ''' + ''' Raises the SendComplete event. + ''' + Sub OnSendComplete(ByVal e As WinsockSendEventArgs) + ''' + ''' Raises the SendProgress event. + ''' + Sub OnSendProgress(ByVal e As WinsockSendEventArgs) + ' '' + ' '' Raises the StateChanged event. + ' '' + 'Sub OnStateChanged(ByVal e As WinsockStateChangedEventArgs) + +#End Region + +#Region " Properties " + + Property LegacySupport() As Boolean + Property Protocol() As WinsockProtocol + Property RemoteHost() As String + Property RemotePort() As Integer + ''' + ''' Gets the state of the Winsock control. + ''' + ReadOnly Property State() As WinsockStates + +#End Region + + ''' + ''' Encapsulates the OnStateChanged methods so the AsyncSocket + ''' doesn't have to build the EventArgs parameter all the time. + ''' + ''' The new state of the Winsock. + Sub ChangeState(ByVal new_state As WinsockStates) + + ''' + ''' When the port is set dynamically by using port 0, the socket can now update the property of the component. + ''' + ''' The port we are now listening on. + Sub ChangeLocalPort(ByVal new_port As Integer) +End Interface \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/My Project/Application.Designer.vb b/Sub/WinsockOracs/Backup/My Project/Application.Designer.vb new file mode 100644 index 0000000..651bd86 --- /dev/null +++ b/Sub/WinsockOracs/Backup/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50727.1318 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Sub/WinsockOracs/Backup/My Project/Application.myapp b/Sub/WinsockOracs/Backup/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/Sub/WinsockOracs/Backup/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/Sub/WinsockOracs/Backup/My Project/AssemblyInfo.vb b/Sub/WinsockOracs/Backup/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..4e330ee --- /dev/null +++ b/Sub/WinsockOracs/Backup/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Sub/WinsockOracs/Backup/My Project/Resources.Designer.vb b/Sub/WinsockOracs/Backup/My Project/Resources.Designer.vb new file mode 100644 index 0000000..30a538d --- /dev/null +++ b/Sub/WinsockOracs/Backup/My Project/Resources.Designer.vb @@ -0,0 +1,70 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50727.1318 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Winsock_Orcas.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + Friend ReadOnly Property k_koding() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("k-koding", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/Sub/WinsockOracs/Backup/My Project/Resources.resx b/Sub/WinsockOracs/Backup/My Project/Resources.resx new file mode 100644 index 0000000..e11d804 --- /dev/null +++ b/Sub/WinsockOracs/Backup/My Project/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\k-koding.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/My Project/Settings.Designer.vb b/Sub/WinsockOracs/Backup/My Project/Settings.Designer.vb new file mode 100644 index 0000000..936bd24 --- /dev/null +++ b/Sub/WinsockOracs/Backup/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50727.1318 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Winsock_Orcas.My.MySettings + Get + Return Global.Winsock_Orcas.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/Sub/WinsockOracs/Backup/My Project/Settings.settings b/Sub/WinsockOracs/Backup/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/Sub/WinsockOracs/Backup/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Sub/WinsockOracs/Backup/ObjectPacker.vb b/Sub/WinsockOracs/Backup/ObjectPacker.vb new file mode 100644 index 0000000..4fe5627 --- /dev/null +++ b/Sub/WinsockOracs/Backup/ObjectPacker.vb @@ -0,0 +1,53 @@ +Imports System.IO +Imports System.Xml +Imports System.Xml.Serialization +Imports System.Runtime.Serialization.Formatters.Binary + +''' +''' Contains function for serializing/deserializing an object to and from a byte array. +''' +Public Class ObjectPacker + + ''' + ''' Serializes an object to a byte array. + ''' + ''' The object to be serialized. + Public Shared Function GetBytes(ByVal obj As Object) As Byte() + If obj.GetType Is GetType(Byte).MakeArrayType Then + Return CType(obj, Byte()) + End If + Dim ret() As Byte = Nothing + Dim blnRetAfterClose As Boolean = False + Dim ms As New MemoryStream() + Dim bf As New BinaryFormatter() + Try + bf.Serialize(ms, obj) + Catch ex As Exception + blnRetAfterClose = True + Finally + ms.Close() + End Try + If blnRetAfterClose Then Return ret + ret = ms.ToArray() + Return ret + End Function + + ''' + ''' Deserializes an object from a byte array. + ''' + ''' The byte array from which to obtain the object. + Public Shared Function GetObject(ByVal byt() As Byte) As Object + Dim ms As New MemoryStream(byt, False) + Dim bf As New BinaryFormatter() + Dim x As Object + Try + x = bf.Deserialize(ms) + Catch ex As Exception + x = byt + Finally + ms.Close() + End Try + Return x + End Function + +End Class diff --git a/Sub/WinsockOracs/Backup/Resources/k-koding.png b/Sub/WinsockOracs/Backup/Resources/k-koding.png new file mode 100644 index 0000000000000000000000000000000000000000..958f7fd116447357f59e346279d04c84b69a3c98 GIT binary patch literal 30384 zcmV(#K;*xPP)P0MF7Hix^YYod=iK{VR#pQtq(qTZ!0XJ) z%*uT4e)l`)JLcYG@Za(e=j?Nz2c>uq=vo6}tDSOkvu!2Ibx7{IT0E+%v82i(ySA^! zIleB=luK1$*J}Vw2R@Mi{*EEVA5MV(+O}_H5=v)0YMGvEHwF@^mglR@S5_OXYn@^1 z^G|{gjPalJCI2Wt>?eH!Kg`dkKmBRt`0+nvmFe|JyrpNVwqMw8DEV9rl4Vbie0P(n zjSjG;r$S5x$Y~y{*Z@2D`#pJp$r!+uCcuk308>eTkBoV++yeOarU^CMz{gbh=s}g| z4S;8NfHTkavs&Hm*k&soi$Yp>*1pBuS;qUnVe>S@bmAN-SnS2BcBLfQZb*YZfxybl3Q^qnGtqGa)ydbecUZluY+i9A&@J06!HErg1BV@*q#J?9UmVQpyTt% z;2gf@1Ty=(%gE-*B79rD8){&{7(R!81{V?JqiK8%zL5TY1s|-}fvt8_HX4VBZ6pgV z4GOyscVmj*n8=^r{NG+#UB7wFX-)pdr2QGj{Gap~_Wt}-nd{Gej;mLr>k*wrauu5o zuUTsUYD0;ae3jYAu%ie9;s>wc$eXGMhDTgf#s9+yU|!yZL;!jWUmU~N-K@#?f1;qm zmILDV-#rTOAFtpi_QI-k7zZs#XGru6eu0Wz6nWB7^qGYze8qvnrn z)|LL{nx@-mifI@L2>MAQcw`f2%>ZP4E`~s(RfhYE5|G8FWb!~v0=?sTKt9&CC5QmxN!+x|?_tIZ_UwYcBhJZl_p+EBtM*UuE6o%OW#88p`?5!lyD9xR~vdTGmpH}D`Z7n%yZi6$F~3kpuN zR4~ap9!Iir1lff)ekRT}e2h+kLt6I$H3MtfuJUG8i>=yPaV()0UoNd_qmTZU{qTqW zwSVDjfASMC<3BNw&!1n5KXuy~SZw)6uGgZ6uI{L*qiLqr9FN5m1tt)P6bdC8OcxKt z8+1k9(m}7GBdW`*un_!v`_a@Q$Qw-wOxcy7A51IAQUV*`eG>}&!ju9Qg7@ksz<83w z_trhQSTo^9tqsd<1IANmiczgBq1o;@5@<1}a8B0oJsq?TCeFONLq1$Vpz;0j1^rPM z(%ge3Jn7}S$0D8?{o8q`XnAJANJiO%Kl5w$&wly;ai9ClXZ}S6+P}EDM)vBrHX7Nr z4S(XRx0KNvb!LplJ@#!>y(cmNhbYXcp$W#_%~58 zuQiF4(ySK(0Y+x`5dQ6hsKSq;S)awv`X-v>A7Ci;fpG*88UAf#ano#yznjV@;lW`Q z7EKkdqd7;bEZ&Q(O3nA6ZcE0Kdl*j04YETA2Qj$P~815#$*JSjlKKdrM`5{9gnzhywOqz&u=sBb_3W% znhTa%WMWY*lSw9!6Ub5$Ix$_E>^%LBhaWJz?RsD#$2i$*WZ6tcf{X774ZMS4FHoEu zSEb6P_qbL<;Z;Sp<7cho=j>YK&lU09uBYRB*-&nqXgyRol*JEW3N(CTFCO@sbObF7 zo?~AGCnY|ADvuz#qys$A@oeg7QZkAIdAv_nXttq)V|SR@sIe_iO?6yzKyf4b8@I2y z?>zPi`?=@-{Ksy>|3yIl?D_Nhe|*s{UT&y|Z*8j68BdMTzCn2 z4?{K=&l?2LmTSRmjf0ODme*aJs5k-fgwcZIdv=)ZaAqpHTB(~^#d0!bt?obk3%_n( z_}c&XV-;pUc98$*sg1myA(%{tExWE1SXl%C z-5gxO=i4|yMI6+r6q1UZ3ny^VRC6-Jib!~%t^y1HU?wF$lP1O)1l-4&aTCpE!<7?- zOuUQtCz8?{tTqW!Ie|`O$ue+ZqLb+B+m?yKONCS{il3pNb@3pMYVU4j{b95it4Pyr z(?!3{;VL@+EBHA(jxGSV@C`Mz#Q7LaDr7d!tR%ii3XOb3AtP-omfeZ9tWF-UPrv^+ ze$V>I$#G=$b3YdI{bNgpka_<4AR^+NY|F`yQ)zkR8aP1cG@TLzS7d zG_4Pz+WpS11fvjyKr#%HA<|e>GO+H2F{~<>IAF+lm&`etWnBe!spe~z1IB37iz>dW z_kpkU8NSj$RvHNO-ATo_Y|Y!kmnlrKRy*7|l~=vlrpFD8#`DQRM97o=JR{$~95A1> z08#G}`fCp@iEW$sQWaD+h89E>v3v_B-6p>9*-aI4_*eAUi9GppQ^eM)%~&0@Sfyo7 zPuI5+g~MkTo_Xe(?I)gi!u@XoWCU1!^=hj)zv0bzjy@1qm^PX6n2k)^Y^ow@K{f;h zt%z$^@EF5UNCqI?#=$gjPzRDS+cb+u3zhJDhGj}}rGtNKOF@OKR?hahvAo~RL@K-4 z&DG8H+}3WY-KZy`z7@xF!2=?7O;rs%6c&N?XoQy|hL>hhS63n(JsxW-&2+mkkZS&F zF4o9oBK3H}s5SxZDNX=%Eu;bj$gl4NLQkcn3#x1cc>rfXQ=E?n_oqpGdEnU&v`iaJ zlhUjn!3rZq17Bl{*LwISrcbFcMcb$~hwO$I+pV^u-}uHi);{oo4_H6dAfG?a_4W12 zkfZ7|w<~&nxy95719mj6!UvAx#Vtx7L2TGH13?6I(FkgkR4PscTRwjvP}Ap84KLzr ze}K$+R3#DQ8_aIzjoNy@zdJXuT3_v7X;%u4#rD5}O( zbiN9rqoA3`U%9Gr(9m%jhR=20_T7qSCiPZbZ)i0m5h)EMBRi0YY?rvPwQFiyKKON2 zRXt)aWzvQdcpIf;iw89XZ3{uo;Nv4P2d~M-=)e@2xQZt;Xf%tz|@kl8*Rm_!muI~~as5?(YRoBrf7Jm@={rFxm@0*-&pVu#lk8I ztwaNW?AU0jJiJa-WZ@2Bh&7G}YIziA6tejUG{xK|RO(IGt&?Aiwpk*zJeJQc{Lv?V zuJKa^@;7E@Bj;~s$E%hx{k|EDe9-@XYYx~P0@gGo$oCCM&?+rCo40UKXk5s@Qksw$ z{Rq0kD?8HX=~OP%9bF4>IVHo%%ifwtR56GG=+N6=oc%WF+~O>{>l?}0%W>!4}q?s9cSF-4a@HoGSQW>(fr(Je*M?$KNTR)&hp3?Zq+B| zN_-l}CH1RkR7O>s|94gjB{IDvph(FMs*<&vrhJT^BR{KCg$R$ka3Xwpk>X?DNIA6$ zZ{^ylrCZkzxmIVi*q6%Yb7@2-%4`%ip3k7;Fle+aXf#?FXWJrX)-Y^ATaA8QN8mKH z3TU1cCRj@$wTIH$5fi`%8*g1?6)ADSXhjt!T}AM9jX{h=T}**&%7CH%JdBU_^S-{c zqZ&$y16!nSu| zG&m%T@OnjfM9ifM&t0gXQIo)&DMb}AfSA01COnx3n6H6q_{|Y(;nv+7%kw9a%pRK> z8%QP-af~w=v~32}x&@_j4a{~6bObS*O~TY@AH?Gk!AKt&;yRS1K!&&u0_X{F6=E;? zWev@;rbR*1bp#Uc<0SC#1)YwIY(mqCim=f(p+kZX{du)zz-GAv3+tpo6|~_b%1BtwAbYRlSop}=az~0V9esE- zMy&V5v4f8%@m9yd+qM|1IbPJV8>5}hD*r$J^iOa9hfjRsM>gI6B#_T@u7CDR%VS$+ za(c^DQ%DR}w^TrTCdzRlF=5KA)q{i5jFE48sV*7b3{sXf8AzNA#J!AL+PKHMcI#fH zQ=K?Io=<0zaaO9Duu*n!@LM?1ZOCU6aCmwEVi64-G;{UpE>yNwVZB*FHk)Xg$?2-n z9}BTXhmMTah2JIL9WfAOBZfyD!H%HDH4yL!^cNE_IZDj;q1CovYqtTLJ9TKc9O$SK zjGrUuJDV`Ka+wu#QSJDliNdkNBe}Z^k%^(0e&pHJ*2@>_`qj4G=`?YMCk+`=QLJC1 zQW&K~G1S_{i8n`949$63rLG2?kPi848WaTG;%vusqU#N7tnK;UAN`mAGWV&EfBZ)h zV?S~-gepk?=Tqh3D`oG%jjEDeZ>dTdBTjT$FovPhK}s&P0s3`mj>%+EqJYYNFK$!v zLMAjQAABg~X+^zrIJUL?;mxJhhsFxA$%FWhWxH&7y$Y+_O(<7tFg%cf$?+n%b_2H8 zZo&M`^RRU5b=X{6gler!=|j*FoOo24*ccv(ga(eP|#z7Sv0cp6fvG=63l4o>7@u$aPYcA<`b$aZ}2SORJ-9~PI_VPSDq zL6ICE?@JCH#d9Bt>bXk8EX{4#nl5UEVuUho9+Vm#)DD`kD!_5lpnGZKK*Tss2CzW! z$l`dygm=&a?X(>nPmdaq;;okN|A$X}toh|HfBA=wqkkkOQ=;R$KWG*cHk(fKL{>)? zLkjaWn%hGOKm{ph51HZT(OfMA{&xl+pR3C}FojI?nyI*(I+JQWHaoZVkj9+hyN(V< zXdtiOT8DDOgL)#`f}PzeT)MFe3#%ni^du;e9ITW&u>R~NcKO8jn0F7^Fm;n2WhZ?)HV5QWHK3WmFnf5NCdS6`&5iB(BwP7)+?QO zv$Z}2zGHv(v!7l5u4TzW+99ELGfE~ zZoMj}$bMWy%P$ zT;nLVkR>LvsNQNL*fl8c?!b+O6eZ8@nQO<=`o?EI z^O=8iVdIB3*Izlm7GK+mPyb*8#uiPc_s4)uBxEjl0j0skD!?+DcK2N;;oP~i?Bt1KFf~2~!zjA?3VjewOz&9vOv+!6HoJ`-~d+`r$DQxqN808nC;w2`fvt;M&zU zVPWAGq?1uNb!-L>p>?6~Y<+D7MIMKEs(_O#3M;E?Fh9SnL?VggWHCF|E;~cFE6qhM z!dq1w6bdPQG|N#0wbAyVjciuX6~q+}4<8iQ71b~sg(LIuzH1B6+h!|*GDMH&5{);W zd(Ql^fQ)8Zdv(bldwGM;v|J^6A_**|5krtE_@46fiqd_SF^e|k&ZIsg;%e!3)ePKIqTqds&MQ;Kcpfqy!`!dz|Q6}OpFb|sS}6b zzI#u@xx3G@GpA0n>8WYfUo1ePQ33mV-vI0SWne?&pr*4pfYd9CaW7IhifY@#`!T#_ z_`8i^myar&Xn?~B5j;T!g_seILKFuya`6=yDXqiE@l#MZasrY#5hx_{(BD_eWmsBS zh8y@<>!`Gc1`2TQ)FCLKt61OI#OHT#;^ZNk>_aQjf%#iES*zn2Lw$uoyTPY68jVFY zq1IZaE0ngPprS`WeY6-p#`8%XK~}j4`E-wq#)K-`Zx^kO+i5X;Eo*l=u_#6bANl2v z)?a@5>3@{j{-Hqr`0xCFalWD)E}1NqQat5CSrP1QJJLj7D9g&uAOiZXA%F={t&ufb z^3ND*vJW5dpEz4|e<>AV{mquCe&HLh!2Bl7S`-L=9qv6n4V$aC;FTA?1(|db?!W5@ zJbXWbd+#|oed;8Pj*a2t8PGdz=)CYLOgadI=SH8_t|K495;lqmOUF>dHJS_5`G|{rJXFSYMuH<#I*q%M|l!8xC}=>QXbJ zR6LCHMY7Ga5O4$;TpS-1hpG(bDGyHR(>j7|5wl5^J3g}BK1T;EBpw2T9e;}1;5nc_PN5kpjdDAuJq@G642g2x&fk_bNj;b}C@aXAUn z5s$rR3f^(gp!*APjpY~DO6<@7=0#Su;$UMynvQhf{<8<*=quitV;5xAMVhM9&jA469JWmDFI#}G)gkRo^64%k9I`r$!Yw9jI=`ZEXk zI}Yc)k481f-I(8k|Ma=%nXebYY?fgtufmz*Xs_}Y3 z&e{(yyq5wNg4%ld+n{eO$TT_b>4@ddAj>+|3Diz65dZs23vLHZKO01pkySU8jPA356RJ&B?r zf92*T{O2#cz_jEjG^?91JsgKa7@B_#m=l0OH6VzimSG z+3!L5Fa8Yd*(>|N?H$?ABf_0|%W~cY&9-!6*(vY-AjLZVLT$QVKe}NZX~fsEeo6gtevXu)eti zlha2bnHz?+h?j47ds9Gl`Cy+G=77ip`Q03Y+DE;jh(GM(2a8)hVSX zvLv7@yWnlD0n6k->mSC67lTAR22oVuWLoLH4V*Oi8??&Hu)4ee>B2N5^AoVWej5R4 zLmEwYB3(ofeOBL{V`%Bp&1!QvkPEd$cphacg^r0MlJfixe3oB)X7_7vHp;6g{1EVQ8FgXNY{_0oY^w9}; z@I(#{9hiinp+Shz(gy%(4owrbuU~`4g;ybtvs$n=1UO`|j)pm30BzCE@Q=9MyV6lQ=-*89)|BQn$)MEP$A z{eX|}!!QgYGj5wD*j%3lH8uqC+$2=DZVS^*j83ErqPMM8SyLR_$<-R2J|!8uhVH~} z*q&%kY~TPhE)ypThEFb98`rf(#*HQ?eGW0&buCt^RHMa0&OG-EzfiyS+;iR!4f4!` z|0Yp#)q^ElE%fOs%V2nviAW%~>j0Yw^kygMhgM}9&O}-sXY)LNyx{+GMCXS#cbeK? zeCZ|VKpxBn`rtnF!6#%oH{%Rr=}t>H8}>wVo}7gKAKTtFact9I#63$1b_BA zBxn_y-UF@xnu+^7+XsB&D0s1?C@)HoWx28A%90}$Do9j``}qD;yy%!6uvc$D>gM-E zfu{oP5UX)U&wgPo={Wf$g3qw&Csur!%@IIJBmJp659%NdA;eq|>Z|cKv&3J6HAt9RBnIP4^m9UD*Z~CzG4Zhyn;TB@nP;V%d)L z{Z#QnQ)^ZhKsC_yL^IGVuYej!qEFAF>dxYMILvC54Yye!Nb|B%u&v)IvZ@qApU0An^91XGtI^KbkS^EwkNJdL6c9}D#zTyb4(%d8kqH6kt~VEQ((l>D8@R> zHfwR;wlkKh-;U|Lp`bh25lcsKba|j7Y@s*NLf{zTL4uEp87f&2+oU##sH-SDH!fZ3 z{G&jo3e%el?c!X8A6#$x`b<)Rk(g}Fi7WE2NXk)2LQ0$BxXUQOUaL`CDh%8==>J?= z^QPatzN$X|>JqX&23BJo-i4vj>;n2duMPu|O^iJ=2ykBbH7ex$!k1Dzj4#YA0nsuo z=&UY7dTUWET~T`da4*QIELa1Fkjcm}0u~R?lPa5l79kJ*t^ggra0zaw1<{4)Alq7e ztC_wN2W?Q@k;SZF|zyV@$;a@4nCJ`2i#zo@9 zv0936wd1OmD@2V+q;ZzJs&rO>|4oW9alE-d0SRkA8(z zw!(~$OnUF0O!9knOZE8IzjpI}1q%`6YRdw5V+Hc16#=q{iF;Wbh%g@qxc@^L(JYL+D z>vq$cRMtx_tt#}7JXG-Cje=nC=@+iEr7auU?G_B>bvSZp8s=BfRJrpAWF13_Jm`_A z7z8Q=P-8pAv1M3+~^wwj>?m)gQyjgl^~!!uj|sOok(N0 zOcWu|)VUIgp>M{?Nu^DuMi~x$OjDz}&z#%3*J!r{$jDlk#G@kEtO`JJOf1iQ2Vm*Scr?mU{A^T)3dcFeGlcJWfkOs1{6%x6aq(LhX)hTvfX>>YL`Us230Q|xZ5;}Q9A304nA^gWbv)#j zLg_peRAjG;14atc=bDH?b)5Nu+mlClU)y_3A+v=S>x+rXf<`?S5R{AiUF7gHjOH>F znpcoT!ukP|Zdw#C-gX-hzIQO6iIm>17Khzz0elo+l%e9mxhE2F$fVKVq6m|7N5N|& zCL{2j8h#FfY#UH3ub}`-i%u0vfig62mff21SmccB?LK4RXt!)z4tTI@0-0_KpB%3v z7hOY8n8$ybZC9ymmqv1@?ph6?d3%s^jj>2QVhlQMmA%-IY~2c8PJWr13#t8-8pLTp z>GuQ*vk&I|BjZsxVzxWc*Df!k`PIN`m*DP`V+cwFbZ-SVx2|K@p+N+FFvWocpbAnT z;rx}EDWoW|&E<;7)sl~n5Gb0kvt3Yo?}s2$xsE^*EpwtH6S}Nc0yYy$ywisC&I=G# zP03azn7F>Q+Wwt3TDo>|Z~-#M0aswNZw#DVQRKlX_Ga7{pGl!r5`k`G_(yTAm>3RD zIGh}=Pm88XX#L`V${O0uI%IPN91}G6=^Rr#vApX=&N}|kwHVx7uh7+aa_I&}Orq;k z6^rpbAsoqUi@qxHpvo2&)^p=Chf&r-C%lM#Ad}$w+t5Rq)E?nJU>$?`E-JqB?V0r@0S<{5Z)lt(_sjs$@F7*1?&u9Lqsta1s5klQJ2q=${KXP7QD|GSD?O=qycWKG!E)W9nq8a(gS$^gN1> z6<>nk*u9Q6Wci-gt?st;-SzdM#~yoZ2g51%Eg)aG0P3pk4}52xX_U~XZIEW7lJ^8G zy%iPyA5BUTc78_|DbDqIGlMZU(`vONS8r{iI>y0unsEBqVUa9olrBT9w1#GhRx&V= zoX}kAxIn3?Yllr*q|sQ z00mhSHW27&EGj0cn6&t&6n0V+0d5Ol(-H4a6FFjNVsdLb)wttXM=u`BXNKS0E??hj z`LbV%dcdd-O+A2;zdN=~l!COK8>o;#iSK^t%T1#h#GAcY? zkaOiqu(1kR1UvA_)Qw3C&o&xcSS=uDYUCcDO$UW5Wd$UR9W%zana7 zMl>P@fzpnaBUk?u|41PD2rMyySZ?8K$n0u}J`Z}cdYSz8X4^;qk3t3i#-r{`d|%p* zf{6wJCatp9faLBo5am0v%fat4#cvZf^#Uzej1N>$6))$efDa#lD2hFbi$l{+qRQie zvZwPWc2WkI@AEf~qlNF+U$%T6CmC^xs8_^vc& zG+F{w^z}Xjl=i%U(XsA%?`~C+5BWth*;Iz)N{_8(rFcAbvuY#^HCWb>k!G5bASAeI zjx4+@vJXvkV75Fy%o(3HO*?jTeg|3|nbJFUkP`ViEG=Ata%Hz$%k_i8K*y1JSen&> ztz52j=y=jMOPLCSI`kX_@p%{Q;Gl#<2sp|$Q5z49Govq&7(AHE=8~kUA!yZAR7ZkJY*W>}_^6xbQlZvv zsHLr~!6%=5QsCPK`N_|N(gq{v(DE=<`rEmtT+ID57~;NvQnvQc%KhD731?jQ)V?T8 zp*9{`TB|7A70R_@Xp%5sd^m@~s|+hkv*>$e=s*`wpivy@xH79n0Ft667E_kWawNc{ zltX(eCIOl55a_={fT_M*7Alv%D8dpb;$V6N0gQsnPv8@%``JMn*4a zMQ9A4gjjJ{sObHAMlzT#k$kksun9&h;CAquIuCcOqF zhBz~fNNOURpBz`@&50Fxd-QV7k6JOkk)`tya{=PQ8x=cQC}94W;VYwT@y?L%?uS?v_I< zAL!4hotD-wt<>UK1Zx|LebM%fMn@w z5bIn+^X!Sl$37s^OPV;#tKb9 zfGYAnO}OrJYR_ZzI-FRIdKosi*2M%A-J`^C9JjXRsgA1-L?S~)v8RIS1^9Y_ zQ{j&%OR43Za$lFppT;rFeK%KV&#R0&JSayHf=ipIoE`+YUy+lB8sw;^AJzR>)P}*9 z<)_xR>Y~5NwN1!plaNWp;Kq&X&}_HS-;yT8iy}@2OGS0O5Y50)L6gFWI+sYz(SR{k z-l`ZgintLcgHE(!Ea=*JD}zH{t#VUn5k~J@zXFlnZ=tEaf^Ti_{Y~)0crS}#FQXMO z+(Z+-Wapt;d;kV#?uJ+*CGy5p5)kE3UlX}?)kB~uorw(fd;G2MOW`L>HCYxI7z$9t**jzq0k} zcKWmD&uaqY<9J=|n31KegLiCItT;reBuw-SB2DX+%rL{R($Y*}*)nL(`WtOaFI78o z3nZ%z{SyP?MAtUfz_KmDR05g~`Y)(B%FM#6CvLP6fCGvMO`WB)$UH zf)Z5ydVmh^tGt7!XM$FF5wu+tS)DndM!OS1=>av2kN2r33B1`s6K&?9()SPy9(e$g z=`@N(FPI#D(9{qBtN8*@IyhHFYF6<`IZIHIy1mFGj1%@m3X$^R%nY>3+z^8T9Rzn@X+a3hD1*klvR|K(p0?Ql%_R z4s}_QIrf=kvhb6^8eqSN*~DO-4g@x45b&Cq1fKBGe6P8V1*W4 z8K;sUfh>G>;G30DC*a|z;d3}{_}X@}D)I~H$b>-=Mu$^lebewAvrko{DHL6uE~s8_ z_!Ndy0noPG`?+0f>gCndgaA2HsYHsgh;cOMi|p1&RBq`&dqWe@wAT1UItlA|4r6I4 z=Fn2)A{x)q+MZU&3lad-nHhzhQb{Z-QGpQ3BUc1i<8z zNJ~;2DONm)YLvg{k9)xG>a#FrMvz(Mf@H7G_lH|rFgb#>v`9L*`vIo?x^7ek!0mqr zOe4UFR9fllF@*`-`hRw^{vz2FmSjPGao9+TM~ zn}zS)D?<3_|90CdT;3do=-7MUz|nh!48;ppZSk`#S;4`JM<}Elz|Fw z$zI8}mSEP1+O+}|cL0(HehwxNorQEFF4C)%($r+2i$Ia;sp8_3Yjmz%0{= z6J21X;YXW6F8Z%l0G>fxeY;jhpiP)-NgrQG%6&kZVvlDQK_rU=RyH| zL!A=*rvx1-qIU~Tb`mXUJfaFw#{!{B+Y{g?Bvd6#ZT0+wD!ZHgQX!lN^jM=-iwY69 zWm-D<+?Oiy+g7L;LGhT0vtq4j!)B`~cC4YD+G!6A9P}6(vv}LI(LBo;MjivYe)=u` z9Bq!d1nTy;Z~(UV-hhXxN!De!d|yVPXz(8hR;r-@48UZ;gk{~oWqWfm%;+gWhEH^o z+7L%w6ptvvpGwiD64>Z9v^Yi_#y-{6Qf)ByO;zX z38`Um}iSqs*nrL)RJV>2N6niE>ubIE|Z8)BH z<2oo?Pov@u){q5X3KSMPD4b(KlVHe92wB_1-Y}iL2YByk1S-GFW;t=l#p!6OX~P>? z#gZSQXa>TJc9a?FUVhr^VQ>%FYHwl$L$j78QVqy5#%SAz$)qRBhzhcH9N+U)F@qB$ z24yt?Wn?s^I%)4|2V~?=tvSNyGg$|v-#fJJ5~^I`M|r@@o`KMUi;V>9hQ-Uo-%Idi zjb0|{WogorebT{zce`?WZ+kj*8YY9UzQ$pr%)8af-fUKH8xQckQepQ8#g9^X9a!~J zKxA2TR#<3u6T zyYuxyZ&>$rOr(Sb##B=W$sn=USR}>#x66d6LE&Ow^FWyW65o!qm$LT^Rc^u^?CO3r z-y2sOP_cE`ZUO7V2%|qnEhSubs)RF?!V3i1bK0W*tBab0Dosu>09w%4E+#~`bxK}h z*dyh42TB6$ISy!{y1vs?!&||o2KE$Q$NN6`Ay{|L!Lx4~&~9_VUO!}Vz~(Na{r$J% z{W@h(wqFC*SnSfhyDW1(2DDO8<PV{VS;$CUFRW4y(a{F0Qnq3GcO!a&urv;|KISy8q#th5_oCrgnitnN8 z@~IQZ??6)a7BFU05gKNtxE78yPsi|SE7LN9*$yI<^JZD~S$yZg95h{}o4^Xo;OAx_061NP9~@mQWpnTz&>>5Eey0kZp&Md6 zJ(u_*%Z?~T=i-U+nusQV8VQsm#3T*cpKzcl2XW%b`#yuWbCK&d~Kr<Zasc~E>zi>j%ebYp9qfA@t~o$tSKrE+s|rPOYj+xfz<{rE%gImB3WLRC~o zGf&f_qTg9Gq4|=%1f1XNPkY$PgJyKWa%#2@>De`RRP;arZ0qcn(5Z>Yw zW(kze7WlDo93%~npF9Q4#z)`_FZ?C^+9M?xD+Uh4gMEs7pVQ@~>b z($#R;I3SN8Cg)-Ep5JZa^ZnrPLZJ7q?@lp6<;jF7icq=J73P~jrY$RSnS|?^e%o_R zdta_PRMUUwk4Kx*Iojah;ElQY#V?JF4E;97q-=X<2i7+?(Gn|SQ#9IcVXJ9XR-+T& z*B^TH^|RySTZ$TqDo*?7t)1pLeX9fQBcT~l^u-1^ZPx8r6k(LAbODvKUoL9%0~4(V zri^!IzpT;vqNyH17M5W@puPV0ZGoovuCajZJBhy}MV08@`|n4f>+r>w{sw;Kp#~JG zrbDLvPBsUAx+}!!erXB#=5_GL`{cIDeh9J`Y_lw{iwEnW{q6(^t|e?T;JmvwI^3W} z+)^JK`r~vaEB4{0@Aed#LY(C3gaO%9#4T^SZQr3q!aXKARMK|<+v}tCc-$g)=UrJ` z{)?K!-?uV9EZY~`32QpaZd#1(?Zvk;LnK>nkkntSQ^zJq;DPTS7?E|dt^Go)E0CoB z?E)L7xXH&7-5V&HNC>J4@jI>Fc;xXX;G6XdeD$@b;KO%!AWvIU5zt*G^F4O=m~h^% z0_@xdo<9n{mJ-1FU8aWTEc>b?@Zn_jx@-@D_Ia;Km!_U>4I={CT%XwAq}j5AETV@j zjzb}1v}WyQQ+8n(du}&m@m|Z%ofz|MJl+xCQZ!$MTYvi8rN8{&|Ld1ugiQYre&>^) zY@R)JidOvdol==2qqL*N#N<22;y?esG2?fCaYp-%iIjhWdXRKY7QiX3YD7~w18Jia zB?vF&g+Y%Q3jq|#69Sr;Eq2cFr1%O4&68U%`2@1hyK!uo)aU}>?>Ds}`&eTcz-a_C zLjEo7+Vie=zaQ-MgYcb;2Gr_&58$5AYTtYNGW>vD^z*w5V)3^hG|KtGdG3K49$o-C zKJIyeg@P`?A%nwkihg48IApSYg2l8?Ha$<bty)NS9lV?WT?!=kb#()0bKJ(ij|9EbEusBRbhSx7&_5bsizR~!>wfR!D(Q?uM zDw&v`QCp>{&86$bX0rm(h=KsiX7)%tBeF9tH$;tDtSIn%eN|7u5ir;G{o6yQGii9&`#%KR>?}NgLxol=0NUmI zO!s~hj+3UoBh0ps!lw&xaGqXh!h6{nTzA)Z0}ot{j4DDk4nYBxHfqUUJeAHuJduV* zixw!jq6s5vC@@gWa*f&5^6o}$Uju!Yu3;ji=e{aICKZ0@=uAsQCuDIS7>sL$>FoWZ zN$vi6qt0G={gU@zzw-3XH*fA-c&wHzf4t+JIXh9D(o~lC-ixm|PrrJ7XZpZHk$g-q zm>rMNM&AT-B%Z^8u<=4{0W!t!Vayn+Pw_Yp+04aP)*8O-$EMjUO}orn6UbdteTQkL zwps2mx!5Oc?jzAHGE?}swRzyV<9LC37|V#beqdk#9((tP;F+(tAU1am?i=S~kIg$1 zCHug3ZBR;R9rBytC;Fu+7K{#5cF0VhccTZ`)6#*Y-AjCgVpM!*25Ol?aR8`ixKitg z@7ADDv@f9neZfg(cd=aBTB~){bhl}*hrZO;6*Kmk>{Ke{4f2b9jt{ww*v(oChGT+^WCHewOaXdTg0dkV$wf{t1M`hz3{zv zimcFVi*hUMWuki0OiFc*dZeiFrRP&+@nCdp9PWGkgYe3CIuKo%gENC%ln(D?Fb@(V zVmVfM6O_t2_|d!&MLh7q!o7s*x|{Y2e|mD-BCzazL>3}qktht0jEir<*(x_{eO+wJV~_S%_CmoLLhuU}sI z=9Q({1%33*=zZ_Lp3e8R(aXYmd~E)&wo6+}x33SI_K3<3-M7__ruCR^pH6q&M5S(v zFa3z6iXz2H8=-if2^!za%ZByUu*e&xFX=yO=@sjixvVOO>XnHq6yF2dlXc+`U|J)^ zgZ(~27I*QiBJ(U1O_9tV@4cm&M$`{9ij{uUy91&$WbZFp=iNz$XX#pl{} zVAU-ETGdEO!Vf?WEKhgV_T(zN<;cK_urPHAd+~T8nTDa^aTHt~1X+H~1TAtK9qgkn z(dz2j%2vm1JNuI!`vjK!XJ0PF11+MqYqeTOfQ)yXr=R}rH(q$-Qp?g4E0KHOe>;{q zRxxcH+HwV&jtM)>L2etxrgLC?HcWu;dYw&(tJO?WPtf-$wL6|@fTNvc6|)LTb4RTH zXJLAe?X|vy0}w7NrK_c-GLb-e3N=d0LIsoW@W~;-Uch1{NLTi-ScF+^v~blW9K{ik z%O?Vy<;%tT;iD%`L&t2v`B%S&N`FgyJui6dt>&6O7fp^@-3EqQgri#uSq%PO;$ts0 z2YbMVOz!C#q1T9T5~*42AB0q<0ITyApvFkDDd~g)VuVS4+ecVLu?EM z#4QA=Dwm$}upA-LmC5+McB_zlwBSt>AbWw5^}B0>dC+gol^!$g^#I%B0$7keW7}7N z51a$BtIQoWMfx*Z+jR2m-J%Zu+Qp|(8)kXNJG8+c^lF*lnTeoh^ug~ASu|uC7P3X$U zKJuZ-kNx5=Kbp_=^{*_itbg^}PhbAhQ(vFm*(jO4Y^JEG(L|QvnS=}8c=6sR%c%iv zQ*~>FNyBEFiCE+V$C9Jxip9~qp$w^dBx-?btu)--=U1C^udbV`Mnu_0v$vu%+Pv?_rWWz2E20fS$N28LO(_gcd}XJ zjhi)4S_pD}R7L=M;X?OA@9YZ?yEa8R# zTsLXSDalNxs$R8Tuh8}Ft!gap_*rGRw9#^k4-KWWKYuF!;IV?UH`XpE{@wkHY;VrOQ390zn26ciDz_!2I^>!1Aq zU{%?xH#4bmM5~a1z?0nxV*I>-&Av=W`pRCxK4fKBKkXhB%mlaTM08H3gy zrKi^`=%5k%d^xW8a+2u-MPaJq_q&^PK+nBzi}0y|2SHMpnAk)eqCA@Pre+%&LgXipM3z{ zXg1;1?The0)`K{8qV^_9XkWKh6BvETSTwnx!O%15y5>1-s23#|!C)E(D*WUN190l> zeb7NMa&2xKtspfwIxsmpKqbHS-0aHYm8%!G67iV!-~)FbIxsbPVs&LD{^hTJwK_Mq zu$eFPSr0$>z`&`KCr2KC@WCfm*EV+UzUPdtpyR%D^UBi~7Z>?HkjaK$T3Tw3^Zt>1 zGWNv6?b+0qzV@x=oAYb)bzi-e>KpKXX?W^1zVJ}H-O{XT$%to%*_PERxt2aRs2fL< zF)c^STwGU9YuZo4bdq9aLEM&KfkRa)5bZ&%`^A`HqdA9gQ?;OTM3f{0AItWOtZq#F zw!WB)ja^H&5342$n;{iOMYoEKxoLfsNYZ$F`Ep`4HJ$3xUo=zTZ<*}+H}l; zBL_x!vr*f+dgaZV<(=(LG#XXQuXPa=R5UUbK~ml?ZN-~Q~%=! z9)IG|BWKQ?`RMe_bP{!pIy-l>HUIvfz51z7eX6x@W0>JY!qXyp+-$c~-}&A%&6h7; zeT9!4xp3dT_j^yAJaFQ~a9=KJ=meDSIku~Emsi`iyKY(6S)83Q7|$5Gs+g81vS3uO ztam7ejG%zCAc6y9TM@vMmgU5-XITwF4nqt%V2S|QmxH^n(~<`QM*jFgTM+?Q!_QmB z@u!|NC(#dyp-Jc;IwjtK!m+RpEJd;3P1N{8ooKC1>53Z2S z3`Lq^b-JpGv9|%3u7g%l@W2n#o|`z)JDm=az{Ag&g3~yeXdT&wE2~HbTB2*i^mspH zQ&DSf?)JjVuY7-=-WUJI`^r<_y>aNk^sO@|k7s`CH-58t_ucm$Tv=O%WG0===X2W7 z;9vsB?VeaHrjkqOFZTV;+QQ22xpU|KdLPJ^Wx1N6EtB?n?BR#?haY>#c;C=SDjAKY z(@||OqU#y%yUcN1-*rSYu3t87xK(Ye#XH{3eo!Y+RHUiRmX?XoSK(1Vc(blRjL}jV z8`Y$VAV(mAK#M9=u<&cIqf_4Jp@Viq|GB56<#tVy(F9lv&D{z{5i6bnZ47M^Llcl4 zo`k~CDD)Ky;@fAWqICm-9du;)d@s!y+O>*{|#iGXx-Eqg{_;CFW8pbgk{dqOU?NmIGsO95SPmFg-W| zgm^8p(CeYr)Pd#;Gbz{rE@64I4qX!S1M7;8=n{e&wHEVux zp*k=$Wc>br|373}t(G!3H^*wV8rSyEM&|$VAOG<}Suy_aTGO0=_=@(a^)^s5ri-LBEAz#f<7<; zx$!BO93F>UUjb4GtoU3_Zr0|~7k!Cp4s=7bF!9o5vLncB>7|MpLZx93Gj32OfT>sJp%R z`Ydc$9igac_re2{!+fV)*?jYjm(QcQrq~k_iL9#Yx>9e~T%08KvoHSO*5yk#cE?8s zFQgOk5tMS7dZX!=cT3gNXHKO*@qrIMoXcg|`uaLY@E7pv%(v{V`R{-4_w4`m^Pj)! zF*~zS-nq>!p70zuR_Snci6`t@YPj8>Pqzoh3jD!ilSfZYjXgS5$Q(;V)a+|LuJTlw8%B=6&x~&bhmCb#=~?T3LW{0E7Sw$zU6nah_S**b5#XkN2!c=j97;##S;T z1SsHwbmJye$u0pTffbcNZic|>jX|TZD>U3k4&Gn8 zd&jmld>&VHp{slJh1XskTv~L;gOO+;7>tB*R$&%O0t?kbgFKbD)TA|2Gt=>4z~3GW z1{Lr^HofrsQ&*vvox5-$E-s{;p>%;OlwnCB+@=cnnM4Jgc4oO)i&3fh)Y_WOO?veP z5uaNLZ!Wh`C}7T|Y1+GRg^K$V7{*n@k88!y^inC5=5*WwLY_$wPN6eS6l+g1Dh&;+ zW@aj~A;=s~@n+%0?igWsqX*F#dSwMrRaHT!!~`TN4O1MBfJL!#qSQ>hnB|WZPrZ;- zmOAku4ZviHW5o!FqI3mP2!! z;Bz=7rwlJ;z+gq&jwCn^r8gRhLXe|OkZA9&1He*M5BYEkoVq*?CGQi6FJI{F_PU(u$3An|`kBKA_te+bHlxH5tHs>V+*n`t!qH!yKYgwnTB$suD5+wb zM8E{}y}sb&)vn%7fq*4+I-MG*s;7~``@^GkFJ8=nnvG7J!1Uonjt5N!YN-aQWkUYL z&2?>U)rRer5>Yjmh0-o)-0pCIw@aw ztHkoJH`Gz`7tEZDMbA822_5oDl)_}1w`$U0EsV-~2S1h86+ zw9OF;MV$jzdb-X!(BG9v#T>|`rM3kdUnmr!8Cj}5+qT^ykYL`>`6rI^L#gX3q1!Pw0RllaIYLtyi|R$y}{ zGP#7a|DE6b>{Q6(&sLiCyu%0YZ`NwmYu|k9t>lT$lS>AJp3v#EBE7a!!DX|gPKVpQ z`HQ|2-2*pn=6Uasy1K4vv(d52T*-QP|MrbWLuK8f!!Ha4 z{5T48qE`Goz8K(a0Z4?LfX!C}ilYHk#s_b3X89%~-i*LTK%+@5<(^!uQj?W(nf`K6L`~A!#0=&6(E!cDKL1yUoxogwlV($Wco)YBZP6%)_ z2t;#aBI><4bnT5}lVd~vs`^^tcfR%YJMX`H-vI<@ES`$Iee%@#{=wl9=u|2U27|(& z*Q>*kFqoK}v!~+e6pO{B+FKhIj1@Z9_3PJvZ&Lan1^LpEBlM;X`wFe*3cW!ld>|V1 zw!C)iE$mF)8vWo$e z;*la&Y5=!V!M{wyN|~X{1?{)H8%0^Z?aX&2XL{v~yBxuymUEPH;u>XKTr#0~Td>ry!K28v+w@;t$?H{;4P8CRDmBmt_ zR46LkE~jT|e%@^`7{id;Prmi5UnTw!mVYW~7xZ0xyYL@xyqA9K)EVp-uly=|x~q3! zA(-im2r4h6xSHuK$qP{&VV)~s(}y~YhA-TG$0w`w+KoIeS3r>kyr;JtTpt`Kb0i1L zW+Ke_zgVgS0 z<6~wlBR<^Tu^H^$e~8Jz>>G1}U%h=D2<0Xa3oL?FjRr;|j7?0_cx)_i@$4&?C_n}w zSq4+{bBU#eg%s3gI<2-+tX8RrDvL>@t56cX{rzL_Uc59I@P~5E4fQ4zs_=L{^F~8O zzfLUnPE1Vvp}s(W8ssBKj(~?gdniWY!)E96dF=TYUZ9?T@ugW`0sMv~Pz$+SxjY^9U=T!1Bvk>CRL#V3 zqrQ2d*3|%=sR^pPFv!Mz(6(in_%1VBk)oDQtB6u(pmHJ&UGBX>6l;RPa#er1qO#nn zw$ve@T#0dO@!9hCWm`=D&Rtl^_$XJDp!b%5lqehy0Urd`?RLXQKZrykOdr?l0qDlrZY)CMsTo7K8`x%0)ab2Bse>OL zM|KF^)SlkncqEZ{L!nXjCIM>}2cl}exKfsiII&DRg^49apwSVe-!%(V8UwUntC*Qk zv9KH7$Q0wHBF_|U22e_3U#a9@31-u`w4T7hEh$DAam&Gdxd3OTr`x2FgE^y#P5qhn+F`noy-6}8RS7Dw}$j8n-g zgh?v90NAQ(k-{oXMch~-5yS*yB{MM``CN|0Ngxy{z~+q|kO!+k!0!g>WRw}mnM!Av zJ|uZ4L1!Qd?HT%ZZicst%HgEu)SJ=(GqqPtj-$QlSuI zbCJ{*RkIIr;1KivkP}&9Yz38dyMdy@!t|^@+dTmtEeB)}a>k2Z*Jfcx3tYVT9%yf= z@m@W9^k*K|VpOTsf_r!GG`BW4H;P3fHgulY=w0;Q7_=o*nJ|;p2tQCdlZy2YjLbm6 z_MJX`3LhPt7?jEt=gl?Np*LQBIf~5chX$EZ+b56Z4nFdUJW1xIJJzgTx2di9-e@>n z@!T(7%n5`d>dRmF0{8B{dyPiDp^`-q$S#Afp5FX|FEWE)`1;v;%L%uGmTwqlOa6lepXC{-j9g&+nQJBxz< zZjYO}e10FJs?qDB32_{O5-7|Yp@QlFCW98WhX$uEjDT5391tuXzzYGeVU-nloQw46 zU=MieYo7zVH&+pplaqmYhkGd!jb?`?CcI=m&$F0}mC$46N+l8=)E+2c@?^?Ioy?y(3>i>n^`vw`Ue}3wz?3~9>3k6)gkj-j% z_ubRt)0eMI?!Wh*tVyqxLGO|ZhC<|$-A=ysc4y|qne)y-28`l7UaHDq6s1xLidBe4 zl1c9ro1@gUHP|2)xy&#!Hn!*sg#xiyA~iWPZ_8&hq}iy~ zLJll7n~X{hi$!}pAzvh(%#kEUmoh470Z)`_ZKg7Z9u!n3Kh zLH?z~58O*-)41K`3Kep(SR}kSQ6R+pj@BAQt<}tfo;4PNb{M73qCwI*5(l&M3&7)# z1C>e%nwpw`#Zt}GTrt@dNCKhcGE!XvIvR~KQW%DuH4+IkR|ra85PlzqHVt{hXak{0 zlt18ycHhs?9t5n{Q+kBo`~Age6#^DfBsBRo$K8DUct9y3z{PX#7Q9}EOQ}(HHkt*#8mq-B5(-%wjhY7;guHKPY$}t^ zrjoH#W@>KEp2=l1CcREuT~(#3ucvns|H)5c z?-#c}3uLr9J3I56?%Wa|9G#4N1Ag!Nbsgk})$Ps0qob;`m#_2(BhfdxGFf*-s2k&p z#Gxj=hWpf`hxTu5Yu+v8^BQ~spBvi0IEIn=`K76`KnzQ_HJIdUTWbXZKA#BrU04!I z8jC9e9H_p%{xFnk2Xwv)(3@8Qv$YWzEe$}T&;XppXHr>FMhFv>$P~K)B4Ch&qQe0M zGy`sE1z_Y2qp)KDevK~lZ^bw>Gz(C=k@TZ_B-Drw^$N}A2~a@IC%Kh?B{Tp{r5Q9g zSQz2z8Jq(SZ<6WFEfr9p+8_pg_f7ipg;NQD6VogX{l>`1r5h9D(~j20hDK83!^RBSnP@(2`G#iCARwIul z^H?2#KnO609GUuTgmE->XO*&Gd>J_>@19x;$5*&ss+A-M4MaS0%}VxZO- zK|@mu+-zzvHRl53Gfu{zkO&E&Q?h`7l>vRdm-18NgKm*bbH(ppe6y}fnY(BAHpA|1 zTTOBq+?pz-9@TWC6k7qGC%=bdSiB_u5dt>wy+Pww0OkV-Dqq12SY;SnktOK|Skw4uGerlx&rVvJ*V+GiX-hj(;p zW|GU{rY!~yzqQ`TH|aHOs*uJ~i7-AXqdHg3bY1bdl&{F+gTXF1&akM++Efr3uu~TLQg(K0uzo zQlkUbnif#kv1U-vzF=-|OE8`s@gp;8(l6Co4HWX5PTuw^nC$6>eQgJTm@kR32B0P_@Cn3=Wt z$ET+KSFT-24-AbANo302=BC=oZEMynL4b3AE?yr9WVDdF`1{8{lfLQjBrkVgP1%Bx zn>j+@CFuf{fxB{3OOxX9!w2s-8}v<(Q?g%u?O68z{N$N=m&X&^yK}ozB9Y)!p`dAP ztfRK9T`irSos7TNeR<5`4cR0D0cFxF*iCgNzCouZ2s(!qvhiZY@QkXCXb0U?;G3>KhpE(A;jFt!Xzp&YPyN2(}1n z3lR_qBtRll0d<7|7|eCRQriYh&@>376(AJLgULA$Sab%N8Y+cM0OUdd#M~_KyXNS= zo=b7Zl5LJJkzbC*J?}V|#%|^_DJC_vuFfL8YvacC60wNa+4&CjkN@=FXQT1d=&JTM zjY1Cp5KVE%5@@lS1E+t#)PQV!9xFZ?3&vzJ~OR_m(< z|K)#t+hjEvl+Y$(OG`_vyEbobZmn-<^|_qv^H;9T*z7jn;PCKlJeBtHc-(xYQjFKt z=y+zx%tU+wW6>GF^t~t85O5yc`2+~ZvcT?+LJ-2h7le*dCdY(9Q7Vu`ECe!%7)Yfu zW+=B@0cnp?15|1qP*)m3h0Y8#S__b?4S+A!fIQ#>eG-boVm&7^LuG3cgDRmF_g+gQ$i7kC{7&0z{J#aVAI+)R_HNn zulMznL!*-y#^&s&D=U=zy6P%3RNI`s{{EEB;hthL4$xeC6v-o4lvpN7)LG58*7d9B zfBMh=ocN$Pu|DV%%j?MD!?~~i@P~_`WDlK6<*HK@C4KC^yIVH2ui66nvh>7>6NO`M zzB#JW8GDX=>lT0a1bQ(MQ@+$?Xjv{TXttzOtgw;k}2d9v{o}=g~zh^Q1+Uvg@ z?7nhgcKco1>ejTjH)|`j*0x5iuDRYQ@&@9#(;dJ9AxNE4(B5Wnkj`_Mu|}wSK_FTH zzHs)IQqq-*!sS}Z<$SJk=L3p43_$}#p{)cer3`+J#^FMiLZ$&uL!KUv&~pw)!M?N* zN~dFX=vdD2#q5cF+uQjKR*Q+tVOt3{2X#jz+-`UL-=BG5)NOZ0Uw--J(=E-7HJ?26 zkW{HsH+5aP?z(WLr@zixWoW3YX@WG-eBoNJ6sn;>akd0Oi$(lQRh7YB-`+I;!uP)) z|1cPRXpqtR(GyQ(zx&-c7EkAo(LP_e&ZJT4SOhMGd>K1=>STb!W!?DBH~yh!!>X2! z0$E`F_V@|<*S|d;e&Q?tKrvAQ4H~86kg0jZ;QFmbelqHtRA`25DtKq_&3u` zorRT-F^h%kX!s{O-=@hFpb}~5X~$_awGOfYH0Xxn;OUz)L1Y$;q7Rw5`E_I z1CQ2NtJ~Qus9vyQ%1R&r(6bRUaB)v_6!&zI9!?bd22e$e{!ex~%zJ znw3tb#Djx_(%zn)na_Xr?^yfy?Yjd?jO4_Lx9Oif^St-I`|hJ2`}89kf*`QdXU>p6 ze){Q!Ksv#D@k%Z66=Cl2i8-o0lVEfHYuq5iJxPUnKH zK;_9p_digxch}B4paxKnj*g=AXIvqd;}VgG55E_WPL7YJviZ2%>Gd1++DesLr7;-| zQlmj{QLB_{$jR|nUwb_?KflnAv$zqZQl6@Ur}2)>cW#`Tn3Q&PcV&Nb{2klI&07ked;GClB&|34`sin# zd)B|Ov~&@AKlXCKIi1Piu~=9p;5SsSTeG_M@lPG*K@R-()$4sXhe!JSLZNuXVyuyx zt7_D8rCtTtG8F}Q3L3Cv&`d~h0vBO4#=|j+Pg4|!Bnuc-$YH2!AUet{538m?q2_3rT4s6CmC z6k-WqYH}=U_xVrGA_=Oj)CyH&s10z zNJzm7G?~jlRh`BOEK^fmFaGr5d-rQK3gheCTxRI{Id?;KC10t4UKdpJlarI+Mqhsj zI=&&u%a|H%s7(qaMN?2C(GHK--Fe~inbzi(?HaYZ!)!KlaT+tir;Z@{ex+}CZgOTJ z-q=`M*HBxH8r`XfhKFlfn{Nxi~y)TnVE1rA)=hSabyzRJp{l;aAU|oaEB-yd5S@y)2 zzOr3YQ7NZr8cU}$9F0PuKn{~wBoJ~4yd5v(T+m7KsZyM@4DLK>^yT~B$7(x05iG=$5H1%4vvOSA+t+DY$=*#63g;T0W`{NRf}_~ zR6N+GYOtD`ni^GGwrpD0*if(LLpR^&^U>$dpHB`9_D|6mZf7ca;d7>D=KaZJDydQ^ zKy{T>*f%y7?7nfmXUDcX8z_pDk@=hiradT#C z%~)+s-NeSPecpd$`}V?z2H>v&a%s_D{ru-$TkpUBgjA#HYiz1-*u8z%XHT7ZPjlnO zfOl|YWMXz;ty)F5wltv{AL{st zx04GCwm2Hthdia#ZEaPXH>};dzGHP}@Aj=8ilW&nc(+@c8Uj!ycb+(PW+am<6b<@+}h$FMW!8of7<2qIgyuLTT>%@_>-U9V6|Ad@E5SLu`#myYWITE z?;ip@ZUp3twNY1Z^n2!R-gH!`*PD0k+^!#=pD|3%%=qBT<{S@ur1s)zjNwz zXk={G2fg1#KyyNngfcsq!xj)4wN@e)i^Q392K4p!#V>Yu+3&pTPIV+4)^vAYNnGse z8jK{8qX6e-D^*&aOfHv-ghC#R#S%?TO)6(+XQ@4V_Ta5eP0D(UIV%$ge4b3$!EB21 zT!z~^*Acf&FC~D_7s)O;-JT3wMx%+RQmK_vsRToLWhRpe+qrXR!5;}_MrURzP#XE+ z4|%gEPM_|pvY6^OZdk92#-lri$H#l2_f8B94i&QbLV!8QW=8oiJBo&EgEE*5VZEj1 z<^$U{dY*jp$@HsFKmCzm@R5Uz*0aw(i$Zqxj;$R>GX=8SY}Hn{T>$|q4lMS#AW>N- z9ZP0&sM#;HZv^Dd`8BIoXVie3pLk z=+UrPB#iIcwMzp*=ZC`qBh<+fX0q4sbpZ#r^}8yQj6^(Ja5%kTX!j#>nM{k$m|ZS6 zsHo5YtJR7URIt*Yx2_dT$0_l_M6n>TD!K}#SR z7#fOY3#0>pQob?VNZLwuuEtgZBTI{weY6$qp=w2c6t2}3@<3@l*>tBBY)#|EH?UBplhJP}dg{GKZ=?(om(tI1@#VO-XrzZ~I zgU6uLX`weyU$}TF#o==DyWsn&tf-Le+PQ0!+v`s(z3|+7v2;3uY`H(^OTYB;OP9i- z5Z&I=c9(!JsGOde#-?UwZ{`XVYR*E5#A2$krQIi&h!-rY8iLOrIg-BA+4+&E=f5S$ z%qmH>{~O=$!cVE4+WqrrJ;YgSr42IZ4Lql}`z+m3# z@gx9-XUc$>O$Lb&5^A^GjSUVB`@*sK#On4{>v>!rXLfcDKp=wILLmWZI7Q`%Tbh^= zxA(qU9yDECcBd=t@%h}4)2~)46+kAJWnO;$jS;Uuz~8rLSG&nz5Z}3F%a*aJ8P{*m zp1BTLR31s_l-(1F9ee#k_th&lHbxi%fdD%c3r(|m{J7a%9j-N67PShY+h{ZJ%0aEQ%ftUQmUjhO%oR`TqIp?pDjmX$zuO+l9>s4 zn=SrB3;s9|3}w8&KroZd(gHpoYiVv0H`La#p8Ms?=jWlSIdIS3tu@wa^}01{HuUuO z+g-lUQu(>AP&^(84v({GdX~rLf!3zR0AC`XPv&wi{Bouh=j-jXnf!r`3Ljfg=O(7-Y=<7$zl+NvEHxHOmCGA+14f#QwekX)GH0$-c^fP> zPE3Y*MWiT!v{(PxvwySu{5J);ypA0^hHfzfc7o0JZC>9o3msfNq*#^VNRXG#mOFM8 z^{hds706^FF^kP2gd!mg85dn!Tc<4)NYTr$zFL4z+CY}dFGBPRd9par?Dr(wnSxfHH& zl#|P5F*ch=tZiv*wHo!i$wJmVHaXk#zy9Ta8f~`url0=ond#|;h1V&9SfEH&skC#& z=CTQr=`ltv&u}1Dq`K6Ebl<+6y2n3t=wYwJzUG%N9d*sv7B43AWDg)%VL%r92XXlv zzCHHu2F$zpUVxe_lyq+_X6Dqq^PADi`Y1$lWvyN&nu_Oc@sC3N`xibx<@nMh^i zI0l3~HcL#77ZjNa6X%dDddurTB%A@Xez?iDno!vQQ`CF&u8}U-%mny ze0#UlkLmjV4dg%c{;{oFw{luGZ4%0aDnZ{!uK)rerbtrgibQz%6v<0w(gakaL^c({ z_#Ea?9wRs$nv1b0z~$0BD4{HlD9aWIvr0ZUDHBWL<|=&>=Wvoa4ksl_B(f0D<)ZHY fT>rT~cI*EFpGBP8D3`p{00000NkvXXu0mjfQI)WT literal 0 HcmV?d00001 diff --git a/Sub/WinsockOracs/Backup/SharedMethods.vb b/Sub/WinsockOracs/Backup/SharedMethods.vb new file mode 100644 index 0000000..4ed0790 --- /dev/null +++ b/Sub/WinsockOracs/Backup/SharedMethods.vb @@ -0,0 +1,85 @@ +Option Strict On + +Imports System.Net.Sockets + +''' +''' This call contains shared methods that any class can use. +''' +Public Class SharedMethods + + ''' + ''' Raises an error on the parent Winsock object. + ''' + ''' The parent Winsock object to raise the error on. + ''' A String containing a message describing the error being raised. + Protected Friend Shared Sub RaiseError(ByRef iParent As IWinsock, ByVal msg As String) + ' First use the StackTrace to get the calling class and function. + Dim CurrentStack As New System.Diagnostics.StackTrace() + Dim callingFunction As String = CurrentStack.GetFrame(1).GetMethod.Name + Dim callingClass As String = CurrentStack.GetFrame(1).GetMethod.DeclaringType.ToString() + Dim caller As String = CStr(IIf(callingFunction.StartsWith("."), callingClass & callingFunction, callingClass & "." & callingFunction)) + ' Create the event arguement + Dim e As New WinsockErrorReceivedEventArgs(msg, caller) + ' Raise the event only if there really is a parent + If iParent IsNot Nothing Then + iParent.OnErrorReceived(e) + End If + End Sub + + ''' + ''' Raises an error on the parent Winsock object. + ''' + ''' The parent Winsock object to raise the error on. + ''' A String containing a message describing the error being raised. + ''' A String containing extra details describing the error being raised. + Protected Friend Shared Sub RaiseError(ByRef iParent As IWinsock, ByVal msg As String, ByVal details As String) + ' First use the StackTrace to get the calling class and function + Dim CurrentStack As New System.Diagnostics.StackTrace() + Dim callingFunction As String = CurrentStack.GetFrame(1).GetMethod.Name + Dim callingClass As String = CurrentStack.GetFrame(1).GetMethod.DeclaringType.ToString() + Dim caller As String = CStr(IIf(callingFunction.StartsWith("."), callingClass & callingFunction, callingClass & "." & callingFunction)) + ' Create the event arguement + Dim e As New WinsockErrorReceivedEventArgs(msg, caller, details) + ' Raise the event only if there really is a parent + If iParent IsNot Nothing Then + iParent.OnErrorReceived(e) + End If + End Sub + + ''' + ''' Raises an error on the parent Winsock object. + ''' + ''' The parent Winsock object to raise the error on. + ''' A String containing a message describing the error being raised. + ''' A String containing extra details describing the error being raised. + ''' A value containing the socket's error code. + Protected Friend Shared Sub RaiseError(ByRef iParent As IWinsock, ByVal msg As String, ByVal details As String, ByVal errCode As SocketError) + ' First use the StackTrace to get the calling class and function + Dim CurrentStack As New System.Diagnostics.StackTrace() + Dim callingFunction As String = CurrentStack.GetFrame(1).GetMethod.Name + Dim callingClass As String = CurrentStack.GetFrame(1).GetMethod.DeclaringType.ToString() + Dim caller As String = CStr(IIf(callingFunction.StartsWith("."), callingClass & callingFunction, callingClass & "." & callingFunction)) + ' Create the event arguement + Dim e As New WinsockErrorReceivedEventArgs(msg, caller, details, errCode) + ' Raise the event only if there really is a parent + If iParent IsNot Nothing Then + iParent.OnErrorReceived(e) + End If + End Sub + + ''' + ''' Removes items from the beginning of an array. + ''' + Protected Friend Shared Function ShrinkArray(Of arrayType)(ByRef arr() As arrayType, ByVal desiredLengthToTrim As Integer) As arrayType() + ' Grab desired length from array - this will be returned + Dim retArr(desiredLengthToTrim - 1) As arrayType + Array.Copy(arr, 0, retArr, 0, desiredLengthToTrim) + ' Trim what we grabbed out of the array + Dim tmpArr(arr.GetUpperBound(0) - desiredLengthToTrim) As arrayType + Array.Copy(arr, desiredLengthToTrim, tmpArr, 0, arr.Length - desiredLengthToTrim) + arr = DirectCast(tmpArr.Clone(), arrayType()) + ' Return the data + Return retArr + End Function + +End Class diff --git a/Sub/WinsockOracs/Backup/Winsock Orcas.vbproj b/Sub/WinsockOracs/Backup/Winsock Orcas.vbproj new file mode 100644 index 0000000..b9f83ae --- /dev/null +++ b/Sub/WinsockOracs/Backup/Winsock Orcas.vbproj @@ -0,0 +1,129 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {C422352B-E7E1-4CA6-9275-1142249D40E2} + Library + Winsock_Orcas + Winsock Orcas + 512 + Windows + v3.5 + On + Binary + Off + On + + + true + full + true + true + bin\Debug\ + Winsock Orcas.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Winsock Orcas.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + Designer + frmAbout.vb + + + + + + frmAbout.vb + + + Form + + + + + + + Component + + + + + + + + + + + \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/Winsock.png b/Sub/WinsockOracs/Backup/Winsock.png new file mode 100644 index 0000000000000000000000000000000000000000..f54bf736cdc0d58a07c0a0171cc5a25b5e007e0e GIT binary patch literal 749 zcmVIO@l#-%@K+Q7zAyIUxr7=;KLsPe99&9Qy zmp_aWYb=E&ic)qE1ceaTL3I)s3+v0Pdzpnl)xpCDFYk3f*Ymue2{3J{X-|sELAYmu z=`Mqi(_pe~fr(oVM(R_x-rovW3XC#01TV%_L0BAvr#_hKf!+|yzTW7{?3 zIuq0Vz);x1M>XE7-^4 zB)oZq-|zSSd<|RjL3Q0FaG93$Sb#=w6_iQ0NQ>FM@oa+ksPjrN7+e#)=Jk5tx!vxB zO+TG2$)d_PZTpo~g1ZG9e0&b?=MikQx3}AOy1Ns6Sn&5>og;!Hg4gVJ`{#y+hUEVS z2o4GUBDiwY}B+wa2=)lh*=g2T3C=Dq fF3wcNZJhl8^(M*LyGLEt00000NkvXXu0mjfpmtoM literal 0 HcmV?d00001 diff --git a/Sub/WinsockOracs/Backup/Winsock.vb b/Sub/WinsockOracs/Backup/Winsock.vb new file mode 100644 index 0000000..2cbb805 --- /dev/null +++ b/Sub/WinsockOracs/Backup/Winsock.vb @@ -0,0 +1,583 @@ +Option Strict On + +Imports System.ComponentModel +Imports System.ComponentModel.Design +Imports System.Drawing +Imports System.Net + + _ + _ + _ +Public Class Winsock + Inherits Component + Implements IWinsock + + Public Sub New() + _localPort = 8080 + _remotePort = 8080 + _remoteHost = "localhost" + _maxPendingConnections = 1 + _legacySupport = False + _protocol = WinsockProtocol.Tcp + _wsState = WinsockStates.Closed + _asSock = New AsyncSocket(Me) + End Sub + +#Region " Events " + + ''' + ''' Triggers an event declared at module level within a class, form, or document in a thread-safe manner. + ''' + ''' The event to be raised. + ''' The arguements for the event. + Private Sub RaiseEventSafe(ByVal ev As System.Delegate, ByRef args() As Object) + Dim bFired As Boolean + If ev IsNot Nothing Then + For Each singleCast As System.Delegate In ev.GetInvocationList() + bFired = False + Try + Dim syncInvoke As ISynchronizeInvoke = CType(singleCast.Target, ISynchronizeInvoke) + If syncInvoke IsNot Nothing AndAlso syncInvoke.InvokeRequired Then + bFired = True + syncInvoke.BeginInvoke(singleCast, args) + Else + bFired = True + singleCast.DynamicInvoke(args) + End If + Catch ex As Exception + If Not bFired Then singleCast.DynamicInvoke(args) + End Try + Next + End If + End Sub + + ''' + ''' Occurs when connection is achieved (client and server). + ''' + Public Event Connected(ByVal sender As Object, ByVal e As WinsockConnectedEventArgs) Implements IWinsock.Connected + ''' + ''' Occurs on the server when a client is attempting to connect. + ''' + ''' Client registers connected at this point. Server must Accept in order for it to be connected. + Public Event ConnectionRequest(ByVal sender As Object, ByVal e As WinsockConnectionRequestEventArgs) Implements IWinsock.ConnectionRequest + ''' + ''' Occurs when data arrives on the socket. + ''' + ''' Raised only after all parts of the data have been collected. + Public Event DataArrival(ByVal sender As Object, ByVal e As WinsockDataArrivalEventArgs) Implements IWinsock.DataArrival + ''' + ''' Occurs when disconnected from the remote computer (client and server). + ''' + Public Event Disconnected(ByVal sender As Object, ByVal e As System.EventArgs) Implements IWinsock.Disconnected + ''' + ''' Occurs when an error is detected in the socket. + ''' + ''' May also be raised on disconnected (depending on disconnect circumstance). + Public Event ErrorReceived(ByVal sender As Object, ByVal e As WinsockErrorReceivedEventArgs) Implements IWinsock.ErrorReceived + ''' + ''' Occurs while the receive buffer is being filled with data. + ''' + Public Event ReceiveProgress(ByVal sender As Object, ByVal e As WinsockReceiveProgressEventArgs) Implements IWinsock.ReceiveProgress + ''' + ''' Occurs when sending of data is completed. + ''' + Public Event SendComplete(ByVal sender As Object, ByVal e As WinsockSendEventArgs) Implements IWinsock.SendComplete + ''' + ''' Occurs when the send buffer has been sent but not all the data has been sent yet. + ''' + Public Event SendProgress(ByVal sender As Object, ByVal e As WinsockSendEventArgs) Implements IWinsock.SendProgress + ''' + ''' Occurs when the state of the socket changes. + ''' + Public Event StateChanged(ByVal sender As Object, ByVal e As WinsockStateChangedEventArgs) Implements IWinsock.StateChanged + + ''' + ''' Raises the Connected event. + ''' + Public Sub OnConnected(ByVal e As WinsockConnectedEventArgs) Implements IWinsock.OnConnected + RaiseEventSafe(ConnectedEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the ConnectionRequest event. + ''' + Public Sub OnConnectionRequest(ByVal e As WinsockConnectionRequestEventArgs) Implements IWinsock.OnConnectionRequest + RaiseEventSafe(ConnectionRequestEvent, New Object() {Me, e}) + If e.Cancel Then + e.Client.Disconnect(False) + e.Client.Close() + End If + End Sub + + ''' + ''' Raises the DataArrival event. + ''' + Public Sub OnDataArrival(ByVal e As WinsockDataArrivalEventArgs) Implements IWinsock.OnDataArrival + RaiseEventSafe(DataArrivalEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the Disconnected event. + ''' + Public Sub OnDisconnected() Implements IWinsock.OnDisconnected + RaiseEventSafe(DisconnectedEvent, New Object() {Me, New System.EventArgs}) + End Sub + + ''' + ''' Raises the ErrorReceived event. + ''' + Public Sub OnErrorReceived(ByVal e As WinsockErrorReceivedEventArgs) Implements IWinsock.OnErrorReceived + RaiseEventSafe(ErrorReceivedEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the ReceiveProgress event. + ''' + Public Sub OnReceiveProgress(ByVal e As WinsockReceiveProgressEventArgs) Implements IWinsock.OnReceiveProgress + RaiseEventSafe(ReceiveProgressEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the SendComplete event. + ''' + Public Sub OnSendComplete(ByVal e As WinsockSendEventArgs) Implements IWinsock.OnSendComplete + RaiseEventSafe(SendCompleteEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the SendProgress event. + ''' + Public Sub OnSendProgress(ByVal e As WinsockSendEventArgs) Implements IWinsock.OnSendProgress + RaiseEventSafe(SendProgressEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the StateChanged event. + ''' + Private Sub OnStateChanged(ByVal e As WinsockStateChangedEventArgs) 'Implements IWinsock.OnStateChanged + If _wsState <> e.New_State Then + _wsState = e.New_State + RaiseEventSafe(StateChangedEvent, New Object() {Me, e}) + End If + End Sub + +#End Region + +#Region " Private Members " + + Private _asSock As AsyncSocket + Private _wsState As WinsockStates + Private _localPort As Integer + Private _maxPendingConnections As Integer + Private _remoteHost As String + Private _remotePort As Integer + Private _legacySupport As Boolean + Private _protocol As WinsockProtocol + +#End Region + +#Region " Helper Methods " + + ''' + ''' Encapsulates the OnStateChanged methods so the AsyncSocket + ''' doesn't have to build the EventArgs parameter all the time. + ''' + ''' The new state of the Winsock. + Protected Friend Sub ChangeState(ByVal new_state As WinsockStates) Implements IWinsock.ChangeState + OnStateChanged(New WinsockStateChangedEventArgs(_wsState, new_state)) + End Sub + + ''' + ''' When the port is set dynamically by using port 0, the socket can now update the property of the component. + ''' + ''' The port we are now listening on. + Protected Friend Sub ChangeLocalPort(ByVal new_port As Integer) Implements IWinsock.ChangeLocalPort + _localPort = new_port + End Sub + +#End Region + +#Region " Public Properties " + + ''' + ''' Gets or sets a value indicating the interal size of the byte buffers. + ''' + Public Property BufferSize() As Integer + Get + Return _asSock.BufferSize + End Get + Set(ByVal value As Integer) + _asSock.BufferSize = value + End Set + End Property + + ''' + ''' Gets a value indicating whether the buffer has data for retrieval. + ''' + _ + Public ReadOnly Property HasData() As Boolean + Get + Return _asSock.BufferCount > 0 + End Get + End Property + + ''' + ''' Gets or sets a value indicating if Legacy support should be used or not. + ''' + ''' Legacy support is to support older winsock style connections. + Public Property LegacySupport() As Boolean Implements IWinsock.LegacySupport + Get + Return _legacySupport + End Get + Set(ByVal value As Boolean) + If Not value AndAlso Protocol = WinsockProtocol.Udp Then + Throw New Exception("LegacySupport is required for UDP connections.") + End If + _legacySupport = value + End Set + End Property + + ''' + ''' Gets the local machine's IP address(es). + ''' + _ + Public ReadOnly Property LocalIP() As String() + Get + Dim h As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName) + Dim s(h.AddressList.Length - 1) As String + For i As Integer = 0 To h.AddressList.Length - 1 + s(i) = CType(h.AddressList.GetValue(i), Net.IPAddress).ToString + Next + Return s + End Get + End Property + + ''' + ''' Gets or sets a value indicating the port the control should listen on. + ''' + ''' Cannot change while listening, connected, or connecting - but can change while closing. + Public Property LocalPort() As Integer + Get + Return _localPort + End Get + Set(ByVal value As Integer) + Select Case State + Case WinsockStates.Listening + Throw New Exception("Cannot change the local port while already listening on a port.") + Case WinsockStates.Connected + Throw New Exception("Cannot change the local port of a connection that is already active.") + Case Else + If State <> WinsockStates.Closed AndAlso State <> WinsockStates.Closing Then + Throw New Exception("Cannot change the local port while the component is processing, it may have adverse effects on the connection process.") + End If + End Select + _localPort = value + End Set + End Property + + ''' + ''' Gets or sets a value that control the length of the maximum length of the pending connections queue. + ''' + ''' Cannot change while listening. + Public Property MaxPendingConnections() As Integer + Get + Return _maxPendingConnections + End Get + Set(ByVal value As Integer) + Select Case State + Case WinsockStates.Listening + Throw New Exception("Cannot change the pending connections value while already listening.") + End Select + _maxPendingConnections = value + End Set + End Property + + ''' + ''' Gets a NetworkStream that this Winsock object is based on. + ''' + _ + Public ReadOnly Property NetworkStream() As System.Net.Sockets.NetworkStream + Get + Return _asSock.UnderlyingStream + End Get + End Property + + ''' + ''' Gets or sets the winsock protocol to use when communicating with the remote computer. + ''' + _ + Public Property Protocol() As WinsockProtocol Implements IWinsock.Protocol + Get + Return _protocol + End Get + Set(ByVal value As WinsockProtocol) + If State <> WinsockStates.Closed Then + Throw New Exception("Cannot change the protocol while listening or connected to a remote computer.") + End If + _protocol = value + End Set + End Property + + ''' + ''' Gets or sets a value that determines what remote computer to connect to, or is currently connected to. + ''' + ''' Can only change if closed or listening. + Public Property RemoteHost() As String Implements IWinsock.RemoteHost + Get + Return _remoteHost + End Get + Set(ByVal value As String) + If State <> WinsockStates.Closed AndAlso State <> WinsockStates.Listening Then + Throw New Exception("Cannot change the remote host while already connected to a remote computer.") + End If + _remoteHost = value + End Set + End Property + + ''' + ''' Gets or sets a value that determines which port on the remote computer to connect on, or is currently connected on. + ''' + ''' Can only change if closed or listening. + Public Property RemotePort() As Integer Implements IWinsock.RemotePort + Get + Return _remotePort + End Get + Set(ByVal value As Integer) + If State <> WinsockStates.Closed AndAlso State <> WinsockStates.Listening Then + Throw New Exception("Cannot change the remote port while already connected to a remote computer.") + End If + _remotePort = value + End Set + End Property + + ''' + ''' Gets the state of the Winsock control. + ''' + _ + Public ReadOnly Property State() As WinsockStates Implements IWinsock.State + Get + Return _wsState + End Get + End Property + +#End Region + +#Region " Public Methods " + + ''' + ''' Places a Winsock in a listening state. + ''' + Public Sub Listen() + _asSock.Listen(LocalPort, MaxPendingConnections) + End Sub + ''' + ''' Places a Winsock in a listening state. + ''' + ''' The port Winsock should listen on. + Public Sub Listen(ByVal port As Integer) + If port < 0 Then + Throw New ArgumentException("Port cannot be less than zero.", "port") + End If + LocalPort = port + Listen() + End Sub + ''' + ''' Places a Winsock in a listening state. + ''' + ''' The IP address the Winsock should listen on. This must be an ip address. + Public Sub Listen(ByVal ip As String) + If ip Is Nothing Then + Listen() + Else + Dim ipAddr As IPAddress = Nothing + If Not IPAddress.TryParse(ip, ipAddr) Then + Throw New ArgumentException("IP address specified is not a valid IP address.", "ip") + End If + _asSock.Listen(LocalPort, MaxPendingConnections, ipAddr) + End If + End Sub + ''' + ''' Places a Winsock in a listening state. + ''' + ''' The IP address the Winsock should listen on. + ''' The port Winsock should listen on. + Public Sub Listen(ByVal ip As String, ByVal port As Integer) + If port < 0 Then + Throw New ArgumentException("Port cannot be less than zero.", "port") + End If + LocalPort = port + If ip Is Nothing Then + Listen() + Else + Dim ipAddr As IPAddress = Nothing + If Not IPAddress.TryParse(ip, ipAddr) Then + Throw New ArgumentException("IP address specified is not a valid IP address.", "ip") + End If + _asSock.Listen(LocalPort, MaxPendingConnections, ipAddr) + End If + End Sub + + ''' + ''' Accepts a client connect as valid and begins to monitor it for incoming data. + ''' + ''' A System.Net.Sockets.Socket that represents the client being accepted. + Public Sub Accept(ByVal client As Sockets.Socket) + If _asSock.Accept(client) Then + _localPort = _asSock.LocalPort + ' also set remote host and port + End If + End Sub + + ''' + ''' Creates an new Winsock and accepts the client connection on it. + ''' + ''' A System.Net.Sockets.Socket that represents the client being accepted. + ''' + ''' This was created to be used by the listener, to keep the listener listening while + ''' also accepting a connection. + ''' + Public Function AcceptNew(ByVal client As Sockets.Socket) As Winsock + Dim wskReturn As New Winsock() + wskReturn.Protocol = Me.Protocol + wskReturn.LegacySupport = Me.LegacySupport + wskReturn.Accept(client) + Return wskReturn + End Function + + ''' + ''' Closes an open Winsock connection. + ''' + Public Sub Close() + _asSock.Close() + End Sub + + ''' + ''' Establishes a connection to a remote host. + ''' + Public Sub Connect() + _asSock.Connect(RemoteHost, RemotePort) + End Sub + ''' + ''' Establishes a connection to a remote host. + ''' + ''' A System.String containing the Hostname or IP address of the remote host. + ''' A value indicating the port on the remote host to connect to. + Public Sub Connect(ByVal remoteHostOrIP As String, ByVal remote_port As Integer) + RemoteHost = remoteHostOrIP + RemotePort = remote_port + Connect() + End Sub + + ''' + ''' Sends an object to a connected socket on a remote computer. + ''' + ''' The object to send. + ''' + ''' The object is first serialized using a BinaryFormatter - unless + ''' it is already a byte array, in which case it just sends the byte array. + ''' + Public Sub Send(ByVal data As Object) + Dim byt() As Byte + If LegacySupport AndAlso data.GetType Is GetType(String) Then + byt = System.Text.Encoding.Default.GetBytes(CStr(data)) + Else + byt = ObjectPacker.GetBytes(data) + End If + _asSock.Send(byt) + End Sub + ''' + ''' Sends a file to a connected socket on a remote computer. + ''' + ''' The full path to the file you want to send. + ''' + ''' Creates a special file object to send, so the receiving end knows what to do with it. + ''' + Public Sub SendFile(ByVal filename As String) + Dim wsf As New WinsockFileData() + Try + If Not wsf.ReadFile(filename) Then + Throw New Exception("File does not exist, or there was a problem reading the file.") + End If + If LegacySupport Then + Send(wsf.FileData) + Else + Send(wsf) + End If + Catch ex As Exception + SharedMethods.RaiseError(Me, ex.Message) + End Try + End Sub + + ''' + ''' Gets the next object from the buffer, removing it from the buffer. + ''' + ''' + ''' A Deserialized object or if it can't be deserialized the byte array. + ''' + Public Function [Get]() As Object + Dim byt() As Byte = _asSock.GetData() + If byt Is Nothing Then Return Nothing + Return ObjectPacker.GetObject(byt) + End Function + ''' + ''' Gets the next object from the buffer as the supplied type, removing it from the buffer. + ''' + ''' The System.Type you wish to have the data returned as. + ''' + ''' A Deserialized object converted to the data type you wish. + ''' + ''' + ''' This function was added to make it easier for Option Strict users. + ''' It allows for easier conversion instead of the user using CType, DirectCast, or the like. + ''' Can throw an error if you specify the wrong type. + ''' + Public Function [Get](Of dataType)() As dataType + Dim byt() As Byte = _asSock.GetData() + If byt Is Nothing Then Return Nothing + Dim obj As Object + If LegacySupport AndAlso GetType(dataType) Is GetType(String) Then + obj = System.Text.Encoding.Default.GetString(byt) + Else + obj = ObjectPacker.GetObject(byt) + End If + Return DirectCast(obj, dataType) + End Function + + ''' + ''' Gets the next object from the buffer, leaving it ing the buffer. + ''' + ''' + ''' A Deserialized object or if it can't be deserialized the byte array. + ''' + Public Function Peek() As Object + Dim byt() As Byte = _asSock.PeekData() + If byt Is Nothing Then Return Nothing + Return ObjectPacker.GetObject(byt) + End Function + ''' + ''' Gets the next object from the buffer as the supplied type, leaving it in the buffer. + ''' + ''' The System.Type you wish to have the data returned as. + ''' + ''' A Deserialized object converted to the data type you wish. + ''' + ''' + ''' This function was added to make it easier for Option Strict users. + ''' It allows for easier conversion instead of the user using CType, DirectCast, or the like. + ''' Can throw an error if you specify the wrong type. + ''' + Public Function Peek(Of dataType)() As dataType + Dim byt() As Byte = _asSock.PeekData() + If byt Is Nothing Then Return Nothing + Dim obj As Object + If LegacySupport AndAlso GetType(dataType) Is GetType(String) Then + obj = System.Text.Encoding.Default.GetString(byt) + Else + obj = ObjectPacker.GetObject(byt) + End If + Return DirectCast(obj, dataType) + End Function + +#End Region + +End Class diff --git a/Sub/WinsockOracs/Backup/WinsockCollection.vb b/Sub/WinsockOracs/Backup/WinsockCollection.vb new file mode 100644 index 0000000..e9ec07c --- /dev/null +++ b/Sub/WinsockOracs/Backup/WinsockCollection.vb @@ -0,0 +1,571 @@ +Imports System.ComponentModel + +''' +''' A collection of Winsock objects. +''' +Public Class WinsockCollection + Inherits CollectionBase + + +#Region " Private Members " + + ' These two hashtables store the key's and the values. + ' The base class's List store the GUID that ties the + ' keys to the values + Private _keys As Hashtable + Private _values As Hashtable + + ' These are for auto removal of the Winsock object + ' when the Winsock's Disconnected event is raised. + Private _autoRemoval As Queue + Private _autoRemove As Boolean = False + + ' These are for timing and removal of every Winsock + ' object in the collection - only used when the + ' Clear() method is run. + Private _clearRemoval As Queue + Private _clearRemove As Boolean = False + Private _clearOK As Boolean = False + + ' Allows LegacySupport to work in a multi-client + ' environment + Private _legacySupport As Boolean = False + +#End Region + +#Region " Constructor " + + ''' + ''' Initializes a new instance of the WinsockCollection class. + ''' + ''' + ''' Determines if the collection should automatically remove the + ''' connection when the Disconnected event is fired. + ''' + ''' + ''' Enables LegacySupport for connections accepted using the + ''' collections Accept method. + ''' + Public Sub New(Optional ByVal auto_remove As Boolean = False, Optional ByVal legacy_support As Boolean = False) + _keys = New Hashtable + _values = New Hashtable + _autoRemoval = New Queue + _autoRemove = auto_remove + _clearRemoval = New Queue + _legacySupport = legacy_support + End Sub + +#End Region + +#Region " Overriden Methods " + + ''' + ''' Run when the base class's list is finished clearing. + ''' Triggers clearing of the keys and values - closing + ''' all connections. + ''' + Protected Overrides Sub OnClearComplete() + MyBase.OnClearComplete() + _keys.Clear() + Dim b As Boolean = _autoRemove : _autoRemove = False + _clearOK = False + _clearRemove = True + For Each wsk As Winsock In _values.Values + wsk.Close() + Next + _clearOK = True + _autoRemove = b + End Sub + + ''' + ''' Causes the CountChanged event to be triggered when an item is added to the collection. + ''' + Protected Overrides Sub OnInsertComplete(ByVal index As Integer, ByVal value As Object) + MyBase.OnInsertComplete(index, value) + OnCountChanged(List.Count - 1, List.Count) + End Sub + + ''' + ''' Causes the CountChanged event to be triggered when an item is removed from the collection. + ''' + Protected Overrides Sub OnRemoveComplete(ByVal index As Integer, ByVal value As Object) + MyBase.OnRemoveComplete(index, value) + OnCountChanged(List.Count + 1, List.Count) + End Sub + +#End Region + +#Region " Private Methods " + + ''' + ''' Run during the Clearing of the collection. + ''' The method actually clears the values safely + ''' so as not to cause exceptions. Triggered via + ''' the last Disconnected event. + ''' + Private Sub ClearAllValues() + While _values.Count > 0 + If _clearOK AndAlso _clearRemoval.Count > 0 Then + Dim i As Integer = _values.Count + Dim gid2Rem As Guid = CType(_clearRemoval.Dequeue(), Guid) + _values.Remove(gid2Rem) + OnCountChanged(i, _values.Count) + End If + End While + End Sub + + ''' + ''' Attemps to retrieve the GUID of the item at the index specified. + ''' + ''' The zero-based index of the GUID you are attempting to find. + Private Function getGID(ByVal index As Integer) As Guid + Return CType(List.Item(index), Guid) + End Function + + ''' + ''' Attempts to retrieve the GUID of the item using the Key given to the item. + ''' + ''' The key whose GUID you are looking for. + Private Function getGID(ByVal key As Object) As Guid + For Each gid As Guid In _keys.Keys + If Object.ReferenceEquals(_keys(gid), key) Then Return gid + Next + Return Guid.Empty + End Function + + ''' + ''' Removes the given GUID and it's ties from the collections. + ''' + ''' The GUID to remove. + Private Sub RemoveGID(ByVal gid As Guid) + If gid <> Guid.Empty Then + CType(_values(gid), Winsock).Dispose() + _values.Remove(gid) + _keys.Remove(gid) + List.Remove(gid) + End If + End Sub + + ''' + ''' Adds a winsock value to the collection. + ''' + ''' The GUID of the object. + ''' The Key of the object (may be nothing). + ''' The Winsock that is to be added to the collection. + ''' Attaches handlers to each Winsock event so the collection can act as a proxy. + Private Sub Add(ByVal gid As Guid, ByVal key As Object, ByVal value As Winsock) + AddHandler value.Connected, AddressOf OnConnected + AddHandler value.ConnectionRequest, AddressOf OnConnectionRequest + AddHandler value.DataArrival, AddressOf OnDataArrival + AddHandler value.Disconnected, AddressOf OnDisconnected + AddHandler value.ErrorReceived, AddressOf OnErrorReceived + AddHandler value.SendComplete, AddressOf OnSendComplete + AddHandler value.SendProgress, AddressOf OnSendProgress + AddHandler value.StateChanged, AddressOf OnStateChanged + _keys.Add(gid, key) + _values.Add(gid, value) + List.Add(gid) + End Sub + + ''' + ''' Method to remove an object automatically - threaded to avoid problems. + ''' + Private Sub RemovalThread() + Threading.Thread.Sleep(50) + Dim gid As Guid = CType(_autoRemoval.Dequeue(), Guid) + RemoveGID(gid) + End Sub + +#End Region + +#Region " Public Methods " + + ''' + ''' Retrieves the GUID assigned to the specified Winsock object in the collection. + ''' + ''' The Winsock object to find the GUID of. + Public Function findGID(ByVal value As Winsock) As Guid + If Not ContainsValue(value) Then Return Guid.Empty + For Each gid As Guid In _values.Keys + If Object.ReferenceEquals(_values(gid), value) Then Return gid + Next + Return Guid.Empty + End Function + + ''' + ''' Retrieves the Key assigned to the specified Winsock object in the collection. + ''' + ''' The Winsock object to find the Key of. + ''' The key object that was assigned to the Winsock - may be Nothing. + Public Function findKey(ByVal value As Winsock) As Object + Dim gid As Guid = findGID(value) + If gid = Guid.Empty Then Return Nothing + Return _keys(gid) + End Function + + ''' + ''' Determines if the collection contains the key specified. + ''' + ''' The key to search the collection for. + Public Function ContainsKey(ByVal key As Object) As Boolean + If key Is Nothing Then + Throw New ArgumentNullException("key") + End If + Return _keys.ContainsValue(key) + End Function + + ''' + ''' Determines if the collection contains the specified value. + ''' + ''' The value to search the collection for. + Public Function ContainsValue(ByVal value As Winsock) As Boolean + Return _values.ContainsValue(value) + End Function + + ''' + ''' Removes the value at the specified index. Use this instead of RemoveAt. + ''' + ''' The zero-based index of the item you wish to remove. + Public Sub Remove(ByVal index As Integer) + Dim gid As Guid = getGID(index) + RemoveGID(gid) + End Sub + + ''' + ''' Removes the value with the specified key. + ''' + ''' The key of the value you wish to remove. + Public Sub Remove(ByVal key As Object) + If TypeOf (key) Is Integer Then + Dim gidIndex As Guid = getGID(CInt(key)) + RemoveGID(gidIndex) + Exit Sub + End If + If Not ContainsKey(key) Then Exit Sub + Dim gid As Guid = getGID(key) + RemoveGID(gid) + End Sub + + ''' + ''' Removes the value with the specified Guid. + ''' + ''' The Guid of the value you wish to remove. + Public Sub Remove(ByVal gid As Guid) + RemoveGID(gid) + End Sub + + ''' + ''' Adds a value to the collection. + ''' + ''' The Winsock object to add to the collection. + ''' Returns the GUID assigned to the element. + Public Function Add(ByVal value As Winsock) As Guid + Dim gid As Guid = Guid.NewGuid() + Add(gid, Nothing, value) + Return gid + End Function + ''' + ''' Adds a value to the collection. + ''' + ''' The Winsock object to add to the collection. + ''' The Key of the element to add. + ''' Returns the GUID assigned to the element. + Public Function Add(ByVal value As Winsock, ByVal key As Object) As Guid + Dim gid As Guid = Guid.NewGuid() + Add(gid, key, value) + Return gid + End Function + + ''' + ''' Accepts an incoming connection and adds it to the collection. + ''' + ''' The client to accept. + ''' Returns the GUID assigned to the element. + Public Function Accept(ByVal client As System.Net.Sockets.Socket) As Guid + Dim wsk As New Winsock() + wsk.LegacySupport = _legacySupport + Dim gid As Guid = Add(wsk, Nothing) + wsk.Accept(client) + Return gid + End Function + ''' + ''' Accepts an incoming connection and adds it to the collection. + ''' + ''' The client to accept. + ''' The Key of the element to add. + ''' Returns the GUID assigned to the element. + Public Function Accept(ByVal client As System.Net.Sockets.Socket, ByVal key As Object) As Guid + Dim wsk As New Winsock() + wsk.LegacySupport = _legacySupport + Dim gid As Guid = Me.Add(wsk, key) + wsk.Accept(client) + Return gid + End Function + + ''' + ''' Connects to a remote host and adds it to the collection. + ''' + ''' A containing the Hostname or IP address of the remote host. + ''' A value indicating the port on the remote host to connect to. + ''' Return the GUID assigned to the element. + Public Function Connect(ByVal remoteHostOrIP As String, ByVal remotePort As Integer) As Guid + Dim wsk As New Winsock() + wsk.Protocol = WinsockProtocol.Tcp + wsk.LegacySupport = _legacySupport + Dim gid As Guid = Add(wsk, Nothing) + CType(_values(gid), Winsock).Connect(remoteHostOrIP, remotePort) + End Function + ''' + ''' Connects to a remote host and adds it to the collection. + ''' + ''' A containing the Hostname or IP address of the remote host. + ''' A value indicating the port on the remote host to connect to. + ''' The Key of the element to add. + ''' Return the GUID assigned to the element. + Public Function Connect(ByVal remoteHostOrIP As String, ByVal remotePort As Integer, ByVal key As Object) As Guid + Dim wsk As New Winsock() + wsk.Protocol = WinsockProtocol.Tcp + wsk.LegacySupport = _legacySupport + Dim gid As Guid = Add(wsk, key) + CType(_values(gid), Winsock).Connect(remoteHostOrIP, remotePort) + End Function + + ''' + ''' Gets an Array of all the remote IP addresses of each connection in this collection. + ''' + Public Function GetRemoteIPs() As ArrayList + Dim ar As New ArrayList + For Each key As Object In _values.Keys + ar.Add(CType(_values(key), Winsock).RemoteHost) + Next + Return ar + End Function + +#End Region + +#Region " Public Properties " + + ''' + ''' Gets a Collection containing all the keys in this collection. + ''' + Public ReadOnly Property Keys() As System.Collections.ICollection + Get + Return _keys.Values() + End Get + End Property + + ''' + ''' Gets a Collection containing all the values in this collection. + ''' + Public ReadOnly Property Values() As System.Collections.ICollection + Get + Return _values.Values + End Get + End Property + + ''' + ''' Gets or sets the Winsock at the specified index. + ''' + ''' A zero-based index of the Winsock to get or set. + Default Public Property Item(ByVal index As Integer) As Winsock + Get + Dim gid As Guid = getGID(index) + Return CType(_values(gid), Winsock) + End Get + Set(ByVal value As Winsock) + Dim gid As Guid = getGID(index) + If Not _values.ContainsKey(gid) Then + Add(gid, Nothing, value) + Else + _values(gid) = value + End If + End Set + End Property + + ''' + ''' Gets or sets the Winsock associated with the specified key. + ''' + ''' The key whose value to get or set. + Default Public Property Item(ByVal key As Object) As Winsock + Get + Dim gid As Guid = getGID(key) + Return CType(_values(gid), Winsock) + End Get + Set(ByVal value As Winsock) + Dim gid As Guid = getGID(key) + If Not _values.ContainsKey(gid) Then + Add(gid, Nothing, value) + Else + _values(gid) = value + End If + End Set + End Property + + ''' + ''' Gets or sets the Winsock associated with the specified GUID. + ''' + ''' The GUID whose value to get or set. + Default Public Property Item(ByVal gid As Guid) As Winsock + Get + Return CType(_values(gid), Winsock) + End Get + Set(ByVal value As Winsock) + If Not _values.ContainsKey(gid) Then + Add(gid, Nothing, value) + Else + _values(gid) = value + End If + End Set + End Property + +#End Region + +#Region " Events " + + ''' + ''' Occurs when connection is achieved (client and server). + ''' + Public Event Connected(ByVal sender As Object, ByVal e As WinsockConnectedEventArgs) + ''' + ''' Occurs on the server when a client is attempting to connect. + ''' + ''' Client registers connected at this point. Server must Accept in order for it to be connected. + Public Event ConnectionRequest(ByVal sender As Object, ByVal e As WinsockConnectionRequestEventArgs) + ''' + ''' Occurs when the number of items in the collection has changed. + ''' + Public Event CountChanged(ByVal sender As Object, ByVal e As WinsockCollectionCountChangedEventArgs) + ''' + ''' Occurs when data arrives on the socket. + ''' + ''' Raised only after all parts of the data have been collected. + Public Event DataArrival(ByVal sender As Object, ByVal e As WinsockDataArrivalEventArgs) + ''' + ''' Occurs when disconnected from the remote computer (client and server). + ''' + Public Event Disconnected(ByVal sender As Object, ByVal e As System.EventArgs) + ''' + ''' Occurs when an error is detected in the socket. + ''' + ''' May also be raised on disconnected (depending on disconnect circumstance). + Public Event ErrorReceived(ByVal sender As Object, ByVal e As WinsockErrorReceivedEventArgs) + ''' + ''' Occurs when sending of data is completed. + ''' + Public Event SendComplete(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + ''' + ''' Occurs when the send buffer has been sent but not all the data has been sent yet. + ''' + Public Event SendProgress(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + ''' + ''' Occurs when the state of the socket changes. + ''' + Public Event StateChanged(ByVal sender As Object, ByVal e As WinsockStateChangedEventArgs) + + ''' + ''' Triggers an event declared at module level within a class, form, or document in a thread-safe manner. + ''' + ''' The event to be raised. + ''' The arguements for the event. + Private Sub RaiseEventSafe(ByVal ev As System.Delegate, ByRef args() As Object) + Dim bFired As Boolean + If ev IsNot Nothing Then + For Each singleCast As System.Delegate In ev.GetInvocationList() + bFired = False + Try + Dim syncInvoke As ISynchronizeInvoke = CType(singleCast.Target, ISynchronizeInvoke) + If syncInvoke IsNot Nothing AndAlso syncInvoke.InvokeRequired Then + bFired = True + syncInvoke.BeginInvoke(singleCast, args) + Else + bFired = True + singleCast.DynamicInvoke(args) + End If + Catch ex As Exception + If Not bFired Then singleCast.DynamicInvoke(args) + End Try + Next + End If + End Sub + + ''' + ''' Raises the Connected event. + ''' + Protected Friend Sub OnConnected(ByVal sender As Object, ByVal e As WinsockConnectedEventArgs) + RaiseEventSafe(ConnectedEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the ConnectionRequest event, and closes the socket if the ConnectionRequest was rejected. + ''' + Protected Friend Sub OnConnectionRequest(ByVal sender As Object, ByVal e As WinsockConnectionRequestEventArgs) + RaiseEventSafe(ConnectionRequestEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the DataArrival event. + ''' + Protected Friend Sub OnDataArrival(ByVal sender As Object, ByVal e As WinsockDataArrivalEventArgs) + RaiseEventSafe(DataArrivalEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the Disconnected Event. + ''' + Protected Friend Sub OnDisconnected(ByVal sender As Object, ByVal e As System.EventArgs) + RaiseEventSafe(DisconnectedEvent, New Object() {sender, e}) + If _clearRemove Then + Dim gid As Guid = findGID(CType(sender, Winsock)) + _clearRemoval.Enqueue(gid) + If _clearRemoval.Count = _values.Count Then + Dim thd As New Threading.Thread(AddressOf ClearAllValues) + thd.Start() + _clearRemove = False + End If + ElseIf _autoRemove Then + Dim gid As Guid = findGID(CType(sender, Winsock)) + _autoRemoval.Enqueue(gid) + Dim thd As New Threading.Thread(AddressOf RemovalThread) + thd.Start() + End If + End Sub + + ''' + ''' Raises the ErrorReceived event. + ''' + Protected Friend Sub OnErrorReceived(ByVal sender As Object, ByVal e As WinsockErrorReceivedEventArgs) + RaiseEventSafe(ErrorReceivedEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the SendComplete event. + ''' + Protected Friend Sub OnSendComplete(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + RaiseEventSafe(SendCompleteEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the SendProgress event. + ''' + Protected Friend Sub OnSendProgress(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + RaiseEventSafe(SendProgressEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the StateChanged event. + ''' + Protected Friend Sub OnStateChanged(ByVal sender As Object, ByVal e As WinsockStateChangedEventArgs) + RaiseEventSafe(StateChangedEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the count changed event. + ''' + Private Sub OnCountChanged(ByVal old_count As Integer, ByVal new_count As Integer) + Dim e As New WinsockCollectionCountChangedEventArgs(old_count, new_count) + RaiseEventSafe(CountChangedEvent, New Object() {Me, e}) + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/WinsockDesigner.vb b/Sub/WinsockOracs/Backup/WinsockDesigner.vb new file mode 100644 index 0000000..bb8e916 --- /dev/null +++ b/Sub/WinsockOracs/Backup/WinsockDesigner.vb @@ -0,0 +1,236 @@ +Imports System.ComponentModel +Imports System.ComponentModel.Design +Imports Microsoft.VisualBasic + +''' +''' Winsock designer class provides designer time support for the Winsock component. +''' +Public Class WinsockDesigner + Inherits System.ComponentModel.Design.ComponentDesigner + + Private lists As DesignerActionListCollection + + ''' + ''' Creates a new instance of the WinsockDesigner class. + ''' + ''' + Public Sub New() + End Sub + + ''' + ''' Initializes this instance of the WinsockDesigner class. + ''' + ''' The base component of the designer. + Public Overrides Sub Initialize(ByVal component As System.ComponentModel.IComponent) + MyBase.Initialize(component) + End Sub + + ''' + ''' Gets the Verb collection. + ''' + ''' + ''' The Verb collection is used to display links at the + ''' bottom of the description in the Properties pane. + ''' + Public Overrides ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection + Get + Return New DesignerVerbCollection() + End Get + End Property + + ''' + ''' Gets the Action list collection. + ''' + ''' + ''' The Action list collection is used for the Smart Tag + ''' popup to provide easy access to various properties/actions. + ''' + Public Overrides ReadOnly Property ActionLists() As DesignerActionListCollection + Get + If lists Is Nothing Then + lists = New DesignerActionListCollection() + lists.Add(New WinsockActionList(Me.Component)) + End If + Return lists + End Get + End Property + +End Class + +''' +''' Provides the action list for the Winsock component during design time. +''' +Public Class WinsockActionList + Inherits DesignerActionList + + Private _wsk As Winsock + Private designerActionUISvc As DesignerActionUIService = Nothing + + Private host As IDesignerHost + Private parentDesigner As IDesigner + + ''' + ''' Initializes a new instance of the WinsockActionList class. + ''' + ''' The component used in initialization. + Public Sub New(ByVal component As IComponent) + MyBase.New(component) + Me._wsk = CType(component, Winsock) + + Me.designerActionUISvc = CType(GetService(GetType(DesignerActionUIService)), DesignerActionUIService) + + Me.host = Me.Component.Site.GetService(GetType(IDesignerHost)) + + Me.parentDesigner = host.GetDesigner(Me.Component) + End Sub + + ''' + ''' Gets or sets a value indicating if Legacy support should be used or not. + ''' + ''' Legacy support is to support older winsock style connections. + Public Property LegacySupport() As Boolean + Get + Return _wsk.LegacySupport + End Get + Set(ByVal value As Boolean) + GetPropertyByName("LegacySupport").SetValue(_wsk, value) + Me.designerActionUISvc.Refresh(Me.Component) + End Set + End Property + + ''' + ''' Gets or sets the winsock protocol to use when communicating with the remote computer. + ''' + Public Property Protocol() As WinsockProtocol + Get + Return _wsk.Protocol + End Get + Set(ByVal value As WinsockProtocol) + GetPropertyByName("Protocol").SetValue(_wsk, value) + Me.designerActionUISvc.Refresh(Me.Component) + End Set + End Property + + ''' + ''' Builds and retrieves the Action list itself. + ''' + Public Overrides Function GetSortedActionItems() As DesignerActionItemCollection + Dim items As New DesignerActionItemCollection() + + ' create the headers + items.Add(New DesignerActionHeaderItem("Appearance & Behavior")) + items.Add(New DesignerActionHeaderItem("Events")) + items.Add(New DesignerActionHeaderItem("About")) + + ' add the properties + items.Add(New DesignerActionPropertyItem("LegacySupport", "Legacy Support", "Appearance & Behavior", "Enables legacy (VB6) send/receive support.")) + items.Add(New DesignerActionPropertyItem("Protocol", "Protocol", "Appearance & Behavior", "Specifies whether the component should use the TCP or UDP protocol.")) + + ' add the events + items.Add(New DesignerActionMethodItem(Me, "TriggerConnectedEvent", "Connected", "Events", "Takes you to the handler for the Connected event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerConnectionRequestEvent", "ConnectionRequest", "Events", "Takes you to the handler for the ConnectionRequest event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerDataArrivalEvent", "DataArrival", "Events", "Takes you to the handler for the DataArrival event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerDisconnectedEvent", "Disconnected", "Events", "Takes you to the handler for the Disconnected event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerErrorReceivedEvent", "ErrorReceived", "Events", "Takes you to the handler for the ErrorReceived event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerStateChangedEvent", "StateChanged", "Events", "Takes you to the handler for the StateChanged event.", False)) + + ' add support items + Dim ver As String = String.Format("{0}.{1}.{2}", My.Application.Info.Version.Major, My.Application.Info.Version.Minor, My.Application.Info.Version.Build) + items.Add(New DesignerActionMethodItem(Me, "ShowAbout", "About Winsock " & ver, "About", "Displays the about box.", False)) + items.Add(New DesignerActionMethodItem(Me, "LaunchWebSite", "Kolkman Koding Website", "About", "Opens the author's website.", False)) + + Return items + End Function + + ''' + ''' Gets the property information by the given name. + ''' + ''' The name of the property to get. + Private Function GetPropertyByName(ByVal propName As String) As PropertyDescriptor + Dim prop As PropertyDescriptor + prop = TypeDescriptor.GetProperties(_wsk)(propName) + If prop Is Nothing Then + Throw New ArgumentException("Invalid property.", propName) + Else + Return prop + End If + End Function + + ''' + ''' Shows the about box. + ''' + Public Sub ShowAbout() + Dim f As New frmAbout() + f.ShowDialog() + End Sub + + ''' + ''' Launches the author's website. + ''' + Public Sub LaunchWebSite() + System.Diagnostics.Process.Start("http://www.k-koding.com") + End Sub + + Public Sub TriggerConnectedEvent() + CreateAndShowEvent("Connected") + End Sub + Public Sub TriggerConnectionRequestEvent() + CreateAndShowEvent("ConnectionRequest") + End Sub + Public Sub TriggerDataArrivalEvent() + CreateAndShowEvent("DataArrival") + End Sub + Public Sub TriggerDisconnectedEvent() + CreateAndShowEvent("Disconnected") + End Sub + Public Sub TriggerErrorReceivedEvent() + CreateAndShowEvent("ErrorReceived") + End Sub + Public Sub TriggerStateChangedEvent() + CreateAndShowEvent("StateChanged") + End Sub + + Private Sub CreateAndShowEvent(ByVal eventName As String) + Dim evService As IEventBindingService = CType(Me.Component.Site.GetService(GetType(System.ComponentModel.Design.IEventBindingService)), IEventBindingService) + Dim ev As EventDescriptor = GetEvent(evService, eventName) + If ev IsNot Nothing Then + CreateEvent(evService, ev) + Me.designerActionUISvc.HideUI(Me.Component) + evService.ShowCode(Me.Component, ev) + End If + End Sub + + Private Sub CreateEvent(ByRef evService As IEventBindingService, ByVal ev As EventDescriptor) + Dim epd As PropertyDescriptor = evService.GetEventProperty(ev) + Dim strEventName As String = Me.Component.Site.Name & "_" & ev.Name + Dim existing As Object = epd.GetValue(Me.Component) + 'Only create if there isn't already a handler + If existing Is Nothing Then + epd.SetValue(Me.Component, strEventName) + End If + End Sub + + Private Function GetEvent(ByRef evService As IEventBindingService, ByVal eventName As String) As EventDescriptor + If evService Is Nothing Then Return Nothing + ' Attempt to obtain a PropertyDescriptor for a + ' component event named "testEvent". + Dim edc As EventDescriptorCollection = TypeDescriptor.GetEvents(Me.Component) + If edc Is Nothing Or edc.Count = 0 Then + Return Nothing + End If + Dim ed As EventDescriptor = Nothing + ' Search for an event named "Connected". + Dim edi As EventDescriptor + For Each edi In edc + If edi.Name = eventName Then + ed = edi + Exit For + End If + Next edi + If ed Is Nothing Then + Return Nothing + End If + Return ed + End Function + +End Class diff --git a/Sub/WinsockOracs/Backup/WinsockFileData.vb b/Sub/WinsockOracs/Backup/WinsockFileData.vb new file mode 100644 index 0000000..cb091eb --- /dev/null +++ b/Sub/WinsockOracs/Backup/WinsockFileData.vb @@ -0,0 +1,83 @@ +''' +''' A class that wraps a file allowing you to serialize it for transport. +''' + _ +Public Class WinsockFileData + +#Region " Private Members " + + Private _fileData() As Byte ' Stores the file data + Private _fileName As String ' Stores the file name + +#End Region + +#Region " Constructor " + + ''' + ''' Initializes a new instance of the WinsockFileData class. + ''' + Public Sub New() + _fileData = Nothing + _fileName = Nothing + End Sub + +#End Region + +#Region " Properties " + + ''' + ''' Gets or sets the name of the file. + ''' + Public Property FileName() As String + Get + Return _fileName + End Get + Set(ByVal value As String) + _fileName = value + End Set + End Property + + ''' + ''' Gets or sets the contents of the file. + ''' + Public Property FileData() As Byte() + Get + Return _fileData + End Get + Set(ByVal value As Byte()) + _fileData = value + End Set + End Property + +#End Region + +#Region " Methods " + + ''' + ''' Saves the file to the specified path. + ''' + ''' The full path of the file to save to. + ''' Whether you want to append the data to the end of an existing file or not. + Public Sub SaveFile(ByVal save_path As String, Optional ByVal append As Boolean = False) + My.Computer.FileSystem.WriteAllBytes(save_path, _fileData, append) + End Sub + + ''' + ''' Reads a file into the WinsockFileData class. + ''' + ''' The full path of the file you want to read. + Public Function ReadFile(ByVal file_path As String) As Boolean + Dim fi As IO.FileInfo = My.Computer.FileSystem.GetFileInfo(file_path) + If fi.Exists Then + ReDim _fileData(0) + _fileName = fi.Name + _fileData = My.Computer.FileSystem.ReadAllBytes(fi.FullName) + Else + Return False + End If + Return True + End Function + +#End Region + +End Class diff --git a/Sub/WinsockOracs/Backup/frmAbout.Designer.vb b/Sub/WinsockOracs/Backup/frmAbout.Designer.vb new file mode 100644 index 0000000..860a938 --- /dev/null +++ b/Sub/WinsockOracs/Backup/frmAbout.Designer.vb @@ -0,0 +1,146 @@ + _ +Partial Class frmAbout + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAbout)) + Me.pctLogo = New System.Windows.Forms.PictureBox + Me.txtAbout = New System.Windows.Forms.TextBox + Me.cmdClose = New System.Windows.Forms.Button + Me.TabControl1 = New System.Windows.Forms.TabControl + Me.TabPage1 = New System.Windows.Forms.TabPage + Me.TabPage2 = New System.Windows.Forms.TabPage + Me.txtHistory = New System.Windows.Forms.TextBox + CType(Me.pctLogo, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.SuspendLayout() + ' + 'pctLogo + ' + Me.pctLogo.Anchor = System.Windows.Forms.AnchorStyles.Top + Me.pctLogo.Image = Global.Winsock_Orcas.My.Resources.Resources.k_koding + Me.pctLogo.Location = New System.Drawing.Point(169, 12) + Me.pctLogo.Name = "pctLogo" + Me.pctLogo.Size = New System.Drawing.Size(121, 120) + Me.pctLogo.TabIndex = 0 + Me.pctLogo.TabStop = False + ' + 'txtAbout + ' + Me.txtAbout.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtAbout.Location = New System.Drawing.Point(3, 3) + Me.txtAbout.Multiline = True + Me.txtAbout.Name = "txtAbout" + Me.txtAbout.ReadOnly = True + Me.txtAbout.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtAbout.Size = New System.Drawing.Size(420, 221) + Me.txtAbout.TabIndex = 1 + ' + 'cmdClose + ' + Me.cmdClose.Location = New System.Drawing.Point(371, 397) + Me.cmdClose.Name = "cmdClose" + Me.cmdClose.Size = New System.Drawing.Size(75, 23) + Me.cmdClose.TabIndex = 2 + Me.cmdClose.Text = "Close" + Me.cmdClose.UseVisualStyleBackColor = True + ' + 'TabControl1 + ' + Me.TabControl1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Location = New System.Drawing.Point(12, 138) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(434, 253) + Me.TabControl1.TabIndex = 3 + ' + 'TabPage1 + ' + Me.TabPage1.BackColor = System.Drawing.SystemColors.Control + Me.TabPage1.Controls.Add(Me.txtAbout) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage1.Size = New System.Drawing.Size(426, 227) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "About" + ' + 'TabPage2 + ' + Me.TabPage2.BackColor = System.Drawing.SystemColors.Control + Me.TabPage2.Controls.Add(Me.txtHistory) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(426, 227) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "History" + ' + 'txtHistory + ' + Me.txtHistory.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtHistory.Location = New System.Drawing.Point(3, 3) + Me.txtHistory.Multiline = True + Me.txtHistory.Name = "txtHistory" + Me.txtHistory.ReadOnly = True + Me.txtHistory.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtHistory.Size = New System.Drawing.Size(420, 221) + Me.txtHistory.TabIndex = 0 + ' + 'frmAbout + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(458, 432) + Me.Controls.Add(Me.TabControl1) + Me.Controls.Add(Me.cmdClose) + Me.Controls.Add(Me.pctLogo) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmAbout" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "About Winsock Orcas" + CType(Me.pctLogo, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + Me.TabPage2.ResumeLayout(False) + Me.TabPage2.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents pctLogo As System.Windows.Forms.PictureBox + Friend WithEvents txtAbout As System.Windows.Forms.TextBox + Friend WithEvents cmdClose As System.Windows.Forms.Button + Friend WithEvents TabControl1 As System.Windows.Forms.TabControl + Friend WithEvents TabPage1 As System.Windows.Forms.TabPage + Friend WithEvents TabPage2 As System.Windows.Forms.TabPage + Friend WithEvents txtHistory As System.Windows.Forms.TextBox +End Class diff --git a/Sub/WinsockOracs/Backup/frmAbout.resx b/Sub/WinsockOracs/Backup/frmAbout.resx new file mode 100644 index 0000000..590829d --- /dev/null +++ b/Sub/WinsockOracs/Backup/frmAbout.resx @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////ACJ6/wCioqIAeq//ALrc/wB/f38AxMTEAE2T/wCdxP8As7OzAI+PjwDP6/8AYqL/ADSI + /wCLuf8ArM7/AJmZmQCHh4cAvLy8AKqqqgBYmv8AcKj/ALnQ/wAtf/8AP4r/AJK//wCDtf8ApMn/AGmk + /wAoe/8AM4L/ALPR/wBQmP8Adaz/AF6e/wCXwP8Ay+n/AIe3/wB+sf8Ao8X/AI6+/wBtpf8AqMn/ALDQ + /wBlo/8Acqv/ADGE/wBcnP8AkLz/AHeu/wCBs/8AIXz/AKbI/wBXmP8AlcH/AGqm/wAkev8AS5P/AJe+ + /wCQvv8Ahbf/AHCq/wB3rP8AJ3r/ADSD/wCx0f8ApMb/AGij/wCItv8AfbD/AKTI/wCjxv8AnsT/AJXA + /wBlov8AZqP/AGmj/wBxqP8Acqr/AHWt/wB7r/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAABQAAAAABgAAAAAAAAAAAAAK + FAMRCxIAAAAAAAAAAAAAAAoMJREAAAAAAAAAAAAAAAATChQDAAAAAAAAS1AVAAAAABcFAAAAADQONC4J + LQA2IQAHEwAvGAA5ODRRSD4ADUQAAAAAOkEAHioCPUMEAAAzAAAAAEwAAB8dQABJPAAALhsWOE4hAAAI + MAAAGjUmAAAAPh0AAAAITxkAAAAcRw8AAAAAAAAjP00AAAAAAEcQJEU9RjInKQQAAAAAAAAAOytCICwo + SiIAAAAAAAAAAAAAOzcxDwAAAAAAAP//AAD3/wAA+98AAPgfAAD8PwAA/D8AAB54AAASSAAAE8gAABvY + AACYGQAAjnEAAMfjAADgBwAA8A8AAPw/AAA= + + + \ No newline at end of file diff --git a/Sub/WinsockOracs/Backup/frmAbout.vb b/Sub/WinsockOracs/Backup/frmAbout.vb new file mode 100644 index 0000000..86087a4 --- /dev/null +++ b/Sub/WinsockOracs/Backup/frmAbout.vb @@ -0,0 +1,24 @@ +Public Class frmAbout + + Private Sub cmdClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClose.Click + Me.Close() + End Sub + + Private Sub frmAbout_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + txtAbout.Text = ReadFromAssembly("About.txt") + txtHistory.Text = ReadFromAssembly("History.txt") + End Sub + + Private Function ReadFromAssembly(ByVal filename As String) As String + Dim sRet As String = "" + Dim executing_assembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly() + Dim my_namespace As String = GetType(frmAbout).Namespace + Dim text_stream As IO.Stream = executing_assembly.GetManifestResourceStream(my_namespace & "." & filename) + If text_stream IsNot Nothing Then + Dim stream_reader As New IO.StreamReader(text_stream) + sRet = stream_reader.ReadToEnd() + End If + Return sRet + End Function + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/Deque.vb b/Sub/WinsockOracs/Deque.vb new file mode 100644 index 0000000..256dc3c --- /dev/null +++ b/Sub/WinsockOracs/Deque.vb @@ -0,0 +1,185 @@ +Option Strict On +''' +''' Represents both a last-in, first-out (LIFO) and a first-in, first-out (FIFO) non-generic collection of objects. +''' +''' +''' While the System.Collections.Stack and the System.Collections.Queue +''' have seemingly different ways of operating, they can be combined easily +''' by just manipulating the way in which an item in inserted into the list. +''' +''' This allows the removal from the list to remain the same, whether you +''' are treating this class like a Stack or a Queue. The also allows the +''' Peek() method to work for both at the same time. +''' +''' Helping tidbit - Deque is pronounced like "deck." +''' +Public Class Deque + Implements ICollection, IEnumerable, ICloneable + +#Region " Private Members " + + ''' + ''' Stores the list of items within this instance. + ''' + Private llList As LinkedList(Of Object) + +#End Region + +#Region " Constructor " + + ''' + ''' Initializes a new instance of the Deque class that is empty and has the default initial capacity. + ''' + Public Sub New() + llList = New LinkedList(Of Object) + End Sub + + ''' + ''' Initializes a new instance of the Deque class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied. + ''' + ''' The collection whose elements are copied to the new Deque. + Public Sub New(ByVal col As ICollection) + llList = New LinkedList(Of Object)(CType(col, IEnumerable(Of Object))) + End Sub + +#End Region + +#Region " Interface Method Implementations " + + ''' + ''' Copies the entire Deque to a compatible one-dimensional array, starting at the specified index of the target array. + ''' + ''' The one-dimensional Array that is the destination of the elements copied from Deque. The Array must have zero-based indexing. + ''' The zero-based index in array at which copying begins. + Public Sub CopyTo(ByVal array As System.Array, ByVal index As Integer) Implements System.Collections.ICollection.CopyTo + If array.Rank > 1 Then Throw New ArgumentException("Array must have only a single dimension.", "array") + llList.CopyTo(CType(array, Object()), index) + End Sub + + ''' + ''' Gets the number of elements actually contained in the Deque. + ''' + ''' The number of elements actually contained in the Deque. + Public ReadOnly Property Count() As Integer Implements System.Collections.ICollection.Count + Get + Return llList.Count + End Get + End Property + + ''' + ''' Gets a value indicating whether access to the ICollection is synchronized (thread safe). + ''' + ''' true if access to the ICollection is synchronized (thread safe); otherwise, false. In the default implementation of List, this property always returns false. + Public ReadOnly Property IsSynchronized() As Boolean Implements System.Collections.ICollection.IsSynchronized + Get + Return CType(llList, ICollection).IsSynchronized + End Get + End Property + + ''' + ''' Gets an object that can be used to synchronize access to the ICollection. + ''' + ''' An object that can be used to synchronize access to the ICollection. In the default implementation of List, this property always returns the current instance. + Public ReadOnly Property SyncRoot() As Object Implements System.Collections.ICollection.SyncRoot + Get + Return CType(llList, ICollection).SyncRoot + End Get + End Property + + ''' + ''' Returns an enumerator that iterates through the Queue. + ''' + Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return llList.GetEnumerator() + End Function + + ''' + ''' Creates a shallow copy of the Queue. + ''' + Public Function Clone() As Object Implements System.ICloneable.Clone + Return New Deque(llList) + End Function + +#End Region + +#Region " Methods common to both Queues and Stacks " + + ''' + ''' Removes all elements from the Deque. + ''' + Public Sub Clear() + llList.Clear() + End Sub + + ''' + ''' Determines whether an element is in the Deque. + ''' + ''' The object to locate in the Deque. The value can be a null reference (Nothing in Visual Basic) for reference types. + Public Function Contains(ByVal obj As Object) As Boolean + Return llList.Contains(obj) + End Function + + ''' + ''' Returns the object at the beginning (top) of the Deque without removing it. + ''' + ''' The object at the beginning (top) of the Deque. + Public Function Peek(Of dataType)() As dataType + If llList.Count = 0 Then Return Nothing + Return DirectCast(llList.First().Value, dataType) + End Function + + ''' + ''' Returns a String that represents the current Object. + ''' + ''' A String that represents the current Object. + Public Overrides Function ToString() As String + Return llList.ToString() + End Function + +#End Region + +#Region " Queue methods " + + ''' + ''' Removes and returns the object at the beginning of the Deque. + ''' + ''' The object that is removed from the beginning of the Deque. + ''' Synonymous with Pop(). + Public Function Dequeue(Of dataType)() As dataType + Dim oRet As dataType = Peek(Of dataType)() + llList.RemoveFirst() + Return oRet + End Function + + ''' + ''' Adds an object to the end of the Deque. + ''' + ''' The object to add to the Deque. The value can be a null reference (Nothing in Visual Basic). + Public Sub Enqueue(ByVal obj As Object) + llList.AddLast(obj) + End Sub + +#End Region + +#Region " Stack methods " + + ''' + ''' Removes and returns the object at the top of the Deque. + ''' + ''' The Object removed from the top of the Deque. + ''' Synonymous with Dequeue(). + Public Function Pop(Of dataType)() As dataType + Return Dequeue(Of dataType)() + End Function + + ''' + ''' Inserts an object at the top of the Deque. + ''' + ''' The Object to push onto the Deque. The value can be a null reference (Nothing in Visual Basic). + Public Sub Push(ByVal obj As Object) + llList.AddFirst(obj) + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/Enumerations.vb b/Sub/WinsockOracs/Enumerations.vb new file mode 100644 index 0000000..d132c37 --- /dev/null +++ b/Sub/WinsockOracs/Enumerations.vb @@ -0,0 +1,49 @@ +Option Strict On + +''' +''' Enumeration containing the various supported network protocols. +''' +Public Enum WinsockProtocol + ''' + ''' Transmission Control Protocol - a connection oriented protocol. + ''' + Tcp = 0 + ''' + ''' User Datagram Protocol - a connection-less protocol. + ''' + Udp = 1 +End Enum + +''' +''' Enumeration containing the various Winsock states. +''' +Public Enum WinsockStates + ''' + ''' The Winsock is closed. + ''' + Closed = 0 + ''' + ''' The Winsock is listening (TCP for connections, UDP for data). + ''' + Listening = 1 + ''' + ''' The Winsock is attempting the resolve the remote host. + ''' + ResolvingHost = 2 + ''' + ''' The remote host has been resolved to IP address. + ''' + HostResolved = 3 + ''' + ''' The Winsock is attempting to connect to the remote host. + ''' + Connecting = 4 + ''' + ''' The Winsock is connected to a remote source (client or server). + ''' + Connected = 5 + ''' + ''' The Winsock is attempting to close the connection. + ''' + Closing = 6 +End Enum \ No newline at end of file diff --git a/Sub/WinsockOracs/EventArgs.vb b/Sub/WinsockOracs/EventArgs.vb new file mode 100644 index 0000000..0bed9ec --- /dev/null +++ b/Sub/WinsockOracs/EventArgs.vb @@ -0,0 +1,422 @@ +Option Strict On + +''' +''' Provides data for the Winsock.ErrorReceived event. +''' +Public Class WinsockErrorReceivedEventArgs + Inherits System.EventArgs + + Private m_errorMsg As String + Private m_function As String + Private m_errorCode As System.Net.Sockets.SocketError + Private m_Details As String + + ''' + ''' Initializes a new instance of the WinsockErrorEventArgs class. + ''' + ''' A String containing the error message. + Public Sub New(ByVal error_message As String) + Me.New(error_message, Nothing) + End Sub + ''' + ''' Initializes a new instance of the WinsockErrorEventArgs class. + ''' + ''' A String containing the error message. + ''' A String containing the name of the function that produced the error. + Public Sub New(ByVal error_message As String, ByVal function_name As String) + Me.New(error_message, function_name, Nothing) + End Sub + ''' + ''' Initializes a new instance of the WinsockErrorEventArgs class. + ''' + ''' A String containing the error message. + ''' A String containing the name of the function that produced the error. + ''' A String containing extra details for the error message. + Public Sub New(ByVal error_message As String, ByVal function_name As String, ByVal extra_details As String) + Me.New(error_message, function_name, extra_details, Net.Sockets.SocketError.Success) + End Sub + ''' + ''' Initializes a new instance of the WinsockErrorEventArgs class. + ''' + ''' A String containing the error message. + ''' A String containing the name of the function that produced the error. + ''' A String containing extra details for the error message. + ''' A value containing the socket's ErrorCode. + Public Sub New(ByVal error_message As String, ByVal function_name As String, ByVal extra_details As String, ByVal error_code As System.Net.Sockets.SocketError) + m_errorMsg = error_message + m_function = function_name + m_Details = extra_details + m_errorCode = error_code + End Sub + + ''' + ''' Gets a value containing the error message. + ''' + Public ReadOnly Property Message() As String + Get + Return m_errorMsg + End Get + End Property + + ''' + ''' Gets a value containing the name of the function that produced the error. + ''' + Public ReadOnly Property [Function]() As String + Get + Return m_function + End Get + End Property + + ''' + ''' Gets a value indicating the error code returned by the socket. + ''' + ''' If it wasn't returned by the socket, it defaults to success. + Public ReadOnly Property ErrorCode() As System.Net.Sockets.SocketError + Get + Return m_errorCode + End Get + End Property + + ''' + ''' Gets a value containing more details than the typical error message. + ''' + Public ReadOnly Property Details() As String + Get + Return m_Details + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.ConnectionRequest event. +''' +Public Class WinsockConnectionRequestEventArgs + Inherits System.EventArgs + + Private _client As System.Net.Sockets.Socket + Private _cancel As Boolean = False + + ''' + ''' Initializes a new instance of the WinsockClientReceivedEventArgs class. + ''' + ''' A Socket object containing the new client that needs to be accepted. + Public Sub New(ByVal new_client As System.Net.Sockets.Socket) + _client = new_client + End Sub + + ''' + ''' Gets a value containing the client information. + ''' + ''' Used in accepting the client. + Public ReadOnly Property Client() As System.Net.Sockets.Socket + Get + Return _client + End Get + End Property + + ''' + ''' Gets a value containing the incoming clients IP address. + ''' + Public ReadOnly Property ClientIP() As String + Get + Dim rEP As System.Net.IPEndPoint = CType(_client.RemoteEndPoint, System.Net.IPEndPoint) + Return rEP.Address.ToString() + End Get + End Property + + ''' + ''' Gets or sets a value indicating whether the incoming client request should be cancelled. + ''' + Public Property Cancel() As Boolean + Get + Return _cancel + End Get + Set(ByVal value As Boolean) + _cancel = value + End Set + End Property +End Class + +''' +''' Provides data for the Winsock.StateChanged event. +''' +Public Class WinsockStateChangedEventArgs + Inherits System.EventArgs + + Private m_OldState As WinsockStates + Private m_NewState As WinsockStates + + ''' + ''' Initializes a new instance of the WinsockStateChangingEventArgs class. + ''' + ''' The old state of the Winsock control. + ''' The state the Winsock control is changing to. + Public Sub New(ByVal oldState As WinsockStates, ByVal newState As WinsockStates) + m_OldState = oldState + m_NewState = newState + End Sub + + ''' + ''' Gets a value indicating the previous state of the Winsock control. + ''' + Public ReadOnly Property Old_State() As WinsockStates + Get + Return m_OldState + End Get + End Property + + ''' + ''' Gets a value indicating the new state of the Winsock control. + ''' + Public ReadOnly Property New_State() As WinsockStates + Get + Return m_NewState + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.DataArrival event. +''' +Public Class WinsockDataArrivalEventArgs + Inherits System.EventArgs + + Private _bTotal As Integer + Private _IP As String + Private _Port As Integer + + ''' + ''' Initializes a new instance of the WinsockDataArrivalEventArgs class. + ''' + ''' The number of bytes that were received. + ''' The source address of the bytes. + ''' The source port of the bytes. + Public Sub New(ByVal bytes_total As Integer, ByVal source_ip As String, ByVal source_port As Integer) + _bTotal = bytes_total + _IP = source_ip + _Port = source_port + End Sub + + ''' + ''' Gets a value indicating the number of bytes received. + ''' + Public ReadOnly Property TotalBytes() As Integer + Get + Return _bTotal + End Get + End Property + + ''' + ''' Gets a value indicating the data's originating address. + ''' + Public ReadOnly Property SourceIP() As String + Get + Return _IP + End Get + End Property + + ''' + ''' Gets a value indicating the data's originating port. + ''' + Public ReadOnly Property SourcePort() As Integer + Get + Return _Port + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.Connected event. +''' +Public Class WinsockConnectedEventArgs + Inherits System.EventArgs + + Private _IP As String + Private _Port As Integer + + ''' + ''' Initializes a new instance of the WinsockConnectedEventArgs class. + ''' + ''' The source address of the connection. + ''' The source port of the connection. + Public Sub New(ByVal source_ip As String, ByVal source_port As Integer) + _IP = source_ip + _Port = source_port + End Sub + + ''' + ''' Gets a value indicating the remote address of the connection. + ''' + Public ReadOnly Property SourceIP() As String + Get + Return _IP + End Get + End Property + + ''' + ''' Gets a value indicating the remote port of the connection. + ''' + Public ReadOnly Property SourcePort() As Integer + Get + Return _Port + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.SendComplete event. +''' +Public Class WinsockSendEventArgs + Inherits System.EventArgs + + Private _bTotal As Integer + Private _bSent As Integer + Private _IP As String + + ''' + ''' Initializes a new instance of the WinsockSendEventArgs class. + ''' + ''' The destination of the bytes sent. + ''' The total number of bytes sent. + ''' The total number of bytes that were supposed to be sent. + Public Sub New(ByVal dest_ip As String, ByVal bytes_sent As Integer, ByVal bytes_total As Integer) + _IP = dest_ip + _bTotal = bytes_total + _bSent = bytes_sent + End Sub + + ''' + ''' Gets a value indicating the destination of the bytes sent. + ''' + Public ReadOnly Property DestinationIP() As String + Get + Return _IP + End Get + End Property + + ''' + ''' Gets a value indicating the number of bytes sent. + ''' + Public ReadOnly Property BytesSent() As Integer + Get + Return _bSent + End Get + End Property + + ''' + ''' Gets a value indicating the total number of bytes that should have been sent. + ''' + Public ReadOnly Property BytesTotal() As Integer + Get + Return _bTotal + End Get + End Property + + ''' + ''' Gets a value indicating the percentage (0-100) of bytes that where sent. + ''' + Public ReadOnly Property SentPercent() As Double + Get + Return (_bSent / _bTotal) * 100 + End Get + End Property + +End Class + +''' +''' Provides data for the WinsockCollection.CountChanged event. +''' +Public Class WinsockCollectionCountChangedEventArgs + Inherits System.EventArgs + + Private _oldCount As Integer + Private _newCount As Integer + + ''' + ''' Initializes a new instance of the WinsockCollectionCountChangedEventArgs class. + ''' + ''' The old number of items in the collection. + ''' The new number of items in the collection. + Public Sub New(ByVal old_count As Integer, ByVal new_count As Integer) + _oldCount = old_count + _newCount = new_count + End Sub + + ''' + ''' Gets a value indicating the previous number of items in the collection. + ''' + Public ReadOnly Property OldCount() As Integer + Get + Return _oldCount + End Get + End Property + + ''' + ''' Gets a value indicating the current number of items in the collection. + ''' + Public ReadOnly Property NewCount() As Integer + Get + Return _newCount + End Get + End Property +End Class + +''' +''' Provides data for the Winsock.ReceiveProgress event. +''' +Public Class WinsockReceiveProgressEventArgs + Inherits System.EventArgs + + Private _bTotal As Integer + Private _bIn As Integer + Private _IP As String + + ''' + ''' Initializes a new instance of the WinsockReceiveProgressEventArgs class. + ''' + ''' The source ip of the bytes received. + ''' The total number of bytes received. + ''' The total number of bytes that were supposed to be received. + Public Sub New(ByVal source_ip As String, ByVal bytes_received As Integer, ByVal bytes_total As Integer) + _IP = source_ip + _bTotal = bytes_total + _bIn = bytes_received + End Sub + + ''' + ''' Gets a value indicating the source of the bytes sent. + ''' + Public ReadOnly Property SourceIP() As String + Get + Return _IP + End Get + End Property + + ''' + ''' Gets a value indicating the number of bytes received. + ''' + Public ReadOnly Property BytesReceived() As Integer + Get + Return _bIn + End Get + End Property + + ''' + ''' Gets a value indicating the total number of bytes that should be received. + ''' + Public ReadOnly Property BytesTotal() As Integer + Get + Return _bTotal + End Get + End Property + + ''' + ''' Gets a value indicating the percentage (0-100) of bytes that where received. + ''' + Public ReadOnly Property ReceivedPercent() As Double + Get + Return (_bIn / _bTotal) * 100 + End Get + End Property + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/History.txt b/Sub/WinsockOracs/History.txt new file mode 100644 index 0000000..d9081e3 --- /dev/null +++ b/Sub/WinsockOracs/History.txt @@ -0,0 +1,28 @@ +04.21.2008 - Fixed RaiseEventSafe in Winsock.vb and WinsockCollection.vb to use BeginInvoke instead of Invoked. Changed order of operations in ReceiveCallbackUDP to allow remote IP address to be detected properly. + +03.25.2008 - Added a NetworkStream property to expose a NetworkStream object that uses the connection made by this component. + +03.24.2008 - Fixed Listen methods to properly raise state changed events for UDP as well as TCP. Modified IWinsock, Winsock, and AsyncSocket to allow AsyncSocket to modify the LocalPort property of the component. + +02.14.2008 - Fixed a bug in UDP receiving that caused it to always receive at the full byte buffer instead of size of the incoming data. + +12.28.2007 - Winsock.Get and Winsock.Peek updated to check for nothing. + SyncLock added to all qBuffer instances in AsyncSocket and _buff (ProcessIncoming) + +12.26.2007 - Added new event ReceiveProgress. + +12.13.2007 - Fixed PacketHeader.AddHeader to use .Length instead of .GetUpperBound(0). Also changed AsyncSocket.ProcessIncoming in two places with the same change (second half of the first nested IF statements with the >= comparison operator). + +11.19.2007 - Completed WinsockDesigner to original intentions. Can now jump to event code using the Action list. + +11.14.2007 - Demo programs completed, and test ran successfully (quick tests) + +11.06.2007 - Began work on version 4.0.0 + +Interim time - various bug fixes + +04.27.2007 - Third release using VS 2005 (called Winsock 2007) + +06.12.2006 - Second release using VS 2005 (called Winsock 2005) + +08.24.2005 - First release using VB 2003 (called Winsock.NET) \ No newline at end of file diff --git a/Sub/WinsockOracs/IWinsock.vb b/Sub/WinsockOracs/IWinsock.vb new file mode 100644 index 0000000..e962a8c --- /dev/null +++ b/Sub/WinsockOracs/IWinsock.vb @@ -0,0 +1,111 @@ +Option Strict On + +Public Interface IWinsock + +#Region " Events " + + ''' + ''' Occurs when connection is achieved (client and server). + ''' + Event Connected(ByVal sender As Object, ByVal e As WinsockConnectedEventArgs) + ''' + ''' Occurs on the server when a client is attempting to connect. + ''' + ''' Client registers connected at this point. Server must Accept in order for it to be connected. + Event ConnectionRequest(ByVal sender As Object, ByVal e As WinsockConnectionRequestEventArgs) + ''' + ''' Occurs when data arrives on the socket. + ''' + ''' Raised only after all parts of the data have been collected. + Event DataArrival(ByVal sender As Object, ByVal e As WinsockDataArrivalEventArgs) + ''' + ''' Occurs when disconnected from the remote computer (client and server). + ''' + Event Disconnected(ByVal sender As Object, ByVal e As System.EventArgs) + ''' + ''' Occurs when an error is detected in the socket. + ''' + ''' May also be raised on disconnected (depending on disconnect circumstance). + Event ErrorReceived(ByVal sender As Object, ByVal e As WinsockErrorReceivedEventArgs) + ''' + ''' Occurs while the receive buffer is being filled with data. + ''' + Event ReceiveProgress(ByVal sender As Object, ByVal e As WinsockReceiveProgressEventArgs) + ''' + ''' Occurs when sending of data is completed. + ''' + Event SendComplete(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + ''' + ''' Occurs when the send buffer has been sent but not all the data has been sent yet. + ''' + Event SendProgress(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + ''' + ''' Occurs when the state of the socket changes. + ''' + Event StateChanged(ByVal sender As Object, ByVal e As WinsockStateChangedEventArgs) + + ''' + ''' Raises the Connected event. + ''' + Sub OnConnected(ByVal e As WinsockConnectedEventArgs) + ''' + ''' Raises the ConnectionRequest event. + ''' + Sub OnConnectionRequest(ByVal e As WinsockConnectionRequestEventArgs) + ''' + ''' Raises the DataArrival event. + ''' + Sub OnDataArrival(ByVal e As WinsockDataArrivalEventArgs) + ''' + ''' Raises the Disconnected event. + ''' + Sub OnDisconnected() + ''' + ''' Raises the ErrorReceived event. + ''' + Sub OnErrorReceived(ByVal e As WinsockErrorReceivedEventArgs) + ''' + ''' Raises the ReceiveProgress event. + ''' + Sub OnReceiveProgress(ByVal e As WinsockReceiveProgressEventArgs) + ''' + ''' Raises the SendComplete event. + ''' + Sub OnSendComplete(ByVal e As WinsockSendEventArgs) + ''' + ''' Raises the SendProgress event. + ''' + Sub OnSendProgress(ByVal e As WinsockSendEventArgs) + ' '' + ' '' Raises the StateChanged event. + ' '' + 'Sub OnStateChanged(ByVal e As WinsockStateChangedEventArgs) + +#End Region + +#Region " Properties " + + Property LegacySupport() As Boolean + Property Protocol() As WinsockProtocol + Property RemoteHost() As String + Property RemotePort() As Integer + ''' + ''' Gets the state of the Winsock control. + ''' + ReadOnly Property State() As WinsockStates + +#End Region + + ''' + ''' Encapsulates the OnStateChanged methods so the AsyncSocket + ''' doesn't have to build the EventArgs parameter all the time. + ''' + ''' The new state of the Winsock. + Sub ChangeState(ByVal new_state As WinsockStates) + + ''' + ''' When the port is set dynamically by using port 0, the socket can now update the property of the component. + ''' + ''' The port we are now listening on. + Sub ChangeLocalPort(ByVal new_port As Integer) +End Interface \ No newline at end of file diff --git a/Sub/WinsockOracs/My Project/Application.Designer.vb b/Sub/WinsockOracs/My Project/Application.Designer.vb new file mode 100644 index 0000000..c33da88 --- /dev/null +++ b/Sub/WinsockOracs/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' 이 코드는 도구를 사용하여 생성되었습니다. +' 런타임 버전:4.0.30319.42000 +' +' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +' 이러한 변경 내용이 손실됩니다. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Sub/WinsockOracs/My Project/Application.myapp b/Sub/WinsockOracs/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/Sub/WinsockOracs/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/Sub/WinsockOracs/My Project/AssemblyInfo.vb b/Sub/WinsockOracs/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..4e330ee --- /dev/null +++ b/Sub/WinsockOracs/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Sub/WinsockOracs/My Project/Resources.Designer.vb b/Sub/WinsockOracs/My Project/Resources.Designer.vb new file mode 100644 index 0000000..da63ffc --- /dev/null +++ b/Sub/WinsockOracs/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' 이 코드는 도구를 사용하여 생성되었습니다. +' 런타임 버전:4.0.30319.42000 +' +' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +' 이러한 변경 내용이 손실됩니다. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + '이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + '클래스에서 자동으로 생성되었습니다. + '멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + '다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + ''' + ''' 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Winsock_Orcas.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + ''' 재정의합니다. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + ''' + Friend ReadOnly Property k_koding() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("k-koding", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/Sub/WinsockOracs/My Project/Resources.resx b/Sub/WinsockOracs/My Project/Resources.resx new file mode 100644 index 0000000..e11d804 --- /dev/null +++ b/Sub/WinsockOracs/My Project/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\k-koding.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Sub/WinsockOracs/My Project/Settings.Designer.vb b/Sub/WinsockOracs/My Project/Settings.Designer.vb new file mode 100644 index 0000000..7ca83f6 --- /dev/null +++ b/Sub/WinsockOracs/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' 이 코드는 도구를 사용하여 생성되었습니다. +' 런타임 버전:4.0.30319.42000 +' +' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +' 이러한 변경 내용이 손실됩니다. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings 자동 저장 기능" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Winsock_Orcas.My.MySettings + Get + Return Global.Winsock_Orcas.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/Sub/WinsockOracs/My Project/Settings.settings b/Sub/WinsockOracs/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/Sub/WinsockOracs/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Sub/WinsockOracs/ObjectPacker.vb b/Sub/WinsockOracs/ObjectPacker.vb new file mode 100644 index 0000000..4fe5627 --- /dev/null +++ b/Sub/WinsockOracs/ObjectPacker.vb @@ -0,0 +1,53 @@ +Imports System.IO +Imports System.Xml +Imports System.Xml.Serialization +Imports System.Runtime.Serialization.Formatters.Binary + +''' +''' Contains function for serializing/deserializing an object to and from a byte array. +''' +Public Class ObjectPacker + + ''' + ''' Serializes an object to a byte array. + ''' + ''' The object to be serialized. + Public Shared Function GetBytes(ByVal obj As Object) As Byte() + If obj.GetType Is GetType(Byte).MakeArrayType Then + Return CType(obj, Byte()) + End If + Dim ret() As Byte = Nothing + Dim blnRetAfterClose As Boolean = False + Dim ms As New MemoryStream() + Dim bf As New BinaryFormatter() + Try + bf.Serialize(ms, obj) + Catch ex As Exception + blnRetAfterClose = True + Finally + ms.Close() + End Try + If blnRetAfterClose Then Return ret + ret = ms.ToArray() + Return ret + End Function + + ''' + ''' Deserializes an object from a byte array. + ''' + ''' The byte array from which to obtain the object. + Public Shared Function GetObject(ByVal byt() As Byte) As Object + Dim ms As New MemoryStream(byt, False) + Dim bf As New BinaryFormatter() + Dim x As Object + Try + x = bf.Deserialize(ms) + Catch ex As Exception + x = byt + Finally + ms.Close() + End Try + Return x + End Function + +End Class diff --git a/Sub/WinsockOracs/Resources/k-koding.png b/Sub/WinsockOracs/Resources/k-koding.png new file mode 100644 index 0000000000000000000000000000000000000000..958f7fd116447357f59e346279d04c84b69a3c98 GIT binary patch literal 30384 zcmV(#K;*xPP)P0MF7Hix^YYod=iK{VR#pQtq(qTZ!0XJ) z%*uT4e)l`)JLcYG@Za(e=j?Nz2c>uq=vo6}tDSOkvu!2Ibx7{IT0E+%v82i(ySA^! zIleB=luK1$*J}Vw2R@Mi{*EEVA5MV(+O}_H5=v)0YMGvEHwF@^mglR@S5_OXYn@^1 z^G|{gjPalJCI2Wt>?eH!Kg`dkKmBRt`0+nvmFe|JyrpNVwqMw8DEV9rl4Vbie0P(n zjSjG;r$S5x$Y~y{*Z@2D`#pJp$r!+uCcuk308>eTkBoV++yeOarU^CMz{gbh=s}g| z4S;8NfHTkavs&Hm*k&soi$Yp>*1pBuS;qUnVe>S@bmAN-SnS2BcBLfQZb*YZfxybl3Q^qnGtqGa)ydbecUZluY+i9A&@J06!HErg1BV@*q#J?9UmVQpyTt% z;2gf@1Ty=(%gE-*B79rD8){&{7(R!81{V?JqiK8%zL5TY1s|-}fvt8_HX4VBZ6pgV z4GOyscVmj*n8=^r{NG+#UB7wFX-)pdr2QGj{Gap~_Wt}-nd{Gej;mLr>k*wrauu5o zuUTsUYD0;ae3jYAu%ie9;s>wc$eXGMhDTgf#s9+yU|!yZL;!jWUmU~N-K@#?f1;qm zmILDV-#rTOAFtpi_QI-k7zZs#XGru6eu0Wz6nWB7^qGYze8qvnrn z)|LL{nx@-mifI@L2>MAQcw`f2%>ZP4E`~s(RfhYE5|G8FWb!~v0=?sTKt9&CC5QmxN!+x|?_tIZ_UwYcBhJZl_p+EBtM*UuE6o%OW#88p`?5!lyD9xR~vdTGmpH}D`Z7n%yZi6$F~3kpuN zR4~ap9!Iir1lff)ekRT}e2h+kLt6I$H3MtfuJUG8i>=yPaV()0UoNd_qmTZU{qTqW zwSVDjfASMC<3BNw&!1n5KXuy~SZw)6uGgZ6uI{L*qiLqr9FN5m1tt)P6bdC8OcxKt z8+1k9(m}7GBdW`*un_!v`_a@Q$Qw-wOxcy7A51IAQUV*`eG>}&!ju9Qg7@ksz<83w z_trhQSTo^9tqsd<1IANmiczgBq1o;@5@<1}a8B0oJsq?TCeFONLq1$Vpz;0j1^rPM z(%ge3Jn7}S$0D8?{o8q`XnAJANJiO%Kl5w$&wly;ai9ClXZ}S6+P}EDM)vBrHX7Nr z4S(XRx0KNvb!LplJ@#!>y(cmNhbYXcp$W#_%~58 zuQiF4(ySK(0Y+x`5dQ6hsKSq;S)awv`X-v>A7Ci;fpG*88UAf#ano#yznjV@;lW`Q z7EKkdqd7;bEZ&Q(O3nA6ZcE0Kdl*j04YETA2Qj$P~815#$*JSjlKKdrM`5{9gnzhywOqz&u=sBb_3W% znhTa%WMWY*lSw9!6Ub5$Ix$_E>^%LBhaWJz?RsD#$2i$*WZ6tcf{X774ZMS4FHoEu zSEb6P_qbL<;Z;Sp<7cho=j>YK&lU09uBYRB*-&nqXgyRol*JEW3N(CTFCO@sbObF7 zo?~AGCnY|ADvuz#qys$A@oeg7QZkAIdAv_nXttq)V|SR@sIe_iO?6yzKyf4b8@I2y z?>zPi`?=@-{Ksy>|3yIl?D_Nhe|*s{UT&y|Z*8j68BdMTzCn2 z4?{K=&l?2LmTSRmjf0ODme*aJs5k-fgwcZIdv=)ZaAqpHTB(~^#d0!bt?obk3%_n( z_}c&XV-;pUc98$*sg1myA(%{tExWE1SXl%C z-5gxO=i4|yMI6+r6q1UZ3ny^VRC6-Jib!~%t^y1HU?wF$lP1O)1l-4&aTCpE!<7?- zOuUQtCz8?{tTqW!Ie|`O$ue+ZqLb+B+m?yKONCS{il3pNb@3pMYVU4j{b95it4Pyr z(?!3{;VL@+EBHA(jxGSV@C`Mz#Q7LaDr7d!tR%ii3XOb3AtP-omfeZ9tWF-UPrv^+ ze$V>I$#G=$b3YdI{bNgpka_<4AR^+NY|F`yQ)zkR8aP1cG@TLzS7d zG_4Pz+WpS11fvjyKr#%HA<|e>GO+H2F{~<>IAF+lm&`etWnBe!spe~z1IB37iz>dW z_kpkU8NSj$RvHNO-ATo_Y|Y!kmnlrKRy*7|l~=vlrpFD8#`DQRM97o=JR{$~95A1> z08#G}`fCp@iEW$sQWaD+h89E>v3v_B-6p>9*-aI4_*eAUi9GppQ^eM)%~&0@Sfyo7 zPuI5+g~MkTo_Xe(?I)gi!u@XoWCU1!^=hj)zv0bzjy@1qm^PX6n2k)^Y^ow@K{f;h zt%z$^@EF5UNCqI?#=$gjPzRDS+cb+u3zhJDhGj}}rGtNKOF@OKR?hahvAo~RL@K-4 z&DG8H+}3WY-KZy`z7@xF!2=?7O;rs%6c&N?XoQy|hL>hhS63n(JsxW-&2+mkkZS&F zF4o9oBK3H}s5SxZDNX=%Eu;bj$gl4NLQkcn3#x1cc>rfXQ=E?n_oqpGdEnU&v`iaJ zlhUjn!3rZq17Bl{*LwISrcbFcMcb$~hwO$I+pV^u-}uHi);{oo4_H6dAfG?a_4W12 zkfZ7|w<~&nxy95719mj6!UvAx#Vtx7L2TGH13?6I(FkgkR4PscTRwjvP}Ap84KLzr ze}K$+R3#DQ8_aIzjoNy@zdJXuT3_v7X;%u4#rD5}O( zbiN9rqoA3`U%9Gr(9m%jhR=20_T7qSCiPZbZ)i0m5h)EMBRi0YY?rvPwQFiyKKON2 zRXt)aWzvQdcpIf;iw89XZ3{uo;Nv4P2d~M-=)e@2xQZt;Xf%tz|@kl8*Rm_!muI~~as5?(YRoBrf7Jm@={rFxm@0*-&pVu#lk8I ztwaNW?AU0jJiJa-WZ@2Bh&7G}YIziA6tejUG{xK|RO(IGt&?Aiwpk*zJeJQc{Lv?V zuJKa^@;7E@Bj;~s$E%hx{k|EDe9-@XYYx~P0@gGo$oCCM&?+rCo40UKXk5s@Qksw$ z{Rq0kD?8HX=~OP%9bF4>IVHo%%ifwtR56GG=+N6=oc%WF+~O>{>l?}0%W>!4}q?s9cSF-4a@HoGSQW>(fr(Je*M?$KNTR)&hp3?Zq+B| zN_-l}CH1RkR7O>s|94gjB{IDvph(FMs*<&vrhJT^BR{KCg$R$ka3Xwpk>X?DNIA6$ zZ{^ylrCZkzxmIVi*q6%Yb7@2-%4`%ip3k7;Fle+aXf#?FXWJrX)-Y^ATaA8QN8mKH z3TU1cCRj@$wTIH$5fi`%8*g1?6)ADSXhjt!T}AM9jX{h=T}**&%7CH%JdBU_^S-{c zqZ&$y16!nSu| zG&m%T@OnjfM9ifM&t0gXQIo)&DMb}AfSA01COnx3n6H6q_{|Y(;nv+7%kw9a%pRK> z8%QP-af~w=v~32}x&@_j4a{~6bObS*O~TY@AH?Gk!AKt&;yRS1K!&&u0_X{F6=E;? zWev@;rbR*1bp#Uc<0SC#1)YwIY(mqCim=f(p+kZX{du)zz-GAv3+tpo6|~_b%1BtwAbYRlSop}=az~0V9esE- zMy&V5v4f8%@m9yd+qM|1IbPJV8>5}hD*r$J^iOa9hfjRsM>gI6B#_T@u7CDR%VS$+ za(c^DQ%DR}w^TrTCdzRlF=5KA)q{i5jFE48sV*7b3{sXf8AzNA#J!AL+PKHMcI#fH zQ=K?Io=<0zaaO9Duu*n!@LM?1ZOCU6aCmwEVi64-G;{UpE>yNwVZB*FHk)Xg$?2-n z9}BTXhmMTah2JIL9WfAOBZfyD!H%HDH4yL!^cNE_IZDj;q1CovYqtTLJ9TKc9O$SK zjGrUuJDV`Ka+wu#QSJDliNdkNBe}Z^k%^(0e&pHJ*2@>_`qj4G=`?YMCk+`=QLJC1 zQW&K~G1S_{i8n`949$63rLG2?kPi848WaTG;%vusqU#N7tnK;UAN`mAGWV&EfBZ)h zV?S~-gepk?=Tqh3D`oG%jjEDeZ>dTdBTjT$FovPhK}s&P0s3`mj>%+EqJYYNFK$!v zLMAjQAABg~X+^zrIJUL?;mxJhhsFxA$%FWhWxH&7y$Y+_O(<7tFg%cf$?+n%b_2H8 zZo&M`^RRU5b=X{6gler!=|j*FoOo24*ccv(ga(eP|#z7Sv0cp6fvG=63l4o>7@u$aPYcA<`b$aZ}2SORJ-9~PI_VPSDq zL6ICE?@JCH#d9Bt>bXk8EX{4#nl5UEVuUho9+Vm#)DD`kD!_5lpnGZKK*Tss2CzW! z$l`dygm=&a?X(>nPmdaq;;okN|A$X}toh|HfBA=wqkkkOQ=;R$KWG*cHk(fKL{>)? zLkjaWn%hGOKm{ph51HZT(OfMA{&xl+pR3C}FojI?nyI*(I+JQWHaoZVkj9+hyN(V< zXdtiOT8DDOgL)#`f}PzeT)MFe3#%ni^du;e9ITW&u>R~NcKO8jn0F7^Fm;n2WhZ?)HV5QWHK3WmFnf5NCdS6`&5iB(BwP7)+?QO zv$Z}2zGHv(v!7l5u4TzW+99ELGfE~ zZoMj}$bMWy%P$ zT;nLVkR>LvsNQNL*fl8c?!b+O6eZ8@nQO<=`o?EI z^O=8iVdIB3*Izlm7GK+mPyb*8#uiPc_s4)uBxEjl0j0skD!?+DcK2N;;oP~i?Bt1KFf~2~!zjA?3VjewOz&9vOv+!6HoJ`-~d+`r$DQxqN808nC;w2`fvt;M&zU zVPWAGq?1uNb!-L>p>?6~Y<+D7MIMKEs(_O#3M;E?Fh9SnL?VggWHCF|E;~cFE6qhM z!dq1w6bdPQG|N#0wbAyVjciuX6~q+}4<8iQ71b~sg(LIuzH1B6+h!|*GDMH&5{);W zd(Ql^fQ)8Zdv(bldwGM;v|J^6A_**|5krtE_@46fiqd_SF^e|k&ZIsg;%e!3)ePKIqTqds&MQ;Kcpfqy!`!dz|Q6}OpFb|sS}6b zzI#u@xx3G@GpA0n>8WYfUo1ePQ33mV-vI0SWne?&pr*4pfYd9CaW7IhifY@#`!T#_ z_`8i^myar&Xn?~B5j;T!g_seILKFuya`6=yDXqiE@l#MZasrY#5hx_{(BD_eWmsBS zh8y@<>!`Gc1`2TQ)FCLKt61OI#OHT#;^ZNk>_aQjf%#iES*zn2Lw$uoyTPY68jVFY zq1IZaE0ngPprS`WeY6-p#`8%XK~}j4`E-wq#)K-`Zx^kO+i5X;Eo*l=u_#6bANl2v z)?a@5>3@{j{-Hqr`0xCFalWD)E}1NqQat5CSrP1QJJLj7D9g&uAOiZXA%F={t&ufb z^3ND*vJW5dpEz4|e<>AV{mquCe&HLh!2Bl7S`-L=9qv6n4V$aC;FTA?1(|db?!W5@ zJbXWbd+#|oed;8Pj*a2t8PGdz=)CYLOgadI=SH8_t|K495;lqmOUF>dHJS_5`G|{rJXFSYMuH<#I*q%M|l!8xC}=>QXbJ zR6LCHMY7Ga5O4$;TpS-1hpG(bDGyHR(>j7|5wl5^J3g}BK1T;EBpw2T9e;}1;5nc_PN5kpjdDAuJq@G642g2x&fk_bNj;b}C@aXAUn z5s$rR3f^(gp!*APjpY~DO6<@7=0#Su;$UMynvQhf{<8<*=quitV;5xAMVhM9&jA469JWmDFI#}G)gkRo^64%k9I`r$!Yw9jI=`ZEXk zI}Yc)k481f-I(8k|Ma=%nXebYY?fgtufmz*Xs_}Y3 z&e{(yyq5wNg4%ld+n{eO$TT_b>4@ddAj>+|3Diz65dZs23vLHZKO01pkySU8jPA356RJ&B?r zf92*T{O2#cz_jEjG^?91JsgKa7@B_#m=l0OH6VzimSG z+3!L5Fa8Yd*(>|N?H$?ABf_0|%W~cY&9-!6*(vY-AjLZVLT$QVKe}NZX~fsEeo6gtevXu)eti zlha2bnHz?+h?j47ds9Gl`Cy+G=77ip`Q03Y+DE;jh(GM(2a8)hVSX zvLv7@yWnlD0n6k->mSC67lTAR22oVuWLoLH4V*Oi8??&Hu)4ee>B2N5^AoVWej5R4 zLmEwYB3(ofeOBL{V`%Bp&1!QvkPEd$cphacg^r0MlJfixe3oB)X7_7vHp;6g{1EVQ8FgXNY{_0oY^w9}; z@I(#{9hiinp+Shz(gy%(4owrbuU~`4g;ybtvs$n=1UO`|j)pm30BzCE@Q=9MyV6lQ=-*89)|BQn$)MEP$A z{eX|}!!QgYGj5wD*j%3lH8uqC+$2=DZVS^*j83ErqPMM8SyLR_$<-R2J|!8uhVH~} z*q&%kY~TPhE)ypThEFb98`rf(#*HQ?eGW0&buCt^RHMa0&OG-EzfiyS+;iR!4f4!` z|0Yp#)q^ElE%fOs%V2nviAW%~>j0Yw^kygMhgM}9&O}-sXY)LNyx{+GMCXS#cbeK? zeCZ|VKpxBn`rtnF!6#%oH{%Rr=}t>H8}>wVo}7gKAKTtFact9I#63$1b_BA zBxn_y-UF@xnu+^7+XsB&D0s1?C@)HoWx28A%90}$Do9j``}qD;yy%!6uvc$D>gM-E zfu{oP5UX)U&wgPo={Wf$g3qw&Csur!%@IIJBmJp659%NdA;eq|>Z|cKv&3J6HAt9RBnIP4^m9UD*Z~CzG4Zhyn;TB@nP;V%d)L z{Z#QnQ)^ZhKsC_yL^IGVuYej!qEFAF>dxYMILvC54Yye!Nb|B%u&v)IvZ@qApU0An^91XGtI^KbkS^EwkNJdL6c9}D#zTyb4(%d8kqH6kt~VEQ((l>D8@R> zHfwR;wlkKh-;U|Lp`bh25lcsKba|j7Y@s*NLf{zTL4uEp87f&2+oU##sH-SDH!fZ3 z{G&jo3e%el?c!X8A6#$x`b<)Rk(g}Fi7WE2NXk)2LQ0$BxXUQOUaL`CDh%8==>J?= z^QPatzN$X|>JqX&23BJo-i4vj>;n2duMPu|O^iJ=2ykBbH7ex$!k1Dzj4#YA0nsuo z=&UY7dTUWET~T`da4*QIELa1Fkjcm}0u~R?lPa5l79kJ*t^ggra0zaw1<{4)Alq7e ztC_wN2W?Q@k;SZF|zyV@$;a@4nCJ`2i#zo@9 zv0936wd1OmD@2V+q;ZzJs&rO>|4oW9alE-d0SRkA8(z zw!(~$OnUF0O!9knOZE8IzjpI}1q%`6YRdw5V+Hc16#=q{iF;Wbh%g@qxc@^L(JYL+D z>vq$cRMtx_tt#}7JXG-Cje=nC=@+iEr7auU?G_B>bvSZp8s=BfRJrpAWF13_Jm`_A z7z8Q=P-8pAv1M3+~^wwj>?m)gQyjgl^~!!uj|sOok(N0 zOcWu|)VUIgp>M{?Nu^DuMi~x$OjDz}&z#%3*J!r{$jDlk#G@kEtO`JJOf1iQ2Vm*Scr?mU{A^T)3dcFeGlcJWfkOs1{6%x6aq(LhX)hTvfX>>YL`Us230Q|xZ5;}Q9A304nA^gWbv)#j zLg_peRAjG;14atc=bDH?b)5Nu+mlClU)y_3A+v=S>x+rXf<`?S5R{AiUF7gHjOH>F znpcoT!ukP|Zdw#C-gX-hzIQO6iIm>17Khzz0elo+l%e9mxhE2F$fVKVq6m|7N5N|& zCL{2j8h#FfY#UH3ub}`-i%u0vfig62mff21SmccB?LK4RXt!)z4tTI@0-0_KpB%3v z7hOY8n8$ybZC9ymmqv1@?ph6?d3%s^jj>2QVhlQMmA%-IY~2c8PJWr13#t8-8pLTp z>GuQ*vk&I|BjZsxVzxWc*Df!k`PIN`m*DP`V+cwFbZ-SVx2|K@p+N+FFvWocpbAnT z;rx}EDWoW|&E<;7)sl~n5Gb0kvt3Yo?}s2$xsE^*EpwtH6S}Nc0yYy$ywisC&I=G# zP03azn7F>Q+Wwt3TDo>|Z~-#M0aswNZw#DVQRKlX_Ga7{pGl!r5`k`G_(yTAm>3RD zIGh}=Pm88XX#L`V${O0uI%IPN91}G6=^Rr#vApX=&N}|kwHVx7uh7+aa_I&}Orq;k z6^rpbAsoqUi@qxHpvo2&)^p=Chf&r-C%lM#Ad}$w+t5Rq)E?nJU>$?`E-JqB?V0r@0S<{5Z)lt(_sjs$@F7*1?&u9Lqsta1s5klQJ2q=${KXP7QD|GSD?O=qycWKG!E)W9nq8a(gS$^gN1> z6<>nk*u9Q6Wci-gt?st;-SzdM#~yoZ2g51%Eg)aG0P3pk4}52xX_U~XZIEW7lJ^8G zy%iPyA5BUTc78_|DbDqIGlMZU(`vONS8r{iI>y0unsEBqVUa9olrBT9w1#GhRx&V= zoX}kAxIn3?Yllr*q|sQ z00mhSHW27&EGj0cn6&t&6n0V+0d5Ol(-H4a6FFjNVsdLb)wttXM=u`BXNKS0E??hj z`LbV%dcdd-O+A2;zdN=~l!COK8>o;#iSK^t%T1#h#GAcY? zkaOiqu(1kR1UvA_)Qw3C&o&xcSS=uDYUCcDO$UW5Wd$UR9W%zana7 zMl>P@fzpnaBUk?u|41PD2rMyySZ?8K$n0u}J`Z}cdYSz8X4^;qk3t3i#-r{`d|%p* zf{6wJCatp9faLBo5am0v%fat4#cvZf^#Uzej1N>$6))$efDa#lD2hFbi$l{+qRQie zvZwPWc2WkI@AEf~qlNF+U$%T6CmC^xs8_^vc& zG+F{w^z}Xjl=i%U(XsA%?`~C+5BWth*;Iz)N{_8(rFcAbvuY#^HCWb>k!G5bASAeI zjx4+@vJXvkV75Fy%o(3HO*?jTeg|3|nbJFUkP`ViEG=Ata%Hz$%k_i8K*y1JSen&> ztz52j=y=jMOPLCSI`kX_@p%{Q;Gl#<2sp|$Q5z49Govq&7(AHE=8~kUA!yZAR7ZkJY*W>}_^6xbQlZvv zsHLr~!6%=5QsCPK`N_|N(gq{v(DE=<`rEmtT+ID57~;NvQnvQc%KhD731?jQ)V?T8 zp*9{`TB|7A70R_@Xp%5sd^m@~s|+hkv*>$e=s*`wpivy@xH79n0Ft667E_kWawNc{ zltX(eCIOl55a_={fT_M*7Alv%D8dpb;$V6N0gQsnPv8@%``JMn*4a zMQ9A4gjjJ{sObHAMlzT#k$kksun9&h;CAquIuCcOqF zhBz~fNNOURpBz`@&50Fxd-QV7k6JOkk)`tya{=PQ8x=cQC}94W;VYwT@y?L%?uS?v_I< zAL!4hotD-wt<>UK1Zx|LebM%fMn@w z5bIn+^X!Sl$37s^OPV;#tKb9 zfGYAnO}OrJYR_ZzI-FRIdKosi*2M%A-J`^C9JjXRsgA1-L?S~)v8RIS1^9Y_ zQ{j&%OR43Za$lFppT;rFeK%KV&#R0&JSayHf=ipIoE`+YUy+lB8sw;^AJzR>)P}*9 z<)_xR>Y~5NwN1!plaNWp;Kq&X&}_HS-;yT8iy}@2OGS0O5Y50)L6gFWI+sYz(SR{k z-l`ZgintLcgHE(!Ea=*JD}zH{t#VUn5k~J@zXFlnZ=tEaf^Ti_{Y~)0crS}#FQXMO z+(Z+-Wapt;d;kV#?uJ+*CGy5p5)kE3UlX}?)kB~uorw(fd;G2MOW`L>HCYxI7z$9t**jzq0k} zcKWmD&uaqY<9J=|n31KegLiCItT;reBuw-SB2DX+%rL{R($Y*}*)nL(`WtOaFI78o z3nZ%z{SyP?MAtUfz_KmDR05g~`Y)(B%FM#6CvLP6fCGvMO`WB)$UH zf)Z5ydVmh^tGt7!XM$FF5wu+tS)DndM!OS1=>av2kN2r33B1`s6K&?9()SPy9(e$g z=`@N(FPI#D(9{qBtN8*@IyhHFYF6<`IZIHIy1mFGj1%@m3X$^R%nY>3+z^8T9Rzn@X+a3hD1*klvR|K(p0?Ql%_R z4s}_QIrf=kvhb6^8eqSN*~DO-4g@x45b&Cq1fKBGe6P8V1*W4 z8K;sUfh>G>;G30DC*a|z;d3}{_}X@}D)I~H$b>-=Mu$^lebewAvrko{DHL6uE~s8_ z_!Ndy0noPG`?+0f>gCndgaA2HsYHsgh;cOMi|p1&RBq`&dqWe@wAT1UItlA|4r6I4 z=Fn2)A{x)q+MZU&3lad-nHhzhQb{Z-QGpQ3BUc1i<8z zNJ~;2DONm)YLvg{k9)xG>a#FrMvz(Mf@H7G_lH|rFgb#>v`9L*`vIo?x^7ek!0mqr zOe4UFR9fllF@*`-`hRw^{vz2FmSjPGao9+TM~ zn}zS)D?<3_|90CdT;3do=-7MUz|nh!48;ppZSk`#S;4`JM<}Elz|Fw z$zI8}mSEP1+O+}|cL0(HehwxNorQEFF4C)%($r+2i$Ia;sp8_3Yjmz%0{= z6J21X;YXW6F8Z%l0G>fxeY;jhpiP)-NgrQG%6&kZVvlDQK_rU=RyH| zL!A=*rvx1-qIU~Tb`mXUJfaFw#{!{B+Y{g?Bvd6#ZT0+wD!ZHgQX!lN^jM=-iwY69 zWm-D<+?Oiy+g7L;LGhT0vtq4j!)B`~cC4YD+G!6A9P}6(vv}LI(LBo;MjivYe)=u` z9Bq!d1nTy;Z~(UV-hhXxN!De!d|yVPXz(8hR;r-@48UZ;gk{~oWqWfm%;+gWhEH^o z+7L%w6ptvvpGwiD64>Z9v^Yi_#y-{6Qf)ByO;zX z38`Um}iSqs*nrL)RJV>2N6niE>ubIE|Z8)BH z<2oo?Pov@u){q5X3KSMPD4b(KlVHe92wB_1-Y}iL2YByk1S-GFW;t=l#p!6OX~P>? z#gZSQXa>TJc9a?FUVhr^VQ>%FYHwl$L$j78QVqy5#%SAz$)qRBhzhcH9N+U)F@qB$ z24yt?Wn?s^I%)4|2V~?=tvSNyGg$|v-#fJJ5~^I`M|r@@o`KMUi;V>9hQ-Uo-%Idi zjb0|{WogorebT{zce`?WZ+kj*8YY9UzQ$pr%)8af-fUKH8xQckQepQ8#g9^X9a!~J zKxA2TR#<3u6T zyYuxyZ&>$rOr(Sb##B=W$sn=USR}>#x66d6LE&Ow^FWyW65o!qm$LT^Rc^u^?CO3r z-y2sOP_cE`ZUO7V2%|qnEhSubs)RF?!V3i1bK0W*tBab0Dosu>09w%4E+#~`bxK}h z*dyh42TB6$ISy!{y1vs?!&||o2KE$Q$NN6`Ay{|L!Lx4~&~9_VUO!}Vz~(Na{r$J% z{W@h(wqFC*SnSfhyDW1(2DDO8<PV{VS;$CUFRW4y(a{F0Qnq3GcO!a&urv;|KISy8q#th5_oCrgnitnN8 z@~IQZ??6)a7BFU05gKNtxE78yPsi|SE7LN9*$yI<^JZD~S$yZg95h{}o4^Xo;OAx_061NP9~@mQWpnTz&>>5Eey0kZp&Md6 zJ(u_*%Z?~T=i-U+nusQV8VQsm#3T*cpKzcl2XW%b`#yuWbCK&d~Kr<Zasc~E>zi>j%ebYp9qfA@t~o$tSKrE+s|rPOYj+xfz<{rE%gImB3WLRC~o zGf&f_qTg9Gq4|=%1f1XNPkY$PgJyKWa%#2@>De`RRP;arZ0qcn(5Z>Yw zW(kze7WlDo93%~npF9Q4#z)`_FZ?C^+9M?xD+Uh4gMEs7pVQ@~>b z($#R;I3SN8Cg)-Ep5JZa^ZnrPLZJ7q?@lp6<;jF7icq=J73P~jrY$RSnS|?^e%o_R zdta_PRMUUwk4Kx*Iojah;ElQY#V?JF4E;97q-=X<2i7+?(Gn|SQ#9IcVXJ9XR-+T& z*B^TH^|RySTZ$TqDo*?7t)1pLeX9fQBcT~l^u-1^ZPx8r6k(LAbODvKUoL9%0~4(V zri^!IzpT;vqNyH17M5W@puPV0ZGoovuCajZJBhy}MV08@`|n4f>+r>w{sw;Kp#~JG zrbDLvPBsUAx+}!!erXB#=5_GL`{cIDeh9J`Y_lw{iwEnW{q6(^t|e?T;JmvwI^3W} z+)^JK`r~vaEB4{0@Aed#LY(C3gaO%9#4T^SZQr3q!aXKARMK|<+v}tCc-$g)=UrJ` z{)?K!-?uV9EZY~`32QpaZd#1(?Zvk;LnK>nkkntSQ^zJq;DPTS7?E|dt^Go)E0CoB z?E)L7xXH&7-5V&HNC>J4@jI>Fc;xXX;G6XdeD$@b;KO%!AWvIU5zt*G^F4O=m~h^% z0_@xdo<9n{mJ-1FU8aWTEc>b?@Zn_jx@-@D_Ia;Km!_U>4I={CT%XwAq}j5AETV@j zjzb}1v}WyQQ+8n(du}&m@m|Z%ofz|MJl+xCQZ!$MTYvi8rN8{&|Ld1ugiQYre&>^) zY@R)JidOvdol==2qqL*N#N<22;y?esG2?fCaYp-%iIjhWdXRKY7QiX3YD7~w18Jia zB?vF&g+Y%Q3jq|#69Sr;Eq2cFr1%O4&68U%`2@1hyK!uo)aU}>?>Ds}`&eTcz-a_C zLjEo7+Vie=zaQ-MgYcb;2Gr_&58$5AYTtYNGW>vD^z*w5V)3^hG|KtGdG3K49$o-C zKJIyeg@P`?A%nwkihg48IApSYg2l8?Ha$<bty)NS9lV?WT?!=kb#()0bKJ(ij|9EbEusBRbhSx7&_5bsizR~!>wfR!D(Q?uM zDw&v`QCp>{&86$bX0rm(h=KsiX7)%tBeF9tH$;tDtSIn%eN|7u5ir;G{o6yQGii9&`#%KR>?}NgLxol=0NUmI zO!s~hj+3UoBh0ps!lw&xaGqXh!h6{nTzA)Z0}ot{j4DDk4nYBxHfqUUJeAHuJduV* zixw!jq6s5vC@@gWa*f&5^6o}$Uju!Yu3;ji=e{aICKZ0@=uAsQCuDIS7>sL$>FoWZ zN$vi6qt0G={gU@zzw-3XH*fA-c&wHzf4t+JIXh9D(o~lC-ixm|PrrJ7XZpZHk$g-q zm>rMNM&AT-B%Z^8u<=4{0W!t!Vayn+Pw_Yp+04aP)*8O-$EMjUO}orn6UbdteTQkL zwps2mx!5Oc?jzAHGE?}swRzyV<9LC37|V#beqdk#9((tP;F+(tAU1am?i=S~kIg$1 zCHug3ZBR;R9rBytC;Fu+7K{#5cF0VhccTZ`)6#*Y-AjCgVpM!*25Ol?aR8`ixKitg z@7ADDv@f9neZfg(cd=aBTB~){bhl}*hrZO;6*Kmk>{Ke{4f2b9jt{ww*v(oChGT+^WCHewOaXdTg0dkV$wf{t1M`hz3{zv zimcFVi*hUMWuki0OiFc*dZeiFrRP&+@nCdp9PWGkgYe3CIuKo%gENC%ln(D?Fb@(V zVmVfM6O_t2_|d!&MLh7q!o7s*x|{Y2e|mD-BCzazL>3}qktht0jEir<*(x_{eO+wJV~_S%_CmoLLhuU}sI z=9Q({1%33*=zZ_Lp3e8R(aXYmd~E)&wo6+}x33SI_K3<3-M7__ruCR^pH6q&M5S(v zFa3z6iXz2H8=-if2^!za%ZByUu*e&xFX=yO=@sjixvVOO>XnHq6yF2dlXc+`U|J)^ zgZ(~27I*QiBJ(U1O_9tV@4cm&M$`{9ij{uUy91&$WbZFp=iNz$XX#pl{} zVAU-ETGdEO!Vf?WEKhgV_T(zN<;cK_urPHAd+~T8nTDa^aTHt~1X+H~1TAtK9qgkn z(dz2j%2vm1JNuI!`vjK!XJ0PF11+MqYqeTOfQ)yXr=R}rH(q$-Qp?g4E0KHOe>;{q zRxxcH+HwV&jtM)>L2etxrgLC?HcWu;dYw&(tJO?WPtf-$wL6|@fTNvc6|)LTb4RTH zXJLAe?X|vy0}w7NrK_c-GLb-e3N=d0LIsoW@W~;-Uch1{NLTi-ScF+^v~blW9K{ik z%O?Vy<;%tT;iD%`L&t2v`B%S&N`FgyJui6dt>&6O7fp^@-3EqQgri#uSq%PO;$ts0 z2YbMVOz!C#q1T9T5~*42AB0q<0ITyApvFkDDd~g)VuVS4+ecVLu?EM z#4QA=Dwm$}upA-LmC5+McB_zlwBSt>AbWw5^}B0>dC+gol^!$g^#I%B0$7keW7}7N z51a$BtIQoWMfx*Z+jR2m-J%Zu+Qp|(8)kXNJG8+c^lF*lnTeoh^ug~ASu|uC7P3X$U zKJuZ-kNx5=Kbp_=^{*_itbg^}PhbAhQ(vFm*(jO4Y^JEG(L|QvnS=}8c=6sR%c%iv zQ*~>FNyBEFiCE+V$C9Jxip9~qp$w^dBx-?btu)--=U1C^udbV`Mnu_0v$vu%+Pv?_rWWz2E20fS$N28LO(_gcd}XJ zjhi)4S_pD}R7L=M;X?OA@9YZ?yEa8R# zTsLXSDalNxs$R8Tuh8}Ft!gap_*rGRw9#^k4-KWWKYuF!;IV?UH`XpE{@wkHY;VrOQ390zn26ciDz_!2I^>!1Aq zU{%?xH#4bmM5~a1z?0nxV*I>-&Av=W`pRCxK4fKBKkXhB%mlaTM08H3gy zrKi^`=%5k%d^xW8a+2u-MPaJq_q&^PK+nBzi}0y|2SHMpnAk)eqCA@Pre+%&LgXipM3z{ zXg1;1?The0)`K{8qV^_9XkWKh6BvETSTwnx!O%15y5>1-s23#|!C)E(D*WUN190l> zeb7NMa&2xKtspfwIxsmpKqbHS-0aHYm8%!G67iV!-~)FbIxsbPVs&LD{^hTJwK_Mq zu$eFPSr0$>z`&`KCr2KC@WCfm*EV+UzUPdtpyR%D^UBi~7Z>?HkjaK$T3Tw3^Zt>1 zGWNv6?b+0qzV@x=oAYb)bzi-e>KpKXX?W^1zVJ}H-O{XT$%to%*_PERxt2aRs2fL< zF)c^STwGU9YuZo4bdq9aLEM&KfkRa)5bZ&%`^A`HqdA9gQ?;OTM3f{0AItWOtZq#F zw!WB)ja^H&5342$n;{iOMYoEKxoLfsNYZ$F`Ep`4HJ$3xUo=zTZ<*}+H}l; zBL_x!vr*f+dgaZV<(=(LG#XXQuXPa=R5UUbK~ml?ZN-~Q~%=! z9)IG|BWKQ?`RMe_bP{!pIy-l>HUIvfz51z7eX6x@W0>JY!qXyp+-$c~-}&A%&6h7; zeT9!4xp3dT_j^yAJaFQ~a9=KJ=meDSIku~Emsi`iyKY(6S)83Q7|$5Gs+g81vS3uO ztam7ejG%zCAc6y9TM@vMmgU5-XITwF4nqt%V2S|QmxH^n(~<`QM*jFgTM+?Q!_QmB z@u!|NC(#dyp-Jc;IwjtK!m+RpEJd;3P1N{8ooKC1>53Z2S z3`Lq^b-JpGv9|%3u7g%l@W2n#o|`z)JDm=az{Ag&g3~yeXdT&wE2~HbTB2*i^mspH zQ&DSf?)JjVuY7-=-WUJI`^r<_y>aNk^sO@|k7s`CH-58t_ucm$Tv=O%WG0===X2W7 z;9vsB?VeaHrjkqOFZTV;+QQ22xpU|KdLPJ^Wx1N6EtB?n?BR#?haY>#c;C=SDjAKY z(@||OqU#y%yUcN1-*rSYu3t87xK(Ye#XH{3eo!Y+RHUiRmX?XoSK(1Vc(blRjL}jV z8`Y$VAV(mAK#M9=u<&cIqf_4Jp@Viq|GB56<#tVy(F9lv&D{z{5i6bnZ47M^Llcl4 zo`k~CDD)Ky;@fAWqICm-9du;)d@s!y+O>*{|#iGXx-Eqg{_;CFW8pbgk{dqOU?NmIGsO95SPmFg-W| zgm^8p(CeYr)Pd#;Gbz{rE@64I4qX!S1M7;8=n{e&wHEVux zp*k=$Wc>br|373}t(G!3H^*wV8rSyEM&|$VAOG<}Suy_aTGO0=_=@(a^)^s5ri-LBEAz#f<7<; zx$!BO93F>UUjb4GtoU3_Zr0|~7k!Cp4s=7bF!9o5vLncB>7|MpLZx93Gj32OfT>sJp%R z`Ydc$9igac_re2{!+fV)*?jYjm(QcQrq~k_iL9#Yx>9e~T%08KvoHSO*5yk#cE?8s zFQgOk5tMS7dZX!=cT3gNXHKO*@qrIMoXcg|`uaLY@E7pv%(v{V`R{-4_w4`m^Pj)! zF*~zS-nq>!p70zuR_Snci6`t@YPj8>Pqzoh3jD!ilSfZYjXgS5$Q(;V)a+|LuJTlw8%B=6&x~&bhmCb#=~?T3LW{0E7Sw$zU6nah_S**b5#XkN2!c=j97;##S;T z1SsHwbmJye$u0pTffbcNZic|>jX|TZD>U3k4&Gn8 zd&jmld>&VHp{slJh1XskTv~L;gOO+;7>tB*R$&%O0t?kbgFKbD)TA|2Gt=>4z~3GW z1{Lr^HofrsQ&*vvox5-$E-s{;p>%;OlwnCB+@=cnnM4Jgc4oO)i&3fh)Y_WOO?veP z5uaNLZ!Wh`C}7T|Y1+GRg^K$V7{*n@k88!y^inC5=5*WwLY_$wPN6eS6l+g1Dh&;+ zW@aj~A;=s~@n+%0?igWsqX*F#dSwMrRaHT!!~`TN4O1MBfJL!#qSQ>hnB|WZPrZ;- zmOAku4ZviHW5o!FqI3mP2!! z;Bz=7rwlJ;z+gq&jwCn^r8gRhLXe|OkZA9&1He*M5BYEkoVq*?CGQi6FJI{F_PU(u$3An|`kBKA_te+bHlxH5tHs>V+*n`t!qH!yKYgwnTB$suD5+wb zM8E{}y}sb&)vn%7fq*4+I-MG*s;7~``@^GkFJ8=nnvG7J!1Uonjt5N!YN-aQWkUYL z&2?>U)rRer5>Yjmh0-o)-0pCIw@aw ztHkoJH`Gz`7tEZDMbA822_5oDl)_}1w`$U0EsV-~2S1h86+ zw9OF;MV$jzdb-X!(BG9v#T>|`rM3kdUnmr!8Cj}5+qT^ykYL`>`6rI^L#gX3q1!Pw0RllaIYLtyi|R$y}{ zGP#7a|DE6b>{Q6(&sLiCyu%0YZ`NwmYu|k9t>lT$lS>AJp3v#EBE7a!!DX|gPKVpQ z`HQ|2-2*pn=6Uasy1K4vv(d52T*-QP|MrbWLuK8f!!Ha4 z{5T48qE`Goz8K(a0Z4?LfX!C}ilYHk#s_b3X89%~-i*LTK%+@5<(^!uQj?W(nf`K6L`~A!#0=&6(E!cDKL1yUoxogwlV($Wco)YBZP6%)_ z2t;#aBI><4bnT5}lVd~vs`^^tcfR%YJMX`H-vI<@ES`$Iee%@#{=wl9=u|2U27|(& z*Q>*kFqoK}v!~+e6pO{B+FKhIj1@Z9_3PJvZ&Lan1^LpEBlM;X`wFe*3cW!ld>|V1 zw!C)iE$mF)8vWo$e z;*la&Y5=!V!M{wyN|~X{1?{)H8%0^Z?aX&2XL{v~yBxuymUEPH;u>XKTr#0~Td>ry!K28v+w@;t$?H{;4P8CRDmBmt_ zR46LkE~jT|e%@^`7{id;Prmi5UnTw!mVYW~7xZ0xyYL@xyqA9K)EVp-uly=|x~q3! zA(-im2r4h6xSHuK$qP{&VV)~s(}y~YhA-TG$0w`w+KoIeS3r>kyr;JtTpt`Kb0i1L zW+Ke_zgVgS0 z<6~wlBR<^Tu^H^$e~8Jz>>G1}U%h=D2<0Xa3oL?FjRr;|j7?0_cx)_i@$4&?C_n}w zSq4+{bBU#eg%s3gI<2-+tX8RrDvL>@t56cX{rzL_Uc59I@P~5E4fQ4zs_=L{^F~8O zzfLUnPE1Vvp}s(W8ssBKj(~?gdniWY!)E96dF=TYUZ9?T@ugW`0sMv~Pz$+SxjY^9U=T!1Bvk>CRL#V3 zqrQ2d*3|%=sR^pPFv!Mz(6(in_%1VBk)oDQtB6u(pmHJ&UGBX>6l;RPa#er1qO#nn zw$ve@T#0dO@!9hCWm`=D&Rtl^_$XJDp!b%5lqehy0Urd`?RLXQKZrykOdr?l0qDlrZY)CMsTo7K8`x%0)ab2Bse>OL zM|KF^)SlkncqEZ{L!nXjCIM>}2cl}exKfsiII&DRg^49apwSVe-!%(V8UwUntC*Qk zv9KH7$Q0wHBF_|U22e_3U#a9@31-u`w4T7hEh$DAam&Gdxd3OTr`x2FgE^y#P5qhn+F`noy-6}8RS7Dw}$j8n-g zgh?v90NAQ(k-{oXMch~-5yS*yB{MM``CN|0Ngxy{z~+q|kO!+k!0!g>WRw}mnM!Av zJ|uZ4L1!Qd?HT%ZZicst%HgEu)SJ=(GqqPtj-$QlSuI zbCJ{*RkIIr;1KivkP}&9Yz38dyMdy@!t|^@+dTmtEeB)}a>k2Z*Jfcx3tYVT9%yf= z@m@W9^k*K|VpOTsf_r!GG`BW4H;P3fHgulY=w0;Q7_=o*nJ|;p2tQCdlZy2YjLbm6 z_MJX`3LhPt7?jEt=gl?Np*LQBIf~5chX$EZ+b56Z4nFdUJW1xIJJzgTx2di9-e@>n z@!T(7%n5`d>dRmF0{8B{dyPiDp^`-q$S#Afp5FX|FEWE)`1;v;%L%uGmTwqlOa6lepXC{-j9g&+nQJBxz< zZjYO}e10FJs?qDB32_{O5-7|Yp@QlFCW98WhX$uEjDT5391tuXzzYGeVU-nloQw46 zU=MieYo7zVH&+pplaqmYhkGd!jb?`?CcI=m&$F0}mC$46N+l8=)E+2c@?^?Ioy?y(3>i>n^`vw`Ue}3wz?3~9>3k6)gkj-j% z_ubRt)0eMI?!Wh*tVyqxLGO|ZhC<|$-A=ysc4y|qne)y-28`l7UaHDq6s1xLidBe4 zl1c9ro1@gUHP|2)xy&#!Hn!*sg#xiyA~iWPZ_8&hq}iy~ zLJll7n~X{hi$!}pAzvh(%#kEUmoh470Z)`_ZKg7Z9u!n3Kh zLH?z~58O*-)41K`3Kep(SR}kSQ6R+pj@BAQt<}tfo;4PNb{M73qCwI*5(l&M3&7)# z1C>e%nwpw`#Zt}GTrt@dNCKhcGE!XvIvR~KQW%DuH4+IkR|ra85PlzqHVt{hXak{0 zlt18ycHhs?9t5n{Q+kBo`~Age6#^DfBsBRo$K8DUct9y3z{PX#7Q9}EOQ}(HHkt*#8mq-B5(-%wjhY7;guHKPY$}t^ zrjoH#W@>KEp2=l1CcREuT~(#3ucvns|H)5c z?-#c}3uLr9J3I56?%Wa|9G#4N1Ag!Nbsgk})$Ps0qob;`m#_2(BhfdxGFf*-s2k&p z#Gxj=hWpf`hxTu5Yu+v8^BQ~spBvi0IEIn=`K76`KnzQ_HJIdUTWbXZKA#BrU04!I z8jC9e9H_p%{xFnk2Xwv)(3@8Qv$YWzEe$}T&;XppXHr>FMhFv>$P~K)B4Ch&qQe0M zGy`sE1z_Y2qp)KDevK~lZ^bw>Gz(C=k@TZ_B-Drw^$N}A2~a@IC%Kh?B{Tp{r5Q9g zSQz2z8Jq(SZ<6WFEfr9p+8_pg_f7ipg;NQD6VogX{l>`1r5h9D(~j20hDK83!^RBSnP@(2`G#iCARwIul z^H?2#KnO609GUuTgmE->XO*&Gd>J_>@19x;$5*&ss+A-M4MaS0%}VxZO- zK|@mu+-zzvHRl53Gfu{zkO&E&Q?h`7l>vRdm-18NgKm*bbH(ppe6y}fnY(BAHpA|1 zTTOBq+?pz-9@TWC6k7qGC%=bdSiB_u5dt>wy+Pww0OkV-Dqq12SY;SnktOK|Skw4uGerlx&rVvJ*V+GiX-hj(;p zW|GU{rY!~yzqQ`TH|aHOs*uJ~i7-AXqdHg3bY1bdl&{F+gTXF1&akM++Efr3uu~TLQg(K0uzo zQlkUbnif#kv1U-vzF=-|OE8`s@gp;8(l6Co4HWX5PTuw^nC$6>eQgJTm@kR32B0P_@Cn3=Wt z$ET+KSFT-24-AbANo302=BC=oZEMynL4b3AE?yr9WVDdF`1{8{lfLQjBrkVgP1%Bx zn>j+@CFuf{fxB{3OOxX9!w2s-8}v<(Q?g%u?O68z{N$N=m&X&^yK}ozB9Y)!p`dAP ztfRK9T`irSos7TNeR<5`4cR0D0cFxF*iCgNzCouZ2s(!qvhiZY@QkXCXb0U?;G3>KhpE(A;jFt!Xzp&YPyN2(}1n z3lR_qBtRll0d<7|7|eCRQriYh&@>376(AJLgULA$Sab%N8Y+cM0OUdd#M~_KyXNS= zo=b7Zl5LJJkzbC*J?}V|#%|^_DJC_vuFfL8YvacC60wNa+4&CjkN@=FXQT1d=&JTM zjY1Cp5KVE%5@@lS1E+t#)PQV!9xFZ?3&vzJ~OR_m(< z|K)#t+hjEvl+Y$(OG`_vyEbobZmn-<^|_qv^H;9T*z7jn;PCKlJeBtHc-(xYQjFKt z=y+zx%tU+wW6>GF^t~t85O5yc`2+~ZvcT?+LJ-2h7le*dCdY(9Q7Vu`ECe!%7)Yfu zW+=B@0cnp?15|1qP*)m3h0Y8#S__b?4S+A!fIQ#>eG-boVm&7^LuG3cgDRmF_g+gQ$i7kC{7&0z{J#aVAI+)R_HNn zulMznL!*-y#^&s&D=U=zy6P%3RNI`s{{EEB;hthL4$xeC6v-o4lvpN7)LG58*7d9B zfBMh=ocN$Pu|DV%%j?MD!?~~i@P~_`WDlK6<*HK@C4KC^yIVH2ui66nvh>7>6NO`M zzB#JW8GDX=>lT0a1bQ(MQ@+$?Xjv{TXttzOtgw;k}2d9v{o}=g~zh^Q1+Uvg@ z?7nhgcKco1>ejTjH)|`j*0x5iuDRYQ@&@9#(;dJ9AxNE4(B5Wnkj`_Mu|}wSK_FTH zzHs)IQqq-*!sS}Z<$SJk=L3p43_$}#p{)cer3`+J#^FMiLZ$&uL!KUv&~pw)!M?N* zN~dFX=vdD2#q5cF+uQjKR*Q+tVOt3{2X#jz+-`UL-=BG5)NOZ0Uw--J(=E-7HJ?26 zkW{HsH+5aP?z(WLr@zixWoW3YX@WG-eBoNJ6sn;>akd0Oi$(lQRh7YB-`+I;!uP)) z|1cPRXpqtR(GyQ(zx&-c7EkAo(LP_e&ZJT4SOhMGd>K1=>STb!W!?DBH~yh!!>X2! z0$E`F_V@|<*S|d;e&Q?tKrvAQ4H~86kg0jZ;QFmbelqHtRA`25DtKq_&3u` zorRT-F^h%kX!s{O-=@hFpb}~5X~$_awGOfYH0Xxn;OUz)L1Y$;q7Rw5`E_I z1CQ2NtJ~Qus9vyQ%1R&r(6bRUaB)v_6!&zI9!?bd22e$e{!ex~%zJ znw3tb#Djx_(%zn)na_Xr?^yfy?Yjd?jO4_Lx9Oif^St-I`|hJ2`}89kf*`QdXU>p6 ze){Q!Ksv#D@k%Z66=Cl2i8-o0lVEfHYuq5iJxPUnKH zK;_9p_digxch}B4paxKnj*g=AXIvqd;}VgG55E_WPL7YJviZ2%>Gd1++DesLr7;-| zQlmj{QLB_{$jR|nUwb_?KflnAv$zqZQl6@Ur}2)>cW#`Tn3Q&PcV&Nb{2klI&07ked;GClB&|34`sin# zd)B|Ov~&@AKlXCKIi1Piu~=9p;5SsSTeG_M@lPG*K@R-()$4sXhe!JSLZNuXVyuyx zt7_D8rCtTtG8F}Q3L3Cv&`d~h0vBO4#=|j+Pg4|!Bnuc-$YH2!AUet{538m?q2_3rT4s6CmC z6k-WqYH}=U_xVrGA_=Oj)CyH&s10z zNJzm7G?~jlRh`BOEK^fmFaGr5d-rQK3gheCTxRI{Id?;KC10t4UKdpJlarI+Mqhsj zI=&&u%a|H%s7(qaMN?2C(GHK--Fe~inbzi(?HaYZ!)!KlaT+tir;Z@{ex+}CZgOTJ z-q=`M*HBxH8r`XfhKFlfn{Nxi~y)TnVE1rA)=hSabyzRJp{l;aAU|oaEB-yd5S@y)2 zzOr3YQ7NZr8cU}$9F0PuKn{~wBoJ~4yd5v(T+m7KsZyM@4DLK>^yT~B$7(x05iG=$5H1%4vvOSA+t+DY$=*#63g;T0W`{NRf}_~ zR6N+GYOtD`ni^GGwrpD0*if(LLpR^&^U>$dpHB`9_D|6mZf7ca;d7>D=KaZJDydQ^ zKy{T>*f%y7?7nfmXUDcX8z_pDk@=hiradT#C z%~)+s-NeSPecpd$`}V?z2H>v&a%s_D{ru-$TkpUBgjA#HYiz1-*u8z%XHT7ZPjlnO zfOl|YWMXz;ty)F5wltv{AL{st zx04GCwm2Hthdia#ZEaPXH>};dzGHP}@Aj=8ilW&nc(+@c8Uj!ycb+(PW+am<6b<@+}h$FMW!8of7<2qIgyuLTT>%@_>-U9V6|Ad@E5SLu`#myYWITE z?;ip@ZUp3twNY1Z^n2!R-gH!`*PD0k+^!#=pD|3%%=qBT<{S@ur1s)zjNwz zXk={G2fg1#KyyNngfcsq!xj)4wN@e)i^Q392K4p!#V>Yu+3&pTPIV+4)^vAYNnGse z8jK{8qX6e-D^*&aOfHv-ghC#R#S%?TO)6(+XQ@4V_Ta5eP0D(UIV%$ge4b3$!EB21 zT!z~^*Acf&FC~D_7s)O;-JT3wMx%+RQmK_vsRToLWhRpe+qrXR!5;}_MrURzP#XE+ z4|%gEPM_|pvY6^OZdk92#-lri$H#l2_f8B94i&QbLV!8QW=8oiJBo&EgEE*5VZEj1 z<^$U{dY*jp$@HsFKmCzm@R5Uz*0aw(i$Zqxj;$R>GX=8SY}Hn{T>$|q4lMS#AW>N- z9ZP0&sM#;HZv^Dd`8BIoXVie3pLk z=+UrPB#iIcwMzp*=ZC`qBh<+fX0q4sbpZ#r^}8yQj6^(Ja5%kTX!j#>nM{k$m|ZS6 zsHo5YtJR7URIt*Yx2_dT$0_l_M6n>TD!K}#SR z7#fOY3#0>pQob?VNZLwuuEtgZBTI{weY6$qp=w2c6t2}3@<3@l*>tBBY)#|EH?UBplhJP}dg{GKZ=?(om(tI1@#VO-XrzZ~I zgU6uLX`weyU$}TF#o==DyWsn&tf-Le+PQ0!+v`s(z3|+7v2;3uY`H(^OTYB;OP9i- z5Z&I=c9(!JsGOde#-?UwZ{`XVYR*E5#A2$krQIi&h!-rY8iLOrIg-BA+4+&E=f5S$ z%qmH>{~O=$!cVE4+WqrrJ;YgSr42IZ4Lql}`z+m3# z@gx9-XUc$>O$Lb&5^A^GjSUVB`@*sK#On4{>v>!rXLfcDKp=wILLmWZI7Q`%Tbh^= zxA(qU9yDECcBd=t@%h}4)2~)46+kAJWnO;$jS;Uuz~8rLSG&nz5Z}3F%a*aJ8P{*m zp1BTLR31s_l-(1F9ee#k_th&lHbxi%fdD%c3r(|m{J7a%9j-N67PShY+h{ZJ%0aEQ%ftUQmUjhO%oR`TqIp?pDjmX$zuO+l9>s4 zn=SrB3;s9|3}w8&KroZd(gHpoYiVv0H`La#p8Ms?=jWlSIdIS3tu@wa^}01{HuUuO z+g-lUQu(>AP&^(84v({GdX~rLf!3zR0AC`XPv&wi{Bouh=j-jXnf!r`3Ljfg=O(7-Y=<7$zl+NvEHxHOmCGA+14f#QwekX)GH0$-c^fP> zPE3Y*MWiT!v{(PxvwySu{5J);ypA0^hHfzfc7o0JZC>9o3msfNq*#^VNRXG#mOFM8 z^{hds706^FF^kP2gd!mg85dn!Tc<4)NYTr$zFL4z+CY}dFGBPRd9par?Dr(wnSxfHH& zl#|P5F*ch=tZiv*wHo!i$wJmVHaXk#zy9Ta8f~`url0=ond#|;h1V&9SfEH&skC#& z=CTQr=`ltv&u}1Dq`K6Ebl<+6y2n3t=wYwJzUG%N9d*sv7B43AWDg)%VL%r92XXlv zzCHHu2F$zpUVxe_lyq+_X6Dqq^PADi`Y1$lWvyN&nu_Oc@sC3N`xibx<@nMh^i zI0l3~HcL#77ZjNa6X%dDddurTB%A@Xez?iDno!vQQ`CF&u8}U-%mny ze0#UlkLmjV4dg%c{;{oFw{luGZ4%0aDnZ{!uK)rerbtrgibQz%6v<0w(gakaL^c({ z_#Ea?9wRs$nv1b0z~$0BD4{HlD9aWIvr0ZUDHBWL<|=&>=Wvoa4ksl_B(f0D<)ZHY fT>rT~cI*EFpGBP8D3`p{00000NkvXXu0mjfQI)WT literal 0 HcmV?d00001 diff --git a/Sub/WinsockOracs/SharedMethods.vb b/Sub/WinsockOracs/SharedMethods.vb new file mode 100644 index 0000000..4ed0790 --- /dev/null +++ b/Sub/WinsockOracs/SharedMethods.vb @@ -0,0 +1,85 @@ +Option Strict On + +Imports System.Net.Sockets + +''' +''' This call contains shared methods that any class can use. +''' +Public Class SharedMethods + + ''' + ''' Raises an error on the parent Winsock object. + ''' + ''' The parent Winsock object to raise the error on. + ''' A String containing a message describing the error being raised. + Protected Friend Shared Sub RaiseError(ByRef iParent As IWinsock, ByVal msg As String) + ' First use the StackTrace to get the calling class and function. + Dim CurrentStack As New System.Diagnostics.StackTrace() + Dim callingFunction As String = CurrentStack.GetFrame(1).GetMethod.Name + Dim callingClass As String = CurrentStack.GetFrame(1).GetMethod.DeclaringType.ToString() + Dim caller As String = CStr(IIf(callingFunction.StartsWith("."), callingClass & callingFunction, callingClass & "." & callingFunction)) + ' Create the event arguement + Dim e As New WinsockErrorReceivedEventArgs(msg, caller) + ' Raise the event only if there really is a parent + If iParent IsNot Nothing Then + iParent.OnErrorReceived(e) + End If + End Sub + + ''' + ''' Raises an error on the parent Winsock object. + ''' + ''' The parent Winsock object to raise the error on. + ''' A String containing a message describing the error being raised. + ''' A String containing extra details describing the error being raised. + Protected Friend Shared Sub RaiseError(ByRef iParent As IWinsock, ByVal msg As String, ByVal details As String) + ' First use the StackTrace to get the calling class and function + Dim CurrentStack As New System.Diagnostics.StackTrace() + Dim callingFunction As String = CurrentStack.GetFrame(1).GetMethod.Name + Dim callingClass As String = CurrentStack.GetFrame(1).GetMethod.DeclaringType.ToString() + Dim caller As String = CStr(IIf(callingFunction.StartsWith("."), callingClass & callingFunction, callingClass & "." & callingFunction)) + ' Create the event arguement + Dim e As New WinsockErrorReceivedEventArgs(msg, caller, details) + ' Raise the event only if there really is a parent + If iParent IsNot Nothing Then + iParent.OnErrorReceived(e) + End If + End Sub + + ''' + ''' Raises an error on the parent Winsock object. + ''' + ''' The parent Winsock object to raise the error on. + ''' A String containing a message describing the error being raised. + ''' A String containing extra details describing the error being raised. + ''' A value containing the socket's error code. + Protected Friend Shared Sub RaiseError(ByRef iParent As IWinsock, ByVal msg As String, ByVal details As String, ByVal errCode As SocketError) + ' First use the StackTrace to get the calling class and function + Dim CurrentStack As New System.Diagnostics.StackTrace() + Dim callingFunction As String = CurrentStack.GetFrame(1).GetMethod.Name + Dim callingClass As String = CurrentStack.GetFrame(1).GetMethod.DeclaringType.ToString() + Dim caller As String = CStr(IIf(callingFunction.StartsWith("."), callingClass & callingFunction, callingClass & "." & callingFunction)) + ' Create the event arguement + Dim e As New WinsockErrorReceivedEventArgs(msg, caller, details, errCode) + ' Raise the event only if there really is a parent + If iParent IsNot Nothing Then + iParent.OnErrorReceived(e) + End If + End Sub + + ''' + ''' Removes items from the beginning of an array. + ''' + Protected Friend Shared Function ShrinkArray(Of arrayType)(ByRef arr() As arrayType, ByVal desiredLengthToTrim As Integer) As arrayType() + ' Grab desired length from array - this will be returned + Dim retArr(desiredLengthToTrim - 1) As arrayType + Array.Copy(arr, 0, retArr, 0, desiredLengthToTrim) + ' Trim what we grabbed out of the array + Dim tmpArr(arr.GetUpperBound(0) - desiredLengthToTrim) As arrayType + Array.Copy(arr, desiredLengthToTrim, tmpArr, 0, arr.Length - desiredLengthToTrim) + arr = DirectCast(tmpArr.Clone(), arrayType()) + ' Return the data + Return retArr + End Function + +End Class diff --git a/Sub/WinsockOracs/UpgradeLog.htm b/Sub/WinsockOracs/UpgradeLog.htm new file mode 100644 index 0000000..a85531a --- /dev/null +++ b/Sub/WinsockOracs/UpgradeLog.htm @@ -0,0 +1,299 @@ + + + + 마이그레이션 보고서 +

+ 마이그레이션 보고서 -

개요

프로젝트경로오류경고메시지
Winsock OrcasWinsock Orcas.vbproj0028

솔루션 및 프로젝트

Winsock Orcas

메시지
+ 표시 28 추가 메시지 +
Winsock Orcas.vbproj: + 프로젝트 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\Winsock Orcas.vbproj(으)로 백업했습니다.
AsyncSocket.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\AsyncSocket.vb(으)로 백업했습니다.
My Project\AssemblyInfo.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\My Project\AssemblyInfo.vb(으)로 백업했습니다.
My Project\Application.Designer.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\My Project\Application.Designer.vb(으)로 백업했습니다.
My Project\Resources.Designer.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\My Project\Resources.Designer.vb(으)로 백업했습니다.
My Project\Settings.Designer.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\My Project\Settings.Designer.vb(으)로 백업했습니다.
Enumerations.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\Enumerations.vb(으)로 백업했습니다.
EventArgs.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\EventArgs.vb(으)로 백업했습니다.
frmAbout.Designer.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\frmAbout.Designer.vb(으)로 백업했습니다.
frmAbout.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\frmAbout.vb(으)로 백업했습니다.
IWinsock.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\IWinsock.vb(으)로 백업했습니다.
Deque.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\Deque.vb(으)로 백업했습니다.
ObjectPacker.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\ObjectPacker.vb(으)로 백업했습니다.
SharedMethods.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\SharedMethods.vb(으)로 백업했습니다.
Winsock.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\Winsock.vb(으)로 백업했습니다.
WinsockCollection.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\WinsockCollection.vb(으)로 백업했습니다.
WinsockDesigner.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\WinsockDesigner.vb(으)로 백업했습니다.
WinsockFileData.vb: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\WinsockFileData.vb(으)로 백업했습니다.
My Project\Application.myapp: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\My Project\Application.myapp(으)로 백업했습니다.
My Project\Settings.settings: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\My Project\Settings.settings(으)로 백업했습니다.
Resources\k-koding.png: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\Resources\k-koding.png(으)로 백업했습니다.
My Project\Resources.resx: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\My Project\Resources.resx(으)로 백업했습니다.
History.txt: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\History.txt(으)로 백업했습니다.
frmAbout.resx: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\frmAbout.resx(으)로 백업했습니다.
Winsock.png: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\Winsock.png(으)로 백업했습니다.
About.txt: + 파일을 S:\Source\JDTEK\VMS2016\Sub\WinsockOracs\Backup\About.txt(으)로 백업했습니다.
Winsock Orcas.vbproj: + 프로젝트를 마이그레이션했습니다.
Winsock Orcas.vbproj: + 검사 완료: 프로젝트 파일을 마이그레이션할 필요가 없습니다.
+ 숨기기 28 추가 메시지 +
\ No newline at end of file diff --git a/Sub/WinsockOracs/Winsock Orcas.sln b/Sub/WinsockOracs/Winsock Orcas.sln new file mode 100644 index 0000000..ea74722 --- /dev/null +++ b/Sub/WinsockOracs/Winsock Orcas.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34408.163 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Winsock Orcas", "Winsock Orcas.vbproj", "{C422352B-E7E1-4CA6-9275-1142249D40E2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C422352B-E7E1-4CA6-9275-1142249D40E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C422352B-E7E1-4CA6-9275-1142249D40E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C422352B-E7E1-4CA6-9275-1142249D40E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C422352B-E7E1-4CA6-9275-1142249D40E2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C158E686-1BDA-4FE7-84C5-496C1EDD5361} + EndGlobalSection +EndGlobal diff --git a/Sub/WinsockOracs/Winsock Orcas.vbproj b/Sub/WinsockOracs/Winsock Orcas.vbproj new file mode 100644 index 0000000..7372bdf --- /dev/null +++ b/Sub/WinsockOracs/Winsock Orcas.vbproj @@ -0,0 +1,136 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {C422352B-E7E1-4CA6-9275-1142249D40E2} + Library + Winsock_Orcas + Winsock Orcas + 512 + Windows + v4.0 + On + Binary + Off + On + + + + + 3.5 + + + + true + full + true + true + bin\Debug\ + Winsock Orcas.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355 + + + pdbonly + false + true + true + bin\Release\ + Winsock Orcas.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355 + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + True + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + Designer + frmAbout.vb + + + + + + frmAbout.vb + + + Form + + + + + + + Component + + + + + + + + + + + \ No newline at end of file diff --git a/Sub/WinsockOracs/Winsock.png b/Sub/WinsockOracs/Winsock.png new file mode 100644 index 0000000000000000000000000000000000000000..f54bf736cdc0d58a07c0a0171cc5a25b5e007e0e GIT binary patch literal 749 zcmVIO@l#-%@K+Q7zAyIUxr7=;KLsPe99&9Qy zmp_aWYb=E&ic)qE1ceaTL3I)s3+v0Pdzpnl)xpCDFYk3f*Ymue2{3J{X-|sELAYmu z=`Mqi(_pe~fr(oVM(R_x-rovW3XC#01TV%_L0BAvr#_hKf!+|yzTW7{?3 zIuq0Vz);x1M>XE7-^4 zB)oZq-|zSSd<|RjL3Q0FaG93$Sb#=w6_iQ0NQ>FM@oa+ksPjrN7+e#)=Jk5tx!vxB zO+TG2$)d_PZTpo~g1ZG9e0&b?=MikQx3}AOy1Ns6Sn&5>og;!Hg4gVJ`{#y+hUEVS z2o4GUBDiwY}B+wa2=)lh*=g2T3C=Dq fF3wcNZJhl8^(M*LyGLEt00000NkvXXu0mjfpmtoM literal 0 HcmV?d00001 diff --git a/Sub/WinsockOracs/Winsock.vb b/Sub/WinsockOracs/Winsock.vb new file mode 100644 index 0000000..2cbb805 --- /dev/null +++ b/Sub/WinsockOracs/Winsock.vb @@ -0,0 +1,583 @@ +Option Strict On + +Imports System.ComponentModel +Imports System.ComponentModel.Design +Imports System.Drawing +Imports System.Net + + _ + _ + _ +Public Class Winsock + Inherits Component + Implements IWinsock + + Public Sub New() + _localPort = 8080 + _remotePort = 8080 + _remoteHost = "localhost" + _maxPendingConnections = 1 + _legacySupport = False + _protocol = WinsockProtocol.Tcp + _wsState = WinsockStates.Closed + _asSock = New AsyncSocket(Me) + End Sub + +#Region " Events " + + ''' + ''' Triggers an event declared at module level within a class, form, or document in a thread-safe manner. + ''' + ''' The event to be raised. + ''' The arguements for the event. + Private Sub RaiseEventSafe(ByVal ev As System.Delegate, ByRef args() As Object) + Dim bFired As Boolean + If ev IsNot Nothing Then + For Each singleCast As System.Delegate In ev.GetInvocationList() + bFired = False + Try + Dim syncInvoke As ISynchronizeInvoke = CType(singleCast.Target, ISynchronizeInvoke) + If syncInvoke IsNot Nothing AndAlso syncInvoke.InvokeRequired Then + bFired = True + syncInvoke.BeginInvoke(singleCast, args) + Else + bFired = True + singleCast.DynamicInvoke(args) + End If + Catch ex As Exception + If Not bFired Then singleCast.DynamicInvoke(args) + End Try + Next + End If + End Sub + + ''' + ''' Occurs when connection is achieved (client and server). + ''' + Public Event Connected(ByVal sender As Object, ByVal e As WinsockConnectedEventArgs) Implements IWinsock.Connected + ''' + ''' Occurs on the server when a client is attempting to connect. + ''' + ''' Client registers connected at this point. Server must Accept in order for it to be connected. + Public Event ConnectionRequest(ByVal sender As Object, ByVal e As WinsockConnectionRequestEventArgs) Implements IWinsock.ConnectionRequest + ''' + ''' Occurs when data arrives on the socket. + ''' + ''' Raised only after all parts of the data have been collected. + Public Event DataArrival(ByVal sender As Object, ByVal e As WinsockDataArrivalEventArgs) Implements IWinsock.DataArrival + ''' + ''' Occurs when disconnected from the remote computer (client and server). + ''' + Public Event Disconnected(ByVal sender As Object, ByVal e As System.EventArgs) Implements IWinsock.Disconnected + ''' + ''' Occurs when an error is detected in the socket. + ''' + ''' May also be raised on disconnected (depending on disconnect circumstance). + Public Event ErrorReceived(ByVal sender As Object, ByVal e As WinsockErrorReceivedEventArgs) Implements IWinsock.ErrorReceived + ''' + ''' Occurs while the receive buffer is being filled with data. + ''' + Public Event ReceiveProgress(ByVal sender As Object, ByVal e As WinsockReceiveProgressEventArgs) Implements IWinsock.ReceiveProgress + ''' + ''' Occurs when sending of data is completed. + ''' + Public Event SendComplete(ByVal sender As Object, ByVal e As WinsockSendEventArgs) Implements IWinsock.SendComplete + ''' + ''' Occurs when the send buffer has been sent but not all the data has been sent yet. + ''' + Public Event SendProgress(ByVal sender As Object, ByVal e As WinsockSendEventArgs) Implements IWinsock.SendProgress + ''' + ''' Occurs when the state of the socket changes. + ''' + Public Event StateChanged(ByVal sender As Object, ByVal e As WinsockStateChangedEventArgs) Implements IWinsock.StateChanged + + ''' + ''' Raises the Connected event. + ''' + Public Sub OnConnected(ByVal e As WinsockConnectedEventArgs) Implements IWinsock.OnConnected + RaiseEventSafe(ConnectedEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the ConnectionRequest event. + ''' + Public Sub OnConnectionRequest(ByVal e As WinsockConnectionRequestEventArgs) Implements IWinsock.OnConnectionRequest + RaiseEventSafe(ConnectionRequestEvent, New Object() {Me, e}) + If e.Cancel Then + e.Client.Disconnect(False) + e.Client.Close() + End If + End Sub + + ''' + ''' Raises the DataArrival event. + ''' + Public Sub OnDataArrival(ByVal e As WinsockDataArrivalEventArgs) Implements IWinsock.OnDataArrival + RaiseEventSafe(DataArrivalEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the Disconnected event. + ''' + Public Sub OnDisconnected() Implements IWinsock.OnDisconnected + RaiseEventSafe(DisconnectedEvent, New Object() {Me, New System.EventArgs}) + End Sub + + ''' + ''' Raises the ErrorReceived event. + ''' + Public Sub OnErrorReceived(ByVal e As WinsockErrorReceivedEventArgs) Implements IWinsock.OnErrorReceived + RaiseEventSafe(ErrorReceivedEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the ReceiveProgress event. + ''' + Public Sub OnReceiveProgress(ByVal e As WinsockReceiveProgressEventArgs) Implements IWinsock.OnReceiveProgress + RaiseEventSafe(ReceiveProgressEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the SendComplete event. + ''' + Public Sub OnSendComplete(ByVal e As WinsockSendEventArgs) Implements IWinsock.OnSendComplete + RaiseEventSafe(SendCompleteEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the SendProgress event. + ''' + Public Sub OnSendProgress(ByVal e As WinsockSendEventArgs) Implements IWinsock.OnSendProgress + RaiseEventSafe(SendProgressEvent, New Object() {Me, e}) + End Sub + + ''' + ''' Raises the StateChanged event. + ''' + Private Sub OnStateChanged(ByVal e As WinsockStateChangedEventArgs) 'Implements IWinsock.OnStateChanged + If _wsState <> e.New_State Then + _wsState = e.New_State + RaiseEventSafe(StateChangedEvent, New Object() {Me, e}) + End If + End Sub + +#End Region + +#Region " Private Members " + + Private _asSock As AsyncSocket + Private _wsState As WinsockStates + Private _localPort As Integer + Private _maxPendingConnections As Integer + Private _remoteHost As String + Private _remotePort As Integer + Private _legacySupport As Boolean + Private _protocol As WinsockProtocol + +#End Region + +#Region " Helper Methods " + + ''' + ''' Encapsulates the OnStateChanged methods so the AsyncSocket + ''' doesn't have to build the EventArgs parameter all the time. + ''' + ''' The new state of the Winsock. + Protected Friend Sub ChangeState(ByVal new_state As WinsockStates) Implements IWinsock.ChangeState + OnStateChanged(New WinsockStateChangedEventArgs(_wsState, new_state)) + End Sub + + ''' + ''' When the port is set dynamically by using port 0, the socket can now update the property of the component. + ''' + ''' The port we are now listening on. + Protected Friend Sub ChangeLocalPort(ByVal new_port As Integer) Implements IWinsock.ChangeLocalPort + _localPort = new_port + End Sub + +#End Region + +#Region " Public Properties " + + ''' + ''' Gets or sets a value indicating the interal size of the byte buffers. + ''' + Public Property BufferSize() As Integer + Get + Return _asSock.BufferSize + End Get + Set(ByVal value As Integer) + _asSock.BufferSize = value + End Set + End Property + + ''' + ''' Gets a value indicating whether the buffer has data for retrieval. + ''' + _ + Public ReadOnly Property HasData() As Boolean + Get + Return _asSock.BufferCount > 0 + End Get + End Property + + ''' + ''' Gets or sets a value indicating if Legacy support should be used or not. + ''' + ''' Legacy support is to support older winsock style connections. + Public Property LegacySupport() As Boolean Implements IWinsock.LegacySupport + Get + Return _legacySupport + End Get + Set(ByVal value As Boolean) + If Not value AndAlso Protocol = WinsockProtocol.Udp Then + Throw New Exception("LegacySupport is required for UDP connections.") + End If + _legacySupport = value + End Set + End Property + + ''' + ''' Gets the local machine's IP address(es). + ''' + _ + Public ReadOnly Property LocalIP() As String() + Get + Dim h As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName) + Dim s(h.AddressList.Length - 1) As String + For i As Integer = 0 To h.AddressList.Length - 1 + s(i) = CType(h.AddressList.GetValue(i), Net.IPAddress).ToString + Next + Return s + End Get + End Property + + ''' + ''' Gets or sets a value indicating the port the control should listen on. + ''' + ''' Cannot change while listening, connected, or connecting - but can change while closing. + Public Property LocalPort() As Integer + Get + Return _localPort + End Get + Set(ByVal value As Integer) + Select Case State + Case WinsockStates.Listening + Throw New Exception("Cannot change the local port while already listening on a port.") + Case WinsockStates.Connected + Throw New Exception("Cannot change the local port of a connection that is already active.") + Case Else + If State <> WinsockStates.Closed AndAlso State <> WinsockStates.Closing Then + Throw New Exception("Cannot change the local port while the component is processing, it may have adverse effects on the connection process.") + End If + End Select + _localPort = value + End Set + End Property + + ''' + ''' Gets or sets a value that control the length of the maximum length of the pending connections queue. + ''' + ''' Cannot change while listening. + Public Property MaxPendingConnections() As Integer + Get + Return _maxPendingConnections + End Get + Set(ByVal value As Integer) + Select Case State + Case WinsockStates.Listening + Throw New Exception("Cannot change the pending connections value while already listening.") + End Select + _maxPendingConnections = value + End Set + End Property + + ''' + ''' Gets a NetworkStream that this Winsock object is based on. + ''' + _ + Public ReadOnly Property NetworkStream() As System.Net.Sockets.NetworkStream + Get + Return _asSock.UnderlyingStream + End Get + End Property + + ''' + ''' Gets or sets the winsock protocol to use when communicating with the remote computer. + ''' + _ + Public Property Protocol() As WinsockProtocol Implements IWinsock.Protocol + Get + Return _protocol + End Get + Set(ByVal value As WinsockProtocol) + If State <> WinsockStates.Closed Then + Throw New Exception("Cannot change the protocol while listening or connected to a remote computer.") + End If + _protocol = value + End Set + End Property + + ''' + ''' Gets or sets a value that determines what remote computer to connect to, or is currently connected to. + ''' + ''' Can only change if closed or listening. + Public Property RemoteHost() As String Implements IWinsock.RemoteHost + Get + Return _remoteHost + End Get + Set(ByVal value As String) + If State <> WinsockStates.Closed AndAlso State <> WinsockStates.Listening Then + Throw New Exception("Cannot change the remote host while already connected to a remote computer.") + End If + _remoteHost = value + End Set + End Property + + ''' + ''' Gets or sets a value that determines which port on the remote computer to connect on, or is currently connected on. + ''' + ''' Can only change if closed or listening. + Public Property RemotePort() As Integer Implements IWinsock.RemotePort + Get + Return _remotePort + End Get + Set(ByVal value As Integer) + If State <> WinsockStates.Closed AndAlso State <> WinsockStates.Listening Then + Throw New Exception("Cannot change the remote port while already connected to a remote computer.") + End If + _remotePort = value + End Set + End Property + + ''' + ''' Gets the state of the Winsock control. + ''' + _ + Public ReadOnly Property State() As WinsockStates Implements IWinsock.State + Get + Return _wsState + End Get + End Property + +#End Region + +#Region " Public Methods " + + ''' + ''' Places a Winsock in a listening state. + ''' + Public Sub Listen() + _asSock.Listen(LocalPort, MaxPendingConnections) + End Sub + ''' + ''' Places a Winsock in a listening state. + ''' + ''' The port Winsock should listen on. + Public Sub Listen(ByVal port As Integer) + If port < 0 Then + Throw New ArgumentException("Port cannot be less than zero.", "port") + End If + LocalPort = port + Listen() + End Sub + ''' + ''' Places a Winsock in a listening state. + ''' + ''' The IP address the Winsock should listen on. This must be an ip address. + Public Sub Listen(ByVal ip As String) + If ip Is Nothing Then + Listen() + Else + Dim ipAddr As IPAddress = Nothing + If Not IPAddress.TryParse(ip, ipAddr) Then + Throw New ArgumentException("IP address specified is not a valid IP address.", "ip") + End If + _asSock.Listen(LocalPort, MaxPendingConnections, ipAddr) + End If + End Sub + ''' + ''' Places a Winsock in a listening state. + ''' + ''' The IP address the Winsock should listen on. + ''' The port Winsock should listen on. + Public Sub Listen(ByVal ip As String, ByVal port As Integer) + If port < 0 Then + Throw New ArgumentException("Port cannot be less than zero.", "port") + End If + LocalPort = port + If ip Is Nothing Then + Listen() + Else + Dim ipAddr As IPAddress = Nothing + If Not IPAddress.TryParse(ip, ipAddr) Then + Throw New ArgumentException("IP address specified is not a valid IP address.", "ip") + End If + _asSock.Listen(LocalPort, MaxPendingConnections, ipAddr) + End If + End Sub + + ''' + ''' Accepts a client connect as valid and begins to monitor it for incoming data. + ''' + ''' A System.Net.Sockets.Socket that represents the client being accepted. + Public Sub Accept(ByVal client As Sockets.Socket) + If _asSock.Accept(client) Then + _localPort = _asSock.LocalPort + ' also set remote host and port + End If + End Sub + + ''' + ''' Creates an new Winsock and accepts the client connection on it. + ''' + ''' A System.Net.Sockets.Socket that represents the client being accepted. + ''' + ''' This was created to be used by the listener, to keep the listener listening while + ''' also accepting a connection. + ''' + Public Function AcceptNew(ByVal client As Sockets.Socket) As Winsock + Dim wskReturn As New Winsock() + wskReturn.Protocol = Me.Protocol + wskReturn.LegacySupport = Me.LegacySupport + wskReturn.Accept(client) + Return wskReturn + End Function + + ''' + ''' Closes an open Winsock connection. + ''' + Public Sub Close() + _asSock.Close() + End Sub + + ''' + ''' Establishes a connection to a remote host. + ''' + Public Sub Connect() + _asSock.Connect(RemoteHost, RemotePort) + End Sub + ''' + ''' Establishes a connection to a remote host. + ''' + ''' A System.String containing the Hostname or IP address of the remote host. + ''' A value indicating the port on the remote host to connect to. + Public Sub Connect(ByVal remoteHostOrIP As String, ByVal remote_port As Integer) + RemoteHost = remoteHostOrIP + RemotePort = remote_port + Connect() + End Sub + + ''' + ''' Sends an object to a connected socket on a remote computer. + ''' + ''' The object to send. + ''' + ''' The object is first serialized using a BinaryFormatter - unless + ''' it is already a byte array, in which case it just sends the byte array. + ''' + Public Sub Send(ByVal data As Object) + Dim byt() As Byte + If LegacySupport AndAlso data.GetType Is GetType(String) Then + byt = System.Text.Encoding.Default.GetBytes(CStr(data)) + Else + byt = ObjectPacker.GetBytes(data) + End If + _asSock.Send(byt) + End Sub + ''' + ''' Sends a file to a connected socket on a remote computer. + ''' + ''' The full path to the file you want to send. + ''' + ''' Creates a special file object to send, so the receiving end knows what to do with it. + ''' + Public Sub SendFile(ByVal filename As String) + Dim wsf As New WinsockFileData() + Try + If Not wsf.ReadFile(filename) Then + Throw New Exception("File does not exist, or there was a problem reading the file.") + End If + If LegacySupport Then + Send(wsf.FileData) + Else + Send(wsf) + End If + Catch ex As Exception + SharedMethods.RaiseError(Me, ex.Message) + End Try + End Sub + + ''' + ''' Gets the next object from the buffer, removing it from the buffer. + ''' + ''' + ''' A Deserialized object or if it can't be deserialized the byte array. + ''' + Public Function [Get]() As Object + Dim byt() As Byte = _asSock.GetData() + If byt Is Nothing Then Return Nothing + Return ObjectPacker.GetObject(byt) + End Function + ''' + ''' Gets the next object from the buffer as the supplied type, removing it from the buffer. + ''' + ''' The System.Type you wish to have the data returned as. + ''' + ''' A Deserialized object converted to the data type you wish. + ''' + ''' + ''' This function was added to make it easier for Option Strict users. + ''' It allows for easier conversion instead of the user using CType, DirectCast, or the like. + ''' Can throw an error if you specify the wrong type. + ''' + Public Function [Get](Of dataType)() As dataType + Dim byt() As Byte = _asSock.GetData() + If byt Is Nothing Then Return Nothing + Dim obj As Object + If LegacySupport AndAlso GetType(dataType) Is GetType(String) Then + obj = System.Text.Encoding.Default.GetString(byt) + Else + obj = ObjectPacker.GetObject(byt) + End If + Return DirectCast(obj, dataType) + End Function + + ''' + ''' Gets the next object from the buffer, leaving it ing the buffer. + ''' + ''' + ''' A Deserialized object or if it can't be deserialized the byte array. + ''' + Public Function Peek() As Object + Dim byt() As Byte = _asSock.PeekData() + If byt Is Nothing Then Return Nothing + Return ObjectPacker.GetObject(byt) + End Function + ''' + ''' Gets the next object from the buffer as the supplied type, leaving it in the buffer. + ''' + ''' The System.Type you wish to have the data returned as. + ''' + ''' A Deserialized object converted to the data type you wish. + ''' + ''' + ''' This function was added to make it easier for Option Strict users. + ''' It allows for easier conversion instead of the user using CType, DirectCast, or the like. + ''' Can throw an error if you specify the wrong type. + ''' + Public Function Peek(Of dataType)() As dataType + Dim byt() As Byte = _asSock.PeekData() + If byt Is Nothing Then Return Nothing + Dim obj As Object + If LegacySupport AndAlso GetType(dataType) Is GetType(String) Then + obj = System.Text.Encoding.Default.GetString(byt) + Else + obj = ObjectPacker.GetObject(byt) + End If + Return DirectCast(obj, dataType) + End Function + +#End Region + +End Class diff --git a/Sub/WinsockOracs/WinsockCollection.vb b/Sub/WinsockOracs/WinsockCollection.vb new file mode 100644 index 0000000..e9ec07c --- /dev/null +++ b/Sub/WinsockOracs/WinsockCollection.vb @@ -0,0 +1,571 @@ +Imports System.ComponentModel + +''' +''' A collection of Winsock objects. +''' +Public Class WinsockCollection + Inherits CollectionBase + + +#Region " Private Members " + + ' These two hashtables store the key's and the values. + ' The base class's List store the GUID that ties the + ' keys to the values + Private _keys As Hashtable + Private _values As Hashtable + + ' These are for auto removal of the Winsock object + ' when the Winsock's Disconnected event is raised. + Private _autoRemoval As Queue + Private _autoRemove As Boolean = False + + ' These are for timing and removal of every Winsock + ' object in the collection - only used when the + ' Clear() method is run. + Private _clearRemoval As Queue + Private _clearRemove As Boolean = False + Private _clearOK As Boolean = False + + ' Allows LegacySupport to work in a multi-client + ' environment + Private _legacySupport As Boolean = False + +#End Region + +#Region " Constructor " + + ''' + ''' Initializes a new instance of the WinsockCollection class. + ''' + ''' + ''' Determines if the collection should automatically remove the + ''' connection when the Disconnected event is fired. + ''' + ''' + ''' Enables LegacySupport for connections accepted using the + ''' collections Accept method. + ''' + Public Sub New(Optional ByVal auto_remove As Boolean = False, Optional ByVal legacy_support As Boolean = False) + _keys = New Hashtable + _values = New Hashtable + _autoRemoval = New Queue + _autoRemove = auto_remove + _clearRemoval = New Queue + _legacySupport = legacy_support + End Sub + +#End Region + +#Region " Overriden Methods " + + ''' + ''' Run when the base class's list is finished clearing. + ''' Triggers clearing of the keys and values - closing + ''' all connections. + ''' + Protected Overrides Sub OnClearComplete() + MyBase.OnClearComplete() + _keys.Clear() + Dim b As Boolean = _autoRemove : _autoRemove = False + _clearOK = False + _clearRemove = True + For Each wsk As Winsock In _values.Values + wsk.Close() + Next + _clearOK = True + _autoRemove = b + End Sub + + ''' + ''' Causes the CountChanged event to be triggered when an item is added to the collection. + ''' + Protected Overrides Sub OnInsertComplete(ByVal index As Integer, ByVal value As Object) + MyBase.OnInsertComplete(index, value) + OnCountChanged(List.Count - 1, List.Count) + End Sub + + ''' + ''' Causes the CountChanged event to be triggered when an item is removed from the collection. + ''' + Protected Overrides Sub OnRemoveComplete(ByVal index As Integer, ByVal value As Object) + MyBase.OnRemoveComplete(index, value) + OnCountChanged(List.Count + 1, List.Count) + End Sub + +#End Region + +#Region " Private Methods " + + ''' + ''' Run during the Clearing of the collection. + ''' The method actually clears the values safely + ''' so as not to cause exceptions. Triggered via + ''' the last Disconnected event. + ''' + Private Sub ClearAllValues() + While _values.Count > 0 + If _clearOK AndAlso _clearRemoval.Count > 0 Then + Dim i As Integer = _values.Count + Dim gid2Rem As Guid = CType(_clearRemoval.Dequeue(), Guid) + _values.Remove(gid2Rem) + OnCountChanged(i, _values.Count) + End If + End While + End Sub + + ''' + ''' Attemps to retrieve the GUID of the item at the index specified. + ''' + ''' The zero-based index of the GUID you are attempting to find. + Private Function getGID(ByVal index As Integer) As Guid + Return CType(List.Item(index), Guid) + End Function + + ''' + ''' Attempts to retrieve the GUID of the item using the Key given to the item. + ''' + ''' The key whose GUID you are looking for. + Private Function getGID(ByVal key As Object) As Guid + For Each gid As Guid In _keys.Keys + If Object.ReferenceEquals(_keys(gid), key) Then Return gid + Next + Return Guid.Empty + End Function + + ''' + ''' Removes the given GUID and it's ties from the collections. + ''' + ''' The GUID to remove. + Private Sub RemoveGID(ByVal gid As Guid) + If gid <> Guid.Empty Then + CType(_values(gid), Winsock).Dispose() + _values.Remove(gid) + _keys.Remove(gid) + List.Remove(gid) + End If + End Sub + + ''' + ''' Adds a winsock value to the collection. + ''' + ''' The GUID of the object. + ''' The Key of the object (may be nothing). + ''' The Winsock that is to be added to the collection. + ''' Attaches handlers to each Winsock event so the collection can act as a proxy. + Private Sub Add(ByVal gid As Guid, ByVal key As Object, ByVal value As Winsock) + AddHandler value.Connected, AddressOf OnConnected + AddHandler value.ConnectionRequest, AddressOf OnConnectionRequest + AddHandler value.DataArrival, AddressOf OnDataArrival + AddHandler value.Disconnected, AddressOf OnDisconnected + AddHandler value.ErrorReceived, AddressOf OnErrorReceived + AddHandler value.SendComplete, AddressOf OnSendComplete + AddHandler value.SendProgress, AddressOf OnSendProgress + AddHandler value.StateChanged, AddressOf OnStateChanged + _keys.Add(gid, key) + _values.Add(gid, value) + List.Add(gid) + End Sub + + ''' + ''' Method to remove an object automatically - threaded to avoid problems. + ''' + Private Sub RemovalThread() + Threading.Thread.Sleep(50) + Dim gid As Guid = CType(_autoRemoval.Dequeue(), Guid) + RemoveGID(gid) + End Sub + +#End Region + +#Region " Public Methods " + + ''' + ''' Retrieves the GUID assigned to the specified Winsock object in the collection. + ''' + ''' The Winsock object to find the GUID of. + Public Function findGID(ByVal value As Winsock) As Guid + If Not ContainsValue(value) Then Return Guid.Empty + For Each gid As Guid In _values.Keys + If Object.ReferenceEquals(_values(gid), value) Then Return gid + Next + Return Guid.Empty + End Function + + ''' + ''' Retrieves the Key assigned to the specified Winsock object in the collection. + ''' + ''' The Winsock object to find the Key of. + ''' The key object that was assigned to the Winsock - may be Nothing. + Public Function findKey(ByVal value As Winsock) As Object + Dim gid As Guid = findGID(value) + If gid = Guid.Empty Then Return Nothing + Return _keys(gid) + End Function + + ''' + ''' Determines if the collection contains the key specified. + ''' + ''' The key to search the collection for. + Public Function ContainsKey(ByVal key As Object) As Boolean + If key Is Nothing Then + Throw New ArgumentNullException("key") + End If + Return _keys.ContainsValue(key) + End Function + + ''' + ''' Determines if the collection contains the specified value. + ''' + ''' The value to search the collection for. + Public Function ContainsValue(ByVal value As Winsock) As Boolean + Return _values.ContainsValue(value) + End Function + + ''' + ''' Removes the value at the specified index. Use this instead of RemoveAt. + ''' + ''' The zero-based index of the item you wish to remove. + Public Sub Remove(ByVal index As Integer) + Dim gid As Guid = getGID(index) + RemoveGID(gid) + End Sub + + ''' + ''' Removes the value with the specified key. + ''' + ''' The key of the value you wish to remove. + Public Sub Remove(ByVal key As Object) + If TypeOf (key) Is Integer Then + Dim gidIndex As Guid = getGID(CInt(key)) + RemoveGID(gidIndex) + Exit Sub + End If + If Not ContainsKey(key) Then Exit Sub + Dim gid As Guid = getGID(key) + RemoveGID(gid) + End Sub + + ''' + ''' Removes the value with the specified Guid. + ''' + ''' The Guid of the value you wish to remove. + Public Sub Remove(ByVal gid As Guid) + RemoveGID(gid) + End Sub + + ''' + ''' Adds a value to the collection. + ''' + ''' The Winsock object to add to the collection. + ''' Returns the GUID assigned to the element. + Public Function Add(ByVal value As Winsock) As Guid + Dim gid As Guid = Guid.NewGuid() + Add(gid, Nothing, value) + Return gid + End Function + ''' + ''' Adds a value to the collection. + ''' + ''' The Winsock object to add to the collection. + ''' The Key of the element to add. + ''' Returns the GUID assigned to the element. + Public Function Add(ByVal value As Winsock, ByVal key As Object) As Guid + Dim gid As Guid = Guid.NewGuid() + Add(gid, key, value) + Return gid + End Function + + ''' + ''' Accepts an incoming connection and adds it to the collection. + ''' + ''' The client to accept. + ''' Returns the GUID assigned to the element. + Public Function Accept(ByVal client As System.Net.Sockets.Socket) As Guid + Dim wsk As New Winsock() + wsk.LegacySupport = _legacySupport + Dim gid As Guid = Add(wsk, Nothing) + wsk.Accept(client) + Return gid + End Function + ''' + ''' Accepts an incoming connection and adds it to the collection. + ''' + ''' The client to accept. + ''' The Key of the element to add. + ''' Returns the GUID assigned to the element. + Public Function Accept(ByVal client As System.Net.Sockets.Socket, ByVal key As Object) As Guid + Dim wsk As New Winsock() + wsk.LegacySupport = _legacySupport + Dim gid As Guid = Me.Add(wsk, key) + wsk.Accept(client) + Return gid + End Function + + ''' + ''' Connects to a remote host and adds it to the collection. + ''' + ''' A containing the Hostname or IP address of the remote host. + ''' A value indicating the port on the remote host to connect to. + ''' Return the GUID assigned to the element. + Public Function Connect(ByVal remoteHostOrIP As String, ByVal remotePort As Integer) As Guid + Dim wsk As New Winsock() + wsk.Protocol = WinsockProtocol.Tcp + wsk.LegacySupport = _legacySupport + Dim gid As Guid = Add(wsk, Nothing) + CType(_values(gid), Winsock).Connect(remoteHostOrIP, remotePort) + End Function + ''' + ''' Connects to a remote host and adds it to the collection. + ''' + ''' A containing the Hostname or IP address of the remote host. + ''' A value indicating the port on the remote host to connect to. + ''' The Key of the element to add. + ''' Return the GUID assigned to the element. + Public Function Connect(ByVal remoteHostOrIP As String, ByVal remotePort As Integer, ByVal key As Object) As Guid + Dim wsk As New Winsock() + wsk.Protocol = WinsockProtocol.Tcp + wsk.LegacySupport = _legacySupport + Dim gid As Guid = Add(wsk, key) + CType(_values(gid), Winsock).Connect(remoteHostOrIP, remotePort) + End Function + + ''' + ''' Gets an Array of all the remote IP addresses of each connection in this collection. + ''' + Public Function GetRemoteIPs() As ArrayList + Dim ar As New ArrayList + For Each key As Object In _values.Keys + ar.Add(CType(_values(key), Winsock).RemoteHost) + Next + Return ar + End Function + +#End Region + +#Region " Public Properties " + + ''' + ''' Gets a Collection containing all the keys in this collection. + ''' + Public ReadOnly Property Keys() As System.Collections.ICollection + Get + Return _keys.Values() + End Get + End Property + + ''' + ''' Gets a Collection containing all the values in this collection. + ''' + Public ReadOnly Property Values() As System.Collections.ICollection + Get + Return _values.Values + End Get + End Property + + ''' + ''' Gets or sets the Winsock at the specified index. + ''' + ''' A zero-based index of the Winsock to get or set. + Default Public Property Item(ByVal index As Integer) As Winsock + Get + Dim gid As Guid = getGID(index) + Return CType(_values(gid), Winsock) + End Get + Set(ByVal value As Winsock) + Dim gid As Guid = getGID(index) + If Not _values.ContainsKey(gid) Then + Add(gid, Nothing, value) + Else + _values(gid) = value + End If + End Set + End Property + + ''' + ''' Gets or sets the Winsock associated with the specified key. + ''' + ''' The key whose value to get or set. + Default Public Property Item(ByVal key As Object) As Winsock + Get + Dim gid As Guid = getGID(key) + Return CType(_values(gid), Winsock) + End Get + Set(ByVal value As Winsock) + Dim gid As Guid = getGID(key) + If Not _values.ContainsKey(gid) Then + Add(gid, Nothing, value) + Else + _values(gid) = value + End If + End Set + End Property + + ''' + ''' Gets or sets the Winsock associated with the specified GUID. + ''' + ''' The GUID whose value to get or set. + Default Public Property Item(ByVal gid As Guid) As Winsock + Get + Return CType(_values(gid), Winsock) + End Get + Set(ByVal value As Winsock) + If Not _values.ContainsKey(gid) Then + Add(gid, Nothing, value) + Else + _values(gid) = value + End If + End Set + End Property + +#End Region + +#Region " Events " + + ''' + ''' Occurs when connection is achieved (client and server). + ''' + Public Event Connected(ByVal sender As Object, ByVal e As WinsockConnectedEventArgs) + ''' + ''' Occurs on the server when a client is attempting to connect. + ''' + ''' Client registers connected at this point. Server must Accept in order for it to be connected. + Public Event ConnectionRequest(ByVal sender As Object, ByVal e As WinsockConnectionRequestEventArgs) + ''' + ''' Occurs when the number of items in the collection has changed. + ''' + Public Event CountChanged(ByVal sender As Object, ByVal e As WinsockCollectionCountChangedEventArgs) + ''' + ''' Occurs when data arrives on the socket. + ''' + ''' Raised only after all parts of the data have been collected. + Public Event DataArrival(ByVal sender As Object, ByVal e As WinsockDataArrivalEventArgs) + ''' + ''' Occurs when disconnected from the remote computer (client and server). + ''' + Public Event Disconnected(ByVal sender As Object, ByVal e As System.EventArgs) + ''' + ''' Occurs when an error is detected in the socket. + ''' + ''' May also be raised on disconnected (depending on disconnect circumstance). + Public Event ErrorReceived(ByVal sender As Object, ByVal e As WinsockErrorReceivedEventArgs) + ''' + ''' Occurs when sending of data is completed. + ''' + Public Event SendComplete(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + ''' + ''' Occurs when the send buffer has been sent but not all the data has been sent yet. + ''' + Public Event SendProgress(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + ''' + ''' Occurs when the state of the socket changes. + ''' + Public Event StateChanged(ByVal sender As Object, ByVal e As WinsockStateChangedEventArgs) + + ''' + ''' Triggers an event declared at module level within a class, form, or document in a thread-safe manner. + ''' + ''' The event to be raised. + ''' The arguements for the event. + Private Sub RaiseEventSafe(ByVal ev As System.Delegate, ByRef args() As Object) + Dim bFired As Boolean + If ev IsNot Nothing Then + For Each singleCast As System.Delegate In ev.GetInvocationList() + bFired = False + Try + Dim syncInvoke As ISynchronizeInvoke = CType(singleCast.Target, ISynchronizeInvoke) + If syncInvoke IsNot Nothing AndAlso syncInvoke.InvokeRequired Then + bFired = True + syncInvoke.BeginInvoke(singleCast, args) + Else + bFired = True + singleCast.DynamicInvoke(args) + End If + Catch ex As Exception + If Not bFired Then singleCast.DynamicInvoke(args) + End Try + Next + End If + End Sub + + ''' + ''' Raises the Connected event. + ''' + Protected Friend Sub OnConnected(ByVal sender As Object, ByVal e As WinsockConnectedEventArgs) + RaiseEventSafe(ConnectedEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the ConnectionRequest event, and closes the socket if the ConnectionRequest was rejected. + ''' + Protected Friend Sub OnConnectionRequest(ByVal sender As Object, ByVal e As WinsockConnectionRequestEventArgs) + RaiseEventSafe(ConnectionRequestEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the DataArrival event. + ''' + Protected Friend Sub OnDataArrival(ByVal sender As Object, ByVal e As WinsockDataArrivalEventArgs) + RaiseEventSafe(DataArrivalEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the Disconnected Event. + ''' + Protected Friend Sub OnDisconnected(ByVal sender As Object, ByVal e As System.EventArgs) + RaiseEventSafe(DisconnectedEvent, New Object() {sender, e}) + If _clearRemove Then + Dim gid As Guid = findGID(CType(sender, Winsock)) + _clearRemoval.Enqueue(gid) + If _clearRemoval.Count = _values.Count Then + Dim thd As New Threading.Thread(AddressOf ClearAllValues) + thd.Start() + _clearRemove = False + End If + ElseIf _autoRemove Then + Dim gid As Guid = findGID(CType(sender, Winsock)) + _autoRemoval.Enqueue(gid) + Dim thd As New Threading.Thread(AddressOf RemovalThread) + thd.Start() + End If + End Sub + + ''' + ''' Raises the ErrorReceived event. + ''' + Protected Friend Sub OnErrorReceived(ByVal sender As Object, ByVal e As WinsockErrorReceivedEventArgs) + RaiseEventSafe(ErrorReceivedEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the SendComplete event. + ''' + Protected Friend Sub OnSendComplete(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + RaiseEventSafe(SendCompleteEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the SendProgress event. + ''' + Protected Friend Sub OnSendProgress(ByVal sender As Object, ByVal e As WinsockSendEventArgs) + RaiseEventSafe(SendProgressEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the StateChanged event. + ''' + Protected Friend Sub OnStateChanged(ByVal sender As Object, ByVal e As WinsockStateChangedEventArgs) + RaiseEventSafe(StateChangedEvent, New Object() {sender, e}) + End Sub + + ''' + ''' Raises the count changed event. + ''' + Private Sub OnCountChanged(ByVal old_count As Integer, ByVal new_count As Integer) + Dim e As New WinsockCollectionCountChangedEventArgs(old_count, new_count) + RaiseEventSafe(CountChangedEvent, New Object() {Me, e}) + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/Sub/WinsockOracs/WinsockDesigner.vb b/Sub/WinsockOracs/WinsockDesigner.vb new file mode 100644 index 0000000..bb8e916 --- /dev/null +++ b/Sub/WinsockOracs/WinsockDesigner.vb @@ -0,0 +1,236 @@ +Imports System.ComponentModel +Imports System.ComponentModel.Design +Imports Microsoft.VisualBasic + +''' +''' Winsock designer class provides designer time support for the Winsock component. +''' +Public Class WinsockDesigner + Inherits System.ComponentModel.Design.ComponentDesigner + + Private lists As DesignerActionListCollection + + ''' + ''' Creates a new instance of the WinsockDesigner class. + ''' + ''' + Public Sub New() + End Sub + + ''' + ''' Initializes this instance of the WinsockDesigner class. + ''' + ''' The base component of the designer. + Public Overrides Sub Initialize(ByVal component As System.ComponentModel.IComponent) + MyBase.Initialize(component) + End Sub + + ''' + ''' Gets the Verb collection. + ''' + ''' + ''' The Verb collection is used to display links at the + ''' bottom of the description in the Properties pane. + ''' + Public Overrides ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection + Get + Return New DesignerVerbCollection() + End Get + End Property + + ''' + ''' Gets the Action list collection. + ''' + ''' + ''' The Action list collection is used for the Smart Tag + ''' popup to provide easy access to various properties/actions. + ''' + Public Overrides ReadOnly Property ActionLists() As DesignerActionListCollection + Get + If lists Is Nothing Then + lists = New DesignerActionListCollection() + lists.Add(New WinsockActionList(Me.Component)) + End If + Return lists + End Get + End Property + +End Class + +''' +''' Provides the action list for the Winsock component during design time. +''' +Public Class WinsockActionList + Inherits DesignerActionList + + Private _wsk As Winsock + Private designerActionUISvc As DesignerActionUIService = Nothing + + Private host As IDesignerHost + Private parentDesigner As IDesigner + + ''' + ''' Initializes a new instance of the WinsockActionList class. + ''' + ''' The component used in initialization. + Public Sub New(ByVal component As IComponent) + MyBase.New(component) + Me._wsk = CType(component, Winsock) + + Me.designerActionUISvc = CType(GetService(GetType(DesignerActionUIService)), DesignerActionUIService) + + Me.host = Me.Component.Site.GetService(GetType(IDesignerHost)) + + Me.parentDesigner = host.GetDesigner(Me.Component) + End Sub + + ''' + ''' Gets or sets a value indicating if Legacy support should be used or not. + ''' + ''' Legacy support is to support older winsock style connections. + Public Property LegacySupport() As Boolean + Get + Return _wsk.LegacySupport + End Get + Set(ByVal value As Boolean) + GetPropertyByName("LegacySupport").SetValue(_wsk, value) + Me.designerActionUISvc.Refresh(Me.Component) + End Set + End Property + + ''' + ''' Gets or sets the winsock protocol to use when communicating with the remote computer. + ''' + Public Property Protocol() As WinsockProtocol + Get + Return _wsk.Protocol + End Get + Set(ByVal value As WinsockProtocol) + GetPropertyByName("Protocol").SetValue(_wsk, value) + Me.designerActionUISvc.Refresh(Me.Component) + End Set + End Property + + ''' + ''' Builds and retrieves the Action list itself. + ''' + Public Overrides Function GetSortedActionItems() As DesignerActionItemCollection + Dim items As New DesignerActionItemCollection() + + ' create the headers + items.Add(New DesignerActionHeaderItem("Appearance & Behavior")) + items.Add(New DesignerActionHeaderItem("Events")) + items.Add(New DesignerActionHeaderItem("About")) + + ' add the properties + items.Add(New DesignerActionPropertyItem("LegacySupport", "Legacy Support", "Appearance & Behavior", "Enables legacy (VB6) send/receive support.")) + items.Add(New DesignerActionPropertyItem("Protocol", "Protocol", "Appearance & Behavior", "Specifies whether the component should use the TCP or UDP protocol.")) + + ' add the events + items.Add(New DesignerActionMethodItem(Me, "TriggerConnectedEvent", "Connected", "Events", "Takes you to the handler for the Connected event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerConnectionRequestEvent", "ConnectionRequest", "Events", "Takes you to the handler for the ConnectionRequest event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerDataArrivalEvent", "DataArrival", "Events", "Takes you to the handler for the DataArrival event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerDisconnectedEvent", "Disconnected", "Events", "Takes you to the handler for the Disconnected event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerErrorReceivedEvent", "ErrorReceived", "Events", "Takes you to the handler for the ErrorReceived event.", False)) + items.Add(New DesignerActionMethodItem(Me, "TriggerStateChangedEvent", "StateChanged", "Events", "Takes you to the handler for the StateChanged event.", False)) + + ' add support items + Dim ver As String = String.Format("{0}.{1}.{2}", My.Application.Info.Version.Major, My.Application.Info.Version.Minor, My.Application.Info.Version.Build) + items.Add(New DesignerActionMethodItem(Me, "ShowAbout", "About Winsock " & ver, "About", "Displays the about box.", False)) + items.Add(New DesignerActionMethodItem(Me, "LaunchWebSite", "Kolkman Koding Website", "About", "Opens the author's website.", False)) + + Return items + End Function + + ''' + ''' Gets the property information by the given name. + ''' + ''' The name of the property to get. + Private Function GetPropertyByName(ByVal propName As String) As PropertyDescriptor + Dim prop As PropertyDescriptor + prop = TypeDescriptor.GetProperties(_wsk)(propName) + If prop Is Nothing Then + Throw New ArgumentException("Invalid property.", propName) + Else + Return prop + End If + End Function + + ''' + ''' Shows the about box. + ''' + Public Sub ShowAbout() + Dim f As New frmAbout() + f.ShowDialog() + End Sub + + ''' + ''' Launches the author's website. + ''' + Public Sub LaunchWebSite() + System.Diagnostics.Process.Start("http://www.k-koding.com") + End Sub + + Public Sub TriggerConnectedEvent() + CreateAndShowEvent("Connected") + End Sub + Public Sub TriggerConnectionRequestEvent() + CreateAndShowEvent("ConnectionRequest") + End Sub + Public Sub TriggerDataArrivalEvent() + CreateAndShowEvent("DataArrival") + End Sub + Public Sub TriggerDisconnectedEvent() + CreateAndShowEvent("Disconnected") + End Sub + Public Sub TriggerErrorReceivedEvent() + CreateAndShowEvent("ErrorReceived") + End Sub + Public Sub TriggerStateChangedEvent() + CreateAndShowEvent("StateChanged") + End Sub + + Private Sub CreateAndShowEvent(ByVal eventName As String) + Dim evService As IEventBindingService = CType(Me.Component.Site.GetService(GetType(System.ComponentModel.Design.IEventBindingService)), IEventBindingService) + Dim ev As EventDescriptor = GetEvent(evService, eventName) + If ev IsNot Nothing Then + CreateEvent(evService, ev) + Me.designerActionUISvc.HideUI(Me.Component) + evService.ShowCode(Me.Component, ev) + End If + End Sub + + Private Sub CreateEvent(ByRef evService As IEventBindingService, ByVal ev As EventDescriptor) + Dim epd As PropertyDescriptor = evService.GetEventProperty(ev) + Dim strEventName As String = Me.Component.Site.Name & "_" & ev.Name + Dim existing As Object = epd.GetValue(Me.Component) + 'Only create if there isn't already a handler + If existing Is Nothing Then + epd.SetValue(Me.Component, strEventName) + End If + End Sub + + Private Function GetEvent(ByRef evService As IEventBindingService, ByVal eventName As String) As EventDescriptor + If evService Is Nothing Then Return Nothing + ' Attempt to obtain a PropertyDescriptor for a + ' component event named "testEvent". + Dim edc As EventDescriptorCollection = TypeDescriptor.GetEvents(Me.Component) + If edc Is Nothing Or edc.Count = 0 Then + Return Nothing + End If + Dim ed As EventDescriptor = Nothing + ' Search for an event named "Connected". + Dim edi As EventDescriptor + For Each edi In edc + If edi.Name = eventName Then + ed = edi + Exit For + End If + Next edi + If ed Is Nothing Then + Return Nothing + End If + Return ed + End Function + +End Class diff --git a/Sub/WinsockOracs/WinsockFileData.vb b/Sub/WinsockOracs/WinsockFileData.vb new file mode 100644 index 0000000..cb091eb --- /dev/null +++ b/Sub/WinsockOracs/WinsockFileData.vb @@ -0,0 +1,83 @@ +''' +''' A class that wraps a file allowing you to serialize it for transport. +''' + _ +Public Class WinsockFileData + +#Region " Private Members " + + Private _fileData() As Byte ' Stores the file data + Private _fileName As String ' Stores the file name + +#End Region + +#Region " Constructor " + + ''' + ''' Initializes a new instance of the WinsockFileData class. + ''' + Public Sub New() + _fileData = Nothing + _fileName = Nothing + End Sub + +#End Region + +#Region " Properties " + + ''' + ''' Gets or sets the name of the file. + ''' + Public Property FileName() As String + Get + Return _fileName + End Get + Set(ByVal value As String) + _fileName = value + End Set + End Property + + ''' + ''' Gets or sets the contents of the file. + ''' + Public Property FileData() As Byte() + Get + Return _fileData + End Get + Set(ByVal value As Byte()) + _fileData = value + End Set + End Property + +#End Region + +#Region " Methods " + + ''' + ''' Saves the file to the specified path. + ''' + ''' The full path of the file to save to. + ''' Whether you want to append the data to the end of an existing file or not. + Public Sub SaveFile(ByVal save_path As String, Optional ByVal append As Boolean = False) + My.Computer.FileSystem.WriteAllBytes(save_path, _fileData, append) + End Sub + + ''' + ''' Reads a file into the WinsockFileData class. + ''' + ''' The full path of the file you want to read. + Public Function ReadFile(ByVal file_path As String) As Boolean + Dim fi As IO.FileInfo = My.Computer.FileSystem.GetFileInfo(file_path) + If fi.Exists Then + ReDim _fileData(0) + _fileName = fi.Name + _fileData = My.Computer.FileSystem.ReadAllBytes(fi.FullName) + Else + Return False + End If + Return True + End Function + +#End Region + +End Class diff --git a/Sub/WinsockOracs/frmAbout.Designer.vb b/Sub/WinsockOracs/frmAbout.Designer.vb new file mode 100644 index 0000000..860a938 --- /dev/null +++ b/Sub/WinsockOracs/frmAbout.Designer.vb @@ -0,0 +1,146 @@ + _ +Partial Class frmAbout + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAbout)) + Me.pctLogo = New System.Windows.Forms.PictureBox + Me.txtAbout = New System.Windows.Forms.TextBox + Me.cmdClose = New System.Windows.Forms.Button + Me.TabControl1 = New System.Windows.Forms.TabControl + Me.TabPage1 = New System.Windows.Forms.TabPage + Me.TabPage2 = New System.Windows.Forms.TabPage + Me.txtHistory = New System.Windows.Forms.TextBox + CType(Me.pctLogo, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.SuspendLayout() + ' + 'pctLogo + ' + Me.pctLogo.Anchor = System.Windows.Forms.AnchorStyles.Top + Me.pctLogo.Image = Global.Winsock_Orcas.My.Resources.Resources.k_koding + Me.pctLogo.Location = New System.Drawing.Point(169, 12) + Me.pctLogo.Name = "pctLogo" + Me.pctLogo.Size = New System.Drawing.Size(121, 120) + Me.pctLogo.TabIndex = 0 + Me.pctLogo.TabStop = False + ' + 'txtAbout + ' + Me.txtAbout.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtAbout.Location = New System.Drawing.Point(3, 3) + Me.txtAbout.Multiline = True + Me.txtAbout.Name = "txtAbout" + Me.txtAbout.ReadOnly = True + Me.txtAbout.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtAbout.Size = New System.Drawing.Size(420, 221) + Me.txtAbout.TabIndex = 1 + ' + 'cmdClose + ' + Me.cmdClose.Location = New System.Drawing.Point(371, 397) + Me.cmdClose.Name = "cmdClose" + Me.cmdClose.Size = New System.Drawing.Size(75, 23) + Me.cmdClose.TabIndex = 2 + Me.cmdClose.Text = "Close" + Me.cmdClose.UseVisualStyleBackColor = True + ' + 'TabControl1 + ' + Me.TabControl1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Location = New System.Drawing.Point(12, 138) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(434, 253) + Me.TabControl1.TabIndex = 3 + ' + 'TabPage1 + ' + Me.TabPage1.BackColor = System.Drawing.SystemColors.Control + Me.TabPage1.Controls.Add(Me.txtAbout) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage1.Size = New System.Drawing.Size(426, 227) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "About" + ' + 'TabPage2 + ' + Me.TabPage2.BackColor = System.Drawing.SystemColors.Control + Me.TabPage2.Controls.Add(Me.txtHistory) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(426, 227) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "History" + ' + 'txtHistory + ' + Me.txtHistory.Dock = System.Windows.Forms.DockStyle.Fill + Me.txtHistory.Location = New System.Drawing.Point(3, 3) + Me.txtHistory.Multiline = True + Me.txtHistory.Name = "txtHistory" + Me.txtHistory.ReadOnly = True + Me.txtHistory.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtHistory.Size = New System.Drawing.Size(420, 221) + Me.txtHistory.TabIndex = 0 + ' + 'frmAbout + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(458, 432) + Me.Controls.Add(Me.TabControl1) + Me.Controls.Add(Me.cmdClose) + Me.Controls.Add(Me.pctLogo) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmAbout" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "About Winsock Orcas" + CType(Me.pctLogo, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + Me.TabPage2.ResumeLayout(False) + Me.TabPage2.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents pctLogo As System.Windows.Forms.PictureBox + Friend WithEvents txtAbout As System.Windows.Forms.TextBox + Friend WithEvents cmdClose As System.Windows.Forms.Button + Friend WithEvents TabControl1 As System.Windows.Forms.TabControl + Friend WithEvents TabPage1 As System.Windows.Forms.TabPage + Friend WithEvents TabPage2 As System.Windows.Forms.TabPage + Friend WithEvents txtHistory As System.Windows.Forms.TextBox +End Class diff --git a/Sub/WinsockOracs/frmAbout.resx b/Sub/WinsockOracs/frmAbout.resx new file mode 100644 index 0000000..590829d --- /dev/null +++ b/Sub/WinsockOracs/frmAbout.resx @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////ACJ6/wCioqIAeq//ALrc/wB/f38AxMTEAE2T/wCdxP8As7OzAI+PjwDP6/8AYqL/ADSI + /wCLuf8ArM7/AJmZmQCHh4cAvLy8AKqqqgBYmv8AcKj/ALnQ/wAtf/8AP4r/AJK//wCDtf8ApMn/AGmk + /wAoe/8AM4L/ALPR/wBQmP8Adaz/AF6e/wCXwP8Ay+n/AIe3/wB+sf8Ao8X/AI6+/wBtpf8AqMn/ALDQ + /wBlo/8Acqv/ADGE/wBcnP8AkLz/AHeu/wCBs/8AIXz/AKbI/wBXmP8AlcH/AGqm/wAkev8AS5P/AJe+ + /wCQvv8Ahbf/AHCq/wB3rP8AJ3r/ADSD/wCx0f8ApMb/AGij/wCItv8AfbD/AKTI/wCjxv8AnsT/AJXA + /wBlov8AZqP/AGmj/wBxqP8Acqr/AHWt/wB7r/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAABQAAAAABgAAAAAAAAAAAAAK + FAMRCxIAAAAAAAAAAAAAAAoMJREAAAAAAAAAAAAAAAATChQDAAAAAAAAS1AVAAAAABcFAAAAADQONC4J + LQA2IQAHEwAvGAA5ODRRSD4ADUQAAAAAOkEAHioCPUMEAAAzAAAAAEwAAB8dQABJPAAALhsWOE4hAAAI + MAAAGjUmAAAAPh0AAAAITxkAAAAcRw8AAAAAAAAjP00AAAAAAEcQJEU9RjInKQQAAAAAAAAAOytCICwo + SiIAAAAAAAAAAAAAOzcxDwAAAAAAAP//AAD3/wAA+98AAPgfAAD8PwAA/D8AAB54AAASSAAAE8gAABvY + AACYGQAAjnEAAMfjAADgBwAA8A8AAPw/AAA= + + + \ No newline at end of file diff --git a/Sub/WinsockOracs/frmAbout.vb b/Sub/WinsockOracs/frmAbout.vb new file mode 100644 index 0000000..86087a4 --- /dev/null +++ b/Sub/WinsockOracs/frmAbout.vb @@ -0,0 +1,24 @@ +Public Class frmAbout + + Private Sub cmdClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClose.Click + Me.Close() + End Sub + + Private Sub frmAbout_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + txtAbout.Text = ReadFromAssembly("About.txt") + txtHistory.Text = ReadFromAssembly("History.txt") + End Sub + + Private Function ReadFromAssembly(ByVal filename As String) As String + Dim sRet As String = "" + Dim executing_assembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly() + Dim my_namespace As String = GetType(frmAbout).Namespace + Dim text_stream As IO.Stream = executing_assembly.GetManifestResourceStream(my_namespace & "." & filename) + If text_stream IsNot Nothing Then + Dim stream_reader As New IO.StreamReader(text_stream) + sRet = stream_reader.ReadToEnd() + End If + Return sRet + End Function + +End Class \ No newline at end of file diff --git a/TEST/DigitalIndicator/App.config b/TEST/DigitalIndicator/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/TEST/DigitalIndicator/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TEST/DigitalIndicator/DigitalIndicator.csproj b/TEST/DigitalIndicator/DigitalIndicator.csproj new file mode 100644 index 0000000..c22e54b --- /dev/null +++ b/TEST/DigitalIndicator/DigitalIndicator.csproj @@ -0,0 +1,90 @@ + + + + + Debug + AnyCPU + {F69F811F-9B8C-4554-9624-2F8C2E1D9BFD} + WinExe + DigitalIndicator + DigitalIndicator + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\DLL\arCommUtil.dll + + + ..\..\packages\NModbus4.2.1.0\lib\net40\NModbus4.dll + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/TEST/DigitalIndicator/Form1.Designer.cs b/TEST/DigitalIndicator/Form1.Designer.cs new file mode 100644 index 0000000..f9b3e90 --- /dev/null +++ b/TEST/DigitalIndicator/Form1.Designer.cs @@ -0,0 +1,220 @@ +namespace DigitalIndicator +{ + partial class Form1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tbport = new System.Windows.Forms.TextBox(); + this.tbbaud = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button2 = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.button3 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.SuspendLayout(); + // + // tbport + // + this.tbport.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbport.Location = new System.Drawing.Point(113, 17); + this.tbport.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5); + this.tbport.Name = "tbport"; + this.tbport.Size = new System.Drawing.Size(222, 35); + this.tbport.TabIndex = 0; + this.tbport.Text = "com8"; + this.tbport.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // tbbaud + // + this.tbbaud.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbbaud.Location = new System.Drawing.Point(471, 17); + this.tbbaud.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5); + this.tbbaud.Name = "tbbaud"; + this.tbbaud.Size = new System.Drawing.Size(215, 35); + this.tbbaud.TabIndex = 0; + this.tbbaud.Text = "9600"; + this.tbbaud.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.Location = new System.Drawing.Point(24, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(53, 30); + this.label1.TabIndex = 1; + this.label1.Text = "port"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.Location = new System.Drawing.Point(348, 22); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(62, 30); + this.label2.TabIndex = 1; + this.label2.Text = "baud"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(712, 17); + this.button1.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(250, 35); + this.button1.TabIndex = 2; + this.button1.Text = "연결/끊기"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // timer1 + // + this.timer1.Interval = 1000; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.textBox1.Location = new System.Drawing.Point(120, 142); + this.textBox1.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(215, 35); + this.textBox1.TabIndex = 3; + this.textBox1.Text = "65636"; + this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(353, 87); + this.button2.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(257, 90); + this.button2.TabIndex = 4; + this.button2.Text = "쓰기"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label3.Location = new System.Drawing.Point(12, 102); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(91, 30); + this.label3.TabIndex = 6; + this.label3.Text = "slave no"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label4.Location = new System.Drawing.Point(12, 147); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(62, 30); + this.label4.TabIndex = 7; + this.label4.Text = "value"; + // + // numericUpDown1 + // + this.numericUpDown1.Location = new System.Drawing.Point(120, 99); + this.numericUpDown1.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(215, 35); + this.numericUpDown1.TabIndex = 8; + this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.numericUpDown1.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // button3 + // + this.button3.Location = new System.Drawing.Point(17, 199); + this.button3.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(593, 84); + this.button3.TabIndex = 9; + this.button3.Text = "샘플데이터쓰기(40001=100 ~ 40020=0)"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 30F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1100, 558); + this.Controls.Add(this.button3); + this.Controls.Add(this.numericUpDown1); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.button2); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.tbbaud); + this.Controls.Add(this.tbport); + this.Font = new System.Drawing.Font("맑은 고딕", 15.75F); + this.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5); + this.Name = "Form1"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Digital Indicator Test"; + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox tbport; + private System.Windows.Forms.TextBox tbbaud; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.Button button3; + } +} + diff --git a/TEST/DigitalIndicator/Form1.cs b/TEST/DigitalIndicator/Form1.cs new file mode 100644 index 0000000..89896a8 --- /dev/null +++ b/TEST/DigitalIndicator/Form1.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; +using Modbus; +using Modbus.Device; +namespace DigitalIndicator +{ + public partial class Form1 : Form + { + ModbusSerialMaster modbus; + System.IO.Ports.SerialPort dev; + public Form1() + { + InitializeComponent(); + dev = new System.IO.Ports.SerialPort(); + } + + private void Form1_Load(object sender, EventArgs e) + { + timer1.Start(); + } + + private void button1_Click(object sender, EventArgs e) + { + if (tbport.Text.isEmpty()) + { + UTIL.MsgE("포트번호를 입력하세요"); + return; + } + if (int.TryParse(tbbaud.Text, out int port) == false) + { + UTIL.MsgE("baud rate 값을 입력하세요\n(기본:9600)"); + return; + } + + if (dev.IsOpen) + { + if (modbus != null) modbus.Dispose(); + dev.Close(); + UTIL.MsgI("연결이 종료되었습니다"); + + } + else + { + dev.PortName = this.tbport.Text; + dev.DataBits = 8; // 데이터 비트 + dev.Parity = System.IO.Ports.Parity.None; + dev.StopBits = System.IO.Ports.StopBits.One; + try + { + dev.Open(); + } + catch (Exception ex) + { + UTIL.MsgE(ex.Message); + return; + } + + // Modbus 마스터 생성 + modbus = ModbusSerialMaster.CreateRtu(dev); + } + + + + + } + + private void timer1_Tick(object sender, EventArgs e) + { + this.button1.Text = (this.dev?.IsOpen ?? false) ? "연결끊기" : "연결"; + } + + private void button2_Click(object sender, EventArgs e) + { + if (Int32.TryParse(this.textBox1.Text, out int value) == false) + { + UTIL.MsgE("숫자로 입력하세요"); + return; + } + if (this.textBox1.TextLength > 5) + { + UTIL.MsgE("5자리를 초과할 수 없습니다"); + return; + } + + var valuebuffer = splitI32(value); + var slave = (byte)numericUpDown1.Value; + modbus.WriteMultipleRegisters(slave, 0, valuebuffer); //ADDRESS 0=40001 + + } + + + UInt16[] splitI32(Int32 value) + { + var hValue = (UInt16)(value >> 16); + var lValue = (UInt16)(value & 0xFFFF); + return new ushort[] { hValue, lValue }; + } + + private void button3_Click(object sender, EventArgs e) + { + if (Int32.TryParse(this.textBox1.Text, out int value) == false) + { + UTIL.MsgE("숫자로 입력하세요"); + return; + } + + + var valuebuffer = new ushort[20]; + valuebuffer[0] = 100; + for (int i = 1; i < valuebuffer.Length; i++) valuebuffer[i] = 0; + var slave = (byte)numericUpDown1.Value; + modbus.WriteMultipleRegisters(slave, 0, valuebuffer); //ADDRESS 0=40001 + } + } +} diff --git a/TEST/DigitalIndicator/Form1.resx b/TEST/DigitalIndicator/Form1.resx new file mode 100644 index 0000000..1f666f2 --- /dev/null +++ b/TEST/DigitalIndicator/Form1.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/TEST/DigitalIndicator/Program.cs b/TEST/DigitalIndicator/Program.cs new file mode 100644 index 0000000..d86cfa8 --- /dev/null +++ b/TEST/DigitalIndicator/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace DigitalIndicator +{ + internal static class Program + { + /// + /// 해당 애플리케이션의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/TEST/DigitalIndicator/Properties/AssemblyInfo.cs b/TEST/DigitalIndicator/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..784a13c --- /dev/null +++ b/TEST/DigitalIndicator/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("DigitalIndicator")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DigitalIndicator")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("f69f811f-9b8c-4554-9624-2f8c2e1d9bfd")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TEST/DigitalIndicator/Properties/Resources.Designer.cs b/TEST/DigitalIndicator/Properties/Resources.Designer.cs new file mode 100644 index 0000000..c70d877 --- /dev/null +++ b/TEST/DigitalIndicator/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace DigitalIndicator.Properties +{ + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 + // ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DigitalIndicator.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/TEST/DigitalIndicator/Properties/Resources.resx b/TEST/DigitalIndicator/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/TEST/DigitalIndicator/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TEST/DigitalIndicator/Properties/Settings.Designer.cs b/TEST/DigitalIndicator/Properties/Settings.Designer.cs new file mode 100644 index 0000000..70c83fe --- /dev/null +++ b/TEST/DigitalIndicator/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DigitalIndicator.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/TEST/DigitalIndicator/Properties/Settings.settings b/TEST/DigitalIndicator/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/TEST/DigitalIndicator/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/TEST/DigitalIndicator/packages.config b/TEST/DigitalIndicator/packages.config new file mode 100644 index 0000000..ffde460 --- /dev/null +++ b/TEST/DigitalIndicator/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/TEST/chart_new/App.config b/TEST/chart_new/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/TEST/chart_new/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TEST/chart_new/CustomChartControl.cs b/TEST/chart_new/CustomChartControl.cs new file mode 100644 index 0000000..2ff0f1d --- /dev/null +++ b/TEST/chart_new/CustomChartControl.cs @@ -0,0 +1,501 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; + +namespace CustomChartControl +{ + public class TimeVoltageChart : Control + { + private List dataPoints; + private float zoomFactorX = 1.0f; // X축 줌 팩터 + private float zoomFactorY = 1.0f; // Y축 줌 팩터 + private PointF panOffset = PointF.Empty; + private Point lastMousePosition; + private bool isDragging = false; + private DateTime[] _timeData; + private float[] _voltageData; + private bool _showDataPoints = false; + + // 기존 필드 추가 + private bool isSelecting = false; // 영역 선택 중 여부 + private Point selectionStart; // 영역 선택 시작점 + private Rectangle selectionRectangle; // 선택 영역 + + public TimeVoltageChart() + { + this.DoubleBuffered = true; + this.dataPoints = new List(); + this.MouseWheel += TimeVoltageChart_MouseWheel; + this.MouseDown += TimeVoltageChart_MouseDown; + this.MouseMove += TimeVoltageChart_MouseMove; + this.MouseUp += TimeVoltageChart_MouseUp; + } + + public DateTime[] TimeData + { + get => _timeData; + set + { + _timeData = value; + UpdateDataPoints(); + } + } + + public float[] VoltageData + { + get => _voltageData; + set + { + _voltageData = value; + UpdateDataPoints(); + } + } + + public bool ShowDataPoints + { + get => _showDataPoints; + set + { + _showDataPoints = value; + Invalidate(); // 속성 변경 시 차트 다시 그리기 + } + } + + public void AdjustScaleX() + { + if (_timeData != null && _timeData.Length > 0) + { + // X축 자동 스케일링 + float totalSeconds = (float)(_timeData[_timeData.Length - 1] - _timeData[0]).TotalSeconds; + zoomFactorX = Width / totalSeconds; + panOffset.X = 0; // 초기화 + Invalidate(); // 변경 후 다시 그리기 + } + } + + public void AdjustScaleY() + { + if (_voltageData != null && _voltageData.Length > 0) + { + // Y축 자동 스케일링 + float minY = float.MaxValue; + float maxY = float.MinValue; + foreach (var voltage in _voltageData) + { + if (voltage < minY) minY = voltage; + if (voltage > maxY) maxY = voltage; + } + + float range = maxY - minY; + if (range == 0) range = 1; + + zoomFactorY = Height / range; + panOffset.Y = -minY * zoomFactorY; // 초기화 + Invalidate(); // 변경 후 다시 그리기 + } + } + + private void UpdateDataPoints() + { + dataPoints.Clear(); + if (_timeData != null && _voltageData != null && _timeData.Length == _voltageData.Length) + { + DateTime startTime = _timeData[0]; + for (int i = 0; i < _timeData.Length; i++) + { + float timeOffset = (float)(_timeData[i] - startTime).TotalSeconds; + dataPoints.Add(new PointF(timeOffset, _voltageData[i])); + } + Invalidate(); // 화면을 갱신하여 차트를 다시 그리도록 함 + } + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + DrawGrid(e.Graphics); + DrawData(e.Graphics); + DrawBorder(e.Graphics); + DrawZoomLevel(e.Graphics); + + if (isSelecting && selectionRectangle.Width > 0 && selectionRectangle.Height > 0) + { + using (var selectionPen = new Pen(Color.Gray, 1)) + { + selectionPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + e.Graphics.DrawRectangle(selectionPen, selectionRectangle); + } + } + } + + private void DrawZoomLevel(Graphics g) + { + string zoomLevelText = $"Zoom Level - X: {zoomFactorX:F2}, Y: {zoomFactorY:F2}"; + Font zoomLevelFont = new Font("Arial", 10, FontStyle.Bold); + Brush zoomLevelBrush = new SolidBrush(Color.Black); + SizeF textSize = g.MeasureString(zoomLevelText, zoomLevelFont); + + float x = Width - textSize.Width - 60; // 오른쪽 여백을 줄이기 + float y = 10; // 상단 여백 10 + + g.DrawString(zoomLevelText, zoomLevelFont, zoomLevelBrush, x, y); + } + + private void DrawBorder(Graphics g) + { + int leftMargin = 50; // 왼쪽 Y축 라벨을 위한 공간 + int rightMargin = 50; // 오른쪽 여백 + int bottomMargin = 30; // X축 라벨을 위한 공간 + + Pen borderPen = new Pen(Color.Black, 1); // 테두리 색상 및 두께 + Rectangle borderRect = new Rectangle(leftMargin, 0, Width - leftMargin - rightMargin, Height - bottomMargin - 1); // 테두리 영역 + g.DrawRectangle(borderPen, borderRect); + } + private void DrawGrid(Graphics g) + { + int gridSpacingX = 60; // X축 그리드 간격 + int gridSpacingY = 20; // Y축 그리드 간격 + int leftMargin = 50; // 왼쪽 Y축 라벨을 위한 공간 + int rightMargin = 50; // 오른쪽 여백 + int bottomMargin = 30; // X축 라벨을 위한 공간 + + Pen gridPen = new Pen(Color.LightGray); + Brush labelBrush = new SolidBrush(Color.Black); + Font labelFont = new Font("Arial", 8); + + if (_timeData != null && _timeData.Length > 0) + { + DateTime minTime = _timeData[0]; + DateTime maxTime = _timeData[_timeData.Length - 1]; // 마지막 요소 + + double totalSeconds = (maxTime - minTime).TotalSeconds; + + float visibleStartTime = (0 - panOffset.X) / zoomFactorX; + float visibleEndTime = (Width - leftMargin - rightMargin - panOffset.X) / zoomFactorX; + + for (int x = leftMargin; x < Width - rightMargin; x += gridSpacingX) + { + float timeOffset = (x - leftMargin - panOffset.X) / zoomFactorX; + if (timeOffset < visibleStartTime || timeOffset > visibleEndTime) + continue; + + DateTime time = minTime.AddSeconds(timeOffset); + g.DrawLine(gridPen, x, 0, x, Height - bottomMargin); // 테두리 위에 맞추기 + + using (StringFormat sf = new StringFormat()) + { + sf.LineAlignment = StringAlignment.Near; + sf.Alignment = StringAlignment.Center; + g.DrawString(time.ToString("yy-MM-dd\nHH:mm:ss"), labelFont, labelBrush, new PointF(x, Height - bottomMargin), sf); + } + } + } + + if (_voltageData != null && _voltageData.Length > 0) + { + float minY = float.MaxValue; + float maxY = float.MinValue; + foreach (var voltage in _voltageData) + { + if (voltage < minY) minY = voltage; + if (voltage > maxY) maxY = voltage; + } + + float range = maxY - minY; + if (range == 0) range = 1; + + using (StringFormat sfY = new StringFormat()) + { + sfY.LineAlignment = StringAlignment.Center; + sfY.Alignment = StringAlignment.Far; // Y축 라벨을 오른쪽 정렬 + for (int y = 0; y < Height - bottomMargin; y += gridSpacingY) // 테두리 위에 맞추기 + { + float voltageValue = minY + (Height - y - panOffset.Y) / zoomFactorY * range / (Height - bottomMargin); + + // 모든 Y축 눈금 라벨을 표시 + g.DrawLine(gridPen, leftMargin, y, Width - rightMargin, y); // 패딩 추가 + g.DrawString(voltageValue.ToString("F2"), labelFont, labelBrush, new PointF(leftMargin - 10, y), sfY); + } + } + } + } + + private void DrawData(Graphics g) + { + if (dataPoints.Count < 2) return; + + int leftMargin = 50; + int rightMargin = 50; + int bottomMargin = 30; + int minPixelDistance = 3; // 최소 픽셀 거리 설정 + + Pen dataPen = new Pen(Color.Blue); + Brush pointBrush = new SolidBrush(Color.Red); // 데이터 포인트의 원 색상 + + float visibleStartTime = (0 - panOffset.X) / zoomFactorX; + float visibleEndTime = (Width - leftMargin - rightMargin - panOffset.X) / zoomFactorX; + + PointF prevPoint = TransformPoint(dataPoints[0]); + PointF lastDrawnPoint = prevPoint; + bool skipNextPoint = false; + + // 포인트 간 평균 간격 계산 + float totalWidth = Width - leftMargin - rightMargin; + float avgPixelDistance = totalWidth / dataPoints.Count; + int pointRadius = Math.Max(1, (int)(avgPixelDistance / 4)); // 밀집도에 따른 포인트 반지름 조정 + + for (int i = 1; i < dataPoints.Count; i++) + { + float timeOffset = dataPoints[i].X; + if (timeOffset < visibleStartTime || timeOffset > visibleEndTime) + { + prevPoint = TransformPoint(dataPoints[i]); + continue; + } + + PointF currPoint = TransformPoint(dataPoints[i]); + if (currPoint.X >= leftMargin && currPoint.X <= Width - rightMargin) + { + PointF clippedPrev = ClipToChartArea(prevPoint, leftMargin, Width - rightMargin, bottomMargin, Height); + PointF clippedCurr = ClipToChartArea(currPoint, leftMargin, Width - rightMargin, bottomMargin, Height); + + // 선 연결을 유지하되, 포인트를 그리지 않을 때만 스킵 + if (skipNextPoint || Math.Abs(clippedCurr.X - lastDrawnPoint.X) >= minPixelDistance) + { + g.DrawLine(dataPen, clippedPrev, clippedCurr); + lastDrawnPoint = clippedCurr; + skipNextPoint = false; + + if (clippedCurr.X > leftMargin && clippedCurr.X < Width - rightMargin && clippedCurr.Y > 0 && clippedCurr.Y < Height - bottomMargin) + { + g.FillEllipse(pointBrush, clippedCurr.X - pointRadius, clippedCurr.Y - pointRadius, pointRadius * 2, pointRadius * 2); + } + } + else + { + skipNextPoint = true; + } + } + prevPoint = currPoint; + } + } + + private PointF ClipToChartArea(PointF point, int leftMargin, int rightLimit, int bottomMargin, int topLimit) + { + // X축 클리핑 + if (point.X < leftMargin) point.X = leftMargin; + if (point.X > rightLimit) point.X = rightLimit; + + // Y축 클리핑 + if (point.Y < 0) point.Y = 0; + if (point.Y > topLimit - bottomMargin) point.Y = topLimit - bottomMargin; + + return point; + } + private PointF TransformPoint(PointF point) + { + int leftMargin = 50; + int bottomMargin = 30; + return new PointF( + (point.X * zoomFactorX + panOffset.X) + leftMargin, + Height - ((point.Y * zoomFactorY - panOffset.Y) + bottomMargin)); + } + + + + private void TimeVoltageChart_MouseWheel(object sender, MouseEventArgs e) + { + float zoomChange; + + if (ModifierKeys.HasFlag(Keys.Control)) + { + // Y축 줌 레벨 조정 + zoomChange = e.Delta > 0 ? 1.1f : 0.9f; + float newZoomFactorY = zoomFactorY * zoomChange; + if (CanZoomY(newZoomFactorY)) + { + AdjustPanOffsetY(newZoomFactorY, e.Delta > 0); + zoomFactorY = newZoomFactorY; + } + } + else + { + // X축 줌 레벨 조정 + zoomChange = e.Delta > 0 ? 1.1f : 0.9f; + float newZoomFactorX = zoomFactorX * zoomChange; + if (CanZoomX(newZoomFactorX)) + { + AdjustPanOffsetX(newZoomFactorX, e.Delta > 0); + zoomFactorX = newZoomFactorX; + } + } + + Invalidate(); + } + + private void AdjustPanOffsetX(float newZoomFactorX, bool zoomingIn) + { + float totalDataTime = (float)(_timeData[_timeData.Length - 1] - _timeData[0]).TotalSeconds; + float currentVisibleStart = -panOffset.X / zoomFactorX; + float currentVisibleEnd = (Width - panOffset.X) / zoomFactorX; + float newVisibleStart, newVisibleEnd; + + if (zoomingIn) + { + newVisibleStart = currentVisibleStart + (currentVisibleEnd - currentVisibleStart) * 0.1f; + newVisibleEnd = currentVisibleEnd - (currentVisibleEnd - currentVisibleStart) * 0.1f; + } + else + { + newVisibleStart = currentVisibleStart - (currentVisibleEnd - currentVisibleStart) * 0.1f; + newVisibleEnd = currentVisibleEnd + (currentVisibleEnd - currentVisibleStart) * 0.1f; + } + + if (newVisibleStart < 0) + { + panOffset.X = 0; + } + else if (newVisibleEnd > totalDataTime) + { + panOffset.X = -(totalDataTime * newZoomFactorX - Width); + } + else + { + panOffset.X = -newVisibleStart * newZoomFactorX; + } + } + + private void AdjustPanOffsetY(float newZoomFactorY, bool zoomingIn) + { + float minY = float.MaxValue; + float maxY = float.MinValue; + foreach (var voltage in _voltageData) + { + if (voltage < minY) minY = voltage; + if (voltage > maxY) maxY = voltage; + } + + float dataRange = maxY - minY; + float visibleRange = (Height - 70) / newZoomFactorY; // 상하 여백 고려 + float visibleStartY = -panOffset.Y / zoomFactorY; + float visibleEndY = visibleStartY + visibleRange; + + // Ensure the visible range is within the data range + if (visibleStartY < minY) + { + visibleStartY = minY; + visibleEndY = visibleStartY + visibleRange; + } + if (visibleEndY > maxY) + { + visibleEndY = maxY; + visibleStartY = visibleEndY - visibleRange; + } + + // Adjust panOffset.Y to ensure the data is visible within the screen bounds + panOffset.Y = -visibleStartY * newZoomFactorY; + } + + + private bool CanZoomX(float newZoomFactorX) + { + float totalDataTime = (float)(_timeData[_timeData.Length - 1] - _timeData[0]).TotalSeconds; + float visibleTime = (Width - 100) / newZoomFactorX; // 좌우 여백 고려 + + float marginFactor = 0.05f; // 5% 여백 + float minVisibleTime = 1.0f; // 최소 가시 시간 + + return visibleTime < totalDataTime * (1 + marginFactor) && visibleTime > minVisibleTime; + } + + private bool CanZoomY(float newZoomFactorY) + { + float minY = float.MaxValue; + float maxY = float.MinValue; + foreach (var voltage in _voltageData) + { + if (voltage < minY) minY = voltage; + if (voltage > maxY) maxY = voltage; + } + + float dataRange = maxY - minY; + float visibleRange = (Height - 70) / newZoomFactorY; // 상하 여백 고려 + + float marginFactor = 0.05f; // 5% 여백 + float minVisibleRange = 0.1f; // 최소 가시 범위 + + return visibleRange < dataRange * (1 + marginFactor) && visibleRange > minVisibleRange; + } + + private void TimeVoltageChart_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + isDragging = true; + lastMousePosition = e.Location; + } + else if (e.Button == MouseButtons.Right) + { + isSelecting = true; + selectionStart = e.Location; + selectionRectangle = new Rectangle(e.Location, Size.Empty); + } + } + + private void TimeVoltageChart_MouseMove(object sender, MouseEventArgs e) + { + if (isDragging) + { + panOffset.X += e.X - lastMousePosition.X; + panOffset.Y += e.Y - lastMousePosition.Y; // Y축 이동 방향 수정 + lastMousePosition = e.Location; + Invalidate(); + } + else if (isSelecting) + { + var endPoint = e.Location; + selectionRectangle = new Rectangle( + Math.Min(selectionStart.X, endPoint.X), + Math.Min(selectionStart.Y, endPoint.Y), + Math.Abs(selectionStart.X - endPoint.X), + Math.Abs(selectionStart.Y - endPoint.Y)); + Invalidate(); + } + } + + private void TimeVoltageChart_MouseUp(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + isDragging = false; + } + else if (e.Button == MouseButtons.Right) + { + isSelecting = false; + + // 선택한 영역만큼 확대 + if (selectionRectangle.Width > 0 && selectionRectangle.Height > 0) + { + float newZoomFactorX = (Width - 100) / (float)selectionRectangle.Width; // 여백을 고려한 줌 + float newZoomFactorY = (Height - 30) / (float)selectionRectangle.Height; // 여백을 고려한 줌 + + // 확대할 영역의 좌표를 차트 좌표로 변환 + float selectedMinX = (selectionRectangle.Left - 50 - panOffset.X) / zoomFactorX; + float selectedMaxX = (selectionRectangle.Right - 50 - panOffset.X) / zoomFactorX; + float selectedMinY = (Height - selectionRectangle.Bottom - panOffset.Y) / zoomFactorY; + float selectedMaxY = (Height - selectionRectangle.Top - panOffset.Y) / zoomFactorY; + + zoomFactorX = newZoomFactorX; + zoomFactorY = newZoomFactorY; + + panOffset.X = -selectedMinX * zoomFactorX + 50; + panOffset.Y = -selectedMinY * zoomFactorY; + + Invalidate(); + } + } + } + } +} diff --git a/TEST/chart_new/Form1.Designer.cs b/TEST/chart_new/Form1.Designer.cs new file mode 100644 index 0000000..919e0f4 --- /dev/null +++ b/TEST/chart_new/Form1.Designer.cs @@ -0,0 +1,74 @@ +namespace chart_new +{ + partial class Form1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.chart = new CustomChartControl.TimeVoltageChart(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // timeVoltageChart1 + // + this.chart.Location = new System.Drawing.Point(76, 36); + this.chart.Name = "timeVoltageChart1"; + this.chart.Size = new System.Drawing.Size(631, 353); + this.chart.TabIndex = 0; + this.chart.Text = "timeVoltageChart1"; + this.chart.TimeData = null; + this.chart.VoltageData = null; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(67, 416); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(163, 40); + this.button1.TabIndex = 1; + this.button1.Text = "button1"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 498); + this.Controls.Add(this.button1); + this.Controls.Add(this.chart); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + + } + + #endregion + + private CustomChartControl.TimeVoltageChart chart; + private System.Windows.Forms.Button button1; + } +} + diff --git a/TEST/chart_new/Form1.cs b/TEST/chart_new/Form1.cs new file mode 100644 index 0000000..269aa32 --- /dev/null +++ b/TEST/chart_new/Form1.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace chart_new +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + LoadTestData(); + chart.AdjustScaleX(); + chart.AdjustScaleY(); + this.chart.Refresh(); + } + + private void LoadTestData() + { + int dataCount = 100000; + DateTime[] timeData = new DateTime[dataCount]; + float[] voltageData = new float[dataCount]; + + DateTime startTime = DateTime.Now; + Random random = new Random(); + + for (int i = 0; i < dataCount; i++) + { + timeData[i] = startTime.AddSeconds(i+i*2); // 1초 간격으로 시간 데이터 생성 + //if(i > 500) + //voltageData[i] = (float)(random.NextDouble() * 100); // 0부터 10 사이의 임의 전압 데이터 생성 + //else + voltageData[i] = (float)(random.NextDouble() * 10); // 0부터 10 사이의 임의 전압 데이터 생성 + } + + chart.TimeData = timeData; + chart.VoltageData = voltageData; + + } + } +} diff --git a/TEST/chart_new/Form1.resx b/TEST/chart_new/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/TEST/chart_new/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TEST/chart_new/Program.cs b/TEST/chart_new/Program.cs new file mode 100644 index 0000000..4fad33c --- /dev/null +++ b/TEST/chart_new/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace chart_new +{ + internal static class Program + { + /// + /// 해당 애플리케이션의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/TEST/chart_new/Properties/AssemblyInfo.cs b/TEST/chart_new/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1d333c2 --- /dev/null +++ b/TEST/chart_new/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("chart_new")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("UserWork")] +[assembly: AssemblyProduct("chart_new")] +[assembly: AssemblyCopyright("Copyright © UserWork 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("5e7b97bf-d740-4997-bd6f-02a84b2d566f")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TEST/chart_new/Properties/Resources.Designer.cs b/TEST/chart_new/Properties/Resources.Designer.cs new file mode 100644 index 0000000..cbfcb83 --- /dev/null +++ b/TEST/chart_new/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace chart_new.Properties +{ + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 + // ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("chart_new.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/TEST/chart_new/Properties/Resources.resx b/TEST/chart_new/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/TEST/chart_new/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TEST/chart_new/Properties/Settings.Designer.cs b/TEST/chart_new/Properties/Settings.Designer.cs new file mode 100644 index 0000000..2ff8489 --- /dev/null +++ b/TEST/chart_new/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace chart_new.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/TEST/chart_new/Properties/Settings.settings b/TEST/chart_new/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/TEST/chart_new/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/TEST/chart_new/chart_new.csproj b/TEST/chart_new/chart_new.csproj new file mode 100644 index 0000000..d2b2977 --- /dev/null +++ b/TEST/chart_new/chart_new.csproj @@ -0,0 +1,86 @@ + + + + + Debug + AnyCPU + {5E7B97BF-D740-4997-BD6F-02A84B2D566F} + WinExe + chart_new + chart_new + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Component + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/TEST/chart_scottplot/App.config b/TEST/chart_scottplot/App.config new file mode 100644 index 0000000..bea55bd --- /dev/null +++ b/TEST/chart_scottplot/App.config @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TEST/chart_scottplot/Form1.Designer.cs b/TEST/chart_scottplot/Form1.Designer.cs new file mode 100644 index 0000000..930693d --- /dev/null +++ b/TEST/chart_scottplot/Form1.Designer.cs @@ -0,0 +1,86 @@ +namespace chart_scottplot +{ + partial class Form1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.panel1 = new System.Windows.Forms.Panel(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Location = new System.Drawing.Point(59, 54); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1101, 439); + this.panel1.TabIndex = 0; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(83, 528); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(346, 73); + this.button1.TabIndex = 1; + this.button1.Text = "button1"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(435, 528); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(346, 73); + this.button2.TabIndex = 2; + this.button2.Text = "button2"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 18F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1286, 646); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.panel1); + this.Name = "Form1"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + } +} + diff --git a/TEST/chart_scottplot/Form1.cs b/TEST/chart_scottplot/Form1.cs new file mode 100644 index 0000000..d0537f4 --- /dev/null +++ b/TEST/chart_scottplot/Form1.cs @@ -0,0 +1,267 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using ScottPlot; +using ScottPlot.Plottables; +using ScottPlot.TickGenerators; +using ScottPlot.WinForms; + +namespace chart_scottplot +{ + public partial class Form1 : Form + { // Create an instance of a FormsPlot like this + readonly FormsPlot formsPlot1; + public Form1() + { + InitializeComponent(); + + // Add the FormsPlot to the panel + formsPlot1 = new FormsPlot() { Dock = DockStyle.Fill }; + panel1.Controls.Add(formsPlot1); + + + } + + ScottPlot.Plottables.Crosshair CrossHair; + + private DateTime[] xs,xs2; + private double[] ys,ys2; + private int pointCount; + + private void Form1_Load(object sender, EventArgs e) + { + // 초기 데이터 생성 + pointCount = 51; + xs = new DateTime[pointCount]; + ys = new double[pointCount]; + + xs2 = new DateTime[pointCount]; + ys2 = new double[pointCount]; + + DateTime startTime = DateTime.Now; + for (int i = 0; i < pointCount; i++) + { + xs[i] = startTime.AddSeconds(i); + ys[i] = Math.Sin(i * 0.1); + + xs2[i] = startTime.AddSeconds(i); + ys2[i] = Math.Sin(i * 0.1)+0.1; + } + + // 초기 데이터 플로팅 + var sig3 = formsPlot1.Plot.Add.Scatter(xs, ys); + // formsPlot1.Plot.Axes.DateTimeTicksBottom(); + + var sig4 = formsPlot1.Plot.Add.Scatter(xs2, ys2); + formsPlot1.Plot.Axes.DateTimeTicksBottom(); + + //var sig1 = formsPlot1.Plot.Add.Signal(Generate.Sin(51)); + //sig1.LegendText = "Sin"; + + //var sig2 = formsPlot1.Plot.Add.Signal(Generate.Cos(51)); + //sig2.LegendText = "Sin"; + + + //myScatter.Color = Colors.Green.WithOpacity(.2); + //myScatter.LineWidth = 5; + //myScatter.MarkerSize = 15; + //formsPlot1.Plot.Axes.SetLimits(-100, 150, -5, 5); //limit 설정 + formsPlot1.Plot.Axes.AutoScale(); //auto limit , fit data + + formsPlot1.Plot.XLabel("TIME"); + formsPlot1.Plot.YLabel("VOLTAGE"); + //formsPlot1.Plot.Title("V"); + var anno = formsPlot1.Plot.Add.Annotation("This is an Annotation"); + anno.LabelFontSize = 32; + anno.LabelFontName = Fonts.Serif; + anno.LabelBackgroundColor = Colors.RebeccaPurple.WithAlpha(.3); + anno.LabelFontColor = Colors.RebeccaPurple; + anno.LabelBorderColor = Colors.Green; + anno.LabelBorderWidth = 3; + anno.LabelShadowColor = Colors.Transparent; + anno.OffsetY = 40; + anno.OffsetX = 20; + + + CrossHair = formsPlot1.Plot.Add.Crosshair(0, 0); + CrossHair.TextColor = Colors.White; + CrossHair.TextBackgroundColor = CrossHair.HorizontalLine.Color; + + + //커서기능용 특정위치에 세로선을 표시 + var axLine1 = formsPlot1.Plot.Add.VerticalLine(startTime.AddSeconds(pointCount / 2).ToOADate()); + axLine1.Text = "Cursor 1"; + axLine1.LabelAlignment = Alignment.UpperRight; + axLine1.IsDraggable = true; + + var axLine2 = formsPlot1.Plot.Add.VerticalLine(startTime.AddSeconds(pointCount / 3).ToOADate()); + axLine2.Text = "Cursor 2"; + axLine2.LabelAlignment = Alignment.UpperRight; + axLine2.IsDraggable = true; + + var hs = formsPlot1.Plot.Add.HorizontalSpan(startTime.AddSeconds(pointCount / 4).ToOADate(), startTime.AddSeconds(pointCount / 3).ToOADate()); + hs.LegendText = "Hello"; + hs.LineStyle.Width = 2; + hs.LineStyle.Color = Colors.Magenta; + hs.LineStyle.Pattern = LinePattern.Dashed; + hs.FillStyle.Color = Colors.Magenta.WithAlpha(.2); + + formsPlot1.Plot.Add.Callout("Hello", + textLocation: new Coordinates(xs[5].ToOADate(), 0.3), + tipLocation: new Coordinates(xs[6].ToOADate(), 1.2)); + + + //double[] values = { 100, 80}; + //formsPlot1.Plot.Add.RadialGaugePlot(values); + + + // add logic into the RenderStarting event to customize tick labels + formsPlot1.Plot.RenderManager.RenderStarting += (s1, e1) => + { + Tick[] ticks = formsPlot1.Plot.Axes.Bottom.TickGenerator.Ticks; + for (int i = 0; i < ticks.Length; i++) + { + DateTime dt = DateTime.FromOADate(ticks[i].Position); + string label = $"{dt:HH}:{dt:mm}:{dt:ss}"; + ticks[i] = new Tick(ticks[i].Position, label); + } + }; + + + + + // some items must be styled directly + //formsPlot1.Plot.Grid.MajorLineColor = Color.FromHex("#0e3d54"); + //formsPlot1.Plot.FigureBackground.Color = Color.FromHex("#07263b"); + //formsPlot1.Plot.DataBackground.Color = Color.FromHex("#0b3049"); + + + + // create a custom formatter to return a string with + // date only when zoomed out and time only when zoomed in + + // apply our custom tick formatter + + + + + + // the Style object contains helper methods to style many items at once + formsPlot1.Plot.Axes.Color(Color.FromHex("#a0acb5")); + + formsPlot1.MouseDown += FormsPlot1_MouseDown; + formsPlot1.MouseUp += FormsPlot1_MouseUp; + formsPlot1.MouseMove += FormsPlot1_MouseMove; + + + formsPlot1.Refresh(); + } + + private void FormsPlot1_MouseDown(object sender, MouseEventArgs e) + { + var lineUnderMouse = GetLineUnderMouse(e.X, e.Y); + if (lineUnderMouse != null) + { + PlottableBeingDragged = lineUnderMouse; + formsPlot1.Interaction.Disable(); // disable panning while dragging + } + } + + private void FormsPlot1_MouseUp(object sender, MouseEventArgs e) + { + PlottableBeingDragged = null; + formsPlot1.Interaction.Enable(); // enable panning again + formsPlot1.Refresh(); + } + AxisLine PlottableBeingDragged = null; + private void FormsPlot1_MouseMove(object sender, MouseEventArgs e) + { + + //update cross line + Pixel mousePixel = new Pixel(e.X, e.Y); + Coordinates mouseCoordinates = formsPlot1.Plot.GetCoordinates(mousePixel); + this.Text = $"X={mouseCoordinates.X:N3}, Y={mouseCoordinates.Y:N3}"; + CrossHair.Position = mouseCoordinates; + CrossHair.VerticalLine.Text = $"{mouseCoordinates.X:N3}"; + CrossHair.HorizontalLine.Text = $"{mouseCoordinates.Y:N3}"; + formsPlot1.Refresh(); + + + + // this rectangle is the area around the mouse in coordinate units + CoordinateRect rect = formsPlot1.Plot.GetCoordinateRect(e.X, e.Y, radius: 10); + + if (PlottableBeingDragged is null) + { + // set cursor based on what's beneath the plottable + var lineUnderMouse = GetLineUnderMouse(e.X, e.Y); + if (lineUnderMouse is null) Cursor = Cursors.Default; + else if (lineUnderMouse.IsDraggable && lineUnderMouse is VerticalLine) Cursor = Cursors.SizeWE; + else if (lineUnderMouse.IsDraggable && lineUnderMouse is HorizontalLine) Cursor = Cursors.SizeNS; + } + else + { + // update the position of the plottable being dragged + if (PlottableBeingDragged is HorizontalLine hl) + { + hl.Y = rect.VerticalCenter; + hl.Text = $"{hl.Y:0.00}"; + } + else if (PlottableBeingDragged is VerticalLine vl) + { + vl.X = rect.HorizontalCenter; + vl.Text = $"{vl.X:0.00}"; + } + formsPlot1.Refresh(); + } + } + private AxisLine GetLineUnderMouse(float x, float y) + { + CoordinateRect rect = formsPlot1.Plot.GetCoordinateRect(x, y, radius: 10); + + foreach (AxisLine axLine in formsPlot1.Plot.GetPlottables().Reverse()) + { + if (axLine.IsUnderMouse(rect)) + return axLine; + } + + return null; + } + private void button1_Click(object sender, EventArgs e) + { + + + } + + private void button2_Click(object sender, EventArgs e) + { + AddDataPoint(); + } + + public void AddDataPoint() + { + // 새로운 데이터 추가 + pointCount += 1; + Array.Resize(ref xs, pointCount); + Array.Resize(ref ys, pointCount); + xs[pointCount - 1] = xs[pointCount - 2].AddSeconds(1); + ys[pointCount - 1] = Math.Sin(pointCount * 0.1); + + // 데이터 업데이트 + formsPlot1.Plot.Clear(); + formsPlot1.Plot.Add.Scatter(xs, ys); + + // Y축 자동 스케일 조정 + //FormsPlot1.Plot.Axes.AutoScaleY(); + formsPlot1.Plot.Axes.AutoScale(); + + // 플롯 갱신 + formsPlot1.Refresh(); + } + } +} diff --git a/TEST/chart_scottplot/Form1.resx b/TEST/chart_scottplot/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/TEST/chart_scottplot/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TEST/chart_scottplot/OpenTK.dll.config b/TEST/chart_scottplot/OpenTK.dll.config new file mode 100644 index 0000000..7098d39 --- /dev/null +++ b/TEST/chart_scottplot/OpenTK.dll.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TEST/chart_scottplot/Program.cs b/TEST/chart_scottplot/Program.cs new file mode 100644 index 0000000..fd1c132 --- /dev/null +++ b/TEST/chart_scottplot/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace chart_scottplot +{ + internal static class Program + { + /// + /// 해당 애플리케이션의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/TEST/chart_scottplot/Properties/AssemblyInfo.cs b/TEST/chart_scottplot/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6e4efa2 --- /dev/null +++ b/TEST/chart_scottplot/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("chart_scottplot")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("chart_scottplot")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("6ee5c99d-f0d9-4c7f-94d4-ffb52fdea3cb")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TEST/chart_scottplot/Properties/Resources.Designer.cs b/TEST/chart_scottplot/Properties/Resources.Designer.cs new file mode 100644 index 0000000..3d3d2ba --- /dev/null +++ b/TEST/chart_scottplot/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace chart_scottplot.Properties +{ + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 + // ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("chart_scottplot.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/TEST/chart_scottplot/Properties/Resources.resx b/TEST/chart_scottplot/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/TEST/chart_scottplot/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TEST/chart_scottplot/Properties/Settings.Designer.cs b/TEST/chart_scottplot/Properties/Settings.Designer.cs new file mode 100644 index 0000000..f37468a --- /dev/null +++ b/TEST/chart_scottplot/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace chart_scottplot.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/TEST/chart_scottplot/Properties/Settings.settings b/TEST/chart_scottplot/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/TEST/chart_scottplot/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/TEST/chart_scottplot/chart_scottplot.csproj b/TEST/chart_scottplot/chart_scottplot.csproj new file mode 100644 index 0000000..f1aebcb --- /dev/null +++ b/TEST/chart_scottplot/chart_scottplot.csproj @@ -0,0 +1,138 @@ + + + + + Debug + AnyCPU + {6EE5C99D-F0D9-4C7F-94D4-FFB52FDEA3CB} + WinExe + chart_scottplot + chart_scottplot + v4.8 + 512 + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\packages\OpenTK.3.3.3\lib\net20\OpenTK.dll + + + ..\..\packages\OpenTK.GLControl.3.3.3\lib\net20\OpenTK.GLControl.dll + + + ..\..\packages\ScottPlot.5.0.37\lib\net462\ScottPlot.dll + + + ..\..\packages\ScottPlot.WinForms.5.0.37\lib\net462\ScottPlot.WinForms.dll + + + ..\..\packages\SkiaSharp.2.88.8\lib\net462\SkiaSharp.dll + + + ..\..\packages\SkiaSharp.Views.Desktop.Common.2.88.8\lib\net462\SkiaSharp.Views.Desktop.Common.dll + + + ..\..\packages\SkiaSharp.Views.WindowsForms.2.88.8\lib\net462\SkiaSharp.Views.WindowsForms.dll + + + + ..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + + ..\..\packages\System.Drawing.Common.8.0.8\lib\net462\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다. + + + + + + + + \ No newline at end of file diff --git a/TEST/chart_scottplot/packages.config b/TEST/chart_scottplot/packages.config new file mode 100644 index 0000000..1512f83 --- /dev/null +++ b/TEST/chart_scottplot/packages.config @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TrendCtrlII/CChinfo.cs b/TrendCtrlII/CChinfo.cs new file mode 100644 index 0000000..a440c6e --- /dev/null +++ b/TrendCtrlII/CChinfo.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel; +using System.Drawing.Drawing2D; +using System.Drawing; + +namespace TrendCtrlII +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public partial class CChinfo + { + public Dictionary Value; + + public String C1value { get; set; } = ""; + public String C2value { get; set; } = ""; + public UInt16 Idx { get; set; } //트렌드뷰에서표시되고있는 인덱스값 + public Boolean Show { get; set; } + public Color Color { get; set; } + public int CH { get; set; } + public String TITLE { get; set; } + public String GROUP { get; set; } + + public CChinfo() + { + CH = 0; + TITLE = ""; + GROUP = ""; + Value = new Dictionary();// List(0); + } + + public override string ToString() + { + return $"{(Show ? "[O]" : "[X]")} GRP:{GROUP},CH:{CH},{TITLE},{Value.Count}건"; + } + + + + } +} diff --git a/TrendCtrlII/CMouseinfo.cs b/TrendCtrlII/CMouseinfo.cs new file mode 100644 index 0000000..4c2ba14 --- /dev/null +++ b/TrendCtrlII/CMouseinfo.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel; +using System.Drawing.Drawing2D; +using System.Drawing; + + +namespace TrendCtrlII +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public partial class CMouseinfo + { + private Boolean hand; + private Boolean cross; + private Boolean move; + private Boolean changepos; + private Boolean drag; + private EDRAGTYPE dragtype; + //private PointF dragstart; + private PointF position; + private PointF position0; + //private Single _time; + private Single _volt; + private Boolean _showinfo; + private int _dragindex; + + public CMouseinfo(PointF _pf) + { + position = _pf; + position0 = _pf; + _showinfo = false; + _volt = 0; + _dragindex = -1; + } + public int DragIndex + { + get { return this._dragindex; } + set { this._dragindex = value; } + + } + public Boolean Showinfo + { + get { return this._showinfo; } + set { this._showinfo = value; } + } + + public Int64 Time { get; set; } + + public Single Volt + { + get { return this._volt; } + set { this._volt = value; } + } + + public EDRAGTYPE DragType + { + get { return this.dragtype; } + set { this.dragtype = value; } + } + + public PointF DragStart { get; set; } + + public PointF Position + { + get { return this.position; } + set { + this.position0 = new PointF(this.position.X, this.position.Y); + this.position = value; + } + } + + public PointF Position0 + { + get { return this.position0; } + set { this.position0 = value; } + } + public Boolean Hand + { + get { return this.hand; } + set { this.hand = value; } + } + public Boolean Cross + { + get { return this.cross; } + set { this.cross = value; } + } + public Boolean ChangePos + { + get { return this.changepos; } + set { this.changepos = value; } + } + public Boolean Move + { + get { return this.move; } + set { this.move = value; } + } + public Boolean Drag + { + get { return this.drag; } + set { this.drag = value; } + } + + } +} diff --git a/TrendCtrlII/CStyle.cs b/TrendCtrlII/CStyle.cs new file mode 100644 index 0000000..20ce338 --- /dev/null +++ b/TrendCtrlII/CStyle.cs @@ -0,0 +1,339 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using System.Drawing; + +namespace TrendCtrlII +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class ChartStyle + { + + //X + private Int64 _X1; + private Int64 _X2; + + //ȭ鿡 ǥõǴ + private Int64 _XV1; + private Int64 _XV2; + + //ȭ鿡 ǥõǴ + public Int64 XV1o; + public Int64 XV2o; + + //Y + private Single _Y1; + private Single _Y2; + + //ȭ鿡 ǥõǴ + private Single _YV1 = 1; + private Single _YV2 = 3; + + //ȭ鿡 ǥõǴ + public Single YV1o = 1; + public Single YV2o = 3; + + // + private Boolean _datapoint = false; + + private Font _yfont = new Font("", 12, FontStyle.Bold); + public int _ZoneMarginX = 50; + public int _ZoneMarginY = 50; + + //public Color design_backcolor = Color.White; + public Color design_mouseinfocolor = Color.Black; + + // public int _xterm = 1800; + private Font _xfont = new Font("", 8, FontStyle.Bold); + + public Font _mouseinfofont = new Font("", 12, FontStyle.Bold); + private Boolean showdebug = false; + // private short defaultviewhour = 3; + + public event OnUpdateinfoHandler OnUpdateinfo; //UPDATE USER CURSOR + public delegate void OnUpdateinfoHandler(); + + public Boolean UseZoomX { get; set; } + public Boolean UseZoomY { get; set; } + + public UInt16 MaxZoomX { get; set; } + public Single MaxZoomY { get; set; } + + public String UnitY { get; set; } + public String UnitX { get; set; } + + public ChartStyle() + { + MaxZoomX = 10; + MaxZoomY = 0.01f; + UseZoomX = true; + UseZoomY = true; + UnitY = "Volt"; + UnitX = "Sec"; + Xǥù = 0; //⺻üǥø ȯ + XGap = 0; //⺻ X ǥð ڵ + YGap = 0; //⺻ Y ǥð ڵ + } + + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("X(ð)"), Description("X࿡ ǥõǴ ð ǥð (0 ڵ)")] + public int XGap { get; set; } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y"), Description("Y࿡ ǥõǴ ǥð (0 ڵ)")] + public Single YGap { get; set; } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ǥð Էϼ.")] + public Font FontY + { + get { return _yfont; } + set + { + _yfont = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("X(ð)"), Description("࿡ ǥõǴ ۲ ϼ.")] + public Font FontX + { + get { return _xfont; } + set + { + _xfont = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + private Int32 _xterm = 0; + + /// + /// X ǥù() ð() ͸ ȭ鿡 ǥõ˴ϴ. 0 Ǹ Ǿִٸ ǽðó ۵ϰ ˴ϴ. + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("ȸ"), Description("X ǥù() ð() ͸ ȭ鿡 ǥõ˴ϴ. 0 Ǹ Ǿִٸ ǽðó ۵ϰ ˴ϴ.")] + public Int32 Xǥù { + get { return _xterm; } + set { + _xterm = value; + + // Ȯϰ Ѵ´ٸ պκ ڸ. + + if(value != 0 ) + { + TimeSpan ts = DateTime.FromFileTime(X2) - DateTime.FromFileTime(X1); + if (ts.TotalSeconds > value) { + DateTime NewEd = DateTime.FromFileTime(X2); + DateTime NewSd = NewEd.AddSeconds(-1 * value); + + if (NewSd > DateTime.Now) + { + NewSd = DateTime.Now; + NewEd = NewSd.AddSeconds(value); + } + X1 = NewSd.ToFileTime(); + X2 = NewEd.ToFileTime(); + } + } + } + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("Ÿ"), Description("͸ ǥմϴ.")] + public Boolean Show_DataPoint { + get { return _datapoint; } + set { _datapoint = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category(""), Description("Debug Message")] + public Boolean Show_DebugMsg + { + get { return this.showdebug; } + set { this.showdebug = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("콺"), Description("콺 ǥϴ â ڻ")] + public Color 콺ڻ + { + get { return design_mouseinfocolor; } + set { design_mouseinfocolor = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("콺"), Description("콺 ǥϴ â ۲")] + public Font 콺۲ + { + get { return _mouseinfofont; } + set { _mouseinfofont = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + /// + /// Yప ǥÿ մϴ. + /// + public void ResetYxis() + { + YV1 = Y1; + YV2 = Y2; + } + + /// + /// Xప ǥÿ մϴ. + /// + public void ResetXxis() + { + XV1 = X1; + XV2 = X2; + } + + /// + /// ᰪ( ǥõǴ XV2 ϼ) + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ִ밪 Էϼ.")] + public Int64 X2 + { + get { return _X2; } + set + { + _X2 = value; + _XV2 = value; + XV2o = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + /// + /// ǽ۰( ǥõǴ XV1 ϼ) + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ּҰ Էϼ.")] + public Int64 X1 + { + get { return _X1; } + set + { + _X1 = value; + _XV1 = value; + XV1o = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + /// + /// ǥõǴ ۰Դϴ. + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ּҰ Էϼ.")] + public Int64 XV1 + { + get { return _XV1; } + set + { + //䰪 Ѱġ üũ + if (value < X1) _XV1 = X1; + else if (value >= XV2 && XV2 > 0) _XV1 = DateTime.FromFileTime(XV2).AddSeconds(-1).ToFileTime(); + else _XV1 = value; + XV1o = _XV1; + } + } + + /// + /// ǥõǴ ᰪԴϴ. + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ּҰ Էϼ.")] + public Int64 XV2 + { + get { return _XV2; } + set + { + //䰪 Ѱġ üũ + if (value > X2) _XV2 = X2; + else if (value <= XV1 && XV1 > 0) _XV2 = DateTime.FromFileTime(XV1).AddSeconds(1).ToFileTime(); + else _XV2 = value; + XV2o = _XV2; + } + } + + /// + /// ᰪ( ǥõǴ YV2 ϼ) + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ִ밪 Էϼ.")] + public Single Y2 + { + get { return _Y2; } + set { + _Y2 = value; + _YV2 = value; + YV2o = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + /// + /// ǥõǴ ᰪԴϴ. + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ִ밪 Էϼ.")] + public Single YV2 + { + get { return _YV2; } + set + { + _YV2 = value; + YV2o = value; + } + } + + /// + /// ۰( ǥõǴ YV1 ϼ) + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ּҰ Էϼ.")] + public Single Y1 + { + get { return _Y1; } + set { + _Y1 = value; + _YV1 = value; + YV1o = value; + if (OnUpdateinfo != null) OnUpdateinfo(); + } + } + + /// + /// ۰ + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y(VOLT)"), Description("Y࿡ ǥõǴ VOLT ּҰ Էϼ.")] + public Single YV1 + { + get { return _YV1; } + set + { + _YV1 = value; + YV1o = value; + } + } + + + //[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category(""), Description("ƮǥõǴ ")] + //public int ʿ + //{ + // get { return _ZoneMarginX; } + // set { _ZoneMarginX = value; + // if (OnUpdateinfo != null) OnUpdateinfo(); + // } + //} + + //[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category(""), Description("ƮǥõǴ ϴ ")] + //public int ʿ + //{ + // get { return _ZoneMarginY; } + // set { _ZoneMarginY = value; + // if (OnUpdateinfo != null) OnUpdateinfo(); + // } + //} + + } + +} diff --git a/TrendCtrlII/CTimeinfo.cs b/TrendCtrlII/CTimeinfo.cs new file mode 100644 index 0000000..df47811 --- /dev/null +++ b/TrendCtrlII/CTimeinfo.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TrendCtrlII +{ + public partial class CTimeinfo + { + + public Int64 Value { get; set; } + public UInt32 idx { get; set; } + + public CTimeinfo(UInt32 _idx, Int64 _val) + { + Value = _val; + idx = _idx; + } + + public DateTime DateTimeData + { + get + { + return DateTime.FromFileTime(Value); + } + } + } +} diff --git a/TrendCtrlII/CUserCursor.cs b/TrendCtrlII/CUserCursor.cs new file mode 100644 index 0000000..3e372df --- /dev/null +++ b/TrendCtrlII/CUserCursor.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TrendCtrlII +{ + public partial class CUserCursor + { + private short _idx = 0; + private Int64 _time = 0; + private Single _value = 0; + private Single _newx = 0; + + public CUserCursor(short pidx, Int64 ptime, Single px) + { + _idx = pidx; + _time = ptime; + _newx = px; + } + public Int64 Time + { + get { return this._time; } + set { this._time = value; } + } + public short Idx + { + get { return this._idx; } + set { this._idx = value; } + } + public Single Value + { + get { return this._value; } + set { this._value = value; } + } + public Single Newx + { + get { return this._newx; } + set { this._newx = value; } + } + } +} diff --git a/TrendCtrlII/Properties/AssemblyInfo.cs b/TrendCtrlII/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..195baa3 --- /dev/null +++ b/TrendCtrlII/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("cVMS Trend Chart Control")] +[assembly: AssemblyDescription("Cell Voltage Monitoring System Display Control by Arin")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("JDTEK - TINDEVIL")] +[assembly: AssemblyProduct("cVMS Trend Chart")] +[assembly: AssemblyCopyright("Copyright ©JDTEK 2012")] +[assembly: AssemblyTrademark("arinware")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("b674bfe2-26c9-49c9-b80a-45aa3502e3f3")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyFileVersion("1.0.1.61")] diff --git a/TrendCtrlII/Properties/Resources.Designer.cs b/TrendCtrlII/Properties/Resources.Designer.cs new file mode 100644 index 0000000..b15fea9 --- /dev/null +++ b/TrendCtrlII/Properties/Resources.Designer.cs @@ -0,0 +1,133 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace TrendCtrlII.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TrendCtrlII.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap alam { + get { + object obj = ResourceManager.GetObject("alam", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Backup_Green_Button { + get { + object obj = ResourceManager.GetObject("Backup_Green_Button", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Blue_Ball { + get { + object obj = ResourceManager.GetObject("Blue_Ball", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Clear_Green_Button { + get { + object obj = ResourceManager.GetObject("Clear_Green_Button", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap down_16 { + get { + object obj = ResourceManager.GetObject("down_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap down_orange { + get { + object obj = ResourceManager.GetObject("down_orange", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Red_Ball { + get { + object obj = ResourceManager.GetObject("Red_Ball", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/TrendCtrlII/Properties/Resources.resx b/TrendCtrlII/Properties/Resources.resx new file mode 100644 index 0000000..d98a20b --- /dev/null +++ b/TrendCtrlII/Properties/Resources.resx @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Get Info Blue Button.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Backup Green Button.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Blue Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Clear Green Button.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Red Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + ..\Resources\down_orange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/TrendCtrlII/Resources/Backup Green Button.png b/TrendCtrlII/Resources/Backup Green Button.png new file mode 100644 index 0000000000000000000000000000000000000000..da9ebb8410c92aac56b4d851366ec28b1f97390e GIT binary patch literal 4897 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 Z4gd+^77;9rn~wkh002ovPDHLkV1kY$y*mH^ literal 0 HcmV?d00001 diff --git a/TrendCtrlII/Resources/down_16.png b/TrendCtrlII/Resources/down_16.png new file mode 100644 index 0000000000000000000000000000000000000000..81758987571f48a6c4b1d6053be980c2bcd8601f GIT binary patch literal 3284 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 literal 0 HcmV?d00001 diff --git a/TrendCtrlII/TrendCtrlII.cs b/TrendCtrlII/TrendCtrlII.cs new file mode 100644 index 0000000..998ed2d --- /dev/null +++ b/TrendCtrlII/TrendCtrlII.cs @@ -0,0 +1,1807 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Security.Authentication.ExtendedProtection; +using System.Security.Policy; + +namespace TrendCtrlII +{ + public enum EDRAGTYPE + { + SCREEN, + ZOOM, + UC, + NONE + } + + public enum ESCREENMODE + { + INIT, + TEMPDATA, + GRAPH + } + + public enum EBUTTONTYPE + { + LEFTMON, + RIGHTMON + } + + public enum EALIGN + { + LEFT, + CENTER, + RIGHT + } + + public partial class TrendCtrlII : UserControl + { + private ChartStyle _Style = new ChartStyle(); + public CMouseinfo Mouseinfo; //마우스위치정보 + + public Boolean Refresh_BackGround = true; + public Boolean Refresh_Grpah = true; + + //화면이동모드 + public Boolean ScreenMove = false; + + //Boolean Make_BackT = false; + + Bitmap layer_bakT; //전체영역의 배경 + Bitmap layer_bak; + + Bitmap layer_graph; + Bitmap layer_graphT; //전체영역의 그래프 + + public float MaxValueY { get; set; } = 15; + + + + public Single LineWidth = 1; + private Rectangle UserZoom; //사용자줌영역 + + //실값 + public Single[] values; + // public int[] times; + private CChinfo[] chinfo; + + public Boolean Key_Control = false; + + // private Rectangle Cursorrect; + + //2015-02-17 : 시간정보를 chinfo 에서 분리 + public Dictionary Time; + + public void RemoveAt(int idx) + { + //배열갯수를 벗어나면 처리하지 않는다. + if (idx >= this.Time.Count) return; + + //삭제대상의 키를 확인한다. + var timeKey = this.Time.Take(idx).First().Key; + + //시간정보삭제 + this.Time.Remove(timeKey); + + //채널정보 중 타임키를 공유하는 자료를 삭제한다. + this.chinfo.ToList().ForEach(t => t.Value.Remove(timeKey)); + + } + + public void AddData(long val_time, int ch, float val_volt, string ch_grp, string ch_title, Color ch_color) + { + //존재하지 않는 시간이라면 추가한다. + var ttime = Time.Where(t => t.Value == val_time).FirstOrDefault(); + if (ttime.Key is default(UInt32) && ttime.Value is default(Int64)) // 기존에 값이 존재하지 않는경우 + { + this.Time.Add((uint)this.Time.Count + 1, val_time); + ttime = Time.Where(t => t.Value == val_time).FirstOrDefault(); + } + + //해당 채널이 존재하는지 확인한다 + var chdata = this.CHInfo.Where(t => t.CH == ch).FirstOrDefault(); + if (chdata == null) + { + Array.Resize(ref chinfo, chinfo.Length + 1); + chdata = new CChinfo + { + CH = ch, + Idx = (ushort)ch, + GROUP = ch_grp, + TITLE = ch_title, + Color = ch_color, + Show = true, + }; + chinfo[chinfo.Length - 1] = chdata; + } + + //해당 시간대의 데이터가 없다면 추가한다. + if (chdata.Value.ContainsKey(ttime.Key) == false) + chdata.Value.Add(ttime.Key, val_volt); + } + + public void AddData(long val_time, int ch, float val_volt) + { + //존재하지 않는 시간이라면 추가한다. + var ttime = Time.Where(t => t.Value == val_time).FirstOrDefault(); + if (ttime.Key is default(UInt32)) + { + this.Time.Add((uint)this.Time.Count + 1, val_time); + } + + //해당 채널이 존재하는지 확인한다 + var chdata = this.CHInfo.Where(t => t.CH == ch).FirstOrDefault(); + if (chdata != null) + { + //해당 시간대의 데이터가 없다면 추가한다. + if (chdata.Value.ContainsKey(ttime.Key) == false) + chdata.Value.Add(ttime.Key, val_volt); + } + + + } + + private Boolean init; //그리드초기화완료여부 + public String initmsg = "initializing..."; + public int initpercent = 0; + + public List uc = new List(0); //사용자커서 최대2개까지한다. + + //미정리 + + //MY EVENT + //public event OnClickProbeSensorHandlerL OnClickLEFT; //셀클릭 + //public delegate void OnClickProbeSensorHandlerL(); + //public event OnClickProbeSensorHandlerR OnClickRIGHT; //셀클릭 + //public delegate void OnClickProbeSensorHandlerR(); + public event OnUpdateUserControlHandler OnUpdateUserCursor; //UPDATE USER CURSOR + public delegate void OnUpdateUserControlHandler(int idx); + + + //화면디자인관련 + private Cursor cursor = Cursors.Default; //현재커서의모양 + + private StringBuilder Warn_msg = new StringBuilder(""); //경고메세지(화면 최상단중앙에 표시됨) + private Font Warn_Font; + + //기타설정' + public RectangleF WindowRect; //머릿부분 + public RectangleF ChartRect; + + /// + /// 현재데이터중 가장 마지막의 시간정보를 반환합니다. (없는경우 1900년도가 반화노딤) + /// + /// + public Int64 LastDate() + { + if (Time == null) return DateTime.Parse("1900-01-01").ToFileTime(); + if (Time.Count < 1) return DateTime.Parse("1900-01-01").ToFileTime(); + return Time.Last().Value;// [Time.Count - 1].Value; + } + + public Int64 FirstDate() + { + if (Time == null) return DateTime.Parse("1900-01-01").ToFileTime(); + if (Time.Count < 1) return DateTime.Parse("1900-01-01").ToFileTime(); + return Time.First().Value; + } + + public TrendCtrlII() + { + InitializeComponent(); + + // Initialize Variables + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.Font = SystemInformation.MenuFont; + this.Warn_Font = new Font("나눔고딕", 20, FontStyle.Bold); + this.Warn_msg.Append("메세지가 없습니다"); + this.Mouseinfo = new CMouseinfo(new PointF(0, 0)); + Time = new Dictionary(); + } + + public ChartStyle Style + { + get { return this._Style; } + set { this._Style = value; } + } + + /// + /// Draws the background gradient and the grid into Graphics + /// + /// Graphic + public void DrawBackgroundWindow(Graphics g, RectangleF crect, RectangleF winrect) + { + //using (Brush gradientBrush = new LinearGradientBrush(this.WindowRect, Style.design_backcolor_start, Style.design_backcolor_bottom, LinearGradientMode.Vertical)) + //{ + // g.FillRectangle(gradientBrush, this.WindowRect); + //} + //g.FillRectangle(Brushes.Black, this.WindowRect); + + //전체창에대한 보더 + RectangleF borderrect = new RectangleF(winrect.Left, winrect.Top, winrect.Width - 1, winrect.Height - 1); + g.DrawRectangle(Pens.Gray, borderrect.Left, borderrect.Top, borderrect.Width, borderrect.Height); + + + //실제차트정보 + //g.FillRectangle(Brushes.Gray, ChartRect.Left + 2, ChartRect.Top + 2, ChartRect.Width, ChartRect.Height); + //g.FillRectangle(Brushes.Black, ChartRect); + + + //Display Collection TIME + //String Str = "Collection Time : " + GetDateTimeStr(startview, false) + " - " + GetDateTimeStr(endview, false); + //SizeF fontszie = g.MeasureString(Str, this.Font); + //// Rectangle rect = new Rectangle((int)winrect.Left, (int)winrect.Top, (int)winrect.Width, (int)(fontszie.Height * 2)); + // g.DrawString(Str, this.Font, Brushes.Black, rect.Left + 10, 3+rect.Top + (rect.Height - fontszie.Height) / 2); + // //g.DrawLine(Pens.Black, winrect.Left, fontszie.Height * 2, winrect.Left + winrect.Width, fontszie.Height * 2); + + //CHART BORDER + g.DrawRectangle(new Pen(Color.Black, 2), crect.Left, crect.Top, crect.Width, crect.Height); + + } + + public void Set_Refresh() + { + Console.WriteLine("Graph : Set_Refresh"); + Refresh_BackGround = true; + Refresh_Grpah = true; + } + + /// Override OnPaint method + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + // this.SuspendLayout(); + + // AntiAliasing + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + + //표시아이템이없다면 오류를 낸다. + if (!init || chinfo == null) + { + //progress + int bw = (int)(this.Width * 0.8); + int bh = (int)(this.Height * 0.05); + Rectangle rr = new Rectangle((this.Width - bw) / 2, (this.Height - bh) / 2 + 10, bw, bh); + + //Display Initial Message + Font nf = new Font("나눔고딕", 20, FontStyle.Bold); + Rectangle FullRect = new Rectangle(0, 0, this.Width, this.Height); + SizeF initsize = e.Graphics.MeasureString(initmsg, nf); + e.Graphics.DrawString(initmsg, nf, Brushes.Black, this.Width / 2 - initsize.Width / 2, this.Height / 2 - initsize.Height / 2 - bh); + + //Display progress Bar + if (initpercent > 100) initpercent = 100; + int perc = (int)(rr.Width * initpercent / 100); + e.Graphics.FillRectangle(Brushes.Green, new Rectangle(rr.Left, rr.Top, perc, rr.Height)); + + //Display Control Border + e.Graphics.DrawRectangle(Pens.DarkGray, rr); + + //using (Brush gradientBrush = new LinearGradientBrush(FullRect, Color.Gray, Color.Gray, LinearGradientMode.Vertical)) + //{ + // + // e.Graphics.FillRectangle(gradientBrush, FullRect); + // // String initstr = "initializing..."; + // //if (initmsg != "") initstr += "\n\n" + initmsg; + //} + + //LinearGradientBrush lb = new LinearGradientBrush(rr, Color.Gray, Color.WhiteSmoke,LinearGradientMode.Vertical); + //lb.Dispose(); + //e.Graphics.DrawRectangle(Pens.DarkGoldenrod, FullRect.Left, FullRect.Top, FullRect.Width - 1, FullRect.Height - 1); + + //this.ResumeLayout(); + return; + } + + Graphics g_bak; + Graphics g_graph; + + if (Style.XV1 == Style.X1 && Style.XV2 == Style.X2) + { + //전체영역이면(전체용 비트맵을 사용함) + g_bak = Graphics.FromImage(this.layer_bakT); + g_graph = Graphics.FromImage(this.layer_graphT); + } + else + { + g_bak = Graphics.FromImage(this.layer_bak); + g_graph = Graphics.FromImage(this.layer_graph); + } + + // e.Graphics.CompositingMode = CompositingMode.SourceOver; + + if (Refresh_BackGround) + { + // g_bak.CompositingMode = CompositingMode.SourceOver; + g_bak.Clear(Color.White); + DrawBackgroundWindow(g_bak, ChartRect, WindowRect); + Draw_Grid(g_bak, ChartRect); //x축,y축의 눈금과 그리드표시 + Refresh_BackGround = false; + } + + if (Refresh_Grpah) + { + // g_graph.CompositingMode = CompositingMode.SourceOver; + g_graph.Clear(Color.Transparent); + Draw_channel(g_graph, ChartRect, WindowRect); + Refresh_Grpah = false; + } + + g_bak.Dispose(); + g_graph.Dispose(); + + //전체영역의경우 별도 할당된 이미지를 사용한ㄷ(최초 1번만 그리게된다) + if (Style.XV1 == Style.X1 && Style.XV2 == Style.X2) + { + e.Graphics.DrawImage(layer_bakT, 0, 0); + e.Graphics.DrawImage(layer_graphT, 0, 0); + } + else + { + e.Graphics.DrawImage(layer_bak, 0, 0); + e.Graphics.DrawImage(layer_graph, 0, 0); + } + + + + //기타정보그림 + Draw_ZoomSelect(e.Graphics); + Draw_Cursor(e.Graphics, ChartRect); + Draw_MouseInfo(e.Graphics); + Draw_Debug(e.Graphics); + if (ShowLegend) Draw_legend(e.Graphics); + g_bak.Dispose(); + g_graph.Dispose(); + + + //StringBuilder sb = new StringBuilder(); + //sb.AppendLine("Startv View : " + startview.ToString() + "/" + endview.ToString()); + //sb.AppendLine("Start Time : " + starttime.ToString() + "/" + endtime.ToString()); + //sb.AppendLine("Start View O : " + Style.XV1.ToString() + "/" + endviewo.ToString()); + //sb.AppendLine("Start Volt : " + Style.Y1.ToString() + "/" + Style.Y2.ToString()); + //sb.AppendLine("Start Volt O : " + Style.Y1o.ToString() + "/" + Style.Y2o.ToString()); + //e.Graphics.DrawString(sb.ToString(), this.Font, Brushes.Black, 100, 100); + + //e.Graphics.DrawRectangle(Pens.Red, ChartRect.Left, ChartRect.Top, ChartRect.Width, ChartRect.Height); + //e.Graphics.DrawRectangle(Pens.Blue, LegendRect.Left, LegendRect.Top, LegendRect.Width, LegendRect.Height); + //this.Update(); + //this.ResumeLayout(); + } + + public bool ShowLegend { get; set; } = false; + void Draw_legend(Graphics g) + { + if (chinfo == null || chinfo.Any() == false) return; + var maxcnt = 10; + var h = LegendRect.Height / maxcnt; + var w = LegendRect.Width; + var showitem = this.chinfo.Where(t => t.Show).ToList(); + var itemcnt = Math.Min(10, showitem.Count()); + for (int i = 0; i < itemcnt; i++) + { + var y = LegendRect.Y + i * h; + var item = showitem[i]; + var rect = new RectangleF(LegendRect.X, y, w, h); + var rectflag = new RectangleF(rect.X, rect.Y, rect.Width * 0.15f, rect.Height); + var rectttitle = new RectangleF(rectflag.Right + 3, rect.Y, rect.Width - rectflag.Width - 3, rect.Height); + using (var bgcolor = new SolidBrush(item.Color)) + g.FillRectangle(bgcolor, rectflag); + var title = $"{item.TITLE}"; + if (item.Value.Any()) + title = $"{item.TITLE} ({item.Value.Last().Value}v)"; + + g.DrawString(title, this.Font, Brushes.Black, rectttitle, new StringFormat + { + Alignment = StringAlignment.Near, + LineAlignment = StringAlignment.Center + }); ; + g.DrawRectangle(Pens.Black, rect.X, rect.Y, rect.Width, rect.Height); + } + } + public void Draw_Cursor(Graphics g, RectangleF Crect) + { + + + if (this.uc.Count == 0) return; + Font cfont = new Font("나눔고딕", 10, FontStyle.Bold); + + //커서는 기본 2개를 둔다(전체사이즈를 측정하기위해서 임시로 크기를 테스트한다.) + String cursorstr = "▦ C1 2012-00-00- 00:00:00 ▦ C1 2012-00-00- 00:00:00 ▦ C1 2012-00-00- 00:00:00"; + SizeF FontSize = g.MeasureString(cursorstr.ToString(), cfont); + + //커서가표시될영역 + + //Cursorrect = new Rectangle(0, 0, 50,50); + //Cursorrect.X = (int)(Crect.Left + Crect.Width - FontSize.Width * 1.1) - 1; + //Cursorrect.Y = (int)(Crect.Top - 2 - FontSize.Height); + //Cursorrect.Width = (int)(FontSize.Width * 1.1); + //Cursorrect.Height = (int)(FontSize.Height * 1.3); + + //g.FillRectangle(Brushes.DimGray, Cursorrect); + //g.DrawRectangle(Pens.Gray, Cursorrect); + + //Single newy = Cursorrect.Top + ((Cursorrect.Height - FontSize.Height)/2) ; + //Single Maxwidth = 0; + + //String fulltext = ""; + + var qry = from CUserCursor cs in uc + orderby cs.Idx + select cs; + + + cursorstr = ""; + foreach (CUserCursor uctl in qry) + { + Single newx = GetXfromTime(uctl.Time, Crect); + uctl.Newx = newx; + + Single imgsizew = Properties.Resources.down_16.Width; + Single imgsizeh = Properties.Resources.down_16.Height; + + cursorstr += " ▦ C" + (uctl.Idx + 1).ToString() + " " + GetTimeStr(uctl.Time, true, true, true, true); + + FontSize = g.MeasureString(cursorstr.ToString(), cfont); + // if (FontSize.Width > Maxwidth) Maxwidth = FontSize.Width; + + if (uctl.Idx < 1) + { + g.DrawImage(Properties.Resources.down_16, (newx - imgsizew / 2) - 1, Crect.Top - imgsizeh - 5); + g.DrawLine(new Pen(Color.Green, 1), newx, Crect.Top, newx, Crect.Top + Crect.Height); + + // fulltext = cursorstr; + + } + else + { + TimeSpan ts = DateTime.FromFileTime(uctl.Time) - DateTime.FromFileTime(uc[0].Time); + cursorstr += " △t " + ts.Days.ToString() + "d " + ts.Hours.ToString() + ":" + ts.Minutes.ToString() + ":" + ts.Seconds.ToString(); + + g.DrawImage(Properties.Resources.down_orange, (newx - imgsizew / 2) - 1, Crect.Top - imgsizeh - 5); + g.DrawLine(new Pen(Color.Orange, 1), newx, Crect.Top, newx, Crect.Top + Crect.Height); + // if (fulltext == "") fulltext = cursorstr; + // else fulltext += "\n" + cursorstr; + + } + // newy += FontSize.Height + 1; + } + + if (cursorstr != "") + { + FontSize = g.MeasureString(cursorstr, cfont); + g.DrawString(cursorstr, cfont, Brushes.Black, Crect.Right - FontSize.Width - 2, Crect.Top - FontSize.Height - 2); + } + + // + // Cursorrect = new Rectangle((int)(ChartRect.Left + ChartRect.Width - Maxwidth), (int)ChartRect.Top, (int)Maxwidth, (int)(newy - FontSize.Height)); + } + + public void Draw_MouseInfo(Graphics g) + { + if (this.Mouseinfo.Showinfo) //마웃위치정보를 화면에 표시를 한다. + { + String tm = GetTimeStr(Mouseinfo.Time, true, true, true, true) + "\n" + Mouseinfo.Volt.ToString("#0.00") + "v"; + if (Style.Show_DebugMsg) tm += "\n" + Mouseinfo.Time.ToString(); + + SizeF tmsize = g.MeasureString(tm, Style._mouseinfofont); + + RectangleF rect = new RectangleF(Mouseinfo.Position.X + 5, Mouseinfo.Position.Y + 5, tmsize.Width + 10, tmsize.Height + 10); + if (Mouseinfo.Position.X >= (this.ChartRect.Left + ChartRect.Width / 2)) + { + //마우스위치에따라서 표시정보 위치를 좌/우 교환한다 150223 + rect = new RectangleF(Mouseinfo.Position.X - (tmsize.Width + 10) - 5, Mouseinfo.Position.Y + 5, tmsize.Width + 10, tmsize.Height + 10); + } + //g.FillRectangle(new SolidBrush(Color.FromArgb(140,Color.Green)), rect); + g.DrawRectangle(Pens.Black, rect.Left, rect.Top, rect.Width, rect.Height); + + g.DrawString(tm, Style._mouseinfofont, new SolidBrush(Style.design_mouseinfocolor), rect.Left + (rect.Width - tmsize.Width) / 2, rect.Top + (rect.Height - tmsize.Height) / 2); + } + } + + public void Draw_Grid(Graphics g, RectangleF crect) + { + + DateTime SDVDate = DateTime.FromFileTime(Style.XV1); + DateTime SDate = DateTime.FromFileTime(Style.XV1); + DateTime EDate = DateTime.FromFileTime(Style.XV2); + + var (normalizedStart, normalizedEnd) = NormalizeTimeRangeHalfHourIntervals(SDate, EDate); + SDVDate = normalizedStart; + SDate = normalizedStart; + EDate = normalizedEnd; + + TimeSpan TS = EDate - SDate; //timespan + + if (TS.TotalSeconds > Style.MaxZoomX) + { + //표시간격 최소 10초 + int tm = 10; + + if (Style.XGap == 0) + { + tm = (int)(TS.TotalSeconds / 5); + } + else + { + tm = Style.XGap; + } + + var termcnt = (int)(TS.TotalSeconds / tm); + if (termcnt < 10) + { + tm = (int)(TS.TotalSeconds / 10f); + } + else if (termcnt > 10) //간격이 너무 크다 + { + tm = (int)(TS.TotalSeconds / 10f); + } + tm = GetClosestInterval(tm); + + for (Int64 i = 0; i <= TS.TotalSeconds; i += tm) + { + DateTime NewDate = SDVDate.AddSeconds(i); //시작시간에서 + if (SDate.Day != NewDate.Day) + { + //일자가 바귀엇으므로 해당 일즤 세로축을 표시 + DateTime LineDay = DateTime.Parse(NewDate.ToString("yyyy-MM-dd 00:00:00")); + Single newx2 = GetXfromTime(LineDay.ToFileTime(), crect); + g.DrawLine(new Pen(Color.FromArgb(50, Color.Black)), newx2, crect.Top, newx2, crect.Top + crect.Height); + SDate = NewDate; + } + + Single newx = GetXfromTime(NewDate.ToFileTime(), crect); + String timestr = ""; + + if (i == 0) timestr = GetDateTimeStr(NewDate.ToFileTime(), true); + else timestr = GetTimeStr(NewDate.ToFileTime(), i == 0 ? true : false, false); + + timestr = NewDate.ToString("yy-MM-dd") + "\n" + NewDate.ToString("HH:mm:ss"); + + DrawString(g, timestr, Style.FontX, Brushes.Black, new PointF(newx, crect.Top + crect.Height + 5), EALIGN.CENTER); + if (i > 0) g.DrawLine(new Pen(Color.Gray), newx, crect.Top, newx, crect.Top + crect.Height); + } + + } + else + { + //Y축 값을 표시할 값이 없으면 오류를 표시한다. + DrawString(g, "ERRX", Style.FontX, Brushes.Black, new PointF(crect.Left - 2, crect.Bottom), EALIGN.RIGHT, EALIGN.CENTER); + } + + + + //세로(VOLT)표시 + //g.DrawString("start="+Style._startvolt.ToString(), this.Font, Brushes.Red, 100, 100); + //g.DrawString("end="+Style._endvolt.ToString(), this.Font, Brushes.Red, 100, 120); + + //g.DrawString("최소="+Style.최소값.ToString(), this.Font, Brushes.Red, 100, 140); + //g.DrawString("최대="+Style.최대값.ToString(), this.Font, Brushes.Red, 100, 160); + + if (Math.Abs(Style.YV2 - Style.YV1) >= Style.MaxZoomY) + { + Single term; + if (Style.YGap == 0) + { + term = (Style.YV2 - Style.YV1) / 10; + } + else + { + term = Style.YGap; + } + + for (Single i = Style.YV1; i <= Style.YV2; i += term) + { + // 세로길이 = 10v : + Single newy = GetYfromVolt(i, crect); + if (Style.YV1 == 0 && i == 0) + { + + } + else g.DrawLine(new Pen(Color.Gray), crect.Left, newy, crect.Left + crect.Width, newy); + + //소수점없는경우에눈금표시한다. + DrawString(g, i.ToString("#0.00"), Style.FontY, Brushes.Black, new PointF(crect.Left - 2, newy), EALIGN.RIGHT, EALIGN.CENTER); + } + } + else + { + //Y축 값을 표시할 값이 없으면 오류를 표시한다. + DrawString(g, "ERRY", Style.FontY, Brushes.Black, new PointF(crect.Left - 2, crect.Top + 2), EALIGN.RIGHT, EALIGN.CENTER); + } + } + + public (DateTime normalizedStart, DateTime normalizedEnd) NormalizeTimeRangeHalfHourIntervals(DateTime start, DateTime end) + { + const int intervalInSeconds = 1800; // 30 minutes + + DateTime normalizedStart = NormalizeTimeToInterval(start, intervalInSeconds, roundDown: true); + DateTime normalizedEnd = NormalizeTimeToInterval(end, intervalInSeconds, roundDown: false); + + return (normalizedStart, normalizedEnd); + } + + private DateTime NormalizeTimeToInterval(DateTime time, int intervalInSeconds, bool roundDown) + { + long ticks = time.Ticks / TimeSpan.TicksPerSecond; + if (roundDown) + { + ticks = (ticks / intervalInSeconds) * intervalInSeconds; // Round down + } + else + { + ticks = ((ticks + intervalInSeconds - 1) / intervalInSeconds) * intervalInSeconds; // Round up + } + return new DateTime(ticks * TimeSpan.TicksPerSecond); + } + + + private readonly int[] TimeIntervals = new int[] + { + 1, 10, 30, 60, 300, 600, 1800, 3600, 21600, 43200, 86400, 432000, 864000, 2592000 + }; + public int GetClosestInterval(int seconds) + { + // Handle cases where seconds is less than the smallest interval or more than the largest interval + if (seconds <= TimeIntervals[0]) + return TimeIntervals[0]; + if (seconds >= TimeIntervals[TimeIntervals.Length - 1]) + return TimeIntervals[TimeIntervals.Length - 1]; + + // Find the closest interval + int closestInterval = TimeIntervals[0]; + int minDifference = Math.Abs(seconds - closestInterval); + + foreach (int interval in TimeIntervals) + { + int difference = Math.Abs(seconds - interval); + if (difference < minDifference) + { + minDifference = difference; + closestInterval = interval; + } + } + + return closestInterval; + } + + public void Draw_Debug(Graphics g) + { + if (!Style.Show_DebugMsg) return; + + //Single newy = 50; + //String newstr = ""; + SizeF fontsize; + + StringBuilder DebugMsg = new StringBuilder(); + + DebugMsg.AppendLine("Mouseinfo=" + this.Mouseinfo.Position.ToString() + " " + this.Mouseinfo.Showinfo.ToString()); + DebugMsg.AppendLine("Mouseinfo0=" + this.Mouseinfo.Position0.ToString() + " idx=" + this.Mouseinfo.DragIndex.ToString()); + DebugMsg.AppendLine("Mouse Volt =" + this.Mouseinfo.Volt.ToString() + " ,Time=" + DateTime.FromFileTime(Mouseinfo.Time).ToString()); + DebugMsg.AppendLine("Mouse Drag=" + Mouseinfo.Drag.ToString() + " " + Mouseinfo.DragType.ToString()); + DebugMsg.AppendLine("Mouse DragStart=" + Mouseinfo.DragStart.ToString()); + DebugMsg.AppendLine("TimeCount =" + Time.Count.ToString()); + + TimeSpan NowTerm = DateTime.FromFileTime(Style.X2) - DateTime.FromFileTime(Style.X1); + DebugMsg.AppendLine("XGap =" + Style.XGap.ToString() + ",YGap=" + Style.YGap.ToString() + ",Xterm=" + Style.X표시범위.ToString() + ",NowTerm=" + NowTerm.ToString()); + + foreach (String file in Files) + { + DebugMsg.AppendLine("File = " + file); + } + foreach (CUserCursor ucitem in uc) + { + DebugMsg.AppendLine("uc" + ucitem.Idx.ToString() + ",x=" + ucitem.Newx.ToString() + ",time=" + ucitem.Time.ToString()); + } + + DebugMsg.AppendLine("======================"); + DebugMsg.AppendLine("시간축=" + Style.X1.ToString() + "~" + Style.X2.ToString() + " : " + DateTime.FromFileTime(Style.X1).ToString("yy-MM-dd HH:mm:ss") + "~" + DateTime.FromFileTime(Style.X2).ToString("yy-MM-dd HH:mm:ss")); + DebugMsg.AppendLine("시간축V=" + Style.XV1.ToString() + "/" + Style.XV2.ToString() + " : " + DateTime.FromFileTime(Style.XV1).ToString("yy-MM-dd HH:mm:ss") + "~" + DateTime.FromFileTime(Style.XV2).ToString("yy-MM-dd HH:mm:ss")); + DebugMsg.AppendLine("시간축VO=" + Style.XV1o.ToString() + "/" + Style.XV2o.ToString() + " : " + DateTime.FromFileTime(Style.XV1o).ToString("yy-MM-dd HH:mm:ss") + "~" + DateTime.FromFileTime(Style.XV2o).ToString("yy-MM-dd HH:mm:ss")); + DebugMsg.AppendLine("======================"); + DebugMsg.AppendLine("전압축=" + Style.Y1.ToString() + "~" + Style.Y2.ToString()); + DebugMsg.AppendLine("전압축V=" + Style.YV1.ToString() + "~" + Style.YV2.ToString()); + DebugMsg.AppendLine("전압축VO=" + Style.YV1o.ToString() + "~" + Style.YV2o.ToString()); + DebugMsg.AppendLine("======================"); + + DebugMsg.AppendLine("UserZoom=" + UserZoom.ToString()); + + // newstr = "CHinfo=" + chinfo.GetUpperBound(0); + + foreach (CChinfo ch in chinfo) + { + DebugMsg.AppendLine("idx=" + ch.Idx.ToString() + ",visible:" + ch.Show.ToString() + ",cnt=" + ch.Value.Count.ToString() + ",Color=" + ch.Color.ToString()); + } + + fontsize = g.MeasureString(DebugMsg.ToString(), this.Font); + g.FillRectangle(new SolidBrush(Color.FromArgb(180, Color.Black)), new Rectangle(100, 100, (int)(fontsize.Width * 1.3), (int)(fontsize.Height * 1.3))); + g.DrawString(DebugMsg.ToString(), this.Font, Brushes.Tomato, 110, 110); + } + + public List Files = new List(); + + public void DataClear() + { + if (uc != null) uc.Clear(); + if (chinfo != null) Array.Clear(chinfo, 0, chinfo.Length); + if (Time != null) this.Time.Clear(); + if (Files != null) Files.Clear(); + } + + /// + /// 지정된 시간값이 현재 존재하는가? + /// + /// int64 : time value + /// + public Boolean ExistTime(Int64 _value) + { + // if (Time.Count < 1) return false; + + return Time.Select(t => t.Value).ToList().Contains(_value); + //for (int i = 1; i <= Time.Count; i++) + //{ + // if (_value == Time[i - 1].Value) return true; + //} + //return false; + } + + public void ScaleFitX() + { + var xrange = this.RangeX; + this.Style.XV1 = xrange.min; + this.Style.XV2 = xrange.max; + this.Invalidate(); + } + public void ScaleFitY() + { + var xrange = this.RangeY; + this.Style.YV1 = xrange.min; + this.Style.YV2 = xrange.max; + this.Invalidate(); + } + public void ScaleFitXY() + { + ScaleFitX(); + ScaleFitY(); + } + + + public void Draw_channel(Graphics g, RectangleF crect, RectangleF wrect) + { + //지정된 시간에 속한 타임만 취듯한다. + var rangeX = this.RangeX; + var minTime = this.Time[rangeX.min]; + var maxTime = this.Time[rangeX.max]; + + var qry = Time + .Where(t => t.Value >= Style.XV1 && t.Value <= Style.XV2) + .OrderBy(t => t.Value) + .ToDictionary(t => t.Key, t => t.Value); + + + + if (qry.Any() == false) return; + + //지정된 시간영역의 자료의 범위를 측정 + var time_min = qry.Min(t => t.Key); //최소시간정보 + var time_max = qry.Max(t => t.Key); //최대시간정보 + + //각채널의 데이터를 확인한다(시간정보[최소~최대]에 포함된것만 표시한다) + var chlist = chinfo.Where(t => t != null && t.Show + && (t.Value.Max(s => s.Key) >= time_min && t.Value.Min(s => s.Key) <= time_max)).ToList(); + + foreach (var ch in chinfo) + { + if (ch == null || ch.Show == false) continue; + //var minX = ch.Value.Min(s => s.Key); + //var maxX = ch.Value.Max(s => s.Key); + + //해당채널내에서 지정된 영역의 자료만 가져온다. + var valueList = ch.Value.Where(t => t.Key >= time_min && t.Key <= time_max).ToDictionary(t => t.Key, t => t.Value); + if (valueList.Any() == false) continue; + + List linearrya = new List(0); + + Single PreX = 0; + Single PreY = 0; + Boolean fc1 = false, fc2 = false; + int idx = 0; + + //저장된 모든 값을 출력한다. + foreach (var cdata in valueList) + { + //시간정보는 동일하다면 조회하지 않게한다. + var time = qry[cdata.Key]; + var volt = cdata.Value; + + //좌표계산 + Single newx = GetXfromTime(time, crect) - 1; + Single newy = GetYfromVolt(volt, crect) - 1; + + //커서값확인 + foreach (CUserCursor cs in uc) + { + if (cs.Idx == 0 && time >= cs.Time && fc1 == false) + { + if (volt > 60) ch.C1value = "OVER"; + else ch.C1value = volt.ToString(); + fc1 = true; + } + else if (cs.Idx == 1 && time >= cs.Time && fc2 == false) + { + if (volt > 60) ch.C2value = "OVER"; + else ch.C2value = volt.ToString(); + fc2 = true; + } + } + + //너무가까운데이터는 그리지 않는다. + //if (Math.Abs(newx - PreX) < 1 && Math.Abs(newy - PreY) < 1) + //{ + // //Console.WriteLine("SKip Pixel"); + // continue; + //} + //else + //{ + PreX = newx; + PreY = newy; + //} + + if (newx >= wrect.Left && newx <= wrect.Left + wrect.Width) //y축은 구분없이 모두 그리게한다. + linearrya.Add(new PointF(newx, newy)); + + if (Style.Show_DataPoint) + { + var size = 2; + g.FillEllipse(new SolidBrush(Color.FromArgb(180, ch.Color)), new RectangleF(newx - size, newy - size, size * 2, size * 2)); + g.DrawEllipse(Pens.Black, new RectangleF(newx - size, newy - size, size * 2, size * 2)); + } + + + idx += 1; + + } + if (linearrya.Count > 1) + g.DrawLines(new Pen(ch.Color, 10), linearrya.ToArray()); + } + } + + public void Draw_ZoomSelect(Graphics g) + { + //사용자줌영역표시 + if (this.UserZoom.Width != 0) + { + int x, y, w, h; + + w = Math.Abs(UserZoom.Width); + h = Math.Abs(UserZoom.Height); + + if (UserZoom.Width > 0) x = UserZoom.Left; + else x = UserZoom.Width + UserZoom.Left; + + if (UserZoom.Height > 0) y = UserZoom.Top; + else y = UserZoom.Height + UserZoom.Top; + + //Y축 줌을 사용하지 않으므로 높이부분은 모두로 처리한다. + if (!Style.UseZoomY) + { + y = (int)ChartRect.Top; + h = (int)ChartRect.Height; + } + + Rectangle rect = new Rectangle(x, y, w, h); + + Int64 startx = GetTimeFromX(rect.Left - this.ChartRect.Left, ChartRect); //줌영역의 시작시간정보 + Int64 endx = GetTimeFromX(rect.Left + rect.Width - ChartRect.Left, ChartRect); //줌영역의 종료시간정보 + + Single starty = (Single)GetVoltfromY(rect.Top, ChartRect); + Single endy = (Single)GetVoltfromY(rect.Top + rect.Height, ChartRect); + + String ZommMsg = ""; + + //선택된 영역 Drawing + TimeSpan zoomts = DateTime.FromFileTime(startx) - DateTime.FromFileTime(endx); + if (Math.Abs(zoomts.TotalSeconds) >= Style.MaxZoomX && Math.Abs(starty - endy) >= Style.MaxZoomY && rect.Width > 20) //150224 줌영역자체의 크기는 10px를 넘도록 + { + //시간은 최소1분 , 전압값은 최소 1v + g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Lime)), rect); + ZommMsg = Math.Abs(zoomts.TotalSeconds).ToString("N0") + Style.UnitX; + } + else + { + g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Red)), rect); + + if (rect.Width <= 20) + { + ZommMsg = "줌 선택영역을 넓게 지정하세요"; + } + else + { + if (Math.Abs(zoomts.TotalSeconds) < Style.MaxZoomX) + { + ZommMsg = "줌을 활성화 하려면 최소(" + Style.MaxZoomX.ToString() + Style.UnitX + "의 구간을 선택해야합니다"; + } + else + { + ZommMsg = "줌을 활성화 하려면 최소(" + Style.MaxZoomY.ToString() + Style.UnitY + "의 구간을 선택해야합니다"; + } + } + + } + + g.DrawRectangle(Pens.Black, rect); + + //시간정보 Display + g.DrawString(GetTimeStr(startx, true, true) + "," + (Style.Y2 - starty).ToString("#0.00") + Style.UnitY, this.Font, Brushes.Black, rect.Left, rect.Top); + String fontstr = GetTimeStr(endx, true, true) + "," + (Style.Y2 - endy).ToString("#0.00") + Style.UnitY; + SizeF fontsize = g.MeasureString(fontstr, this.Font); + g.DrawString(fontstr, this.Font, Brushes.Black, rect.Left - 5 + rect.Width - fontsize.Width, rect.Top + rect.Height - fontsize.Height); + + if (ZommMsg != "") + DrawString(g, ZommMsg, this.Font, Brushes.Black, new PointF(rect.Left + rect.Width / 2, rect.Top + rect.Height / 2), EALIGN.CENTER, EALIGN.CENTER); + + } + } + + /// + /// 화면의 좌,우 측에 존재하는 이돈버튼(월을 움직이는 버튼이며 월 이동을위해서 이벤트를 발생한다) + /// + /// + //public void Draw_NaviLR(Graphics G, RectangleF crect) + //{ + // return; + + // //LEFT NAVI + // Single x, y, xw = 30; + // x = crect.Left - 3; + // y = crect.Top + crect.Height / 2 - xw / 2; + + // PointF[] aa = new PointF[4]; + // aa[0] = new PointF(x, y); + // aa[1] = new PointF(x - xw, y + xw); + // aa[2] = new PointF(x, y + xw + xw); + // aa[3] = new PointF(x, y); + + // PointF[] aa1 = new PointF[4]; + // aa1[0] = new PointF(x + 2, y + 2); + // aa1[1] = new PointF(x + 2 - xw, y + xw + 2); + // aa1[2] = new PointF(x + 2, y + xw + xw + 2); + // aa1[3] = new PointF(x + 2, y + 2); + // G.FillPolygon(Brushes.Black, aa1); + // G.FillPolygon(Brushes.DarkRed, aa); + // G.DrawPolygon(Pens.Black, aa); + + // Buttons.Add(new RectangleF(x - xw, y, xw, xw*2)); + // Buttonstag.Add("LBUTTON"); + // Buttonstype.Add(EBUTTONTYPE.LEFTMON); + + // //RIGHT NAVI + // x = crect.Left + crect.Width + 3; + // y = crect.Top + crect.Height / 2 - xw / 2; + + // aa = new PointF[4]; + // aa[0] = new PointF(x, y); + // aa[1] = new PointF(x + xw, y + xw); + // aa[2] = new PointF(x, y + xw + xw); + // aa[3] = new PointF(x, y); + + // aa1 = new PointF[4]; + // aa1[0] = new PointF(x + 2, y + 2); + // aa1[1] = new PointF(x + 2 + xw, y + xw + 2); + // aa1[2] = new PointF(x + 2, y + xw + xw + 2); + // aa1[3] = new PointF(x + 2, y + 2); + // G.FillPolygon(Brushes.Black, aa1); + // G.FillPolygon(Brushes.DarkRed, aa); + // G.DrawPolygon(Pens.Black, aa); + // Buttons.Add(new RectangleF(x, y, xw, xw*2)); + // Buttonstag.Add("RBUTTON"); + // Buttonstype.Add(EBUTTONTYPE.RIGHTMON); + //} + + + public String GetDateTimeStr(Int64 Filetime, Boolean linefeed) + { + DateTime TimeDate = DateTime.FromFileTime(Filetime); + String timestr = ""; + if (linefeed) timestr = TimeDate.ToShortDateString() + "\n" + TimeDate.ToShortTimeString(); //' yymm + "-" + day.ToString("00") + "\n" + hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00"); + else timestr = TimeDate.ToString();// yymm + "-" + day.ToString("00") + " " + hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00"); + + return timestr; + } + + public String GetTimeStr(Int64 Filetime, Boolean withday, Boolean withseconed, Boolean nolf = false, Boolean showyear = false) + { + if (Filetime < 0D) return "-Err-"; + + DateTime TimeDate = DateTime.FromFileTime(Filetime); + String timestr = ""; + + if (TimeDate.Second == 0 || !withseconed) + timestr = TimeDate.ToString("HH:mm");// TimeDate.Hour.ToString("00") + ":" + TimeDate.Minute.ToString("00"); + else + timestr = TimeDate.ToString("HH:mm:ss"); // hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00"); + + if (withday) + { + if (showyear) + { + timestr = TimeDate.ToString("yy-MM-dd") + " " + timestr; + } + else + { + if (nolf) timestr = TimeDate.ToString("dd") + "일 " + timestr; + else timestr = timestr + "\n" + TimeDate.ToString("dd") + "일"; + } + } + return timestr; + } + + /// + /// (전체시간 * 현재X) / 전체너비 + /// + /// + /// + public Int64 GetTimeFromX(Single X, RectangleF crect) + { + DateTime sd = DateTime.FromFileTime(Style.XV1); + DateTime ed = DateTime.FromFileTime(Style.XV2); + TimeSpan ts = ed - sd; + + Int64 gap = (Int64)((ts.TotalMilliseconds * X) / crect.Width); + return sd.AddMilliseconds(gap).ToFileTime(); + } + public Single GetXfromTime(Int64 t) + { + return (((this.ChartRect.Width) * (t - Style.XV1)) / (Style.XV2 - Style.XV1)) + ChartRect.Left; + } + public Single GetXfromTime(Int64 t, RectangleF crect) + { + return (((crect.Width) * (t - Style.XV1)) / (Style.XV2 - Style.XV1)) + crect.Left; + } + public Single GetVoltfromY(Single Y, RectangleF crect) + { + + return ((Style.Y2 - Style.Y1) * Y) / crect.Height; + + } + public Single GetYfromVolt(Single volt, RectangleF crect) + { + //volt = (Style._endvolt - Style._startvolt) - volt; 150223 : Y값도 X축처럼 표시변수 YV 값으로 수정함 + return (crect.Height - ((crect.Height * (volt - Style.YV1)) / (Style.YV2 - Style.YV1))) + crect.Top; + } + + private void DrawString(Graphics G, String str, Font font, Brush br, PointF ops, EALIGN XCenter = EALIGN.LEFT, EALIGN YCenter = EALIGN.LEFT) + { + SizeF fsize = G.MeasureString(str, font); + Single newx = ops.X; + Single newy = ops.Y; + + if (XCenter == EALIGN.CENTER) newx = ops.X - fsize.Width / 2; + else if (XCenter == EALIGN.RIGHT) newx = ops.X - fsize.Width; + + if (YCenter == EALIGN.CENTER) newy = ops.Y - fsize.Height / 2; + else if (YCenter == EALIGN.RIGHT) newy = ops.Y - fsize.Height; + + G.DrawString(str, font, br, newx, newy); + } + + public Boolean INIT + { + get { return this.init; } + set { this.init = value; } + } + public CChinfo[] CHInfo + { + get { return this.chinfo; } + set { this.chinfo = value; } + } + + public (uint min, uint max) RangeX + { + get + { + var min = (CHInfo.Min(t => t.Value.Where(s => s.Key > 0).Min(v => v.Key))); + var max = (CHInfo.Max(t => t.Value.Where(s => s.Key > 0).Max(v => v.Key))); + return (min, max); + } + } + public (float min, float max) RangeY + { + get + { + //100을 초과한 범위는 제한한다 + var min = CHInfo.Min(t => t.Value.Where(s => s.Value < MaxValueY && s.Value > -MaxValueY).Min(u => u.Value)); + var max = CHInfo.Max(t => t.Value.Where(s => s.Value < MaxValueY && s.Value > -MaxValueY).Max(u => u.Value)); + return (min, max); + } + } + + + public int LegendWidth { get; set; } = 200; + public RectangleF LegendRect { get; private set; } + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + LegendWidth = 100; + this.WindowRect = new RectangleF(0, 0, this.Width, this.Height); + if (ShowLegend) + { + this.ChartRect = new RectangleF(Padding.Left, Padding.Top, + this.Width - (Padding.Left + 10) - LegendWidth - 20, + (Single)(this.Height - (Padding.Top + Padding.Bottom))); + LegendRect = new RectangleF(ChartRect.Right + 10, ChartRect.Y, LegendWidth + 10, ChartRect.Height); + } + else + { + this.ChartRect = new RectangleF(Padding.Left, Padding.Top, + this.Width - (Padding.Left + Padding.Right) - 20, + (Single)(this.Height - (Padding.Top + Padding.Bottom))); + LegendRect = RectangleF.Empty; // new RectangleF(ChartRect.Right + 20, ChartRect.Y, LegendWidth, ChartRect.Height); + + } + + int SW = this.Width; + int SH = this.Height; + if (this.Width == 0 || this.Height == 0) + { + SW = 600; + SH = 600; + } + + layer_bak = new Bitmap(SW, SH); + layer_graph = new Bitmap(SW, SH); + layer_bakT = new Bitmap(SW, SH); + layer_graphT = new Bitmap(SW, SH); + + Graphics.FromImage(layer_bak).Clear(Color.White); + Graphics.FromImage(layer_bakT).Clear(Color.White); + + Set_Refresh(); + Invalidate(); + } + + private int check_userpoint(MouseEventArgs e) + { + if (this.uc.Count == 0) return -1; + for (int i = 0; i < this.uc.Count; i++) + { + CUserCursor uuc = this.uc[i]; + + //현재위치가 해당 Rectagle 안이라면 속해있다. + if ((int)this.Mouseinfo.Position.X >= (int)uuc.Newx - 2 && (int)this.Mouseinfo.Position.X <= (int)(uuc.Newx) + 2 && this.Mouseinfo.Position.Y <= ChartRect.Top) + return i; + } + return -1; + } + + //private int check_buttons(MouseEventArgs e) + //{ + // if (this.Buttons == null) return -1; + // for (int i = 0; i < this.Buttons.Count; i++) + // { + // RectangleF rect = this.Buttons[i]; + + // //현재위치가 해당 Rectagle 안이라면 속해있다. + // if (e.X > rect.X && e.X < rect.X + rect.Width) + // { + // if (e.Y > rect.Y && e.Y < rect.Y + rect.Height) return i; + // } + // } + // return -1; + //} + + private void InitializeComponent() + { + this.SuspendLayout(); + // + // TrendCtrl + // + this.Name = "TrendCtrl"; + this.Size = new System.Drawing.Size(287, 321); + this.Load += new System.EventHandler(this.DispCtrl_Load); + this.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.TrendCtrl_MouseDoubleClick); + this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TrendCtrl_MouseDown); + this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.TrendCtrl_MouseMove); + this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.TrendCtrl_MouseUp); + this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.TrendCtrl_MouseWhell); + this.ResumeLayout(false); + } + + public void Graph_Reset() + { + Style.ResetXxis(); + Style.ResetYxis(); + Set_Refresh(); + Console.WriteLine("Graph : Graph_Reset"); + } + + private void TrendCtrl_MouseDown(object sender, MouseEventArgs e) + { + + + switch (e.Button) + { + case System.Windows.Forms.MouseButtons.Left: + + //드래그판단을위한 위치값을 저장한다. + Mouseinfo.DragStart = new PointF(e.X - this.WindowRect.Left, e.Y - WindowRect.Top); + + //화면이동모드일때는 좌측버튼도 중앙버튼처럼 처리해야한다. + if (ScreenMove) + { + //X축 줌을 사용한경우에만 가능하게 한다. + if (Style.UseZoomX) + { + //아무것도없는 빈공간이라면 화면이동(=줌시작)으로 대체한다. + if (e.X >= ChartRect.Left && e.X <= ChartRect.Left + ChartRect.Width && e.Y >= ChartRect.Top && e.Y <= ChartRect.Top + ChartRect.Height) + { + if (Style.XV2 == Style.X2 && Style.XV1 == Style.X1) + { + //데이터영역과 표시영역이 동일하다(이동할 영역이 없는경우이다) + Mouseinfo.DragType = EDRAGTYPE.NONE; + } + else + { + //이동할영역이 존재하므로 이동시킨다. + Mouseinfo.DragType = EDRAGTYPE.SCREEN; + this.UserZoom = new Rectangle(0, 0, 0, 0); + } + } + } + } + else + { + + //사용자포인트관련 + int idx = check_userpoint(e); + if (idx != -1) + { + Mouseinfo.DragType = EDRAGTYPE.UC; + Mouseinfo.DragIndex = idx; + return; + } + + //아무것도없는 빈공간이라면 화면이동(=줌시작)으로 대체한다. + if (idx == -1 && e.X >= ChartRect.Left && e.X <= ChartRect.Left + ChartRect.Width && e.Y >= ChartRect.Top && e.Y <= ChartRect.Top + ChartRect.Height) + { + //좌측버튼은 항상 줌영역을 활성화한다 + if (Style.UseZoomX) + { + Mouseinfo.DragType = EDRAGTYPE.ZOOM; + this.UserZoom = new Rectangle(e.X, e.Y, 0, 0); + } + else + { + //줌을 사용하지 않기로 하여 ㅆ다면? + Mouseinfo.DragType = EDRAGTYPE.NONE; + } + } + } + + break; + + case System.Windows.Forms.MouseButtons.Middle: + + //X축 줌을 사용한경우에만 가능하게 한다. + if (Style.UseZoomX) + { + //아무것도없는 빈공간이라면 화면이동(=줌시작)으로 대체한다. + if (e.X >= ChartRect.Left && e.X <= ChartRect.Left + ChartRect.Width && e.Y >= ChartRect.Top && e.Y <= ChartRect.Top + ChartRect.Height) + { + if (Style.XV2 == Style.X2 && Style.XV1 == Style.X1) + { + //데이터영역과 표시영역이 동일하다(이동할 영역이 없는경우이다) + Mouseinfo.DragType = EDRAGTYPE.NONE; + } + else + { + //이동할영역이 존재하므로 이동시킨다. + Mouseinfo.DragType = EDRAGTYPE.SCREEN; + this.UserZoom = new Rectangle(0, 0, 0, 0); + } + } + } + + break; + + case System.Windows.Forms.MouseButtons.Right: // 줌 초기화 + // if (Message != null) Message("줌영역을 초기화합니다"); + Style.XV1 = Style.XV1o; + Style.XV2 = Style.XV2o; + Style.Y1 = Style.YV1o; + Style.Y2 = Style.YV2o; + Set_Refresh(); //전체화면용 데이터를 바로 사용하면된다) + + Console.WriteLine("Mouse R Click : REFRESH"); + Refresh(); + //if(Message != null) Message(""); + break; + + } + } + + private void TrendCtrl_MouseMove(object sender, MouseEventArgs e) + { + //마우스의 위치가 실시간 저장된다. + if (this.Mouseinfo == null) this.Mouseinfo = new CMouseinfo(new PointF(e.X - this.WindowRect.Left, e.Y - this.WindowRect.Top)); + else this.Mouseinfo.Position = new PointF(e.X - this.WindowRect.Left, e.Y - this.WindowRect.Top); + + this.Mouseinfo.Time = GetTimeFromX(Mouseinfo.Position.X - ChartRect.Left, ChartRect); // +this.startview; + this.Mouseinfo.Volt = this._Style.Y2 - GetVoltfromY(Mouseinfo.Position.Y - ChartRect.Top, ChartRect); + this.Mouseinfo.Showinfo = false; + + //MouseStatus initialize... + Mouseinfo.Hand = false; + Mouseinfo.Cross = false; + Mouseinfo.Move = false; + Mouseinfo.ChangePos = false; + + // + if (e.X >= ChartRect.X && e.X <= ChartRect.X + ChartRect.Width) + if (e.Y >= ChartRect.Top && e.Y <= ChartRect.Top + ChartRect.Height) Mouseinfo.Showinfo = true; + else Mouseinfo.Showinfo = false; + + //이동중인데 마우스가 눌려있다면 DRAG다 + if (e.Button == MouseButtons.Left) Mouseinfo.Drag = true; + else Mouseinfo.Drag = false; + + + if (Mouseinfo.Drag) //드래그중이다 + { + Mouseinfo.Move = true; //화면이동으로 + } + else + { + if (e.X >= ChartRect.Left && e.X <= ChartRect.Left + ChartRect.Width) + { + if (e.Y >= ChartRect.Top && e.Y <= ChartRect.Top + ChartRect.Height) + { + Mouseinfo.Cross = true; //화면내부라면 크로스 + } + else Mouseinfo.Cross = false; + } + else Mouseinfo.Cross = false; + } + + //사용자포인터위라면? + int idx = this.check_userpoint(e); + if (idx != -1) + { + Mouseinfo.Cross = false; + Mouseinfo.Hand = false; + Mouseinfo.Drag = false; + Mouseinfo.ChangePos = true; + Mouseinfo.DragType = EDRAGTYPE.UC; + } + + //드래그중판단 + if (Mouseinfo.Drag) + { + switch (Mouseinfo.DragType) + { + case EDRAGTYPE.NONE: + break; + case EDRAGTYPE.UC: + Single newx = (e.X); + Int64 newtime = GetTimeFromX(newx - ChartRect.Left, ChartRect); + if (Mouseinfo.DragIndex < uc.Count) + { + //데이터가 없는경우이다. + this.uc[Mouseinfo.DragIndex].Newx = newx; + this.uc[Mouseinfo.DragIndex].Time = newtime; + } + break; + case EDRAGTYPE.ZOOM: + this.UserZoom.Width = (int)(e.X - WindowRect.X - Mouseinfo.DragStart.X); + if (Key_Control || Style.UseZoomY) //컨트롤이 눌려져있다면 줌을 사용한다. + { + this.UserZoom.Height = (int)(e.Y - WindowRect.Y - Mouseinfo.DragStart.Y); + } + else + { + this.UserZoom.Height = (int)ChartRect.Height;// (int)(e.Y - Mouseinfo.DragStart.Y - ChartRect.Left); + } + + if (Mouseinfo.Cross) this.Cursor = Cursors.Cross; + break; + case EDRAGTYPE.SCREEN: + + if (Mouseinfo.Move) + { + this.Cursor = Cursors.NoMove2D; + Mouseinfo.Showinfo = false; + } + + + //이동한pixcel을 시간정보로 변환한다. + //현재마우스위치값 - 드래그시작마우스위치값을 뺸 픽셀을 초로환산한다. + Single term = Mouseinfo.DragStart.X - Mouseinfo.Position.X; //양수라면 오른쪽으로 이동했다. + TimeSpan termtime = DateTime.FromFileTime(GetTimeFromX(Mouseinfo.Position.X, ChartRect)) - DateTime.FromFileTime(GetTimeFromX(Mouseinfo.DragStart.X, ChartRect)); + + + Int64 NewSD = DateTime.FromFileTime(Style.XV1).AddSeconds(-1 * termtime.TotalSeconds).ToFileTime();// + (int)mstime; + Int64 NewED = DateTime.FromFileTime(Style.XV2o).AddSeconds(-1 * termtime.TotalSeconds).ToFileTime(); //endviewo + (int)mstime; + + //해당 시간영역의 전체 데이터 영역에 들어있어야 이동이 가능하다 + if ((NewSD > Style.X1 && NewED < Style.X2)) + { + Style.XV1 = NewSD; + Style.XV2 = NewED; + + //y축 사용시에만 설정되게한다. + if (Key_Control || Style.UseZoomY) + { + Single termy = Mouseinfo.Position.Y - Mouseinfo.DragStart.Y - ChartRect.Top; + Single termvolt = GetVoltfromY(termy, ChartRect); + Single mvolt = termvolt; + + Single SV = Style.YV1o + mvolt; + Single EV = Style.YV2o + mvolt; + + Style.YV1 = SV; + Style.YV2 = EV; + + + } + Mouseinfo.DragStart = Mouseinfo.Position; //현재위치부터 드래그가 다시되도록 + Set_Refresh(); + } + + + break; + } + } + else + { + if (Mouseinfo.Hand) this.Cursor = Cursors.Hand; + if (Mouseinfo.Cross) this.Cursor = Cursors.Cross; + if (Mouseinfo.ChangePos) this.Cursor = Cursors.SizeWE; + } + + this.Refresh(); + } + + + public void Graph_Left(int perc) + { + DateTime newStartview = DateTime.FromFileTime(this.Style.XV1); + DateTime newEndview = DateTime.FromFileTime(this.Style.XV2); + TimeSpan term = newEndview - newStartview; + DateTime NewStart = newStartview.AddMinutes(-1 * (term.TotalMinutes / perc)); + DateTime NewEnd = newEndview.AddMinutes(-1 * (term.TotalMinutes / perc)); + if (NewStart < DateTime.FromFileTime(Style.X1)) return; + this.Style.XV1 = NewStart.ToFileTime(); + this.Style.XV2 = NewEnd.ToFileTime(); + Set_Refresh(); + Refresh(); + Console.WriteLine("Graph : Graph_Left"); + } + + public void Graph_Right(int perc) + { + DateTime newStartview = DateTime.FromFileTime(this.Style.XV1); + DateTime newEndview = DateTime.FromFileTime(this.Style.XV2); + TimeSpan term = newEndview - newStartview; + DateTime NewStart = newStartview.AddMinutes(term.TotalMinutes / perc); + DateTime NewEnd = newEndview.AddMinutes(term.TotalMinutes / perc); + if (NewEnd > DateTime.FromFileTime(Style.X2)) return; + this.Style.XV1 = NewStart.ToFileTime(); + this.Style.XV2 = NewEnd.ToFileTime(); + Set_Refresh(); + Refresh(); + Console.WriteLine("Graph : Graph_Right"); + } + + /// + /// 현재 그래프의 Y축 좌표영역을 10% 위로 이동합니다. + /// + public void Graph_Up() + { + Single v = (Style.YV2 - Style.YV1) / 10; + Style.YV2 -= v; + Style.YV1 -= v; + Set_Refresh(); + Refresh(); + Console.WriteLine("Graph : Graph_Up"); + } + + /// + /// 현재 그래프의 Y축 좌표영역을 10% 아래로 이동합니다. + /// + public void Graph_Down() + { + Single v = (Style.YV2 - Style.YV1) / 10; + Style.YV2 += v; + Style.YV1 += v; + Set_Refresh(); + Refresh(); + Console.WriteLine("Graph : Graph_Down"); + } + + + /// + /// 현재 그래프의 Y축 좌표영역을 10% 확대합니다. + /// + public void Graph_ZoomInY() + { + Single v = (Style.YV2 - Style.YV1) / 10; + Style.YV2 -= v; + Style.YV1 += v; + Set_Refresh(); + Refresh(); + Console.WriteLine("Graph : Graph_ZoomInY"); + } + + /// + /// 현재 그래프의 Y축 좌표영역을 10% 축소합니다. + /// + public void Graph_ZommOutY() + { + Single v = (Style.YV2 - Style.YV1) / 10; + Style.YV2 += v; + Style.YV1 -= v; + Set_Refresh(); + Refresh(); + Console.WriteLine("Graph : Graph_ZommOutY"); + } + + + public void ZoomIN() + { + DateTime newStartview = DateTime.FromFileTime(this.Style.XV1); + DateTime newEndview = DateTime.FromFileTime(this.Style.XV2); + TimeSpan term = newEndview - newStartview; + DateTime NewStart = newStartview.AddMinutes(term.TotalMinutes / 20); + DateTime NewEnd = newEndview.AddMinutes(-1 * (term.TotalMinutes / 20)); + if (NewStart >= DateTime.FromFileTime(Style.X2).AddMinutes(-10)) NewStart = DateTime.FromFileTime(Style.X2).AddMinutes(-10); + if (NewEnd <= DateTime.FromFileTime(Style.X1).AddMinutes(10)) NewEnd = DateTime.FromFileTime(Style.X1).AddMinutes(10); + Style.XV1 = NewStart.ToFileTime(); + this.Style.XV2 = NewEnd.ToFileTime(); + Set_Refresh(); + Refresh(); + Console.WriteLine("Graph : ZoomIN"); + } + + public void ZoomOUT() + { + DateTime newStartview = DateTime.FromFileTime(Style.XV1); + DateTime newEndview = DateTime.FromFileTime(Style.XV2); + TimeSpan term = newEndview - newStartview; + DateTime NewStart = newStartview.AddMinutes(-1 * (term.TotalMinutes / 20)); + DateTime NewEnd = newEndview.AddMinutes(term.TotalMinutes / 20); + if (newStartview < DateTime.FromFileTime(Style.X1)) NewStart = DateTime.FromFileTime(Style.X1); + if (newEndview > DateTime.FromFileTime(Style.X2)) NewEnd = DateTime.FromFileTime(Style.X2); + Style.XV1 = NewStart.ToFileTime(); + Style.XV2 = NewEnd.ToFileTime(); + Set_Refresh(); + Refresh(); + Console.WriteLine("Graph : ZoomOUT"); + } + + private void TrendCtrl_MouseWhell(object sender, MouseEventArgs e) + { + if (Key_Control) + { + //온도축 변경(Y) + Single news, newe; + + news = Style.Y2; + newe = Style.Y1; + + Single TimerTerm = newe - news; + + if (e.Delta > 0) + { + //확대 + news = news + (TimerTerm / 10); + newe = newe + (-1 * (TimerTerm / 10)); + } + else + { + //축소(down) + news = news + (-1 * (TimerTerm / 10)); + newe = newe + (1 * (TimerTerm / 10)); + } + + if (news > 400) news = 400; + if (news < -200) news = -200; + + + Style.Y2 = news; + Style.Y1 = newe; + } + else + { + //시간축 변경(X) + DateTime news, newe; + + news = DateTime.FromFileTime(Style.XV1); + newe = DateTime.FromFileTime(Style.XV2); + + TimeSpan TimerTerm = newe - news; + + if (e.Delta > 0) + { + //확대 + if (TimerTerm.TotalSeconds < Style.MaxZoomX) return; + news = news.AddSeconds(TimerTerm.TotalSeconds / 10); + newe = newe.AddSeconds(-1 * (TimerTerm.TotalSeconds / 10)); + } + else + { + //축소(down) + news = news.AddSeconds(-1 * (TimerTerm.TotalSeconds / 10)); + newe = newe.AddSeconds(1 * (TimerTerm.TotalSeconds / 10)); + } + + if (news > DateTime.FromFileTime(Style.X2)) news = DateTime.FromFileTime(Style.X2); + if (news < DateTime.FromFileTime(Style.X1)) news = DateTime.FromFileTime(Style.X1); + if (newe > DateTime.FromFileTime(Style.X2)) newe = DateTime.FromFileTime(Style.X2); + if (newe < DateTime.FromFileTime(Style.X1)) newe = DateTime.FromFileTime(Style.X1); + + if (news < DateTime.FromFileTime(Style.X1) || newe > DateTime.FromFileTime(Style.X2)) + { + //MessageBox.Show("데이터가 없으므로 줌을 사용할 수 없습니다"); + } + else + { + Style.XV1 = news.ToFileTime(); + Style.XV2 = newe.ToFileTime(); + Style.XV1 = news.ToFileTime(); + Style.XV2o = newe.ToFileTime(); + } + + } + + this.Set_Refresh(); + this.Refresh(); + Console.WriteLine("Graph : Mouse Wheel"); + } + + private void TrendCtrl_MouseUp(object sender, MouseEventArgs e) + { + Mouseinfo.Drag = false; + if (Mouseinfo.DragType == EDRAGTYPE.UC) + { + Refresh_Grpah = true; //다시값을 계산하려면 실행해야함 + this.Refresh(); + Console.WriteLine("Graph : MouseUp1"); + + if (OnUpdateUserCursor != null) + OnUpdateUserCursor(Mouseinfo.DragIndex); + } + else + { + if (UserZoom.Width != 0 && e.Button == System.Windows.Forms.MouseButtons.Left) //줌영역이 있다면 줌을 활성화한다. + { + int x1, x2, y1, y2; + + x1 = UserZoom.Left; + x2 = UserZoom.Left + UserZoom.Width; + + if (!Style.UseZoomY) + { + y1 = (int)ChartRect.Top; + y2 = (int)ChartRect.Bottom; + } + else + { + y1 = UserZoom.Top; + y2 = UserZoom.Bottom; + } + + + Int64 startx = GetTimeFromX(x1 - ChartRect.Left, ChartRect); + Int64 endx = GetTimeFromX(x2 - ChartRect.Left, ChartRect); + + Single endy = Style.Y2 - GetVoltfromY(y1 - ChartRect.Top, ChartRect); + Single starty = Style.Y2 - GetVoltfromY(y2 - ChartRect.Top, ChartRect); + + if (endx < startx) //교환 + { + Int64 t = startx; + startx = endx; + endx = t; + } + + if (endy < starty) //교환 + { + Single t = starty; + starty = endy; + endy = t; + } + + TimeSpan tst = DateTime.FromFileTime(endx) - DateTime.FromFileTime(startx); + Single VoltTerm = endy - starty; + if (tst.TotalSeconds >= Style.MaxZoomX && VoltTerm >= Style.MaxZoomY && UserZoom.Width > 20) //보기영역이 5초는 넘어야 줌이 가능한다. + { + this.Style.XV1 = startx; + this.Style.XV2 = endx; + + this.Style.YV1 = starty;// +this.Style.최소값; + this.Style.YV2 = endy;// +this.Style.최대값; + + UserZoom.Width = 0; + Set_Refresh(); + this.Refresh(); + Console.WriteLine("Graph : MouseUp2"); + } + else + { + UserZoom.Width = 0; + Set_Refresh(); + this.Refresh(); + Console.WriteLine("Graph : MouseUp3"); + } + } + } + } + + private void TrendCtrl_MouseDoubleClick(object sender, MouseEventArgs e) + { + ////마우스더블클릭 + //int idx = check_userpoint(e); + //if (idx != -1) + //{ + // //삭제한다. + // uc.Remove(uc[Mouseinfo.DragIndex]); + // if (uc.Count == 1) + // { + // uc[0].Idx = 0; + // foreach (CChinfo c in this.chinfo) + // { + // c.C2value = ""; + // } + // } + + // Refresh_Grpah = true; //다시갱신해야 값이 계산됨 + // this.Refresh(); + + // if(OnUpdateUserCursor != null) + // OnUpdateUserCursor(Mouseinfo.DragIndex); + + // return; + //} + + //if (e.Button == System.Windows.Forms.MouseButtons.Left) + //{ + // if (this.uc.Count < 2) + // { + // Single newx = GetXfromTime(Mouseinfo.Time, ChartRect); + // this.uc.Add(new CUserCursor((short)this.uc.Count, Mouseinfo.Time, newx)); + + // Refresh_Grpah = true; //다시갱신해야 값이 계산됨 + // this.Refresh(); + + // if (OnUpdateUserCursor != null) + // OnUpdateUserCursor(this.uc.Count); + // } + + //} + + } + + + private void DispCtrl_Load(object sender, EventArgs e) + { + + } + + + + } //end class + +} //end namespace \ No newline at end of file diff --git a/TrendCtrlII/TrendCtrlII.cs.bak b/TrendCtrlII/TrendCtrlII.cs.bak new file mode 100644 index 0000000..026ffff --- /dev/null +++ b/TrendCtrlII/TrendCtrlII.cs.bak @@ -0,0 +1,1196 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using System.Drawing.Drawing2D; + +namespace TrendCtrlII +{ + public enum EDRAGTYPE + { + SCREEN, + ZOOM, + UC + } + + public enum EBUTTONTYPE + { + LEFTMON, + RIGHTMON + } + + public enum EALIGN + { + LEFT, + CENTER, + RIGHT + } + + public partial class TrendCtrlII : UserControl + { + private ChartStyle _Style = new ChartStyle(); + public CMouseinfo Mouseinfo; //마우스위치정보 + + public string yymm; + private Int64 starttime; + private Int64 endtime; + + //zoom area + private Int64 startview; //zoom 시작시간 + private Int64 endview; //zoom 종료시간 + public Int64 startviewo; //zoom 시작시간 + public Int64 endviewo; //zoom 종료시간 + public Int64 querystart; + public Int64 queryend; + + public Single LineWidth = 1; + private Rectangle UserZoom; //사용자줌영역 + + //실값 + public Single[] values; + public int[] times; + private CChinfo[] chinfo; + + private Rectangle Cursorrect; + + //화면상의 버튼데이터 + //private List Buttons = new List(0); + //private List Buttonstag = new List(0); + //private List Buttonstype = new List(0); + + private Boolean init; //그리드초기화완료여부 + public String initmsg = "initializing..."; + public int initpercent = 0; + + public List uc = new List(0); //사용자커서 최대2개까지한다. + + //미정리 + + //MY EVENT + //public event OnClickProbeSensorHandlerL OnClickLEFT; //셀클릭 + //public delegate void OnClickProbeSensorHandlerL(); + //public event OnClickProbeSensorHandlerR OnClickRIGHT; //셀클릭 + //public delegate void OnClickProbeSensorHandlerR(); + public event OnUpdateUserControlHandler OnUpdateUserCursor; //UPDATE USER CURSOR + public delegate void OnUpdateUserControlHandler(int idx); + + + //화면디자인관련 + private Cursor cursor = Cursors.Default; //현재커서의모양 + + private StringBuilder Warn_msg = new StringBuilder(""); //경고메세지(화면 최상단중앙에 표시됨) + private Font Warn_Font; + + //기타설정' + public RectangleF WindowRect; //머릿부분 + public RectangleF ChartRect; + + + public TrendCtrlII() + { + InitializeComponent(); + + // Initialize Variables + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.Font = SystemInformation.MenuFont; + this.Warn_Font = new Font("나눔고딕", 20, FontStyle.Bold); + this.Warn_msg.Append("메세지가 없습니다"); + this.Mouseinfo = new CMouseinfo(new PointF(0, 0)); + + } + + public ChartStyle Style + { + get { return this._Style; } + set { this._Style = value; } + } + + /// + /// Draws the background gradient and the grid into Graphics + /// + /// Graphic + public void DrawBackgroundWindow(Graphics g,RectangleF crect,RectangleF winrect) + { + //using (Brush gradientBrush = new LinearGradientBrush(this.WindowRect, Style.design_backcolor_start, Style.design_backcolor_bottom, LinearGradientMode.Vertical)) + //{ + // g.FillRectangle(gradientBrush, this.WindowRect); + //} + //g.FillRectangle(Brushes.Black, this.WindowRect); + + //전체창에대한 보더 + RectangleF borderrect = new RectangleF(winrect.Left, winrect.Top, winrect.Width - 1, winrect.Height - 1); + g.DrawRectangle(Pens.Gray, borderrect.Left, borderrect.Top, borderrect.Width, borderrect.Height); + + + //실제차트정보 + //g.FillRectangle(Brushes.Gray, ChartRect.Left + 2, ChartRect.Top + 2, ChartRect.Width, ChartRect.Height); + //g.FillRectangle(Brushes.Black, ChartRect); + + + //Display Collection TIME + //String Str = "Collection Time : " + GetDateTimeStr(startview, false) + " - " + GetDateTimeStr(endview, false); + //SizeF fontszie = g.MeasureString(Str, this.Font); + //// Rectangle rect = new Rectangle((int)winrect.Left, (int)winrect.Top, (int)winrect.Width, (int)(fontszie.Height * 2)); + // g.DrawString(Str, this.Font, Brushes.Black, rect.Left + 10, 3+rect.Top + (rect.Height - fontszie.Height) / 2); + // //g.DrawLine(Pens.Black, winrect.Left, fontszie.Height * 2, winrect.Left + winrect.Width, fontszie.Height * 2); + + //CHART BORDER + g.DrawRectangle(new Pen(Color.Black, 2), crect.Left, crect.Top, crect.Width, crect.Height); + + } + + /// Override OnPaint method + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + this.SuspendLayout(); + + //Buttons.Clear(); + //Buttonstag.Clear(); + //Buttonstype.Clear(); + //윈도우크기와 차트영역을 활성화한다. + + //표시아이템이없다면 오류를 낸다. + if ( !init || chinfo == null) + { + //progress + int bw = (int)(this.Width * 0.8); + int bh = (int)(this.Height * 0.05); + Rectangle rr = new Rectangle((this.Width - bw) / 2, (this.Height - bh) / 2 + 10, bw, bh); + + //Display Initial Message + Font nf = new Font("나눔고딕", 20, FontStyle.Bold); + Rectangle FullRect = new Rectangle(0, 0, this.Width, this.Height); + SizeF initsize = e.Graphics.MeasureString(initmsg, nf); + e.Graphics.DrawString(initmsg, nf, Brushes.Black, this.Width / 2 - initsize.Width / 2, this.Height / 2 - initsize.Height / 2 - bh); + + //Display progress Bar + if (initpercent > 100) initpercent = 100; + int perc = (int)(rr.Width * initpercent / 100); + e.Graphics.FillRectangle(Brushes.Green, new Rectangle(rr.Left, rr.Top, perc, rr.Height)); + + //Display Control Border + e.Graphics.DrawRectangle(Pens.DarkGray, rr); + + //using (Brush gradientBrush = new LinearGradientBrush(FullRect, Color.Gray, Color.Gray, LinearGradientMode.Vertical)) + //{ + // + // e.Graphics.FillRectangle(gradientBrush, FullRect); + // // String initstr = "initializing..."; + // //if (initmsg != "") initstr += "\n\n" + initmsg; + //} + + //LinearGradientBrush lb = new LinearGradientBrush(rr, Color.Gray, Color.WhiteSmoke,LinearGradientMode.Vertical); + //lb.Dispose(); + //e.Graphics.DrawRectangle(Pens.DarkGoldenrod, FullRect.Left, FullRect.Top, FullRect.Width - 1, FullRect.Height - 1); + + this.ResumeLayout(); + return; + } + + + // AntiAliasing + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + + //e.Graphics.DrawString(this.chinfo.Length.ToString(), this.Font, Brushes.Red, 200, 200); + + try { DrawBackgroundWindow(e.Graphics, ChartRect, WindowRect); } //전체배경및 차트배경 } + catch { } + + + try + { + Draw_Grid(e.Graphics, ChartRect); //x축,y축의 눈금과 그리드표시 + } + catch { } + //Draw_NaviLR(e.Graphics, ChartRect); + try + { + Draw_channel(e.Graphics, ChartRect, WindowRect); + } + catch { } + try + { + Draw_ZoomSelct(e.Graphics); + } + catch { } + try + { + Draw_Cursor(e.Graphics, ChartRect); + } + catch { } + try + { + Draw_MouseInfo(e.Graphics); + } + catch + { + Draw_Debug(e.Graphics); + } + + this.Update(); + this.ResumeLayout(); + } + + public void Draw_Cursor(Graphics g,RectangleF Crect ) + { + + if (this.uc.Count == 0) return; + Font cfont = new Font("나눔고딕", 10, FontStyle.Bold); + + //커서는 기본 2개를 둔다(전체사이즈를 측정하기위해서 임시로 크기를 테스트한다.) + String cursorstr = "▦ C1 2012-00-00- 00:00:00\n▦ C1 2012-00-00- 00:00:00\n▦ C1 2012-00-00- 00:00:00"; + SizeF FontSize = g.MeasureString(cursorstr.ToString(), cfont); + + //커서가표시될영역 + + Cursorrect = new Rectangle(0, 0, 50,50); + Cursorrect.X = (int)(Crect.Left + Crect.Width - FontSize.Width * 1.1) - 1; + Cursorrect.Y = (int)Crect.Top + 2; + Cursorrect.Width = (int)(FontSize.Width * 1.1); + Cursorrect.Height = (int)(FontSize.Height * 1.3); + + g.FillRectangle(Brushes.Black, Cursorrect); + g.DrawRectangle(Pens.Gray, Cursorrect); + + Single newy = Cursorrect.Top + ((Cursorrect.Height - FontSize.Height)/2) ; + Single Maxwidth = 0; + + String fulltext = ""; + foreach (CUserCursor uctl in this.uc) + { + Single newx = GetXfromTime(uctl.Time, Crect); + uctl.Newx = newx; + + Single imgsizew = Properties.Resources.down_16.Width; + Single imgsizeh = Properties.Resources.down_16.Height; + + cursorstr = ("▦ C" + (uctl.Idx + 1).ToString() + " " + GetTimeStr((int)uctl.Time, true, true, true, true)); + + // cursorstr += uctl.Newx.ToString(); + + FontSize = g.MeasureString(cursorstr.ToString(), cfont); + if (FontSize.Width > Maxwidth) Maxwidth = FontSize.Width; + + if (uctl.Idx < 1) + { + g.DrawImage(Properties.Resources.down_16, (newx - imgsizew / 2)-1, Crect.Top - imgsizeh - 5); + //g.DrawLine(new Pen(Color.Gray, 2), newx+1, Crect.Top, newx+1, Crect.Top + Crect.Height); + g.DrawLine(new Pen(Color.Green, 1), newx, Crect.Top, newx, Crect.Top + Crect.Height); + // g.DrawString(newx.ToString() + "," + uctl.Time.ToString(), this.Font, Brushes.Red, newx, 300); + g.DrawString(cursorstr, cfont, Brushes.Lime, Cursorrect.Left + ((Cursorrect.Width - FontSize.Width) / 2), newy); + fulltext = cursorstr; + + } + else + { + cursorstr += "\n\t△t " + GetTimeStr((int)Math.Abs(uctl.Time - uc[0].Time), false, true, true, false); + + g.DrawImage(Properties.Resources.down_orange, (newx - imgsizew / 2) - 1, Crect.Top - imgsizeh - 5); + //g.DrawLine(new Pen(Color.Gray, 2), newx + 1, Crect.Top, newx + 1, Crect.Top + Crect.Height); + g.DrawLine(new Pen(Color.Orange, 1), newx, Crect.Top, newx, Crect.Top + Crect.Height); + // g.DrawString(newx.ToString() + "," + uctl.Time.ToString(), this.Font, Brushes.Red, newx, 300); + g.DrawString(cursorstr, cfont, Brushes.Orange, Cursorrect.Left + ((Cursorrect.Width - FontSize.Width) / 2), newy); + if (fulltext == "") fulltext = cursorstr; + else fulltext += "\n" + cursorstr; + + } + newy += FontSize.Height + 1; + } + + FontSize = g.MeasureString(fulltext, cfont); + Cursorrect = new Rectangle((int)(ChartRect.Left + ChartRect.Width - Maxwidth), (int)ChartRect.Top, (int)Maxwidth, (int)(newy - FontSize.Height)); + } + + public void Draw_MouseInfo(Graphics g) + { + if (this.Mouseinfo.Showinfo) //마웃위치정보를 화면에 표시를 한다. + { + String tm = GetTimeStr((int)Mouseinfo.Time, true, true,true,true) + "\n" + Mouseinfo.Volt.ToString("#0.00") + "v"; + if (Style.디버그메세지) tm += "\n" + Mouseinfo.Time.ToString(); + + SizeF tmsize = g.MeasureString(tm,Style._mouseinfofont); + + RectangleF rect = new RectangleF(Mouseinfo.Position.X + 5, Mouseinfo.Position.Y + 5, tmsize.Width+10, tmsize.Height+10); + //g.FillRectangle(new SolidBrush(Color.FromArgb(140,Color.Green)), rect); + g.DrawRectangle(Pens.Black, rect.Left, rect.Top, rect.Width, rect.Height); + + g.DrawString(tm, Style._mouseinfofont, new SolidBrush(Style.design_mouseinfocolor ), rect.Left + (rect.Width - tmsize.Width) / 2, rect.Top + (rect.Height - tmsize.Height) / 2); + } + } + + public void Draw_Grid(Graphics g,RectangleF crect) + { + + //가로(시간축)표시 + //DrawString(g, GetDateTimeStr(endview, true), Style._xfont, Brushes.Black, new PointF(crect.Left + crect.Width, crect.Top + crect.Height + 5), EALIGN.CENTER); + DateTime SDate = DateTime.FromFileTime(startview); + DateTime EDate = DateTime.FromFileTime(endview); + TimeSpan TS = EDate - SDate; //timespan + + //표시간견(10등분) + UInt32 tm = (UInt32)(TS.TotalSeconds / 10); + for (DateTime SD = SDate; SD <= EDate; SD.AddSeconds(tm) ) + { + + } + + for (Int64 i = 0; i <= (endview - startview); i += tm) + { + Int64 NewDateNumber = startview + i; + DateTime NewDate = DateTime.FromFileTime(NewDateNumber); + if (SDate.Day != NewDate.Day) + { + //일자가 바귀엇으므로 해당 일즤 세로축을 표시 + DateTime LineDay = DateTime.Parse(NewDate.ToString("yyyy-MM-dd 00:00:00")); + Single newx2 = GetXfromTime(LineDay.ToFileTime(), crect); + g.DrawLine(new Pen(Color.FromArgb(50, Color.Black)), newx2, crect.Top, newx2, crect.Top + crect.Height); + //Font newf = new Font("나눔고딕", 40, FontStyle.Bold); + //DrawString(g, timestr2, newf, Brushes.Black, new PointF(newx2, ChartRect.Top + ChartRect.Height - 100), EALIGN.CENTER); + SDate = NewDate; + } + + Single newx = GetXfromTime(NewDateNumber, crect); + String timestr = ""; + + if (i == 0) timestr = GetDateTimeStr(NewDateNumber, true); + else timestr = GetTimeStr(NewDateNumber, i == 0 ? true : false, false); + + timestr = NewDate.ToString("yy-MM-dd") + "\n" + NewDate.ToString("HH:mm:ss"); + + // timestr += "\n" + disptime.ToString(); + + DrawString(g, timestr, Style._xfont, Brushes.Black, new PointF(newx, crect.Top + crect.Height + 5), EALIGN.CENTER); + + if (i > 0) g.DrawLine(new Pen(Color.Gray), newx, crect.Top, newx, crect.Top + crect.Height); + } + + + //세로(VOLT)표시 + //g.DrawString("start="+Style._startvolt.ToString(), this.Font, Brushes.Red, 100, 100); + //g.DrawString("end="+Style._endvolt.ToString(), this.Font, Brushes.Red, 100, 120); + + //g.DrawString("최소="+Style.최소값.ToString(), this.Font, Brushes.Red, 100, 140); + //g.DrawString("최대="+Style.최대값.ToString(), this.Font, Brushes.Red, 100, 160); + + Single term = (Style._endvolt - Style._startvolt) / 10; + + for (Single i = Style._startvolt; i <= Style._endvolt; i += term) + { + // 세로길이 = 10v : + Single newy = GetYfromVolt(i, crect); + if (i != 0) g.DrawLine(new Pen(Color.Gray), crect.Left, newy, crect.Left + crect.Width, newy); + + //소수점없는경우에눈금표시한다. + DrawString(g, i.ToString("#0.00"), Style._yfont, Brushes.Black, new PointF(crect.Left - 2, newy), EALIGN.RIGHT, EALIGN.CENTER); + + + + //int disptime = i + startview; + //String timestr = GetTimeStr(disptime, i == 0 ? true : false); + + //DrawString(g, timestr, Style._xfont, Brushes.Orange, new PointF(newx, ChartRect.Top + ChartRect.Height), EALIGN.CENTER); + + //if (i > 0) g.DrawLine(new Pen(Color.FromArgb(100, Color.Red)), newx, ChartRect.Top, newx, ChartRect.Top + ChartRect.Height); + } + + } + + public void Draw_Debug(Graphics g) + { + if (!Style.디버그메세지) return; + + Single newy = 50; + String newstr = ""; + SizeF fontsize; + + newstr = "Mouseinfo=" + this.Mouseinfo.Position.ToString() + " " + this.Mouseinfo.Showinfo.ToString() ; + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + + newstr = "Mouseinfo0=" + this.Mouseinfo.Position0.ToString()+ " idx=" + this.Mouseinfo.DragIndex.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + + if (uc.Count > 0) + { + newstr = "uc1=" + uc[0].Newx.ToString() + "," + uc[0].Time.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + } + + if (uc.Count > 1) + { + newstr = "uc2=" + uc[1].Newx.ToString() + "," + uc[1].Time.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + } + + newstr = "Time=" + starttime.ToString() + "/" + endtime.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + + newstr = "ViewTime=" + startview.ToString() + "/" + endview.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + + newstr = "ViewTimeO=" + startviewo.ToString() + "/" + endviewo.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + + newstr = "Drag=" + Mouseinfo.Drag.ToString() + " " + Mouseinfo.DragType.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + + newstr = "DragStart=" + Mouseinfo.DragStart.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + + newstr = "UserZoom=" + UserZoom.ToString(); + fontsize = g.MeasureString(newstr, this.Font); newy += fontsize.Height; + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + newy += fontsize.Height; + + newstr = "CHinfo=" + chinfo.GetUpperBound(0); + for (int i =0;i<= chinfo.GetUpperBound(0);i++) + { + newstr += "\n" + i.ToString() + "," + this.chinfo[i].idx + ",visible:" + chinfo[i].Show.ToString(); + } + fontsize = g.MeasureString(newstr, this.Font); + g.DrawString(newstr, this.Font, Brushes.Red, 100, newy); + newy += fontsize.Height; + } + + public void Draw_channel(Graphics g,RectangleF crect,RectangleF wrect) + { + + //각채널의 그래프를 그린다. + foreach (CChinfo c in chinfo) + { + if (c == null) continue; + if (!c.Show) continue; + if (c.Value.Count < 1) continue; + + List linearrya = new List(0); + + Single PreX = 0; + Single PreY = 0; + + Boolean fc1 = false, fc2 = false; + for (int i = 0; i < c.Value.Count; i++) //가능한 셀값을 모두 확인한다. + { + Single time = c.Time[i]; //이셀의 시간 + Single volt = c.Value[i]; //이셀의 볼트 + + //if (volt == 0) continue; + + Single newx = GetXfromTime(time, crect) - 1; + Single newy = GetYfromVolt(volt, crect) - 1; + + //너무가까운데이터는 그리지 않는다. + if (Math.Abs(newx - PreX) < 0.2 || Math.Abs(newy - PreY) < 0.2) continue; + + if (!c.Show) + { + c.C1value = "--"; + c.C2value = "--"; + } else if (uc.Count > 0 && time >= uc[0].Time && fc1 == false) //셀의시간이 커서의시간을 넘는 순간의 값을 저장 + { + + //g.DrawString(uc[0].Time.ToString() + "," + time.ToString() + " volt=" + volt.ToString(), this.Font, Brushes.Red, 200, 200); + + if (volt > 60) c.C1value = "OVER"; + else c.C1value = volt.ToString(); + + fc1 = true; + } + if (uc.Count > 1 && time >= uc[1].Time && fc2 == false) + { + //g.DrawString(uc[1].Time.ToString() + "," + time.ToString() + " volt=" + volt.ToString(), this.Font, Brushes.Red, 200, 300); + + if (volt > 60) c.C2value = "OVER"; + else c.C2value = volt.ToString(); + + fc2 = true; + } + + // e.Graphics.DrawString(time.ToString() + " v=" + volt.ToString(), this.Font, Brushes.Black, newx, newy); + if (newx >= wrect.Left && newx <= wrect.Left + wrect.Width && newy >= wrect.Top && newy <= wrect.Top + wrect.Height) + linearrya.Add(new PointF(newx, newy)); + + g.FillEllipse(new SolidBrush(c.color), new RectangleF(newx-1, newy-1, 2, 2)); + } + + try { + g.DrawLines(new Pen(c.color, LineWidth), linearrya.ToArray()); + } + catch { } + } + } + + public void Draw_ZoomSelct(Graphics g) + { + //사용자줌영역표시 + if (this.UserZoom.Width != 0) + { + int x, y, w, h; + if (UserZoom.Width > 0) + { + x = UserZoom.Left; + w = UserZoom.Width; + } + else + { + x = UserZoom.Width + UserZoom.Left; + w = Math.Abs(UserZoom.Width); + } + if (UserZoom.Height > 0) + { + y = UserZoom.Top; + h = UserZoom.Height; + } + else + { + y = UserZoom.Height + UserZoom.Top; + h = Math.Abs(UserZoom.Height); + } + + Rectangle rect = new Rectangle(x, y, w, h); + int startx = (int)Math.Round(GetTimeFromX(rect.Left - this.ChartRect.Left, ChartRect), 1); + int endx = (int)Math.Round(GetTimeFromX(rect.Left + rect.Width - ChartRect.Left, ChartRect), 1); + Single starty =(Single)(Math.Round(GetVoltfromY(rect.Top - this.ChartRect.Top, ChartRect), 1)); + Single endy = (Single)Math.Round(GetVoltfromY(rect.Top + rect.Height - ChartRect.Top, ChartRect), 1); + + //선택된 영역 Drawing + if (endx - startx >= 5) g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Lime)), rect); + else g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Red)), rect); + + g.DrawRectangle(Pens.Black, rect); + + //시간정보 Display + g.DrawString(GetTimeStr(startx + starttime, true,true) + "," + (Style.최대값 - starty).ToString("#0.0") + "v" , this.Font, Brushes.Black, rect.Left, rect.Top); + + String fontstr = GetTimeStr(endx + starttime, true, true) + "," + (Style.최대값 - endy).ToString("#0.0") + "v"; + SizeF fontsize = g.MeasureString(fontstr, this.Font); + g.DrawString(fontstr, this.Font, Brushes.Black, rect.Left - 5 + rect.Width - fontsize.Width, rect.Top + rect.Height - fontsize.Height); + } + } + + /// + /// 화면의 좌,우 측에 존재하는 이돈버튼(월을 움직이는 버튼이며 월 이동을위해서 이벤트를 발생한다) + /// + /// + //public void Draw_NaviLR(Graphics G, RectangleF crect) + //{ + // return; + + // //LEFT NAVI + // Single x, y, xw = 30; + // x = crect.Left - 3; + // y = crect.Top + crect.Height / 2 - xw / 2; + + // PointF[] aa = new PointF[4]; + // aa[0] = new PointF(x, y); + // aa[1] = new PointF(x - xw, y + xw); + // aa[2] = new PointF(x, y + xw + xw); + // aa[3] = new PointF(x, y); + + // PointF[] aa1 = new PointF[4]; + // aa1[0] = new PointF(x + 2, y + 2); + // aa1[1] = new PointF(x + 2 - xw, y + xw + 2); + // aa1[2] = new PointF(x + 2, y + xw + xw + 2); + // aa1[3] = new PointF(x + 2, y + 2); + // G.FillPolygon(Brushes.Black, aa1); + // G.FillPolygon(Brushes.DarkRed, aa); + // G.DrawPolygon(Pens.Black, aa); + + // Buttons.Add(new RectangleF(x - xw, y, xw, xw*2)); + // Buttonstag.Add("LBUTTON"); + // Buttonstype.Add(EBUTTONTYPE.LEFTMON); + + // //RIGHT NAVI + // x = crect.Left + crect.Width + 3; + // y = crect.Top + crect.Height / 2 - xw / 2; + + // aa = new PointF[4]; + // aa[0] = new PointF(x, y); + // aa[1] = new PointF(x + xw, y + xw); + // aa[2] = new PointF(x, y + xw + xw); + // aa[3] = new PointF(x, y); + + // aa1 = new PointF[4]; + // aa1[0] = new PointF(x + 2, y + 2); + // aa1[1] = new PointF(x + 2 + xw, y + xw + 2); + // aa1[2] = new PointF(x + 2, y + xw + xw + 2); + // aa1[3] = new PointF(x + 2, y + 2); + // G.FillPolygon(Brushes.Black, aa1); + // G.FillPolygon(Brushes.DarkRed, aa); + // G.DrawPolygon(Pens.Black, aa); + // Buttons.Add(new RectangleF(x, y, xw, xw*2)); + // Buttonstag.Add("RBUTTON"); + // Buttonstype.Add(EBUTTONTYPE.RIGHTMON); + //} + + + public String GetDateTimeStr(Int64 Filetime, Boolean linefeed) + { + DateTime TimeDate = DateTime.FromFileTime(Filetime); + String timestr = ""; + if (linefeed) timestr = TimeDate.ToShortDateString() + "\n" + TimeDate.ToShortTimeString(); //' yymm + "-" + day.ToString("00") + "\n" + hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00"); + else timestr = TimeDate.ToString();// yymm + "-" + day.ToString("00") + " " + hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00"); + + return timestr; + } + public String GetTimeStr(Int64 Filetime, Boolean withday, Boolean withseconed, Boolean nolf = false, Boolean showyear = false) + { + DateTime TimeDate = DateTime.FromFileTime(Filetime); + String timestr = ""; + + if (TimeDate.Second == 0 || !withseconed) + timestr = TimeDate.ToString("HH:mm");// TimeDate.Hour.ToString("00") + ":" + TimeDate.Minute.ToString("00"); + else + timestr = TimeDate.ToString("HH:mm:ss"); // hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00"); + + if (withday) + { + if (showyear) + { + timestr = TimeDate.ToString("yyMM-dd") + " " + timestr; + } + else + { + if (nolf) timestr = TimeDate.ToString("dd") + "일 " + timestr; + else timestr = timestr + "\n" + TimeDate.ToString("dd") + "일"; + } + } + return timestr; + } + + /// + /// (전체시간 * 현재X) / 전체너비 + /// + /// + /// + private Single GetTimeFromX(Single t, RectangleF crect) + { + return ((endview - startview) * t) / crect.Width; + } + private Single GetXfromTime(Single t,RectangleF crect) + { + return (((crect.Width) * (t - startview)) / (endview - startview)) + crect.Left; + } + private Single GetVoltfromY(Single Y, RectangleF crect) + { + + return ((Style._endvolt - Style._startvolt) * Y) / crect.Height; + + } + private Single GetYfromVolt(Single volt, RectangleF crect) + { + //volt = (Style._endvolt - Style._startvolt) - volt; + return (crect.Height - ((crect.Height * (volt - Style._startvolt)) / (Style._endvolt - Style._startvolt))) + crect.Top; + //return (((crect.Height) * volt) / (Style.최대값)) + crect.Top; + + } + + private void DrawString(Graphics G, String str, Font font, Brush br, PointF ops, EALIGN XCenter = EALIGN.LEFT, EALIGN YCenter = EALIGN.LEFT) + { + SizeF fsize = G.MeasureString(str, font); + Single newx = ops.X; + Single newy = ops.Y; + + if (XCenter == EALIGN.CENTER) newx = ops.X - fsize.Width / 2; + else if (XCenter == EALIGN.RIGHT) newx = ops.X - fsize.Width; + + if (YCenter == EALIGN.CENTER) newy = ops.Y - fsize.Height / 2; + else if (YCenter == EALIGN.RIGHT) newy = ops.Y - fsize.Height; + + G.DrawString(str, font, br, newx, newy); + } + + public Int64 Starttime + { + get { return this.starttime; } + set { this.starttime = value; startview = value; } + } + + public Int64 Endtime + { + get { return this.endtime; } + set { this.endtime = value; endview = value; } + } + + public Int64 Startview + { + get { return this.startview; } + set { this.startview = value; } + } + + public Int64 Endview + { + get { return this.endview; } + set { this.endview = value; } + } + + public Boolean INIT + { + get { return this.init; } + set { this.init = value; } + } + public CChinfo[] CHInfo + { + get { return this.chinfo; } + set { this.chinfo = value; } + } + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + this.WindowRect = new RectangleF(0, 0, this.Width, this.Height); + this.ChartRect = new RectangleF(Style.왼쪽여백, (Style.위쪽여백/2), this.Width - (Style.왼쪽여백 * 2), (Single)(this.Height - (Style.위쪽여백 * 1.5))); + Invalidate(); + } + + private int check_userpoint(MouseEventArgs e) + { + if (this.uc.Count ==0 ) return -1; + for (int i = 0; i < this.uc.Count; i++) + { + CUserCursor uuc = this.uc[i]; + + //현재위치가 해당 Rectagle 안이라면 속해있다. + if ((int)this.Mouseinfo.Position.X >= (int)uuc.Newx - 2 && (int)this.Mouseinfo.Position.X <= (int)(uuc.Newx) + 2) + + // MessageBox.Show(i.ToString()); + + return i; + } + return -1; + } + + //private int check_buttons(MouseEventArgs e) + //{ + // if (this.Buttons == null) return -1; + // for (int i = 0; i < this.Buttons.Count; i++) + // { + // RectangleF rect = this.Buttons[i]; + + // //현재위치가 해당 Rectagle 안이라면 속해있다. + // if (e.X > rect.X && e.X < rect.X + rect.Width) + // { + // if (e.Y > rect.Y && e.Y < rect.Y + rect.Height) return i; + // } + // } + // return -1; + //} + + private void InitializeComponent() + { + this.SuspendLayout(); + // + // TrendCtrl + // + this.Name = "TrendCtrl"; + this.Size = new System.Drawing.Size(287, 321); + this.Load += new System.EventHandler(this.DispCtrl_Load); + this.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.TrendCtrl_MouseDoubleClick); + this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DispCtrl_MouseDown); + this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DispCtrl_MouseMove); + this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.TrendCtrl_MouseUp); + this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.TrendCtrl_MouseWhell); + this.ResumeLayout(false); + + } + + private void DispCtrl_MouseDown(object sender, MouseEventArgs e) + { + + //드래그판단을위한 위치값을 저장한다. + Mouseinfo.DragStart = new PointF(e.X - ChartRect.Left, e.Y - ChartRect.Top); + + //우측버튼은 줌의 초기화를 수행한다. + if (e.Button == System.Windows.Forms.MouseButtons.Right) + { + //startview = starttime; + //endview = endtime; + //Style._startvolt = Style.최소값; + //Style._endvolt = Style.최대값; + //Refresh(); + //return; + } + else if (e.Button == System.Windows.Forms.MouseButtons.Left) + { + //현재마우스위치의 아이템을 찾ㄴ은다. + //int idx = check_buttons(e); + //if (idx != -1) + //{ + // Object tt = this.Buttonstag[idx]; + // EBUTTONTYPE BT = this.Buttonstype[idx]; + + // switch (BT) + // { + // case EBUTTONTYPE.LEFTMON: + // OnClickLEFT(); + // break; + // case EBUTTONTYPE.RIGHTMON: + // OnClickRIGHT(); + // break; + // } + //} + + int idx = check_userpoint(e); + if (idx != -1) + { + Mouseinfo.DragType = EDRAGTYPE.UC; + Mouseinfo.DragIndex = idx; + return; + } + + //아무것도없는 빈공간이라면 화면이동(=줌시작)으로 대체한다. + //if (idx == -1 && e.X >= ChartRect.Left && e.X <= ChartRect.Left + ChartRect.Width && e.Y >= ChartRect.Top && e.Y <= ChartRect.Top + ChartRect.Height) + //{ + // if (endview - startview == (endtime - starttime)) + // { + // Mouseinfo.DragType = EDRAGTYPE.ZOOM; + // this.UserZoom = new Rectangle(e.X, e.Y, 0, 0); + // } + // else + // { + // Mouseinfo.DragType = EDRAGTYPE.SCREEN; + // this.UserZoom = new Rectangle(0, 0, 0, 0); + // } + // return; + //} + + + } + } + + private void DispCtrl_MouseMove(object sender, MouseEventArgs e) + { + //마우스의 위치가 실시간 저장된다. + if (this.Mouseinfo == null) this.Mouseinfo = new CMouseinfo(new PointF(e.X - this.WindowRect.Left, e.Y - this.WindowRect.Top)); + else this.Mouseinfo.Position = new PointF(e.X - this.WindowRect.Left, e.Y - this.WindowRect.Top); + + this.Mouseinfo.Time = GetTimeFromX(e.X - ChartRect.Left,ChartRect)+ this.startview; + this.Mouseinfo.Volt = this._Style._endvolt - GetVoltfromY(e.Y - ChartRect.Top, ChartRect) ; + this.Mouseinfo.Showinfo = false; + + //MouseStatus initialize... + Mouseinfo.Hand = false; + Mouseinfo.Cross = false; + Mouseinfo.Move = false; + Mouseinfo.ChangePos = false; + + // + if (e.X >= ChartRect.X && e.X <= ChartRect.X + ChartRect.Width) + if (e.Y >= ChartRect.Top && e.Y <= ChartRect.Top + ChartRect.Height) Mouseinfo.Showinfo = true; + else Mouseinfo.Showinfo = false; + + + //이동중인데 마우스가 눌려있다면 DRAG다 + if (e.Button == MouseButtons.Left) Mouseinfo.Drag = true; + else Mouseinfo.Drag = false; + + if (Mouseinfo.Drag) //드래그중이다 + { + Mouseinfo.Move = true; //화면이동으로 + } + else + { + if (e.X >= ChartRect.Left && e.X <= ChartRect.Left + ChartRect.Width) + { + if (e.Y >= ChartRect.Top && e.Y <= ChartRect.Top + ChartRect.Height) + { + Mouseinfo.Cross = true; //화면내부라면 크로스 + } + else Mouseinfo.Cross = false; + } + else Mouseinfo.Cross = false; + } + + //버튼위라면 HAND를 활성화한다. + //int idx = this.check_buttons(e); + //if (idx != -1) + //{ + // Mouseinfo.Cross = false; + // Mouseinfo.Hand = true; + // Mouseinfo.Drag = false; + // Mouseinfo.ChangePos = false; + //} + + //사용자포인터위라면? + int idx = this.check_userpoint(e); + if (idx != -1) + { + Mouseinfo.Cross = false; + Mouseinfo.Hand = false; + Mouseinfo.Drag = false; + Mouseinfo.ChangePos = true; + } + + //드래그중판단 + if (Mouseinfo.Drag) + { + switch (Mouseinfo.DragType) + { + case EDRAGTYPE.UC: + Single newx = ( e.X); + float newtime = GetTimeFromX(newx - ChartRect.Left, ChartRect) + startview; + this.uc[Mouseinfo.DragIndex].Newx = newx; + this.uc[Mouseinfo.DragIndex].Time = newtime; + //OnUpdateUserCursor(Mouseinfo.DragIndex); + break; + case EDRAGTYPE.ZOOM: + this.UserZoom.Width = (int)(e.X - Mouseinfo.DragStart.X - ChartRect.Left); + this.UserZoom.Height = (int)(e.Y - Mouseinfo.DragStart.Y - ChartRect.Left); + if (Mouseinfo.Cross) this.Cursor = Cursors.Cross; + break; + case EDRAGTYPE.SCREEN: + if (Mouseinfo.Move) + { + this.Cursor = Cursors.NoMove2D; + Mouseinfo.Showinfo = false; + } + + + //이동한pixcel을 시간정보로 변환한다. + //현재마우스위치값 - 드래그시작마우스위치값을 뺸 픽셀을 초로환산한다. + + Single term = Mouseinfo.DragStart.X-Mouseinfo.Position.X; //양수라면 오른쪽으로 이동했다. + Single termtime = GetTimeFromX(term, ChartRect); + + Single termy = Mouseinfo.Position.Y- Mouseinfo.DragStart.Y- ChartRect.Top ; + Single termvolt = GetVoltfromY(termy, ChartRect); + + Single mstime = termtime ; //((endview - startview) / 50); + Single mvolt = termvolt; + //if (Mouseinfo.Position.X < Mouseinfo.Position0.X) + //{ + // mstime = -1 * mstime; + //} + Int64 SD = startviewo + (int)mstime; + Int64 ED = endviewo + (int)mstime; + + Single SV = Style._startvolto + mvolt; + Single EV = Style._endvolto + mvolt; + + if ((SD < starttime || ED > endtime)) + { + //더이상 줌을 못한다.. + } + else + { + startview = SD; + endview = ED; + + Style._startvolt = SV; + Style._endvolt = EV; + + //startviewo = startview; + //endviewo = endview; + } + + + break; + } + } + else + { + if (Mouseinfo.Hand) this.Cursor = Cursors.Hand; + if (Mouseinfo.Cross) this.Cursor = Cursors.Cross; + if (Mouseinfo.ChangePos) this.Cursor = Cursors.SizeWE; + } + + this.Refresh(); + } + + private void TrendCtrl_MouseWhell(object sender, MouseEventArgs e) + { + //MessageBox.Show(e.Delta.ToString()); + //int news = 0, newe = 0; + + //news = startview; + //newe = endview; + + //if (e.Delta > 0) + //{ + // //up + // news += (endview-startview)/10; + // newe -= (endview - startview) / 10; + //} + //else + //{ + // //down + // news -= (endview - startview) / 10; + // newe += (endview - startview) / 10; + //} + + //if (news > endtime) news = endtime; + //if (news < starttime) news = starttime; + //if (newe > endtime) newe = endtime; + //if (newe < starttime) newe = starttime; + + //if (news < starttime || newe > endtime) + //{ + // //MessageBox.Show("데이터가 없으므로 줌을 사용할 수 없습니다"); + //} + //else + //{ + // startview = news; + // endview = newe; + // startviewo = news; + // endviewo = newe; + //} + //this.Refresh(); + + } + + private void TrendCtrl_MouseUp(object sender, MouseEventArgs e) + { + if (Mouseinfo.Drag && Mouseinfo.DragType == EDRAGTYPE.UC) + { + ////만약 화면 박을 넘어서면 삭제한다. + //if (uc[Mouseinfo.DragIndex].Newx <= ChartRect.Left || uc[Mouseinfo.DragIndex].Newx >= ChartRect.Left + ChartRect.Width) + //{ + // uc.Remove(uc[Mouseinfo.DragIndex]); + // if (uc.Count == 1) + // { + // uc[0].Idx = 0; + // foreach (CChinfo c in this.chinfo) + // { + // c.C2value = ""; + // } + // } + //} + this.Refresh(); + OnUpdateUserCursor(Mouseinfo.DragIndex); + } + + //startviewo = startview; + //endviewo = endview; + //Style._startvolto = Style._startvolt; + //Style._endvolto = Style._endvolt; + + //Mouseinfo.Drag = false; + //if (UserZoom.Width != 0) //줌영역이 있다면 줌을 활성화한다. + //{ + // int x1, x2,y1,y2; + // x1 = UserZoom.Left; + // x2 = UserZoom.Left + UserZoom.Width; + // y1 = UserZoom.Top; + // y2 = UserZoom.Top + UserZoom.Height; + + // int startx = (int)Math.Round(GetTimeFromX(x1 - ChartRect.Left, ChartRect), 0); + // int endx = (int)Math.Round(GetTimeFromX(x2 - ChartRect.Left, ChartRect), 0); + + // Single starty =(Single) Math.Round(GetVoltfromY(y1 - ChartRect.Top, ChartRect), 1); + // Single endy = (Single)Math.Round(GetVoltfromY(y2 - ChartRect.Top, ChartRect), 1); + + // if (endx < startx) //교환 + // { + // int t = startx; + // startx = endx; + // endx = t; + // } + + // //if (endy < starty) //교환 + // //{ + // // Single t = starty; + // // starty = endy; + // // endy = t; + // //} + + // if (endx - startx >= 10) //보기영역이 5초는 넘어야 줌이 가능한다. + // { + // this.startview = startx + this.starttime ; + // this.endview = endx + this.starttime; + + // this.startviewo = this.startview; + // this.endviewo = this.endview; + + + // if (starty < endy) + // { + // this.Style._endvolt = Style.최대값 - starty;// +this.Style.최소값; + // this.Style._startvolt = Style.최대값 - endy;// +this.Style.최대값; + // } + // else + // { + // this.Style._startvolt = Style.최대값 - starty;// +this.Style.최소값; + // this.Style._endvolt = Style.최대값 - endy;// +this.Style.최대값; + // } + + // //////////// + // this.Style._startvolto = this.Style._startvolt; + // this.Style._endvolto = this.Style._endvolt; + + // ////////////// + + // UserZoom.Width = 0; + // this.Refresh(); + // } + // else + // { + // UserZoom.Width = 0; + // this.Refresh(); + // } + //} + } + + private void TrendCtrl_MouseDoubleClick(object sender, MouseEventArgs e) + { + //마우스더블클릭 + int idx = check_userpoint(e); + if (idx != -1) + { + //삭제한다. + uc.Remove(uc[Mouseinfo.DragIndex]); + if (uc.Count == 1) + { + uc[0].Idx = 0; + foreach (CChinfo c in this.chinfo) + { + c.C2value = ""; + } + } + this.Refresh(); + OnUpdateUserCursor(Mouseinfo.DragIndex); + return; + } + + if (e.Button == System.Windows.Forms.MouseButtons.Left) + { + if (this.uc.Count < 2) + { + Single newx = GetXfromTime(Mouseinfo.Time, ChartRect); + this.uc.Add(new CUserCursor((short)this.uc.Count, Mouseinfo.Time, newx)); + this.Refresh(); + OnUpdateUserCursor(this.uc.Count); + } + + } + + } + + + private void DispCtrl_Load(object sender, EventArgs e) + { + + } + + + + } //end class + +} //end namespace \ No newline at end of file diff --git a/TrendCtrlII/TrendCtrlII.csproj b/TrendCtrlII/TrendCtrlII.csproj new file mode 100644 index 0000000..97cc6c5 --- /dev/null +++ b/TrendCtrlII/TrendCtrlII.csproj @@ -0,0 +1,103 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {A2FF254F-97C8-4AB1-8AB4-070DF48139CE} + Library + Properties + TrendCtrlII + TrendCtrlII + v4.8 + 512 + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + AnyCPU + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + x86 + false + + + + + + + + + + + + + + + UserControl + + + + True + True + Resources.resx + + + + + + TrendCtrlII.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TrendCtrlII/TrendCtrlII.resx b/TrendCtrlII/TrendCtrlII.resx new file mode 100644 index 0000000..7080a7d --- /dev/null +++ b/TrendCtrlII/TrendCtrlII.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TrendCtrlII/TrendCtrlII.sln b/TrendCtrlII/TrendCtrlII.sln new file mode 100644 index 0000000..e49f8f1 --- /dev/null +++ b/TrendCtrlII/TrendCtrlII.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrendCtrlII", "TrendCtrlII.csproj", "{A2FF254F-97C8-4AB1-8AB4-070DF48139CE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A2FF254F-97C8-4AB1-8AB4-070DF48139CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2FF254F-97C8-4AB1-8AB4-070DF48139CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2FF254F-97C8-4AB1-8AB4-070DF48139CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2FF254F-97C8-4AB1-8AB4-070DF48139CE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TrendView.pdf b/TrendView.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0dfb6b49b8a535e920728be6d84a88f1dd591f0d GIT binary patch literal 451371 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%0ACNMf&(&fEQn|ba2LPVIi3^%A1r+lk6D8_ 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

-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�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%0DoB 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

CkW;*J+ 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

)wZ>8f5`Vu^CyQ1i5OFM^B8!YlE7lZ~B1w@JR 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ʠ+o2fT3efPY%j5&8xf_NjqrC(6*p@@9L)84Os_d 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


Jx*;rR*_sI3c@G~wp_xl3h5hJJZ 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%0Ah#Po17@Ys^4Di==ayFY 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Π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 D= + + + + + diff --git a/VMSMonitor/ArinXMl.vb b/VMSMonitor/ArinXMl.vb new file mode 100644 index 0000000..9f9e950 --- /dev/null +++ b/VMSMonitor/ArinXMl.vb @@ -0,0 +1,144 @@ +Imports System.Xml + +Public Class ArinXML + Private File As String + Private vDocu As XmlDocument = Nothing + Private nsmgr As XmlNamespaceManager + Public Root As XmlElement + + Public ReadOnly Property Docu() As XmlDocument + Get + Return Me.vDocu + End Get + End Property + + Public ReadOnly Property Filename As String + Get + Return Me.File + End Get + End Property + + Public Sub New(ByVal Filename As String) + Me.File = Filename + If Exist() Then '//파일이 존재하면 도큐먼트반환 + Me.vDocu = New XmlDocument + nsmgr = New XmlNamespaceManager(New Xml.NameTable) + nsmgr.AddNamespace("x", "http://tindevil.com") + Try + Me.vDocu.Load(Filename) + Root = vDocu.DocumentElement + Catch ex As Exception + Me.vDocu = Nothing + Me.Root = Nothing + End Try + End If + End Sub + + Public Sub New(ByVal docu As Xml.XmlDocument) + Me.vDocu = docu + Me.File = My.Application.Info.DirectoryPath & "\temp.xml" + nsmgr = New XmlNamespaceManager(New Xml.NameTable) + nsmgr.AddNamespace("x", "http://tindevil.com") + Root = vDocu.DocumentElement + End Sub + + '''

+ ''' 파일존재여부 + ''' + ''' + ''' + Public Function Exist() As Boolean + If Not vDocu Is Nothing Then Return True + Return System.IO.File.Exists(Me.File) + End Function + + + Public Sub CreateFile() + '//주어진파일명으로 기본파일을 생성한다. + Dim NewXml As New System.Text.StringBuilder + NewXml.AppendLine("") + NewXml.AppendLine(" ") + NewXml.AppendLine("") + If System.IO.File.Exists(Me.File) Then System.IO.File.Delete(Me.File) + My.Computer.FileSystem.WriteAllText(Me.File, NewXml.ToString.Replace("'", Chr(&H22)), False) + Me.vDocu = New XmlDocument + Me.vDocu.Load(Me.File) + nsmgr = New XmlNamespaceManager(New Xml.NameTable) + nsmgr.AddNamespace("x", "http://tindevil.com") + Root = vDocu.DocumentElement + End Sub + + Public Function Read(ByVal appkey As String, ByVal subkey As String, Optional ByVal defaltvalue As String = "", Optional ByVal Nullvalue As String = "") As String '//변수초기화 + '//파일이없을경우 빈값을 반환합니다. + If Exist() = False Then Return "" + Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다. + If L Is Nothing Then Return "" + Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr) + If C Is Nothing Then Return "" + Return C.InnerText + End Function + + Public Function Get_NameSpace() As XmlNamespaceManager + Return Me.nsmgr + End Function + Public Function NS() As XmlNamespaceManager + Return Me.nsmgr + End Function + + Public Function CreateElement(ByVal name As String) As XmlElement + Return Me.Docu.CreateElement(name, Me.NS.DefaultNamespace) + End Function + Public Function GetNode(ByVal appkey As String) As XmlElement + '//파일이없을경우 빈값을 반환합니다. + If Docu Is Nothing Then Return Nothing + Return Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다. + End Function + Public Function GetNodes(ByVal appkey As String) As Xml.XmlNodeList + '//파일이없을경우 빈값을 반환합니다. + If Docu Is Nothing Then Return Nothing + Dim L As XmlNodeList = Me.Root.SelectNodes(appkey, nsmgr) '//appkey를 먼저 조회한다. + Return L + End Function + + Public Property Data(ByVal appkey As String, ByVal subkey As String, Optional ByVal defaltvalue As Object = "", Optional ByVal trim As Boolean = False) As String + Get + '//파일이없을경우 빈값을 반환합니다. + If Exist() = False Then Return defaltvalue + Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다. + If L Is Nothing Then Return defaltvalue + Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr) + If C Is Nothing Then Return defaltvalue + If trim Then + Return C.InnerText.Trim + Else + Return C.InnerText + End If + + End Get + Set(ByVal value As String) + '//파일이없을경우 빈값을 반환합니다. + + If Exist() = False Then Return + Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다. + If L Is Nothing Then '//만들어야한다. + L = Me.Docu.CreateElement(appkey) + Me.Root.AppendChild(L) + End If + Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr) + If C Is Nothing Then '//만들어야한다. + C = Me.Docu.CreateElement(subkey) + C.InnerText = value + L.AppendChild(C) + Else + C.InnerText = value + End If + Me.Docu.Save(Me.File) + 'MsgBox(value) + End Set + End Property + + Public Sub Save() + Me.Docu.Save(Me.File) + End Sub + +End Class diff --git a/VMSMonitor/Form1.Designer.vb b/VMSMonitor/Form1.Designer.vb new file mode 100644 index 0000000..9431c89 --- /dev/null +++ b/VMSMonitor/Form1.Designer.vb @@ -0,0 +1,172 @@ + _ +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows Form 디자이너에 필요합니다. + Private components As System.ComponentModel.IContainer + + '참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다. + '수정하려면 Windows Form 디자이너를 사용하십시오. + '코드 편집기를 사용하여 수정하지 마십시오. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) + Me.Timer1 = New System.Windows.Forms.Timer(Me.components) + Me.Timer2 = New System.Windows.Forms.Timer(Me.components) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.bt_monitor = New System.Windows.Forms.ToolStripButton() + Me.bt_run = New System.Windows.Forms.ToolStripButton() + Me.bt_kill = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.status_monitor = New System.Windows.Forms.ToolStripStatusLabel() + Me.status_run = New System.Windows.Forms.ToolStripStatusLabel() + Me.status_create = New System.Windows.Forms.ToolStripStatusLabel() + Me.lb_msg = New System.Windows.Forms.ToolStripStatusLabel() + Me.ToolStrip1.SuspendLayout() + Me.StatusStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'Timer1 + ' + Me.Timer1.Interval = 1000 + ' + 'Timer2 + ' + Me.Timer2.Interval = 1000 + ' + 'ToolStrip1 + ' + Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bt_monitor, Me.bt_run, Me.bt_kill, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(496, 39) + Me.ToolStrip1.TabIndex = 4 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'bt_monitor + ' + Me.bt_monitor.Image = CType(resources.GetObject("bt_monitor.Image"), System.Drawing.Image) + Me.bt_monitor.ImageTransparentColor = System.Drawing.Color.Magenta + Me.bt_monitor.Name = "bt_monitor" + Me.bt_monitor.Size = New System.Drawing.Size(103, 36) + Me.bt_monitor.Text = "모니터시작" + ' + 'bt_run + ' + Me.bt_run.Enabled = False + Me.bt_run.Image = CType(resources.GetObject("bt_run.Image"), System.Drawing.Image) + Me.bt_run.ImageTransparentColor = System.Drawing.Color.Magenta + Me.bt_run.Name = "bt_run" + Me.bt_run.Size = New System.Drawing.Size(93, 36) + Me.bt_run.Text = "VPS 실행" + ' + 'bt_kill + ' + Me.bt_kill.Enabled = False + Me.bt_kill.Image = CType(resources.GetObject("bt_kill.Image"), System.Drawing.Image) + Me.bt_kill.ImageTransparentColor = System.Drawing.Color.Magenta + Me.bt_kill.Name = "bt_kill" + Me.bt_kill.Size = New System.Drawing.Size(117, 36) + Me.bt_kill.Text = "VPS 강제종료" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(115, 36) + Me.ToolStripButton1.Text = "프로그램종료" + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Dock = System.Windows.Forms.DockStyle.Fill + Me.ProgressBar1.Location = New System.Drawing.Point(0, 39) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(496, 93) + Me.ProgressBar1.TabIndex = 5 + ' + 'StatusStrip1 + ' + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.status_monitor, Me.status_run, Me.status_create, Me.lb_msg}) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 110) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(496, 22) + Me.StatusStrip1.TabIndex = 6 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'status_monitor + ' + Me.status_monitor.Name = "status_monitor" + Me.status_monitor.Size = New System.Drawing.Size(66, 17) + Me.status_monitor.Text = "● Monitor" + ' + 'status_run + ' + Me.status_run.Name = "status_run" + Me.status_run.Size = New System.Drawing.Size(45, 17) + Me.status_run.Text = "● VPS" + ' + 'status_create + ' + Me.status_create.Name = "status_create" + Me.status_create.Size = New System.Drawing.Size(44, 17) + Me.status_create.Text = "● Run" + ' + 'lb_msg + ' + Me.lb_msg.Name = "lb_msg" + Me.lb_msg.Size = New System.Drawing.Size(53, 17) + Me.lb_msg.Text = "Message" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(496, 132) + Me.Controls.Add(Me.StatusStrip1) + Me.Controls.Add(Me.ProgressBar1) + Me.Controls.Add(Me.ToolStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.Name = "Form1" + Me.Text = "VPS STARTER" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Timer1 As System.Windows.Forms.Timer + Friend WithEvents Timer2 As System.Windows.Forms.Timer + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents bt_monitor As System.Windows.Forms.ToolStripButton + Friend WithEvents bt_run As System.Windows.Forms.ToolStripButton + Friend WithEvents bt_kill As System.Windows.Forms.ToolStripButton + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip + Friend WithEvents lb_msg As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents status_run As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents status_monitor As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents status_create As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + +End Class diff --git a/VMSMonitor/Form1.resx b/VMSMonitor/Form1.resx new file mode 100644 index 0000000..a3d9075 --- /dev/null +++ b/VMSMonitor/Form1.resx @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 107, 17 + + + 197, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMpSURBVFhH7ZfLS1RRHMe1rCCkqAwiqkV/hhtbutBQUHyC + gWCaZas22jg+Z8zMHNTRZBAbRB1d2aaFq9z6FoUW4trw/QZRfp3PoTOMwhmtmYEWCl/OY7738/3Onbl3 + rnFxl3+XZ+B/OgMjIyNeJYmxvNb3PDw8LMfHx3JychITwSbDWiAQCMjR0ZEcHBzI4eFhVAUTNhnWAoOD + g7K/vy87OzuSnJwsz9PToyJYMGGTYS0wMDAQLJCWliavysqkrLQ0IsGAZQqQYS3Q39+vC2xvb0t2dra8 + r6qSaocjIsGABRM2GdYCfr9f9vb2tDknJydqBWDBhE2GtUBfX582bW1tSX5+ftQKwIIJmwxrgd7eXm3a + 3NyUwsLCiE596EcHCyZsMqwFfD6f7O7uysbGhrwoKpLamppgiZWVlX8qBAMWTNhkWAv09PQECxQXF0uT + 261LGFEidH2ROQxYpgAZ1gLdXV26wPr6upSUlIinrU1cjY2nRImze+HWMGDBhE2GtYC3s1Nfr2tra/ra + /9LdLR+bm4MiPHR9kTkMWDBhk2Et0N7erk2rq6vyurxcvqpvLO8AEW7mZs3e2f1QD3MYsGDCJsNawOPx + aNPi4qK8raiQwNCQbhyJYMCCCZsMa4HPra3atLCwIFWVlTI6OirfIhQMWDBhk2Et8KmlRd+x5ufnpaG+ + /q8/b9t3AhZM2GRYCwDANDc3pw+IpmDCJsNa4ENTkzbNzMzI7OxsVAUTNhnWAm6XS9+zp6endQnU0dFx + SmY/3Oj2v5Fn7xKF0fhgwibDWqCxoUGbJicnZWpqSovnQ3O5MTf74cYK31P5+eulMBofTNhkWAvU19Vp + 08TEhC6BxsbGTsnshxsDP0rF9T1BGI0PJmwyrAXqamv1DWN8fDwmgk2GtUCN0ynLy8uytLQUE8Emw1rA + 6XB4ndXVElOpjPP+F4p3Op1X1C/YNfUwebOgoOCWeqK5k5WVdTcvLy9JPd89yMzMfKQesx6r+RMj1rm5 + uQ+V735GRsY9jlGv3VZKTE1NvaHGqyo4/rzw0Ncx6zJGQFJSUhIoh9T6uhFr5UvAE3rMn1Br8G+IV7/l + /QuMLAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANwSURBVFhH7ZbpT1NBFMXdKNQKtCwKKgYNRgVZCm0phRYR + cQkitVoIyGYkpAqYEIIxKIggxAqiaNS4xS1YZNUqi2AgLmGVHREEBBQR/4rjTIMJRBSpgH7oS05e+/qm + 9zfn3rkzCxboLp0DOgd+44Cnp+cSFxcXYz6fb0Hv9Pu8GkaDHsk0OZmUZ9AVlW6WweVyNwmFQpN5A3F0 + dLQ+nsvsaRiMxt1aLk7kMocVZ00vkud2xBVTAqg3p444OTnZnlbroW1Egd5vqWj9fAK5DWIkqhhjCqXp + LVcPexcHB4fltra2DAKycNZhnJ2d7ZNL9NA4HEgUTEBi8H4sBe0jychv2oFTj/VxOMtEJd5uJ6J1YmNj + oz+rIBQgsVAP9UOBqB3cr1H9YBBaPinw7msSOkZTUfTWD8klLERlcYq9Zeu3kfSsInXCnBUQCnAsj4Ha + j3K8GZBNUu2AHE3DkegcTUTXaBoetwQguYiDqHPsCv9D1oE8Hs+KpIdFQBZpnRoKEPeAQQLvw+t+6dQi + vzUMRZC0JBCQVDxrC0dSgRkOKg1rpAqrcApCVo2BVo5QgNg7+iSwDC/7/KeRlDgVSgo1Hp1fUlHeHolT + BWtwMINduTNgLX+8PmZmBgVQ3NTHyw9S1PTu+WO97gvAm/4DeNUXiBs1XISksW+LRCLDmUUnb1OAQ1cN + 8KTNC0Ut4mlV3CrBs04fVPdKUdW9F0r1RkReY2KL1MZTawfCcpgoapPgUbPol8pvdkdJuxcqe/zwomcv + MtWbEXGZBVmCuYovcnQan/3M+wR1IOg8E/nNHnjYKPxJqkY3FLZIUNa1SzPj7FIuwnIM4Z9gVixwtxdO + aFIzdl8zgALIlUvxsEmE+/X8SVKRZ+qO7ajs9kdOGQ8hF4zhG2/yVOy7YQcZZzneHbUL/GMUBZCeWYoH + ja64U+esEf1c3L4VFd27calCgOAsDnbFmVaIZWv30Sak9ZKbCpUC7E5h4V4dH3freCQVEpS/88WV524I + OW8On1hOjVhurVnrs9b9JoLQzWhnEosUnwSlJM/Xqz1I4BXwjmHXi4NXR9Pd8q+73e+SRAN4x7F7rla5 + IizbEl5HjTo8DqxKJDNeR3K8TC6XL/67JE8zmh5IxBEWJyWxRl3uoSvTiSPrBQKB0bwdSP75kWxO7dX9 + uc6B/8WB7+oZG+bTszTSAAAAAElFTkSuQmCC + + + + + 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 + ouq07JEAAAAASUVORK5CYII= + + + + 306, 17 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8AAAAAAQAAAAIAAAAEAAAABwAAAAoAAAALAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA + AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACwAAAAoAAAAHAAAABAAA + AAIAAAAB////AP///wAAAAACAAAABwAAAA0AAAAWAAAAHQAAACIAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAiAAAAHQAA + ABYAAAANAAAABwAAAAL///8A////AAAAAAQAAAANAAAAGwAAAC0AAAA6AAAAQwAAAEgAAABIAAAASAAA + AEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAA + AEMAAAA6AAAALQAAABsAAAANAAAABP///wD///8AAAAABwAAABZ9VjSpjWE7/41hO/+NYTv/jWE7/41h + O/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41h + O/+NYTv/jWE7/41hO/+NYTv/fVY0qQAAABYAAAAH////AP///wAAAAAKAAAAHY1hO/+0Yz3/tGM9/7Rj + Pf/p0cX/3rqq/966qv/euqr/3rqq/966qv/euqr/3rqq/966qv/euqr/3rqq/966qv/euqr/6dHF/7Rj + Pf/p0cX/3rqq/+nRxf+0Yz3/tGM9/7RjPf+NYTv/AAAAHQAAAAr///8A////AAAAAAsAAAAijWE7/7Vk + Pv+1ZD7/tWQ+/+nRxf/eu6r/3ruq/967qv/eu6r/3ruq/967qv/eu6r/3ruq/967qv/eu6r/3ruq/967 + qv/p0cX/tWQ+/+nRxf/eu6r/6dHF/7VkPv+1ZD7/tWQ+/41hO/8AAAAiAAAAC////wD///8AAAAADAAA + ACSNYTv/t2U//7dlP/+3ZT//6tHG/+rRxv/q0cb/6tHG/+rRxv/q0cb/6tHG/+rRxv/q0cb/6tHG/+rR + xv/q0cb/6tHG/+rRxv+3ZT//6tHG/+rRxv/q0cb/t2U//7dlP/+3ZT//jWE7/wAAACQAAAAM////AP// + /wAAAAAMAAAAJI1hO/+3Z0D/t2dA/7dnQP+3Z0D/t2dA/7dnQP+4aEH/uGlB/7hpQf+5aUL/uWpC/7lq + Qv+5akL/uWpC/7lqQv+5aUL/uGlB/7hpQf+4aEH/t2dA/7dnQP+3Z0D/t2dA/7dnQP+NYTv/AAAAJAAA + AAz///8A////AAAAAAwAAAAkjWE7/7lpQf+5aUH/uWlB/7lpQf+6akL/umtC/7trQ/+7bEP/vG1E/7xu + RP+9bkT/vW5E/71vRf+9bkT/vW5E/7xuRP+8bUT/u2xD/7trQ/+6a0L/umpC/7lpQf+5aUH/uWlB/41h + O/8AAAAkAAAADP///wD///8AAAAADAAAACSNYTv/umtD/7prQ/+6a0P/u2xE/7ttRP+8bkX/vW9G/75w + Rv++cUf/v3JH/79zSP+/c0j/v3NI/79zSP+/c0j/v3JH/75xR/++cEb/vW9G/7xuRf+7bUT/u2xE/7pr + Q/+6a0P/jWE7/wAAACQAAAAM////AP///wAAAAAMAAAAJI1hO/+7bUT/u21E/7xuRf+9cEb/vXFG/75y + R/+/dEj/wHVJ/8F2Sv/Bd0r/wnhL/8J4S//CeUv/wnhL/8J4S//Bd0r/wXZK/8B1Sf+/dEj/vnJH/71x + Rv+9cEb/vG5F/7ttRP+NYTv/AAAAJAAAAAz///8A////AAAAAAwAAAAkjWE7/71vRf++cEb/v3JH/79z + R//AdUn/wXZK/8J4S//DeUv/xHtN/8V8Tf/FfU7/xn1O/8Z+Tv/GfU7/xX1O/8V8Tf/Ee03/w3lL/8J4 + S//Bdkr/wHVJ/79zR/+/ckf/vnBG/41hO/8AAAAkAAAADP///wD///8AAAAADAAAACSNYTv/v3JI/79z + SP/AdUr/wXdL/8N5TP/Ee03/xX1P/8Z+T//HgFD/x4FR/8iCUv/Ig1L/yINS/8iDUv/IglL/x4FR/8eA + UP/Gfk//xX1P/8R7Tf/DeUz/wXdL/8B1Sv+/c0j/jWE7/wAAACQAAAAM////AP///wAAAAAMAAAAJI1h + O//XpYn/16aJ/9iniv/ZqYv/2aqM/9usjf/brY7/3K6O/9ywj//dsZD/3bKQ/96ykf/espH/3rKR/92y + kP/dsZD/3LCP/9yujv/brY7/26yN/9mqjP/ZqYv/2KeK/9emif+NYTv/AAAAJAAAAAz///8A////AAAA + AAwAAAAkjWE7/9eniv/YqIv/2aqM/9qsjf/brY7/3K+P/9ywkP/dspH/3rOS/960k//ftZP/37WU/9+1 + lP/ftZT/37WT/960k//es5L/3bKR/9ywkP/cr4//262O/9qsjf/Zqoz/2KiL/41hO/8AAAAkAAAADP// + /wD///8AAAAADAAAACSNYTv/2amL/9mqjP/arI3/266O/9ywkP/dspH/3rOS/961k//gt5T/4LiV/+C5 + lv/huZb/4bmW/+G5lv/guZb/4LiV/+C3lP/etZP/3rOS/92ykf/csJD/266O/9qsjf/Zqoz/jWE7/wAA + ACQAAAAM////AP///wAAAAAMAAAAJI1hO//aq4z/26yN/9yujv/csJD/3rKR/960kv/gtpT/4LiV/+G6 + lv/iu5b/4ryX/+O9l//jvZj/472X/+K8l//iu5b/4bqW/+C4lf/gtpT/3rSS/96ykf/csJD/3K6O/9us + jf+NYTv/AAAAJAAAAAz///8A////AAAAAAsAAAAijWE7/9usjv/cro//3LCQ/96ykv/etJP/4LaU/+C4 + lv/iupf/4ryY/+O+mf/kv5r/5MCb/+TAm//kwJv/5L+a/+O+mf/ivJj/4rqX/+C4lv/gtpT/3rST/96y + kv/csJD/3K6P/41hO/8AAAAiAAAAC////wD///8AAAAACgAAAB2NYTv///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////jWE7/wAAAB0AAAAK////AP///wAAAAAHAAAAFo1hO///////3qqB//// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////3qqB//////+NYTv/AAAAFgAAAAf///8A////AAAAAAQAAAANjWE7//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////41hO/8AAAANAAAABP///wD///8AAAAAAgAA + AAeJXjmbjWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41h + O/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/iV45mwAAAAcAAAAC////AP// + /wAAAAABAAAAAgAAAAQAAAAHAAAACgAAAAsAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA + AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAALAAAACgAAAAcAAAAEAAAAAgAA + AAH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8AgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAH///////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/VMSMonitor/Form1.vb b/VMSMonitor/Form1.vb new file mode 100644 index 0000000..4ef580c --- /dev/null +++ b/VMSMonitor/Form1.vb @@ -0,0 +1,306 @@ +Public Class Form1 + + Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer + Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer + Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) + Private Const WM_QUIT = &H12 + Private Const WM_CLOSE = &H10 + + Private ison As Boolean = False + Private ismonitor As Boolean = False + + Dim totaltime As TimeSpan + Dim ercnt As Integer = 0 + Dim starttime As Integer = 0 + + Dim Xml As ArinXML + + Dim Createfile As String = "" + Dim CreateStart As String = "" + Dim killon As Boolean = False + + Dim fclose As Boolean = False + Dim autoexit As Short = 0 + Dim runtime As String = Now.ToString + + Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If fclose = False Then e.Cancel = True + Me.WindowState = FormWindowState.Minimized + + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Me.ProgressBar1.Minimum = 0 + Me.ProgressBar1.Maximum = 6 + + totaltime = Nothing + ercnt = 0 + Me.bt_monitor.PerformClick() + End Sub + + Public Function RunProcess(ByVal 파일이름 As String, Optional ByVal 실행옵션 As String = vbNullString) As Boolean + Dim RunP As Process + Dim B As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo + + If FileIO.FileSystem.FileExists(파일이름) Then + B.FileName = 파일이름 + B.WorkingDirectory = 파일이름.Substring(0, 파일이름.LastIndexOf("\")) + B.Arguments = 실행옵션 + RunP = Process.Start(B) + Return True + Else + Return False + End If + End Function + + Public Function checkmyproc() As Process + Try + Dim Prc() As Process = Process.GetProcesses '//현재프로세스배열을 가져온다. + Dim MyPrc As Process + For Each MyPrc In Prc + If MyPrc.ProcessName.ToUpper.IndexOf("VPS.NET") <> -1 Then + Return MyPrc + End If + Next + Return Nothing + Catch ex As Exception + Return Nothing + End Try + + End Function + + Public Sub KillMyProc(ByVal 클래스명 As String) + Dim Np As IntPtr + Np = FindWindow(클래스명, vbNullString) + 'Me.lstOutput.Items.Add("WHND:" & Np.ToInt32.ToString) + If Np = 0 Then + 'Form_Standard.MDIMessage.Text = "Cannot Find :" & 클래스명 + Exit Sub + End If + PostMessage(Np.ToInt32, WM_QUIT, 0&, 0&) + Sleep(500) + End Sub + + Private Sub Msg(ByVal m As String) + Me.lb_msg.Text = m + My.Application.DoEvents() + End Sub + Public Sub oKillMyProc(ByVal 프로세스명 As String) + Dim Prc() As Process = Process.GetProcesses '//현재프로세스배열을 가져온다. + Dim MyPrc As Process + Dim 파일명 As String = 프로세스명.Substring(프로세스명.LastIndexOf("\") + 1).ToUpper + For Each MyPrc In Prc + If (MyPrc.ProcessName & ".EXE").ToUpper = 파일명 Then + + ' MsgBox(MyPrc.StartInfo.Fileame) + MyPrc.Kill() + End If + Next + Sleep(500) + End Sub + + Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick + Dim Prc As Process = checkmyproc() + If Prc Is Nothing Then + + '//프로세스가 없다. + If Me.Timer2.Enabled = False Then + autoexit += 1 + If autoexit > 3 Then + Me.Close() + End If + End If + + ison = False + Me.bt_kill.Enabled = False + Me.bt_run.Enabled = True + 'Me.Text = "noprocee" + Me.status_run.ForeColor = Color.Gray + If Me.starttime > 0 Then + Me.status_run.ForeColor = Color.Orange + End If + + Xml = New ArinXML(My.Application.Info.DirectoryPath & "\conf.xml") + Dim File As String = Xml.Data("config", "autocreate") + Dim Filename As String = Xml.Data("config", "createfile") + Runtime = Xml.Data("config", "runtime") + + If File.Trim = "1" AndAlso Filename.Trim <> "" AndAlso Me.Timer2.Enabled = False Then + Me.ProgressBar1.ForeColor = Color.Green + Me.Timer2.Enabled = True + Me.Timer2.Start() + End If + + Else + autoexit = 0 + Me.status_run.ForeColor = Color.Blue + Me.bt_kill.Enabled = True + Me.bt_run.Enabled = False + + ison = True + Try + dispalyinfo(Prc) + Catch ex As Exception + + End Try + End If + End Sub + + Private Sub dispalyinfo(ByVal prc As Process) + Xml = New ArinXML(My.Application.Info.DirectoryPath & "\conf.xml") + Createfile = Xml.Data("config", "createfile") + CreateStart = Xml.Data("config", "createstart") + + + Dim Buf As New System.Text.StringBuilder + Buf.AppendLine("NOW TIME:" & Now.ToString) + + If CreateStart.Trim <> "" AndAlso Createfile <> "" Then + Buf.AppendLine(">> 생산중:" & Createfile) + Buf.AppendLine(">> 판정시작:" & CreateStart) + killon = True + Me.status_create.ForeColor = Color.Blue + Else + Me.status_create.ForeColor = Color.Gray + killon = False + End If + + Buf.AppendLine("PROCESS NAME:" & prc.ProcessName) + Buf.AppendLine("Start Time:" & prc.StartTime.ToString()) + Buf.AppendLine("Total time:" & prc.TotalProcessorTime.ToString()) + Buf.AppendLine("SessionID:" & prc.SessionId.ToString) + Buf.AppendLine("Response:" & prc.Responding) + Buf.AppendLine("Handle:" & prc.Handle.ToString) + Buf.AppendLine("Handle Count:" & prc.HandleCount) + Buf.AppendLine("prc.HasExited:" & prc.HasExited) + Buf.AppendLine("prc.Id:" & prc.Id) + Buf.AppendLine("prc.MainWindowTitle:" & prc.MainWindowTitle) + Buf.AppendLine("prc.PrivilegedProcessorTime.ToString:" & prc.PrivilegedProcessorTime.ToString) + Buf.AppendLine("prc.UserProcessorTime.ToString:" & prc.UserProcessorTime.ToString) + Buf.AppendLine("Error Count:" & Me.ercnt) + + If Me.totaltime = Nothing Then + Me.totaltime = prc.TotalProcessorTime + Else + Dim ts As TimeSpan = prc.TotalProcessorTime - Me.totaltime + + Buf.AppendLine("Run Status:" & ts.ToString()) + + + If (Now - CDate(Me.runtime)).Seconds = 15 And killon Then + Me.ProgressBar1.ForeColor = Color.Red + ercnt += 1 + Me.ProgressBar1.Value = ercnt + Else + Me.ProgressBar1.Value = 0 + ercnt = 0 + End If + + Me.totaltime = prc.TotalProcessorTime + + If ercnt > 5 And killon Then '//10초를 넘도록 + bt_kill.PerformClick() + End If + End If + + + Buf.AppendLine(prc.ToString()) + + Dim runtime As String = Xml.Data("config", "runtime") + Msg("Running Time:" & runtime) + + End Sub + + Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick + + starttime += 1 + Me.ProgressBar1.Value = starttime + + If starttime > 5 Then + + Me.ProgressBar1.Value = 0 + Me.ProgressBar1.ForeColor = Color.Red + Me.bt_run.PerformClick() + starttime = 0 + Me.Timer2.Stop() + Me.Timer2.Enabled = False + End If + End Sub + + Private Sub bt_monitor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + + End Sub + + Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_monitor.Click + Me.ProgressBar1.Value = 0 + + If Me.ismonitor Then + Me.Timer1.Stop() + Me.Timer1.Enabled = False + Me.ismonitor = False + Me.bt_monitor.Text = "모니터 시작" + Msg("MONITOR OFF") + Me.status_monitor.ForeColor = Color.Gray + Else + Me.Timer1.Enabled = True + Me.Timer1.Start() + Me.ismonitor = True + Me.bt_monitor.Text = "모니터 종료" + Me.status_monitor.ForeColor = Color.Blue + End If + End Sub + + Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_run.Click + If Me.ison Then + MsgBox("중복실행이므로 실행을 할 수 없습니다", MsgBoxStyle.Information, "확인") + Else + + RunProcess(My.Application.Info.DirectoryPath & "\vps.net.exe", "TINDEVIL") + End If + End Sub + + Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_kill.Click + Dim Prc As Process = checkmyproc() + If Not Prc Is Nothing Then + + Dim sta As Boolean = Prc.CloseMainWindow() + If sta Then + My.Application.DoEvents() + + While (1) + Dim P As Process = checkmyproc() + If P Is Nothing Then Exit While + My.Application.DoEvents() + End While + + Xml = New ArinXML(My.Application.Info.DirectoryPath & "\conf.xml") + Xml.Data("config", "autocreate") = "1" + Xml.Data("config", "shutdown") = "0" + + Me.ProgressBar1.ForeColor = Color.Green + starttime = 0 + Me.Timer2.Enabled = True + Me.Timer2.Start() + Else + Xml = New ArinXML(My.Application.Info.DirectoryPath & "\conf.xml") + Xml.Data("config", "autocreate") = "1" + Xml.Data("config", "shutdown") = "0" + + Prc.Kill() + Me.ProgressBar1.ForeColor = Color.Green + starttime = 0 + Me.Timer2.Enabled = True + Me.Timer2.Start() + End If + End If + End Sub + + Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked + + End Sub + + Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click + Me.fclose = True + End + End Sub +End Class diff --git a/VMSMonitor/Frm_monitor.Designer.vb b/VMSMonitor/Frm_monitor.Designer.vb new file mode 100644 index 0000000..b9c27f2 --- /dev/null +++ b/VMSMonitor/Frm_monitor.Designer.vb @@ -0,0 +1,179 @@ + _ +Partial Class Frm_monitor + Inherits System.Windows.Forms.Form + + 'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows Form 디자이너에 필요합니다. + Private components As System.ComponentModel.IContainer + + '참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다. + '수정하려면 Windows Form 디자이너를 사용하십시오. + '코드 편집기를 사용하여 수정하지 마십시오. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Frm_monitor)) + Me.Timer1 = New System.Windows.Forms.Timer(Me.components) + Me.Timer2 = New System.Windows.Forms.Timer(Me.components) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.bt_monitor = New System.Windows.Forms.ToolStripButton() + Me.bt_run = New System.Windows.Forms.ToolStripButton() + Me.bt_kill = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.status_monitor = New System.Windows.Forms.ToolStripStatusLabel() + Me.status_run = New System.Windows.Forms.ToolStripStatusLabel() + Me.lb_msg = New System.Windows.Forms.ToolStripStatusLabel() + Me.RichTextBox1 = New System.Windows.Forms.RichTextBox() + Me.ToolStrip1.SuspendLayout() + Me.StatusStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'Timer1 + ' + Me.Timer1.Interval = 1000 + ' + 'Timer2 + ' + Me.Timer2.Interval = 1000 + ' + 'ToolStrip1 + ' + Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bt_monitor, Me.bt_run, Me.bt_kill, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(648, 39) + Me.ToolStrip1.TabIndex = 4 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'bt_monitor + ' + Me.bt_monitor.Image = CType(resources.GetObject("bt_monitor.Image"), System.Drawing.Image) + Me.bt_monitor.ImageTransparentColor = System.Drawing.Color.Magenta + Me.bt_monitor.Name = "bt_monitor" + Me.bt_monitor.Size = New System.Drawing.Size(103, 36) + Me.bt_monitor.Text = "모니터시작" + ' + 'bt_run + ' + Me.bt_run.Enabled = False + Me.bt_run.Image = CType(resources.GetObject("bt_run.Image"), System.Drawing.Image) + Me.bt_run.ImageTransparentColor = System.Drawing.Color.Magenta + Me.bt_run.Name = "bt_run" + Me.bt_run.Size = New System.Drawing.Size(97, 36) + Me.bt_run.Text = "VMS 실행" + ' + 'bt_kill + ' + Me.bt_kill.Enabled = False + Me.bt_kill.Image = CType(resources.GetObject("bt_kill.Image"), System.Drawing.Image) + Me.bt_kill.ImageTransparentColor = System.Drawing.Color.Magenta + Me.bt_kill.Name = "bt_kill" + Me.bt_kill.Size = New System.Drawing.Size(91, 36) + Me.bt_kill.Text = "강제종료" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(115, 36) + Me.ToolStripButton1.Text = "프로그램종료" + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.ProgressBar1.Location = New System.Drawing.Point(0, 362) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(648, 23) + Me.ProgressBar1.TabIndex = 5 + ' + 'StatusStrip1 + ' + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.status_monitor, Me.status_run, Me.lb_msg}) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 340) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(648, 22) + Me.StatusStrip1.TabIndex = 6 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'status_monitor + ' + Me.status_monitor.Name = "status_monitor" + Me.status_monitor.Size = New System.Drawing.Size(66, 17) + Me.status_monitor.Text = "● Monitor" + ' + 'status_run + ' + Me.status_run.Name = "status_run" + Me.status_run.Size = New System.Drawing.Size(49, 17) + Me.status_run.Text = "● VMS" + ' + 'lb_msg + ' + Me.lb_msg.Name = "lb_msg" + Me.lb_msg.Size = New System.Drawing.Size(53, 17) + Me.lb_msg.Text = "Message" + ' + 'RichTextBox1 + ' + Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.RichTextBox1.Font = New System.Drawing.Font("나눔고딕", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte)) + Me.RichTextBox1.Location = New System.Drawing.Point(0, 39) + Me.RichTextBox1.Name = "RichTextBox1" + Me.RichTextBox1.Size = New System.Drawing.Size(648, 301) + Me.RichTextBox1.TabIndex = 7 + Me.RichTextBox1.Text = "VMS 실행감지" + ' + 'Frm_monitor + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(648, 385) + Me.Controls.Add(Me.RichTextBox1) + Me.Controls.Add(Me.StatusStrip1) + Me.Controls.Add(Me.ProgressBar1) + Me.Controls.Add(Me.ToolStrip1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.Name = "Frm_monitor" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "VMS STARTER" + Me.WindowState = System.Windows.Forms.FormWindowState.Minimized + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Timer1 As System.Windows.Forms.Timer + Friend WithEvents Timer2 As System.Windows.Forms.Timer + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents bt_monitor As System.Windows.Forms.ToolStripButton + Friend WithEvents bt_run As System.Windows.Forms.ToolStripButton + Friend WithEvents bt_kill As System.Windows.Forms.ToolStripButton + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip + Friend WithEvents lb_msg As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents status_run As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents status_monitor As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox + +End Class diff --git a/VMSMonitor/Frm_monitor.resx b/VMSMonitor/Frm_monitor.resx new file mode 100644 index 0000000..e2796bc --- /dev/null +++ b/VMSMonitor/Frm_monitor.resx @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 107, 17 + + + 197, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMpSURBVFhH7ZfLS1RRHMe1rCCkqAwiqkV/hhtbutBQUHyC + gWCaZas22jg+Z8zMHNTRZBAbRB1d2aaFq9z6FoUW4trw/QZRfp3PoTOMwhmtmYEWCl/OY7738/3Onbl3 + rnFxl3+XZ+B/OgMjIyNeJYmxvNb3PDw8LMfHx3JychITwSbDWiAQCMjR0ZEcHBzI4eFhVAUTNhnWAoOD + g7K/vy87OzuSnJwsz9PToyJYMGGTYS0wMDAQLJCWliavysqkrLQ0IsGAZQqQYS3Q39+vC2xvb0t2dra8 + r6qSaocjIsGABRM2GdYCfr9f9vb2tDknJydqBWDBhE2GtUBfX582bW1tSX5+ftQKwIIJmwxrgd7eXm3a + 3NyUwsLCiE596EcHCyZsMqwFfD6f7O7uysbGhrwoKpLamppgiZWVlX8qBAMWTNhkWAv09PQECxQXF0uT + 261LGFEidH2ROQxYpgAZ1gLdXV26wPr6upSUlIinrU1cjY2nRImze+HWMGDBhE2GtYC3s1Nfr2tra/ra + /9LdLR+bm4MiPHR9kTkMWDBhk2Et0N7erk2rq6vyurxcvqpvLO8AEW7mZs3e2f1QD3MYsGDCJsNawOPx + aNPi4qK8raiQwNCQbhyJYMCCCZsMa4HPra3atLCwIFWVlTI6OirfIhQMWDBhk2Et8KmlRd+x5ufnpaG+ + /q8/b9t3AhZM2GRYCwDANDc3pw+IpmDCJsNa4ENTkzbNzMzI7OxsVAUTNhnWAm6XS9+zp6endQnU0dFx + SmY/3Oj2v5Fn7xKF0fhgwibDWqCxoUGbJicnZWpqSovnQ3O5MTf74cYK31P5+eulMBofTNhkWAvU19Vp + 08TEhC6BxsbGTsnshxsDP0rF9T1BGI0PJmwyrAXqamv1DWN8fDwmgk2GtUCN0ynLy8uytLQUE8Emw1rA + 6XB4ndXVElOpjPP+F4p3Op1X1C/YNfUwebOgoOCWeqK5k5WVdTcvLy9JPd89yMzMfKQesx6r+RMj1rm5 + uQ+V735GRsY9jlGv3VZKTE1NvaHGqyo4/rzw0Ncx6zJGQFJSUhIoh9T6uhFr5UvAE3rMn1Br8G+IV7/l + /QuMLAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANxSURBVFhH7ZbpT1NBFMXdSqkVLJuCiAGDUUGWQltqoUVE + WYJKrRYiIkIgpCqYEIIxbCKoEUEUjRi3gBqssirKIhoal5RNdkQQEVBE/CuOMw0mEBWkAvqhLzl57eub + 3t+ce+fOLFigu3QO6ByYwgFPT88lrq6uy/l8vjm90+/zahgNejjLODnlvn539GnTM1wud6NQKDSeNxAn + Jyfr44Ws3sbBIyhQc5FUyBpWnDW5SJ7bE1dMCCBjTh1xdna2O1nBQPuIAn3f0tH2OQmFjWIkKhljikyT + m24eDq6Ojo4r7Ozs9AjIwlmHcXFxcUgtZ6BpOJgohIDE4N1YGjpGUlHU7IsTD5k4lG2sFPvYi2id2Nra + MmcVhAIkljDQMBQM9eBejRoG96H1kwJvv6agczQdpW92IrWcjehsozJv2bptJD2WpE5YswJCAY7d14P6 + oxyvB2STpB6Qo3k4Cl2jiegezcDD1iCklhoh+hynJjDSOpjH41mR9LAJyCKtU0MB4u7qkcB78OqD9Nci + vzUOhZO0JBCQdDxpP4iUYlNEZBqopAqrgxSErBp9rRyhALH5TBJYhhf9gdNISpw6QAo1Hl1f0lHdEYUT + xWsQcYZT6xdkwx+vj5mZQQEUN5h48V4KVd+uP9ar/iC8/rAfL/uDcV3FRWgG55ZIJDKYWXTyNgWIzNPH + o3YvlLaKp1VZmwRPurajrk+KZz27kVmxAVFXWdgitfXU2oGwXBZK2yV40CL6rYpa3FHe4YXa3p143rsb + WRWbEH6ZDVmCmZIvcnIen/3M+wR1YN95FopaPHCvSfiTlE2bUdIqQVW3v2bGOZVchOUaIDDBtEzg7iCc + 0KRm7L5mAAWQZy7FvWYR7jTwJ0lJnlV0+qC2JxC5VTyEXliOgHjjx+KA9b5knMV4d9Qu8I9RFEB6ainu + Nrkhv95FI/q5rGMranp24FKNACHZRvCPM6kRy2z20Cak9ZL7FSoF2JHGxu16PgrqeSQVElS/DcCVp5sR + et4M22ONVGK5tWatz1r3mwhCNyO/FDYpPgkqSZ6v1XmQwCvhHcNpEIesPkJ3y7/udlMliQbwjuP05j1z + Q1iOBbyOGnZ67LdMJDNeS3K8TC6XL/67JE8zmh5IxOHmyZJYw273A6tOE0fWCQQCw3k7kPzzI9mc2qv7 + c50D/4sD3wHeuRvlgDZ3nAAAAABJRU5ErkJggg== + + + + + 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 + ouq07JEAAAAASUVORK5CYII= + + + + 306, 17 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8AAAAAAQAAAAIAAAAEAAAABwAAAAoAAAALAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA + AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACwAAAAoAAAAHAAAABAAA + AAIAAAAB////AP///wAAAAACAAAABwAAAA0AAAAWAAAAHQAAACIAAAAkAAAAJAAAACQAAAAkAAAAJAAA + ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAiAAAAHQAA + ABYAAAANAAAABwAAAAL///8A////AAAAAAQAAAANAAAAGwAAAC0AAAA6AAAAQwAAAEgAAABIAAAASAAA + AEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAA + AEMAAAA6AAAALQAAABsAAAANAAAABP///wD///8AAAAABwAAABZ9VjSpjWE7/41hO/+NYTv/jWE7/41h + O/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41h + O/+NYTv/jWE7/41hO/+NYTv/fVY0qQAAABYAAAAH////AP///wAAAAAKAAAAHY1hO/+0Yz3/tGM9/7Rj + Pf/p0cX/3rqq/966qv/euqr/3rqq/966qv/euqr/3rqq/966qv/euqr/3rqq/966qv/euqr/6dHF/7Rj + Pf/p0cX/3rqq/+nRxf+0Yz3/tGM9/7RjPf+NYTv/AAAAHQAAAAr///8A////AAAAAAsAAAAijWE7/7Vk + Pv+1ZD7/tWQ+/+nRxf/eu6r/3ruq/967qv/eu6r/3ruq/967qv/eu6r/3ruq/967qv/eu6r/3ruq/967 + qv/p0cX/tWQ+/+nRxf/eu6r/6dHF/7VkPv+1ZD7/tWQ+/41hO/8AAAAiAAAAC////wD///8AAAAADAAA + ACSNYTv/t2U//7dlP/+3ZT//6tHG/+rRxv/q0cb/6tHG/+rRxv/q0cb/6tHG/+rRxv/q0cb/6tHG/+rR + xv/q0cb/6tHG/+rRxv+3ZT//6tHG/+rRxv/q0cb/t2U//7dlP/+3ZT//jWE7/wAAACQAAAAM////AP// + /wAAAAAMAAAAJI1hO/+3Z0D/t2dA/7dnQP+3Z0D/t2dA/7dnQP+4aEH/uGlB/7hpQf+5aUL/uWpC/7lq + Qv+5akL/uWpC/7lqQv+5aUL/uGlB/7hpQf+4aEH/t2dA/7dnQP+3Z0D/t2dA/7dnQP+NYTv/AAAAJAAA + AAz///8A////AAAAAAwAAAAkjWE7/7lpQf+5aUH/uWlB/7lpQf+6akL/umtC/7trQ/+7bEP/vG1E/7xu + RP+9bkT/vW5E/71vRf+9bkT/vW5E/7xuRP+8bUT/u2xD/7trQ/+6a0L/umpC/7lpQf+5aUH/uWlB/41h + O/8AAAAkAAAADP///wD///8AAAAADAAAACSNYTv/umtD/7prQ/+6a0P/u2xE/7ttRP+8bkX/vW9G/75w + Rv++cUf/v3JH/79zSP+/c0j/v3NI/79zSP+/c0j/v3JH/75xR/++cEb/vW9G/7xuRf+7bUT/u2xE/7pr + Q/+6a0P/jWE7/wAAACQAAAAM////AP///wAAAAAMAAAAJI1hO/+7bUT/u21E/7xuRf+9cEb/vXFG/75y + R/+/dEj/wHVJ/8F2Sv/Bd0r/wnhL/8J4S//CeUv/wnhL/8J4S//Bd0r/wXZK/8B1Sf+/dEj/vnJH/71x + Rv+9cEb/vG5F/7ttRP+NYTv/AAAAJAAAAAz///8A////AAAAAAwAAAAkjWE7/71vRf++cEb/v3JH/79z + R//AdUn/wXZK/8J4S//DeUv/xHtN/8V8Tf/FfU7/xn1O/8Z+Tv/GfU7/xX1O/8V8Tf/Ee03/w3lL/8J4 + S//Bdkr/wHVJ/79zR/+/ckf/vnBG/41hO/8AAAAkAAAADP///wD///8AAAAADAAAACSNYTv/v3JI/79z + SP/AdUr/wXdL/8N5TP/Ee03/xX1P/8Z+T//HgFD/x4FR/8iCUv/Ig1L/yINS/8iDUv/IglL/x4FR/8eA + UP/Gfk//xX1P/8R7Tf/DeUz/wXdL/8B1Sv+/c0j/jWE7/wAAACQAAAAM////AP///wAAAAAMAAAAJI1h + O//XpYn/16aJ/9iniv/ZqYv/2aqM/9usjf/brY7/3K6O/9ywj//dsZD/3bKQ/96ykf/espH/3rKR/92y + kP/dsZD/3LCP/9yujv/brY7/26yN/9mqjP/ZqYv/2KeK/9emif+NYTv/AAAAJAAAAAz///8A////AAAA + AAwAAAAkjWE7/9eniv/YqIv/2aqM/9qsjf/brY7/3K+P/9ywkP/dspH/3rOS/960k//ftZP/37WU/9+1 + lP/ftZT/37WT/960k//es5L/3bKR/9ywkP/cr4//262O/9qsjf/Zqoz/2KiL/41hO/8AAAAkAAAADP// + /wD///8AAAAADAAAACSNYTv/2amL/9mqjP/arI3/266O/9ywkP/dspH/3rOS/961k//gt5T/4LiV/+C5 + lv/huZb/4bmW/+G5lv/guZb/4LiV/+C3lP/etZP/3rOS/92ykf/csJD/266O/9qsjf/Zqoz/jWE7/wAA + ACQAAAAM////AP///wAAAAAMAAAAJI1hO//aq4z/26yN/9yujv/csJD/3rKR/960kv/gtpT/4LiV/+G6 + lv/iu5b/4ryX/+O9l//jvZj/472X/+K8l//iu5b/4bqW/+C4lf/gtpT/3rSS/96ykf/csJD/3K6O/9us + jf+NYTv/AAAAJAAAAAz///8A////AAAAAAsAAAAijWE7/9usjv/cro//3LCQ/96ykv/etJP/4LaU/+C4 + lv/iupf/4ryY/+O+mf/kv5r/5MCb/+TAm//kwJv/5L+a/+O+mf/ivJj/4rqX/+C4lv/gtpT/3rST/96y + kv/csJD/3K6P/41hO/8AAAAiAAAAC////wD///8AAAAACgAAAB2NYTv///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////jWE7/wAAAB0AAAAK////AP///wAAAAAHAAAAFo1hO///////3qqB//// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////3qqB//////+NYTv/AAAAFgAAAAf///8A////AAAAAAQAAAANjWE7//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////41hO/8AAAANAAAABP///wD///8AAAAAAgAA + AAeJXjmbjWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41h + O/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/iV45mwAAAAcAAAAC////AP// + /wAAAAABAAAAAgAAAAQAAAAHAAAACgAAAAsAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA + AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAALAAAACgAAAAcAAAAEAAAAAgAA + AAH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8AgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAH///////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/VMSMonitor/Frm_monitor.vb b/VMSMonitor/Frm_monitor.vb new file mode 100644 index 0000000..b70f726 --- /dev/null +++ b/VMSMonitor/Frm_monitor.vb @@ -0,0 +1,337 @@ +Public Class Frm_monitor + + Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer + Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer + Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) + Private Const WM_QUIT = &H12 + Private Const WM_CLOSE = &H10 + + Private ison As Boolean = False + Private ismonitor As Boolean = False + + Dim totaltime As TimeSpan + Dim ercnt As Integer = 0 + Dim starttime As Integer = 0 + + Dim Xml As ArinXML + + Dim Createfile As String = "" + Dim CreateStart As String = "" + Dim killon As Boolean = False + + Dim fclose As Boolean = False + Dim autoexit As Short = 0 + Dim runtime As String = Now.ToString + Dim conffile As String = My.Application.Info.DirectoryPath & "\error.xml" + Dim AutoClose As Boolean = False + + Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If Not AutoClose Then + If MsgBox("정말로 종료하시겠습니까?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then + Else + e.Cancel = True + End If + End If + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Me.ProgressBar1.Minimum = 0 + Me.ProgressBar1.Maximum = 6 + + Dim a As New System.Text.StringBuilder + a.AppendLine("이 프로그램은 VMS의 실행을 감지하는 프로그램입니다") + a.AppendLine("VMS프로그램이 오류발생으로 작동을 멈출경우") + a.AppendLine("초기화 및 재실행을 수행합니다.") + a.AppendLine() + Me.RichTextBox1.Text = a.ToString & vbCrLf + totaltime = Nothing + ercnt = 0 + Me.bt_monitor.PerformClick() + End Sub + + Public Function RunProcess(ByVal 파일이름 As String, Optional ByVal 실행옵션 As String = vbNullString) As Boolean + + Try + Dim RunP As Process + Dim B As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo + + If FileIO.FileSystem.FileExists(파일이름) Then + B.FileName = 파일이름 + B.WorkingDirectory = 파일이름.Substring(0, 파일이름.LastIndexOf("\")) + B.Arguments = 실행옵션 + RunP = Process.Start(B) + Return True + Else + Return False + End If + Catch ex As Exception + Msg("ERROR_RUNPROCESS->" & ex.Message.ToString) + Return False + End Try + + + End Function + Public Function checkmyproc() As Process + Try + Dim Prc() As Process = Process.GetProcesses '//현재프로세스배열을 가져온다. + Dim MyPrc As Process + For Each MyPrc In Prc + If MyPrc.ProcessName.ToUpper.IndexOf("VMS.NET") <> -1 And MyPrc.ProcessName.ToUpper.IndexOf("VSHOST") = -1 Then + Return MyPrc + End If + Next + Return Nothing + Catch ex As Exception + Msg("ERROR_CHECKMYPROC->" & ex.Message.ToString) + Return Nothing + End Try + + End Function + Public Sub KillMyProc(ByVal 클래스명 As String) + Try + Dim Np As IntPtr + Np = FindWindow(클래스명, vbNullString) + 'Me.lstOutput.Items.Add("WHND:" & Np.ToInt32.ToString) + If Np = 0 Then + 'Form_Standard.MDIMessage.Text = "Cannot Find :" & 클래스명 + Exit Sub + End If + PostMessage(Np.ToInt32, WM_QUIT, 0&, 0&) + Sleep(500) + Catch ex As Exception + Msg("ERROR_KIMMMYPROC->" & ex.Message.ToString) + End Try + + End Sub + Private Sub Msg(ByVal m As String) + If Me.RichTextBox1.Text.Length > 10000 Then + Try + My.Computer.FileSystem.WriteAllText(My.Application.Info.DirectoryPath & "\" & Now.ToString("yyyyMMdd") & ".txt", Me.RichTextBox1.Text, True) + Catch ex As Exception + + End Try + Me.RichTextBox1.Text = "" + End If + + Me.RichTextBox1.AppendText("[" & Now.ToString("yyyy-MM-dd HH:mm:ss") & "] " & m & vbCrLf) + My.Application.DoEvents() + End Sub + Public Sub oKillMyProc(ByVal 프로세스명 As String) + Try + Dim Prc() As Process = Process.GetProcesses '//현재프로세스배열을 가져온다. + Dim MyPrc As Process + Dim 파일명 As String = 프로세스명.Substring(프로세스명.LastIndexOf("\") + 1).ToUpper + For Each MyPrc In Prc + If (MyPrc.ProcessName & ".EXE").ToUpper = 파일명 Then + + ' MsgBox(MyPrc.StartInfo.Fileame) + MyPrc.Kill() + End If + Next + Sleep(500) + Catch ex As Exception + Msg("ERROR_OKILLMYPROC->" & ex.Message.ToString) + End Try + + End Sub + + Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick + Timer1.Enabled = False + + Dim Prc As Process = checkmyproc() + If Prc Is Nothing Then + + '//프로세스가 없다. + If Me.Timer2.Enabled = False Then + autoexit += 1 + If autoexit > 3 Then + AutoClose = True + Me.Close() + End If + End If + + ison = False + Me.bt_kill.Enabled = False + Me.bt_run.Enabled = True + 'Me.Text = "noprocee" + Me.status_run.ForeColor = Color.Gray + If Me.starttime > 0 Then + Me.status_run.ForeColor = Color.Orange + End If + + + If System.IO.File.Exists(conffile) Then ''//에러파일이 존재하는지 확인한다. + Dim buffer = My.Computer.FileSystem.ReadAllText(conffile, System.Text.Encoding.Default).Trim + If buffer <> "" Then + If buffer.Substring(0, 5) = "ERROR" Then + If Me.Timer2.Enabled = False Then '//작동중이아니라면 실행한다. + Me.ProgressBar1.ForeColor = Color.Green + Me.Timer2.Enabled = True + Me.Timer2.Start() + End If + End If + End If + End If + + Else + + autoexit = 0 + Me.status_run.ForeColor = Color.Blue + Me.bt_kill.Enabled = True + Me.bt_run.Enabled = False + + ison = True + Try + dispalyinfo(Prc) + Catch ex As Exception + + End Try + End If + + Timer1.Enabled = True + + End Sub + + Private Sub dispalyinfo(ByVal prc As Process) + Try + + Dim Eron As Boolean = False + If System.IO.File.Exists(conffile) Then ''//에러파일이 존재하는지 확인한다. + Dim buffer = My.Computer.FileSystem.ReadAllText(conffile, System.Text.Encoding.Default).Trim + If buffer <> "" Then + If buffer.Substring(0, 5) = "ERROR" Then + If Me.Timer2.Enabled = False Then '//작동중이아니라면 실행한다. + Eron = True + End If + End If + End If + End If + + + + If Eron Then + Msg("VMS로부터 에러발생을 확인하였습니다") + killon = True + Else + killon = False + End If + + 'Buf.AppendLine("PROCESS NAME:" & prc.ProcessName) + 'Buf.AppendLine("Start Time:" & prc.StartTime.ToString()) + 'Buf.AppendLine("Total time:" & prc.TotalProcessorTime.ToString()) + 'Buf.AppendLine("SessionID:" & prc.SessionId.ToString) + 'Buf.AppendLine("Response:" & prc.Responding) + 'Buf.AppendLine("Handle:" & prc.Handle.ToString) + 'Buf.AppendLine("Handle Count:" & prc.HandleCount) + 'Buf.AppendLine("prc.HasExited:" & prc.HasExited) + 'Buf.AppendLine("prc.Id:" & prc.Id) + 'Buf.AppendLine("prc.MainWindowTitle:" & prc.MainWindowTitle) + 'Buf.AppendLine("prc.PrivilegedProcessorTime.ToString:" & prc.PrivilegedProcessorTime.ToString) + 'Buf.AppendLine("prc.UserProcessorTime.ToString:" & prc.UserProcessorTime.ToString) + 'Buf.AppendLine("Error Count:" & Me.ercnt) + + + If killon Then '//10초를 넘도록 + + + Me.WindowState = FormWindowState.Normal + + Me.RichTextBox1.BackColor = Color.Orange + Msg("VMS 재실쟁 대기중 : 잠시만 기다려주세요.") + + Me.Hide() + Me.Show() + My.Application.DoEvents() + + bt_kill.PerformClick() + + Sleep(2000) + + Try + System.IO.File.Delete(conffile) + Catch ex As Exception + + End Try + + End If + + + Catch ex As Exception + Msg("ERROR_DISPLAYINFO_->" & ex.Message.ToString) + End Try + End Sub + + Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick + starttime += 1 + Me.ProgressBar1.Value = starttime + If starttime > 5 Then + Me.ProgressBar1.Value = 0 + Me.ProgressBar1.ForeColor = Color.Red + Me.bt_run.PerformClick() + starttime = 0 + Me.Timer2.Stop() + Me.Timer2.Enabled = False + End If + End Sub + + + Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_monitor.Click + Me.ProgressBar1.Value = 0 + + If Me.ismonitor Then + Me.Timer1.Stop() + Me.Timer1.Enabled = False + Me.ismonitor = False + Me.bt_monitor.Text = "모니터 시작" + Msg("모니터링이 종료되었습니다.") + Me.status_monitor.ForeColor = Color.Gray + Else + Me.Timer1.Enabled = True + Me.Timer1.Start() + Me.ismonitor = True + Me.bt_monitor.Text = "모니터 종료" + Msg("모니터링이 시작되었습니다.") + Me.status_monitor.ForeColor = Color.Blue + End If + End Sub + + Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_run.Click + If Me.ison Then + MsgBox("중복실행이므로 실행을 할 수 없습니다", MsgBoxStyle.Information, "확인") + Else + RunProcess(My.Application.Info.DirectoryPath & "\cVMS.NET.exe", "") + Msg("VMS프로그램을 실행합니다") + Me.WindowState = FormWindowState.Minimized + Me.RichTextBox1.BackColor = Nothing + End If + End Sub + + Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_kill.Click + + Dim Prc As Process = checkmyproc() + If Not Prc Is Nothing Then + Try + + Try + System.IO.File.Delete(conffile) + Catch ex As Exception + + End Try + + Prc.Kill() + Me.ProgressBar1.ForeColor = Color.Green + starttime = 0 + Me.Timer2.Enabled = True + Me.Timer2.Start() + Catch ex As Exception + Msg("ERROR_BTKILL_->" & ex.Message.ToString) + End Try + End If + End Sub + + Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click + Me.fclose = True + End + End Sub + +End Class diff --git a/VMSMonitor/My Project/Application.Designer.vb b/VMSMonitor/My Project/Application.Designer.vb new file mode 100644 index 0000000..3c290b8 --- /dev/null +++ b/VMSMonitor/My Project/Application.Designer.vb @@ -0,0 +1,44 @@ +'------------------------------------------------------------------------------ +' +' 이 코드는 도구를 사용하여 생성되었습니다. +' 런타임 버전:4.0.30319.42000 +' +' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +' 이러한 변경 내용이 손실됩니다. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + '참고: 자동으로 생성되므로 직접 이 파일을 수정하지 마세요. 변경할 사항이 있거나 + ' 파일에서 빌드 오류가 발생하는 경우 프로젝트 디자이너로 + ' 이동([프로젝트 속성]으로 이동하거나 솔루션 탐색기에서 My Project 노드를 + '두 번 클릭)한 다음 [애플리케이션] 탭에서 변경하세요. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.VMSMonitor.Frm_monitor + End Sub + + _ + Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean + Me.MinimumSplashScreenDisplayTime = 0 + Return MyBase.OnInitialize(commandLineArgs) + End Function + End Class +End Namespace diff --git a/VMSMonitor/My Project/Application.myapp b/VMSMonitor/My Project/Application.myapp new file mode 100644 index 0000000..69e0db4 --- /dev/null +++ b/VMSMonitor/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + true + Frm_monitor + false + 0 + true + 0 + true + \ No newline at end of file diff --git a/VMSMonitor/My Project/AssemblyInfo.vb b/VMSMonitor/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..daae45f --- /dev/null +++ b/VMSMonitor/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +' 어셈블리와 관련된 정보를 수정하려면 +' 이 특성 값을 변경하십시오. + +' 어셈블리 특성 값을 검토합니다. + + + + + + + + + + +'이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. + + +' 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +' +' 주 버전 +' 부 버전 +' 빌드 번호 +' 수정 버전 +' +' 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +' 지정되도록 할 수 있습니다. +' + + + diff --git a/VMSMonitor/My Project/Resources.Designer.vb b/VMSMonitor/My Project/Resources.Designer.vb new file mode 100644 index 0000000..2ac3469 --- /dev/null +++ b/VMSMonitor/My Project/Resources.Designer.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' 이 코드는 도구를 사용하여 생성되었습니다. +' 런타임 버전:4.0.30319.42000 +' +' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +' 이러한 변경 내용이 손실됩니다. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + '이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + '클래스에서 자동으로 생성되었습니다. + '멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + '다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + ''' + ''' 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("VMSMonitor.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + ''' 재정의합니다. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VMSMonitor/My Project/Resources.resx b/VMSMonitor/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VMSMonitor/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VMSMonitor/My Project/Settings.Designer.vb b/VMSMonitor/My Project/Settings.Designer.vb new file mode 100644 index 0000000..c496993 --- /dev/null +++ b/VMSMonitor/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' 이 코드는 도구를 사용하여 생성되었습니다. +' 런타임 버전:4.0.30319.42000 +' +' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +' 이러한 변경 내용이 손실됩니다. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings 자동 저장 기능" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.VMSMonitor.My.MySettings + Get + Return Global.VMSMonitor.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VMSMonitor/My Project/Settings.settings b/VMSMonitor/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/VMSMonitor/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/VMSMonitor/VMSMonitor.sln b/VMSMonitor/VMSMonitor.sln new file mode 100644 index 0000000..5a17a8e --- /dev/null +++ b/VMSMonitor/VMSMonitor.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VMSMonitor", "VMSMonitor.vbproj", "{FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}.Debug|x86.ActiveCfg = Debug|x86 + {FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}.Debug|x86.Build.0 = Debug|x86 + {FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}.Release|x86.ActiveCfg = Release|x86 + {FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/VMSMonitor/VMSMonitor.vbproj b/VMSMonitor/VMSMonitor.vbproj new file mode 100644 index 0000000..171c883 --- /dev/null +++ b/VMSMonitor/VMSMonitor.vbproj @@ -0,0 +1,148 @@ + + + + Debug + x86 + + + 2.0 + {FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79} + WinExe + VMSMonitor.My.MyApplication + VMSMonitor + VMSMonitor + 512 + WindowsForms + v4.8 + + + + + AnyCPU + true + full + true + true + bin\Debug\ + + + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + x86 + pdbonly + false + true + true + ..\cVMS.NET\bin\Debug\ + + + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + monitor.ico + + + + + + + + + + + + + + + + + + + + + + + Form + + + Frm_monitor.vb + Form + + + + True + Application.myapp + True + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + Frm_monitor.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + for %25%25F in ("$(TargetDir)*.exe") do ( + + xcopy "%25%25F" "..\..\..\cVMS.NET_CS\bin\Debug" /Y /R /D + + echo Copied %25%25F to "..\..\..\cVMS.NET_CS\bin\Debug" + +) + + + + \ No newline at end of file diff --git a/VMSMonitor/monitor.ico b/VMSMonitor/monitor.ico new file mode 100644 index 0000000000000000000000000000000000000000..a20acfe4ed45d337bb4a85b2cc2cf81cd95886ae GIT binary patch literal 4286 zcmeH~yH6BR6vhWaLIRjr(HIg!C~WL()Tqcq5K+{^(!{7yL_t7&L@}ThDuRIcpjH7< z5kdCJL*>y@2`sFO(&#^N{Jyy}+6fgwWpNU{=t*xf$V$`r>?gbF`1by`le;95B7-a_UE}lK zzp@&^-k8NLz z&;5|8@ww0Q85=vZ*U``U8TlL0L$A|4Ek5^kR!sic0vU@T&$)f#sZ#P*6^i$K3}N2R zVSX$hH@+7PT|RJp)rI1(E)xHRA_-h9mOxFh1Z~xpIDd1Vapp0fb*$I@-1t7Tj>I!y9Df%W;uA(_4jH64~2>Xtfl z%z4I{$9$)k2DN7Nb>mOet96}hSR(JBis@5*BTJy{&MFQLIU3B7(G%Wt5ec3FAXAuGcj5*~i& zh-1z(&OGL`j`j4RAAMc<$Xn=B+$Ed)7M??7g7>~t!XsVsb(HGX)Md^y&OGKXqmF&h zhkel3jc;GG$u_T7z0V;kwm;bvZ{$=a~|<9^7KAJ@UeSv<1f8Z>#f$>TH}#U ziF{DpRbP*M^Fx8h@;yjBG0z-xo^i7exd;B`9%#n@;fWHi!}a(DL&mjJ literal 0 HcmV?d00001 diff --git a/VMSMonitor/system.ico b/VMSMonitor/system.ico new file mode 100644 index 0000000000000000000000000000000000000000..d05ee541897b3a8e9f2bef3ddd3b7352b3e98e63 GIT binary patch literal 18718 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 V8-1JEmFUmN$|913-wC?*{{XbRO~wEK literal 0 HcmV?d00001 diff --git a/Viewer/AlarmViewer/AlarmViewer.csproj b/Viewer/AlarmViewer/AlarmViewer.csproj new file mode 100644 index 0000000..07ecc35 --- /dev/null +++ b/Viewer/AlarmViewer/AlarmViewer.csproj @@ -0,0 +1,232 @@ + + + + Debug + x86 + + + 2.0 + {310693F9-1234-442A-A3F9-343F8A0BD541} + WinExe + + + Project + AlarmViewer + 512 + WindowsForms + v4.8 + + + 게시\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + + + x64 + true + full + true + true + ..\..\cVMS.NET_CS\bin\Debug\Alarmviewer\ + + + 1591,660,661 + false + + + x86 + pdbonly + false + true + true + bin\Debug\ + + + 1591,660,661 + false + + + On + + + Binary + + + Off + + + On + + + Alert.ico + + + false + + + LocalIntranet + + + false + + + Properties\app.manifest + + + false + + + + False + ..\..\DLL\arCommUtil.dll + + + + + + + + + + + + ..\..\packages\System.Drawing.Common.8.0.8\lib\net462\System.Drawing.Common.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + + + + + + + + {14e8c9a5-013e-49ba-b435-efefc77dd623} + CommData + + + + + + Form + + + fLog.cs + + + DocumentElement.xsd + + + DocumentElement.xsd + True + True + + + + + Frm_Alamlist.cs + + + Form + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + + + + fLog.cs + + + Frm_Alamlist.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + DocumentElement.xsd + + + MSDataSetGenerator + DocumentElement.Designer.cs + vmsnet + Designer + + + DocumentElement.xsd + + + + + + + + + + + + + + + + + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + False + .NET Framework 3.5 SP1 + false + + + + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/Alert.ico b/Viewer/AlarmViewer/Alert.ico new file mode 100644 index 0000000000000000000000000000000000000000..62233153eb4fcc0f4fcf5678211f283f437aa579 GIT binary patch literal 15086 zcmeI33v^c1mB+sr6crpEY6lAl3W$P5iV)s}KtRwCL>{75w4>G9S_Nf%l(wLq>Z%>v zL8~*`8Cw}U>X_As2n8(<722`df|XZAAqa|2iw%!KEy+Fe`+fIb5<-9k^3AYj&0TA+ zlk?j9zaRH}_ndu_$>e47Gd+7|C_84J>XOM6WHOnK9g}*?OlAXZEh+8)Vv|hf9tNDv z7^Y;dhHU@8{IvVYu4AAk&~ea-P;=;{qm0BPwx*C+kI^TVkhtwX6>1N4g3f}v9wj6e zF^Nr#VimL4^OO2%l-;0#&`78RDm_YQOoB;l-6656gMK&`Y7KR5_V~6*nMXdj?r5eH zf3$5fSkHz|hV+5-DX7N@b3UBb=Gn@%?dFGYG}38vt2Q?K*NQvEnqc-_5dSGq_rL!6 zo~0@7_P+?>bg1Kk5YBu)gf1_HaL%F-&RrTp&zC~zvn+)EzYbyWZ$c<~HH4AB4dKES zA&hxFgmJ$QVf?BPE?phMWozQny6yHm&hgH3zI@~-U->IXdCFD3I8t1v&8=Jw)^j1> z1F;)JEufBV=S8d2an9+={LTsP9`HT?PE`+gQ5#yEXLb!H)2w#3XglQW? zxb2+~W^4{&=DQ)xdM_@m+it((9Pd2m%SV3lmA`V7ryge^zcV;$=&(bqP)o?z_Z>bS zYTa&LG$+MhusDQH3$X#z<(DCJUlQA=U^zB>C4^$_y)uML-iU2{)gMB*?k%uw0AqOw z)4_T>bjOysv~Iioj&r=ealU-yCtvyN2jwYO`MtnmJS5nbXR*eZ#hwT0gX7yhS9u;| zDjhc-Ug~{@__0AZ@xK`RdEkG9FbrFbCJrt}{v>c{%WK{Y;RbB`l|+YIH^q8birsem z9p`xGIbS~VlW#VTkfXe83?Y9w{?L|L{PQB$MeQx-yyQ1P9pbfge)xgo#^T4m_)z_g zp|kO&KJ87M4nWRO5$A7e+p@>h=X^#5RdaS44{+s_YvIvw(1 z?EQ|P$lA~kTj)DuQJ?mJ-#$L5rGtJjHh%bi*yov!{cX3uCU)1MeQck`4)T0=zl46B zkq@4q91?gkfU&Kion4ssMSP$g^h4@{&tfCrGvhV8cH)2Ss6CAdU$_@j7FBcKt`!bp3aJ8aL^hsjq9Ek4Rvn;LKZolIk?>y(rM|;Ru{>mCgeOzq& zPrz|TL-8j%+>-SHath%m-)`8Z$719Wr+rx01|WL~7>41e5yZkMa9s$#5@KTvSWDFh zvTnQmj&r>8oG%~w$yfg8LSI4OB<>$P9PA1H{f=|I^PDdq`N>!8Bhl&N*!DY--{x@f zCpuiG4<;gW1hRU-zo+=IRRR9)kKG2*J`|b5uxBwelCe`+AJb>$cD@hP4YJ>Hj(48( znq6d&U3zeeg4e$?Vp6&KK&hgH3zI^28Z_O>(-fvFi-O(7>YxrP=K9~-!LCA4U9S98q zgX^^K_fT*RgZy5ZS_^+M_-(h}agKMM^W`IHpCsoV;ZJlZ)dzmp`7R7W-VkIL zLPMb8XlxKw6imhdgq2ikuM>*HwfjH*Sp zjV4x%v-DX_{9j0$?RCv5;eG#lwe7ELOw6@;f&Y1Z@QpR`w@E3o>!REF&Pks&;IC^; z+U9p|Vte<0`L$&>W*z?L>w`)7z;8R>Ip2xeGz0z8XD#?^_owws`8~U9-QKt#*O*uj z#0&h-oPiI%^@liaFXwl)Hr>THe)_E2xqp8;ej4w2@_qlxf#fxIJNUaomDzjhBY?MgYg6ZKP&e;>*GC!F;)Wkq$neY5e6>n^%Ccwd+U z{MmixW%%GBa2XdV{h&OApK^YvZ_>7J)BiBzu>E203v-~uEgkW}qr{Bw?ftAt2O@P! zY=7AM!W`hw?lbkl4>xgkf_>{E?XHg4-hE-)#>R0Z{J?XKYvGT;uZ_i7oBnO{UfUn> zzVJw})-@OW?lafvgMZ%=`$1o%G>5+*gV3?j_JwufIFdH-PtXTXyc2@9{xM}rKYe%a zdOzbxWaN4-I=tq$+1&T>1DK^U=y7yGw?^L=Hnu+CAE6JPCWhvt!`!VQEc(yAai5cY zVGeXyt5v-_O?m2cx*==1+P_qRa&iCbAU%dWi2s(8fVmnokL8MUaa`q;8Vby;b>u(B#G zBkMCOtI{%950zDW%UQs(o|a29nSATz)n!xb2u#Zs))CyHW{JQ;>uHI=nby-1fx-IT za#mhkPs^qGaXl@|o5uBuv}_UAKTgXIalJArqnUACiz_ECy{FX?8VViio)&r6ytZ-f zwF#y9<6M{d$jRoYl?xpYwT36wp~H-BRLJ<3dEdv~lOcWB=9H^pxh&(N}W z8^}lW;@r6ZuQ*TU+iMi(O6Co{8!}}r_Z8UlePKQ4RFt3NtYi{r4W;A~y)!a|eXRM< z^InYai@$#iBIU8r$=q>ytu6AqG0q&3_XM2l9hzaBL6>r_G8wsl z!=BR|zIP|?;M?!3d{22FWa`HF9>Ns%+7rRy-HD-mvwLsC{AE_37vkSdgf0?vd&a*mWF*E z`i7tLe5kwt8>D%CeV`4rW%h0n7$)I|sqClU-pyGChZ){UP;X_I;HOk~?=z^owluF( zup~t2cf$o>AL{{npU$8p$7n{{V?PvWO9m6dm$LjefMVWdD;&A7t_|B`~-YIRZCo*RdDto4nERmJ&~X0 zga?2jn-8XaJn~my`#=8$`{Vm;4wZKEr{;cp<9B77o9VkG>_PU>I)&BI$k;qEl$ita zedvuI@CXC=dvJnb9Clby5kdv>Zzb-`fto)w|7q@%SPOli@w_{H=P!XLH<;`HFuvdE z^TVbqu&Wr%ZCd&c>l@EV_sS>s%wO7W-p{*1j-SAo^B0E?&}BsZCC4L?e**M~?}D+I z<|2n9qZm@JRQ`0{N%MBLo3|@MzVER6Wn@1MpOYFY-|@_CM;ugWgNyK^xwe!%n|&So zZ^!<3V*j)~EzKMDTM~97yFvGJYU2dML*~Xm2L^LtDNTX@?}cEwhV+AB2Jb=TOnhw)^=`gD-r5zyF62MDF>W&sZ(125{QljB@UG8T^f{e1 zblErY_1{7I+;b3f(B@Rc1u{^aKPJoRZx-uD-2Z{OJR>f#56lFM0tfA(Go&u)!#Fv$J_?MJlM z)g|jdZCw_IdH(Jg^W5qFEwcYd&!LbvlHAUgv!4%tMEA)D!kNo<8$!&v&ACuZ_NX6pS{Sh}i`b7u zp=4zgu3Q_jAC1CI8zS~#5&w4(v0se%_K(=}MS=f)*uh*eAJg`^s{0C-MC?f-_SDRO zJqlCSMd7ycD138sJb(PE>iK=)(SBalL(auKnYQzz)_oR7fA0E1#Q!ox?8zebgi&~4 zOB8;wEnDnMz~lNg5&M^jyR%XF zEOG}jrt`w+9_7}2;MctG;^=*FaIX*y@R*J6&u)#lW63;l^`;LQA2PO8&AI8{V7R%2 zv4zMO#`xK9G5@`YeG>d=E5SCM7DRWZ<7=1jZ8~siwCQ57j$!P>$e;gy{C6q!k;|g3 zjA>STUd?*D`O)XE!B$s8k8g^|#l(MKzarxQYoagL99!4l@Xs%LDO&Tl_`B@gC@lX| z#2t%>Z}n&cef7F02Zr%8R!8BVz&{5J-y#-}J*6&rb+sWU?}BB~Zywzkg-4((UX50X ztFEyJY6C;@1K3~rT^B}&bx*6`l4t>bTqd3a$vId%^Z3R+l+DVDGMQ?cl~-1@G(V>D are#G^MT?j|?od`FRTh>NMbgZ&qW=a@HT}2% literal 0 HcmV?d00001 diff --git a/Viewer/AlarmViewer/Class/CFDBA.cs b/Viewer/AlarmViewer/Class/CFDBA.cs new file mode 100644 index 0000000..9ea9c3c --- /dev/null +++ b/Viewer/AlarmViewer/Class/CFDBA.cs @@ -0,0 +1,363 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using AR; +using vmsnet; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Project; +using System.IO; + + +namespace vmsnet +{ + public class CFDBA + { + string _BaseDir; + + public class ReadProgessArgs : EventArgs + { + public double value { get; set; } + public ReadProgessArgs(double value) + { + this.value = value; + } + } + public class MessageArgs : EventArgs + { + public string Message { get; set; } + public MessageArgs(string value) + { + Message = value; + } + } + + //public event EventHandler ReadingProgressValueChanged; + public event EventHandler Message; + + public CFDBA(params string[] dirarrays) + { + var dir = System.IO.Path.Combine(dirarrays); + _BaseDir = dir; + if (System.IO.Directory.Exists(_BaseDir) == false) + { + System.IO.Directory.CreateDirectory(_BaseDir); + } + } + + + /// + /// 데이터를 기록합니다. + /// + /// 기록시간(파일명이 결정됨) + /// 기록할테이블명(파일명) + /// 기록할데이터(열데이터가 틀려서 고정할 수 없다) + /// + /// + public bool InsertData(DateTime time, int ch, COMM.EALAMRAISETYPE raiseType, float volt, COMM.EALAMTYPE almType, float maxvolt, float minvolt, string am, string am2) + { + string DayStr = time.ToString("yyyyMMdd"); + System.IO.FileInfo fi = new System.IO.FileInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6) + "\\" + (time.Hour + 1).ToString("00") + ".txt"); + if (!fi.Directory.Exists) + { + try + { + fi.Directory.Create(); + } + catch + { + PUB.log.AddE($"fail:make directory value={fi.Directory.FullName}"); + return false; + } + } + + System.Text.StringBuilder StrBuf = new System.Text.StringBuilder(); + + ////파일이 없다면 제목줄을 생성해준다. + if (!fi.Exists) + { + + ////헤더를 추가해야한다. + System.Text.StringBuilder Header = new System.Text.StringBuilder(); + Header.Append("\t" + "ATIME CH RTYPE VOLT ATYPE MAXVOLT MINVOLT AM AM2"); + Header.AppendLine(); ////제목줄을 한칸띄운다 + StrBuf.Append(Header.ToString()); + } + + ////실제데이터를 추가 + int timeNumber = (int)(PUB.get_TimeNumber(time)); // time.Hour * 3600 + time.Minute * 60 + time.Second + StrBuf.AppendLine($"\t{timeNumber}\t{ch}\t{(int)raiseType}\t{volt}\t{(int)almType}\t{maxvolt}\t{minvolt}\t{am}\t{am2}"); + + try + { + //fi.WriteText(StrBuf.ToString(), true); // 이전은 단독모드 + /* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */ + using (FileStream fs = new FileStream(fi.FullName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)) + using (StreamWriter writer = new StreamWriter(fs)) + { writer.Write(StrBuf.ToString()); } + + StrBuf.Clear(); + } + catch (Exception) + { + PUB.log.AddE($"fail:write aldata file={fi.FullName}"); + return false; + } + + return true; + } + + ////기간내 존재하는 파일을 반환합니다(테이블단위) + public List GetfileS(DateTime sd, DateTime ed) + { + + List retval = new List(); + int SttYear = sd.Year; + int EndYear = ed.Year; + if (EndYear < SttYear) + { + return retval; + } + + int SttMonth = sd.Month; + int EndMonth = ed.Month; + + int SttDay = sd.Day; + int EndDay = ed.Day; + + int si = System.Convert.ToInt32(sd.ToString("yyyyMMdd")); + int ei = System.Convert.ToInt32(ed.ToString("yyyyMMdd")); + bool SameDay = si == ei ? true : false; + + ////20140101 + for (int dayinfo = si; dayinfo <= ei; dayinfo++) + { + string DayStr = dayinfo.ToString(); + System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6)); + if (!dir.Exists) + { + continue; + } + ////폴더가 존재하므로 해당 테이블파일이 존재하는지 확인한다 + + if (SameDay) + { + ////동일날짜라면 해당 시간대만 조회하면됨 + for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt"; + if (System.IO.File.Exists(fn)) + { + retval.Add(fn); + } + } + } + else + { + if (dayinfo == si) ////시작일이라면 시작시간부터 24시까지 이다. + { + for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= 23; hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt"; + if (System.IO.File.Exists(fn)) + { + retval.Add(fn); + } + } + } + else if (dayinfo == ei) ////종료일이라면 1~ 종료시까지이다. + { + for (int hourinfo = 0; hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt"; + if (System.IO.File.Exists(fn)) + { + retval.Add(fn); + } + } + } + else + { + ////중간에 끼어있는 날짜라면 1~24모두가 속한다. + for (int hourinfo = 0; hourinfo <= 23; hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt"; + if (System.IO.File.Exists(fn)) + { + retval.Add(fn); + } + } + } + } + } + retval.Sort(); + return retval; + } + + + /// + /// 이번달이후의 데이터를 조회합니다. + /// + /// + /// + /// + public (TimeSpan, DocumentElement.ALARMDataTable) GetAlarmData(int ch) + { + ////이번달이후의 데이터를 가져온다. + DateTime sd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01 00:00:00")); + DateTime ed = DateTime.Now; + return GetAlarmData(ch, sd, ed); + } + + public (TimeSpan, DocumentElement.ALARMDataTable) GetAlarmData(DateTime sd, DateTime ed) + { + return GetAlarmData(-1, sd, ed); + } + + public (TimeSpan, DocumentElement.ALARMDataTable) GetAlarmData(DateTime sd, DateTime ed, int rtypes, int rtypee) + { + return GetAlarmData(-1, sd, ed, rtypes, rtypee); + } + + public volatile bool cancel; + private readonly object lockObject = new object(); + + /// + /// 지정된시간사이의 데이터를 조회합니다. + /// + /// 시작시간(20120319161800) + /// 종료시간(년월일시분초) + /// + /// + public (TimeSpan, DocumentElement.ALARMDataTable) GetAlarmData(int ch, DateTime sd, DateTime ed, int rtypes = -1, int rtypee = -1) + { + DateTime dtStart = DateTime.Now; + List files = GetfileS(sd, ed); + + //전체파일의 내용을 버퍼에 담는다 + Dictionary lines = new Dictionary(); + + foreach (var fn in files) + { + lines.Add(fn, System.IO.File.ReadAllLines(fn)); + } + var totallines = lines.Sum(t => t.Value.Length); + Message?.Invoke(this, new MessageArgs($"total : {totallines} lines")); + + var progressMax = (double)totallines; + var progressVal = 0.0; + var currentline = 0; + var alertprogress = 0.0; + + + //ReadingProgressValueChanged?.Invoke(this, new ReadProgessArgs(0)); + + var alaramDT = new DocumentElement.ALARMDataTable(); + cancel = false; + try + { + foreach (var line in lines) + { + foreach (string linedata in line.Value) + { + + lock (lockObject) + { + if (cancel) + { + //Console.WriteLine("작업이 취소되었습니다."); + //token.ThrowIfCancellationRequested(); // OperationCanceledException을 발생시켜 작업을 종료합니다. + //return (new TimeSpan(0), null); + //cancel = true; + Message?.Invoke(this, new MessageArgs($"job cancel")); + break; + + } + } + + + + currentline += 1; + progressVal = currentline / progressMax; + + if (progressVal - alertprogress >= 5) + { + alertprogress = progressVal; + Message?.Invoke(this, new MessageArgs($"Progress : {progressVal} lines")); + //ReadingProgressValueChanged?.Invoke(this, new ReadProgessArgs(progressVal)); + } + + + if (linedata.Trim() == "") continue; + + string[] buf = linedata.Split(System.Convert.ToChar("\t")); + if (buf.GetUpperBound(0) < 8) continue; ////데이터수량이 안맞다. + + string chStr = buf[2]; + if (chStr.IsNumeric() == false) continue; ////채널정보가 일치하지 않는경우 + + if (ch > -1 && chStr != ch.ToString()) continue; + + if (rtypes != -1 && rtypee != -1) ////rtype도 검색한다. + { + if (buf[3] != rtypes.ToString() && buf[3] != rtypee.ToString()) continue; + } + + var v_atime = buf[1]; + var v_ch = short.Parse(buf[2]); + var v_rtype = short.Parse(buf[3]); + + //존재하는 데이터는 처리하지 않느낟. + if (alaramDT.Where(t => t.ATIME == v_atime && t.CH == v_ch && t.RTYPE == v_rtype).Any() == false) + { + var newdr = alaramDT.NewALARMRow(); + newdr.ATIME = v_atime;// buf[1]; + newdr.TIME = PUB.get_TimeString(decimal.Parse(newdr.ATIME), line.Key); + newdr.CH = v_ch;// short.Parse(buf[2]); + newdr.RTYPE = v_rtype;// short.Parse(buf[3]); + newdr.VOLT = float.Parse(buf[4]); + newdr.ATYPE = short.Parse(buf[5]); + newdr.MAXVOLT = float.Parse(buf[6]); + newdr.MINVOLT = float.Parse(buf[7]); + newdr.AM = buf[8]; + newdr.AM2 = buf[9]; + alaramDT.AddALARMRow(newdr); + } + else + { + //중복데이터 + PUB.log.AddAT($"알람중복데이터 atime={v_atime},ch={v_ch},rtype={v_rtype}"); + } + + + } + + if (cancel) + { + //Console.WriteLine("작업이 취소되었습니다."); + //token.ThrowIfCancellationRequested(); // OperationCanceledException을 발생시켜 작업을 종료합니다. + //return (new TimeSpan(0), null); + break; + } + } + } + catch (OperationCanceledException) + { + Console.WriteLine("작업이 정상적으로 취소되었습니다."); + throw; // 예외를 다시 던져 작업이 중지되도록 합니다. + } + + alaramDT.AcceptChanges(); + var ts = DateTime.Now - dtStart; + return (ts, alaramDT); + } + + + } + +} diff --git a/Viewer/AlarmViewer/Dialog/Frm_Alamlist.Designer.cs b/Viewer/AlarmViewer/Dialog/Frm_Alamlist.Designer.cs new file mode 100644 index 0000000..6e2c2c8 --- /dev/null +++ b/Viewer/AlarmViewer/Dialog/Frm_Alamlist.Designer.cs @@ -0,0 +1,480 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + +namespace vmsnet +{ + partial class Frm_Alamlist : System.Windows.Forms.Form + { + + //Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다. + [System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing) + { + try + { + if (disposing && components != null) + { + components.Dispose(); + } + } + finally + { + base.Dispose(disposing); + } + } + + //참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다. + //수정하려면 Windows Form 디자이너를 사용하십시오. + //코드 편집기를 사용하여 수정하지 마십시오. + [System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Frm_Alamlist)); + System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem("1900-01-01 00:00:00"); + this.bn = new System.Windows.Forms.BindingNavigator(); + this.BindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bs = new System.Windows.Forms.BindingSource(); + this.documentElement1 = new vmsnet.DocumentElement(); + this.BindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.BindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.BindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.BindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.BindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.BindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.BindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.BindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.BindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.BindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.ToolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.tb_search = new System.Windows.Forms.ToolStripTextBox(); + this.ToolStripLabel5 = new System.Windows.Forms.ToolStripLabel(); + this.ToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.prb1 = new System.Windows.Forms.ToolStripProgressBar(); + this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.cmb_gubun = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.tb_etime = new System.Windows.Forms.DateTimePicker(); + this.button1 = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.tb_stime = new System.Windows.Forms.DateTimePicker(); + this.label2 = new System.Windows.Forms.Label(); + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + ((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit(); + this.bn.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.documentElement1)).BeginInit(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // bn + // + this.bn.AddNewItem = this.BindingNavigatorAddNewItem; + this.bn.BindingSource = this.bs; + this.bn.CountItem = this.BindingNavigatorCountItem; + this.bn.DeleteItem = this.BindingNavigatorDeleteItem; + this.bn.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bn.ImageScalingSize = new System.Drawing.Size(24, 24); + this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.BindingNavigatorMoveFirstItem, + this.BindingNavigatorMovePreviousItem, + this.BindingNavigatorSeparator, + this.BindingNavigatorPositionItem, + this.BindingNavigatorCountItem, + this.BindingNavigatorSeparator1, + this.BindingNavigatorMoveNextItem, + this.BindingNavigatorMoveLastItem, + this.BindingNavigatorSeparator2, + this.BindingNavigatorAddNewItem, + this.BindingNavigatorDeleteItem, + this.ToolStripSeparator2, + this.tb_search, + this.ToolStripLabel5, + this.ToolStripSeparator1, + this.prb1, + this.toolStripLabel1}); + this.bn.Location = new System.Drawing.Point(0, 697); + this.bn.MoveFirstItem = this.BindingNavigatorMoveFirstItem; + this.bn.MoveLastItem = this.BindingNavigatorMoveLastItem; + this.bn.MoveNextItem = this.BindingNavigatorMoveNextItem; + this.bn.MovePreviousItem = this.BindingNavigatorMovePreviousItem; + this.bn.Name = "bn"; + this.bn.PositionItem = this.BindingNavigatorPositionItem; + this.bn.Size = new System.Drawing.Size(1193, 38); + this.bn.TabIndex = 5; + this.bn.Text = "BindingNavigator1"; + // + // BindingNavigatorAddNewItem + // + this.BindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.BindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorAddNewItem.Image"))); + this.BindingNavigatorAddNewItem.Name = "BindingNavigatorAddNewItem"; + this.BindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.BindingNavigatorAddNewItem.Size = new System.Drawing.Size(34, 33); + this.BindingNavigatorAddNewItem.Text = "새로 추가"; + this.BindingNavigatorAddNewItem.Visible = false; + // + // bs + // + this.bs.DataMember = "ALARM"; + this.bs.DataSource = this.documentElement1; + // + // documentElement1 + // + this.documentElement1.DataSetName = "DocumentElement"; + this.documentElement1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // BindingNavigatorCountItem + // + this.BindingNavigatorCountItem.Name = "BindingNavigatorCountItem"; + this.BindingNavigatorCountItem.Size = new System.Drawing.Size(39, 33); + this.BindingNavigatorCountItem.Text = "/{0}"; + this.BindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // BindingNavigatorDeleteItem + // + this.BindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.BindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorDeleteItem.Image"))); + this.BindingNavigatorDeleteItem.Name = "BindingNavigatorDeleteItem"; + this.BindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.BindingNavigatorDeleteItem.Size = new System.Drawing.Size(34, 33); + this.BindingNavigatorDeleteItem.Text = "삭제"; + this.BindingNavigatorDeleteItem.Visible = false; + // + // BindingNavigatorMoveFirstItem + // + this.BindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.BindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorMoveFirstItem.Image"))); + this.BindingNavigatorMoveFirstItem.Name = "BindingNavigatorMoveFirstItem"; + this.BindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.BindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(34, 33); + this.BindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // BindingNavigatorMovePreviousItem + // + this.BindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.BindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorMovePreviousItem.Image"))); + this.BindingNavigatorMovePreviousItem.Name = "BindingNavigatorMovePreviousItem"; + this.BindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.BindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(34, 33); + this.BindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // BindingNavigatorSeparator + // + this.BindingNavigatorSeparator.Name = "BindingNavigatorSeparator"; + this.BindingNavigatorSeparator.Size = new System.Drawing.Size(6, 38); + // + // BindingNavigatorPositionItem + // + this.BindingNavigatorPositionItem.AccessibleName = "위치"; + this.BindingNavigatorPositionItem.AutoSize = false; + this.BindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.BindingNavigatorPositionItem.Name = "BindingNavigatorPositionItem"; + this.BindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.BindingNavigatorPositionItem.Text = "0"; + this.BindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // BindingNavigatorSeparator1 + // + this.BindingNavigatorSeparator1.Name = "BindingNavigatorSeparator1"; + this.BindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 38); + // + // BindingNavigatorMoveNextItem + // + this.BindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.BindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorMoveNextItem.Image"))); + this.BindingNavigatorMoveNextItem.Name = "BindingNavigatorMoveNextItem"; + this.BindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.BindingNavigatorMoveNextItem.Size = new System.Drawing.Size(34, 33); + this.BindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // BindingNavigatorMoveLastItem + // + this.BindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.BindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorMoveLastItem.Image"))); + this.BindingNavigatorMoveLastItem.Name = "BindingNavigatorMoveLastItem"; + this.BindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.BindingNavigatorMoveLastItem.Size = new System.Drawing.Size(34, 33); + this.BindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // BindingNavigatorSeparator2 + // + this.BindingNavigatorSeparator2.Name = "BindingNavigatorSeparator2"; + this.BindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 38); + // + // ToolStripSeparator2 + // + this.ToolStripSeparator2.Name = "ToolStripSeparator2"; + this.ToolStripSeparator2.Size = new System.Drawing.Size(6, 38); + // + // tb_search + // + this.tb_search.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tb_search.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tb_search.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.tb_search.Name = "tb_search"; + this.tb_search.Size = new System.Drawing.Size(100, 38); + this.tb_search.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ToolStripTextBox1_KeyUp); + // + // ToolStripLabel5 + // + this.ToolStripLabel5.Name = "ToolStripLabel5"; + this.ToolStripLabel5.Size = new System.Drawing.Size(48, 33); + this.ToolStripLabel5.Text = "검색"; + // + // ToolStripSeparator1 + // + this.ToolStripSeparator1.Name = "ToolStripSeparator1"; + this.ToolStripSeparator1.Size = new System.Drawing.Size(6, 38); + // + // prb1 + // + this.prb1.Name = "prb1"; + this.prb1.Size = new System.Drawing.Size(100, 33); + // + // toolStripLabel1 + // + this.toolStripLabel1.Name = "toolStripLabel1"; + this.toolStripLabel1.Size = new System.Drawing.Size(48, 33); + this.toolStripLabel1.Text = "path"; + // + // panel1 + // + this.panel1.Controls.Add(this.cmb_gubun); + this.panel1.Controls.Add(this.label1); + this.panel1.Controls.Add(this.tb_etime); + this.panel1.Controls.Add(this.button1); + this.panel1.Controls.Add(this.label3); + this.panel1.Controls.Add(this.tb_stime); + this.panel1.Controls.Add(this.label2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(1193, 55); + this.panel1.TabIndex = 6; + // + // cmb_gubun + // + this.cmb_gubun.Dock = System.Windows.Forms.DockStyle.Left; + this.cmb_gubun.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmb_gubun.Font = new System.Drawing.Font("맑은 고딕", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.cmb_gubun.FormattingEnabled = true; + this.cmb_gubun.Items.AddRange(new object[] { + "High-Off", + "High-On", + "Low-Off", + "Low-On", + "A1-On", + "A1-Off", + "A2-On", + "A2-Off", + "Over-On", + "Over-Off"}); + this.cmb_gubun.Location = new System.Drawing.Point(756, 5); + this.cmb_gubun.Name = "cmb_gubun"; + this.cmb_gubun.Size = new System.Drawing.Size(104, 63); + this.cmb_gubun.TabIndex = 1; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Location = new System.Drawing.Point(695, 5); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(61, 45); + this.label1.TabIndex = 2; + this.label1.Text = "형태"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tb_etime + // + this.tb_etime.CalendarFont = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tb_etime.CustomFormat = "yyyy-MM-dd HH:mm:ss"; + this.tb_etime.Dock = System.Windows.Forms.DockStyle.Left; + this.tb_etime.Font = new System.Drawing.Font("맑은 고딕", 20.25F); + this.tb_etime.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.tb_etime.Location = new System.Drawing.Point(396, 5); + this.tb_etime.Name = "tb_etime"; + this.tb_etime.Size = new System.Drawing.Size(299, 61); + this.tb_etime.TabIndex = 5; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.Location = new System.Drawing.Point(1064, 5); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(124, 45); + this.button1.TabIndex = 0; + this.button1.Text = "조회"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Left; + this.label3.Location = new System.Drawing.Point(365, 5); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(31, 45); + this.label3.TabIndex = 6; + this.label3.Text = "~"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tb_stime + // + this.tb_stime.CalendarFont = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tb_stime.CustomFormat = "yyyy-MM-dd HH:mm:ss"; + this.tb_stime.Dock = System.Windows.Forms.DockStyle.Left; + this.tb_stime.Font = new System.Drawing.Font("맑은 고딕", 20.25F); + this.tb_stime.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.tb_stime.Location = new System.Drawing.Point(66, 5); + this.tb_stime.Name = "tb_stime"; + this.tb_stime.Size = new System.Drawing.Size(299, 61); + this.tb_stime.TabIndex = 3; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Left; + this.label2.Location = new System.Drawing.Point(5, 5); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(61, 45); + this.label2.TabIndex = 4; + this.label2.Text = "기간"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3, + this.columnHeader4, + this.columnHeader5, + this.columnHeader6, + this.columnHeader7, + this.columnHeader8}); + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.FullRowSelect = true; + this.listView1.HideSelection = false; + this.listView1.Items.AddRange(new System.Windows.Forms.ListViewItem[] { + listViewItem1}); + this.listView1.Location = new System.Drawing.Point(0, 55); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(1193, 642); + this.listView1.TabIndex = 7; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "시간"; + this.columnHeader1.Width = 135; + // + // columnHeader2 + // + this.columnHeader2.Text = "Cell/Grp"; + this.columnHeader2.Width = 70; + // + // columnHeader3 + // + this.columnHeader3.Text = "발생형태"; + this.columnHeader3.Width = 90; + // + // columnHeader4 + // + this.columnHeader4.Text = "측정값"; + // + // columnHeader5 + // + this.columnHeader5.Text = "HIGH"; + // + // columnHeader6 + // + this.columnHeader6.Text = "LOW"; + // + // columnHeader7 + // + this.columnHeader7.Text = "알람설정"; + this.columnHeader7.Width = 110; + // + // columnHeader8 + // + this.columnHeader8.Text = "비고"; + this.columnHeader8.Width = 190; + // + // Frm_Alamlist + // + this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1193, 735); + this.Controls.Add(this.listView1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.bn); + this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "Frm_Alamlist"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "알람발생목록"; + this.Load += new System.EventHandler(this.Frm_Alam_Load); + ((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit(); + this.bn.ResumeLayout(false); + this.bn.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.documentElement1)).EndInit(); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + internal System.Windows.Forms.BindingSource bs; + internal System.Windows.Forms.BindingNavigator bn; + internal System.Windows.Forms.ToolStripButton BindingNavigatorAddNewItem; + internal System.Windows.Forms.ToolStripLabel BindingNavigatorCountItem; + internal System.Windows.Forms.ToolStripButton BindingNavigatorDeleteItem; + internal System.Windows.Forms.ToolStripButton BindingNavigatorMoveFirstItem; + internal System.Windows.Forms.ToolStripButton BindingNavigatorMovePreviousItem; + internal System.Windows.Forms.ToolStripSeparator BindingNavigatorSeparator; + internal System.Windows.Forms.ToolStripTextBox BindingNavigatorPositionItem; + internal System.Windows.Forms.ToolStripSeparator BindingNavigatorSeparator1; + internal System.Windows.Forms.ToolStripButton BindingNavigatorMoveNextItem; + internal System.Windows.Forms.ToolStripButton BindingNavigatorMoveLastItem; + internal System.Windows.Forms.ToolStripSeparator BindingNavigatorSeparator2; + internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator2; + internal System.Windows.Forms.ToolStripLabel ToolStripLabel5; + internal System.Windows.Forms.ToolStripTextBox tb_search; + internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator1; + internal System.Windows.Forms.ToolStripProgressBar prb1; + private System.ComponentModel.IContainer components; + private Panel panel1; + private Button button1; + private ComboBox cmb_gubun; + private Label label1; + private DateTimePicker tb_etime; + private Label label3; + private DateTimePicker tb_stime; + private Label label2; + private vmsnet.DocumentElement documentElement1; + private ListView listView1; + private ColumnHeader columnHeader1; + private ColumnHeader columnHeader2; + private ColumnHeader columnHeader3; + private ColumnHeader columnHeader4; + private ColumnHeader columnHeader5; + private ColumnHeader columnHeader6; + private ColumnHeader columnHeader7; + private ColumnHeader columnHeader8; + private ToolStripLabel toolStripLabel1; + } + +} diff --git a/Viewer/AlarmViewer/Dialog/Frm_Alamlist.cs b/Viewer/AlarmViewer/Dialog/Frm_Alamlist.cs new file mode 100644 index 0000000..04b9a36 --- /dev/null +++ b/Viewer/AlarmViewer/Dialog/Frm_Alamlist.cs @@ -0,0 +1,221 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using AR; +using vmsnet; +using System.Linq; +using System.Threading.Tasks; +using System.Threading; + +namespace vmsnet +{ + public partial class Frm_Alamlist + { + public Frm_Alamlist() + { + InitializeComponent(); + + ////DB초기화작업 + PUB.INIT(out List errorMessageList); + if (errorMessageList.Any()) + foreach (var err in errorMessageList) + UTIL.MsgE(err); + + this.cmb_gubun.Items.Clear(); + this.cmb_gubun.Items.AddRange(new string[] { "ALL", "HIGH", "LOW", "A1", "A2" }); + //PUB.Alarm.Message += (s1, e1) => PUB.log.AddI(e1.Message); + this.label2.Click += (s1,e1)=> { + var f = new fLog(); + f.Show(); + }; + } + + public void Frm_Alam_Load(object sender, System.EventArgs e) + { + ////알람데이터년도를 변경 + this.tb_stime.Text = DateTime.Now.AddDays(0).ToString("yyyy-MM-dd 00:00:00"); + this.tb_etime.Text = DateTime.Now.AddDays(0).ToString("yyyy-MM-dd 23:59:59"); + + if (cmb_gubun.Items.Count > 0) + this.cmb_gubun.SelectedIndex = 0; + + toolStripLabel1.Text = PUB.CONFIG.GetDatabasePath(); + } + + public void ToolStripTextBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + string str = this.tb_search.Text.Trim().Replace("'", "").ToUpper(); + if (string.IsNullOrEmpty(str)) + { + DisplayData(Dt.Item2.AsEnumerable()); + } + try + { + if (Dt.Item2 != null) + { + var dt = Dt.Item2.Where(t => t.TIME.Contains(str) || t.CHNAME.Contains(str) || t.RTYPESTR.Contains(str) || t.ATYPESTR.Contains(str)); + DisplayData(dt); + } + else UTIL.MsgE("먼저 자료를 조회하세요"); + + this.tb_search.SelectAll(); + } + catch (Exception) + { + this.tb_search.Text = ""; + this.bs.Filter = ""; + + } + } + } + + (TimeSpan, DocumentElement.ALARMDataTable) Dt; + private void button1_Click(object sender, EventArgs e) + { // 조회 + if (DateTime.TryParse(this.tb_stime.Text, out DateTime sdate) == false) + { + UTIL.MsgE("시작일시가 잘못 입력되었습니다\r\n확인하세요"); + return; + } + + if (DateTime.TryParse(this.tb_etime.Text, out DateTime edate) == false) + { + UTIL.MsgE("종료일시가 잘못 입력되었습니다\r\n확인하세요"); + return; + } + + + Dt.Item1 = new TimeSpan(0); + Dt.Item2 = null; + + var gubunstr = cmb_gubun.Text.Trim().ToUpper(); + this.button1.Enabled = false; + + switch (gubunstr) + { + case "HIGH": ////h + Dt = PUB.Alarm.GetAlarmData(sdate, edate, 0, 1); + break; + case "LOW": ////l; + Dt = PUB.Alarm.GetAlarmData(sdate, edate, 2, 3); + break; + case "A1": ////nullb alam1 + Dt = PUB.Alarm.GetAlarmData(sdate, edate, 4, 5); + break; + case "A2": ////nullb alam2 + Dt = PUB.Alarm.GetAlarmData(sdate, edate, 6, 7); + break; + case "OVER": ////o + Dt = PUB.Alarm.GetAlarmData(sdate, edate, 8, 9); + break; + default: //ALL + Dt = PUB.Alarm.GetAlarmData(sdate, edate); + break; + } + + PUB.log.AddI($"read time : {Dt.Item1.TotalSeconds} sec"); + Application.DoEvents(); + + + this.prb1.Value = 0; + this.prb1.Maximum = Dt.Item2.Rows.Count; + + + var dtEdit = DateTime.Now; + foreach (var Dr in Dt.Item2) + { + + this.prb1.Value += 1; + if (Dr.RTYPE == 4 || Dr.RTYPE == 5 || Dr.RTYPE == 6 || Dr.RTYPE == 7) + { + Dr.CHNAME = PUB.GetGrpName(Dr.CH); + } + else + { + /* 작성자: 김치균, 작성일: 2024-10-16, 작성내용: Dr.CH + 1 -> Dr.CH 변경 */ + Dr.CHNAME = PUB.GetChannelName(Dr.CH); + } + + var rtype = (COMM.EALAMRAISETYPE)Dr.RTYPE; + Dr.RTYPESTR = rtype.ToString(); + switch (rtype) + { + case COMM.EALAMRAISETYPE.A1_ON: + Dr.RTYPESTR = "NB_ALARM1-ON"; + break; + case COMM.EALAMRAISETYPE.A1_OFF: + Dr.RTYPESTR = "NB_ALARM1-OFF"; + break; + case COMM.EALAMRAISETYPE.A2_ON: + Dr.RTYPESTR = "NB_ALARM2-ON"; + break; + case COMM.EALAMRAISETYPE.A2_OFF: + Dr.RTYPESTR = "NB_ALARM2-OFF"; + break; + } + + var atype = (COMM.EALAMTYPE)Dr.ATYPE; + Dr.ATYPESTR = atype.ToString(); + } + Dt.Item2.AcceptChanges(); + var tsEdit = DateTime.Now - dtEdit; + PUB.log.AddI($"edit time : {tsEdit.TotalSeconds} sec"); + Application.DoEvents(); + + + dtEdit = DateTime.Now; + DisplayData(Dt.Item2.AsEnumerable()); + tsEdit = DateTime.Now - dtEdit; + PUB.log.AddI($"DisplayData time : {tsEdit.TotalSeconds} sec"); + button1.Enabled = true; + } + + void DisplayData(EnumerableRowCollection search) + { + this.listView1.Items.Clear(); + + + this.listView1.SuspendLayout(); + foreach (var item in search) + { + var lv = this.listView1.Items.Add(item.TIME); + lv.SubItems.Add(item.CHNAME); + lv.SubItems.Add(item.RTYPESTR); + lv.SubItems.Add(item.VOLT.ToString()); + lv.SubItems.Add(item.MAXVOLT.ToString()); + lv.SubItems.Add(item.MINVOLT.ToString()); + lv.SubItems.Add(item.ATYPESTR); + lv.SubItems.Add(item.REMARK); + + switch (item.RTYPESTR.ToUpper()) + { + case "NB_ALARM1_ON": + lv.BackColor = Color.HotPink; + break; + case "NB_ALARM2_ON": + lv.BackColor = Color.OrangeRed; //Color.Red; + break; + case "HIGH_ON": + lv.BackColor = Color.Orange; + break; + case "LOW_ON": + lv.BackColor = Color.LightSkyBlue; //Color.Blue; + break; + case "OVER_ON": + lv.BackColor = Color.Violet; //Color.Magenta; + break; + default: + lv.BackColor = Color.Empty; + break; + } + } + this.listView1.ResumeLayout(); + } + } +} diff --git a/Viewer/AlarmViewer/Dialog/Frm_Alamlist.resx b/Viewer/AlarmViewer/Dialog/Frm_Alamlist.resx new file mode 100644 index 0000000..72efcce --- /dev/null +++ b/Viewer/AlarmViewer/Dialog/Frm_Alamlist.resx @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 242, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + 176, 17 + + + 17, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcrvQCHK70BByu + 9AYcrvQKHK70DByu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu + 9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu + 9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9AwcrvQKHK70Bxyu9AQcrvQCAAAAAByu + 9AIcrvQGHK70DByu9BUcrvQdHK70Ixyu9CYcrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu + 9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu + 9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jhyu9CMcrvQdHK70FRyu + 9AwcrvQGHK70Ahyu9AMcrvQMHK70GRyu9CocrvQ7HK70Rhyu9EwcrvROHK70Thyu9E4crvROHK70Thyu + 9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu + 9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70TRyu + 9EYcrvQ7HK70Kxyu9BkcrvQMHK70BByu9AUcrvQSHK70Jwuh7VYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ + 6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ + 6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ + 6WYAmelmAJnpZgCZ6WYAmelmCqDtWByu9CgcrvQTHK70Bhyu9AYcrvQWHK70Lgmi7nEYsvzXHLb//xy2 + //8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2 + //8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2 + //8ctv//HLb//xy2//8ctv//HLb//xy2//8Zs/3fC6PweRyu9C4crvQWHK70Bxyu9AYcrvQUHK70Kxex + +8Actv//HLb//x23//8et///ILj//yK6//8lu///Kb3//yzA//8wwv//NcT//znH//89yv//Qcv//0bN + //9Kz///TdH//1HS//9T1P//V9X//1nW//9X1f//U9T//1HS//9N0f//Ss///0bN//9By///Pcr//znH + //81xP//MML//yzA//8pvf//Jbv//yK6//8guP//Hrf//xy2//8ctv//GbP81Ryu9CwcrvQVHK70Bhyu + 9AQcrvQPHK70IBu1/tUctv//HLb//x63//8nuv//JLv//ym9//8uwP//M8P//zrH//9By///R87//0/R + //9X1f//Xdj//2Tb//9r3f//cd///3bi//974///f+X//4Dm//9/5f//e+P//3bi//9x3///a93//2Tb + //9d2P//V9X//0/R//9Hzv//Qcv//zrH//8zw///LsD//ym9//8mu///JLr//x63//8ctv//HLb/8hyu + 9CAcrvQQHK70BRyu9AIcrvQIHK70Ehy1/qIctv//HLb//za+//8juf//Irn//yW8//8rv///MML//zbF + //89yf//RM3//0rQ//9S0///Wdb//1/Z//9m3P//a97//3Hg//904v//d+L//3jk//934v//dOL//3Hg + //9r3v//Ztz//1/Z//9Z1v//UtP//0rQ//9Ezf//Pcn//zbF//8wwv//K7///yW8//8iuf//Mr7//x23 + //8ctv//HLb/xRyu9BIcrvQIHK70Ahyu9AEcrvQEHK70CBy0/C8ctv/8HLb//1PJ//8kuv//Ibn//yW7 + //8qv///MMH//zXE//87yP//Qsv//0nP//9Q0///Vtb//13Y//9j2v//ad3//23e//9x4P//c+H//3Ti + //9z4f//ceD//23e//9p3f//Y9r//13Y//9W1v//UNP//0nP//9Cy///O8j//zXE//8wwf//Kr///yW7 + //8iuf//Q8P//yO5//8ctv//HLX+TByu9AgcrvQEHK70AQAAAAAcrvQBHK70Ahyu9AMctv+bHLb//0/H + //83wP//Irn//yS7//8ovf//LsD//zTE//86yP//QMv//0bO//9N0f//VNT//1nW//9f2f//ZNv//2nd + //9r3v//bd7//27g//9t3v//a97//2nd//9k2///X9n//1nW//9U1P//TdH//0bO//9Ay///Osj//zTE + //8uwP//KL3//yS7//8lu///ac///x+4//8ctv++HK70Axyu9AIcrvQBAAAAAAAAAAAAAAAAAAAAAAAA + AAActv8bHLb/9iS4//9mz///I7r//yK6//8nvf//LL///zLC//83xf//Pcn//0PN//9K0P//UNP//1XV + //9a1///X9n//2Pa//9r3f//zvT//+37//+w7f//Ztz//2Pa//9f2f//Wtf//1XV//9Q0///StD//0PN + //89yf//N8X//zLC//8sv///J73//yS6//89wf//Usn//xy2//8ctv82AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHLb/jRy2//9Vyv//OMD//yO5//8lvP//Kr///y7B//80xP//Osj//0DL + //9Gzf//StD//1DT//9V1f//Wdb//13Y//+f6P//////////////////dN7//13Y//9Z1v//VdX//1DT + //9K0P//Rs3//0DL//86yP//NMT//y7B//8qv///Jbz//ya7//9q0P//JLn//xy2/64AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Ehy2//Mluf//aM///yS6//8juv//J73//yy/ + //8xwv//NsX//zvI//9By///Rs7//0rQ//9Q0///VNT//1bW//+T5P/////////////7/v//adr//1bW + //9U1P//UNP//0rQ//9Gzv//Qcv//zvI//82xf//McL//yy///8nvf//JLr//z7C//9SyP//HLb//By2 + /yoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/34ctv//VMr//zrA + //8juf//Jbz//ym9//8uwP//MsL//zfF//88yf//Qcv//0bN//9K0P//TdH//1DT//9U1P//nuf//8fx + //+C4P//UtP//1DT//9N0f//StD//0bN//9By///PMn//zfF//8ywv//LsD//ym9//8lvP//Jrv//2rQ + //8kuf//HLb/ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2 + /wwctv/tJLn//2nP//8nu///Jrv//yq9//8twP//MsL//zbE//87x///P8n//0TM//9Izf//S8///03Q + //9P0f//UdH//1HS//9R0f//T9H//03Q//9Lz///SM3//0TM//8/yf//O8f//zbE//8ywv//LcD//yq9 + //8nu///QsL//1HI//8ctv/5HLb/IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAActv9yHLb//1TJ//8/wv//J7v//yq8//8uvv//MsH//zXD//86xP//Psf//0LK + //9Fy///SMz//0rN//9Mzv//Tc///07P//9Nz///TM7//0rN//9IzP//Rcv//0LK//8+x///OsT//zXD + //8ywf//Lr7//yq8//8svP//bdH//yS5//8ctv+TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8GHLb/5CS4//9s0f//Lbz//yy8//8vvf//Mr///zXC + //85w///PcX//0DI//9Dyf//Rsr//0nL//9Ozf//1fP///n9//+K3v//Ssz//0nL//9Gyv//Q8n//0DI + //89xf//OcP//zXC//8yv///L73//yy8//9GxP//UMj//xy2//Mctv8YAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Zhy2//9Vyf//RcP//y68 + //8wvf//Mr7//zbA//85wf//PMP//0DE//9Cx///RMf//0bJ//9w1f/////////////Q8f//R8n//0bJ + //9Ex///Qsf//0DE//88w///OcH//zbA//8yvv//ML3//zK+//9w0v//I7n//xy2/4cAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Axy2 + /9siuP//b9H//zW+//8yvv//NL///zbA//84wv//O8L//z7D//9Axf//QsX//0TH//9x1f////////// + ///U8v//Rcj//0TH//9Cxf//QMX//z7D//87wv//OML//zbA//80v///Mr7//03F//9PyP//HLb/7Ry2 + /xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABy2/1cctv//VMn//0zF//81vv//Nr///ze///85wP//O8H//zzC//8/w///QcT//0LE + //9v0//////////////T8v//Q8X//0LE//9BxP//P8P//zzC//87wf//OcD//ze///82v///OMD//3LS + //8guP//HLb/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/PIrj//3TT//88wP//OsD//zvA//88wf//PsL//z/C + //9Aw///QsP//0PD//9w0//////////////T8v//RMX//0PD//9Cw///QMP//z/C//8+wv//PMH//zvA + //87wP//VMn//1DI//8ctv/nHLb/DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9OHLb//1PJ//9Vyf//PsD//z7B + //8/wf//QMH//0HC//9Cwv//Q8P//0PD//9w0v/////////////T8f//RMP//0PD//9Dw///QsL//0HC + //9Awf//P8H//z7B//9Bwv//d9X//x+3//8ctv9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/xiK4 + //961f//RsT//0LC//9Cwv//Q8P//0TD//9Fw///RcP//0bE//9x0//////////////U8f//RsT//0bE + //9Fw///RcP//0TD//9Dw///QsL//0PC//9dzP//Ucj//xy2/94ctv8GAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHLb/Pxy2//9Vyf//Xs3//0nE//9IxP//SMT//0jE//9IxP//ScT//0nF//900/////////// + ///V8v//SsX//0nF//9JxP//SMT//0jE//9IxP//SMT//0zH//991f//H7f//xy2/10AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/7oiuP//ftb//1LI//9Ox///Tsf//07H//9Ox///Tsf//07H + //931P/////////////W8v//Tsf//07H//9Ox///Tsf//07H//9Ox///Tsf//2bP//9RyP//HLb/1Ry2 + /wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zMctv//Vsn//2jP//9Uyf//U8n//1PJ + //9Tyf//U8n//1PJ//971v/////////////X8v//U8n//1PJ//9Tyf//U8n//1PJ//9Tyf//V8r//4HY + //8ft///HLb/UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+rIbj//4XZ + //9dzP//Wsv//1rL//9ay///Wsv//1rL//+B1//////////////Y8///Wsv//1rL//9ay///Wsv//1rL + //9ay///cdL//1LJ//8ctv/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAActv8nHLb//FfK//900///Yc3//2DN//9gzf//YM3//2DN//+F2f/////////////a8///YM3//2DN + //9gzf//YM3//2DN//9kzv//h9n//x+3//8ctv9CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHLb/nB+3//+L2///atD//2bP//9mz///Zs///2bP//+K2v////////// + ///b9P//Zs///2bP//9mz///Zs///2fP//981f//Usn//xy2/70AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Gxy2//lYyv//f9b//23R//9t0f//bdH//23R + //+P3P/////////////d9P//bdH//23R//9t0f//bdH//3DR//+M2v//Hrf//xy2/zYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/40ft///ktz//3bU + //9z0///c9P//3PT//+U3f/////////////e9f//c9P//3PT//9z0///c9P//4bZ//9SyP//HLb/rgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2 + /xUctv/zWMr//4ra//961f//etX//3rV//+Z3//////////////g9f//etX//3rV//961f//fdX//5Hc + //8et//8HLb/KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAActv+BH7f//5be//+C2P//gNf//4DX//+Q3P///v/////////Q8P//gNf//4DX + //+A1///kd3//1TJ//8ctv+iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8MHLb/7VnK//+V3f//htn//4bZ//+G2f//m+D//6/m + //+K2v//htn//4bZ//+J2f//lt3//x63//kctv8hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/ciC3//+a3///j9z//43b + //+N2///jdv//43b//+N2///jdv//43b//+b4P//VMn//xy2/5MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Bhy2 + /+RZyv//n+H//5Pd//+T3f//k93//5Pd//+T3f//k93//5bd//+a3///Hrf/8xy2/xsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABy2/2Met///oOH//5vg//+a3///mt///5rf//+a3///mt///6bj//9Uyf//HLb/hwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/YWcr//6rk//+f4f//n+H//5/h//+f4f//ouH//57h + //8et//tHLb/EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9UHrf//6Ti//+m4///peL//6Xi + //+l4v//r+X//1LI//8ctv97AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/zFrL + //+z6P//quX//6rl//+s5f//oeL//x63/+cctv8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHLb/RR63//+p5P//tuj//7Pn//+96v//VMn//xy2/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/71GxP//wuz//8Xt//+S3f//HLb/3hy2/wYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zYctv//Mr3//1HI//8iuP//HLb/YAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+HHLb//xy2 + //8ctv+lHLb/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHLb/Jxy2/zYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP////////z9gAAAAAAB/P0AAAAAAAD8/QAAAAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAA + AAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAAAAAAAPz9gAAAAAAB/P3wAAAAAA/8/fgAAAAAH/z9+AAAAAAf + /P38AAAAAD/8/fwAAAAAP/z9/gAAAAB//P3+AAAAAH/8/f8AAAAA//z9/wAAAAD//P3/gAAAAf/8/f+A + AAAB//z9/8AAAAP//P3/4AAAA//8/f/gAAAH//z9//AAAAf//P3/8AAAD//8/f/4AAAf//z9//gAAB// + /P3//AAAP//8/f/8AAA///z9//4AAH///P3//gAAf//8/f//AAD///z9//8AAP///P3//4AB///8/f// + gAH///z9///AA////P3//8AD///8/f//4Af///z9///wB////P3///AP///8/f//+A////z9///4H/// + /P3///wf///8/f///n////z9/////////P3////////8/SgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHK70ARuu9AIcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu + 9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu + 9AQcrvQEG670BByu9AMbrvQBAAAAABuu9AIbrvQIG670Ehuu9BobrvQeG670Hhuu9B4brvQeG670Hhuu + 9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu + 9B4brvQeG670Hhuu9B4brvQaG670Ehuu9AgbrvQCG670Bxyu9BgVqPE+EqfwThKn8FUSp/BWEqfwVhKn + 8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn + 8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8E4UqPE/G670GRyu9AgbrvQLG670JAuk8IARq/bDEqz3zBKs + 98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs + 98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqv3xQyk8YYbrvQkG670Cxuu9AocrvQgGbP92hy2 + //8et///Ibj//yW7//8qvv//MsP//znG//9Cy///SM7//1HS//9X1f//Xtf//2PZ//9l2///Ydn//1vW + //9W1P//TtD//0fO//8+yf//N8X//y/B//8pvf//I7r//yC4//8ctv//GrT96Ruu9CEcrvQKG670BRuu + 9BMbtf7MG7b//yq6//8juf//KL3//y/B//85x///Qsz//07R//9Y1f//Ytr//2vd//9z4f//eOL//3rk + //934v//cN///2nd//9e2P//VdT//0nP//9Ayv//NcT//y3A//8lu///Krv//xy2//8btv/iG670Exuu + 9AYbrvQBHK70BRuz+18ctv/zRMT//yS6//8mvP//Lb///zbF//8/yv//Ss///1PU//9d2P//Zdv//2ze + //9w3///ceD//2/f//9q3f//Y9r//1nW//9R0///Rc3//zzJ//8ywv//K7///yS6//9Awv//H7f/+Byz + /HAbrvQFHK70AQAAAAAbrvQBG7L6GBu2/70+wf//M7///yS7//8qvv//NMP//zvI//9Gzv//T9L//1jW + //9f2f//Z9v//5fn//+17v//eOD//2Pa//9d2P//VNT//03R//9CzP//Osf//zDB//8pvf//Kbv//03H + //8ctv/LG7L6Ihuu9AEAAAAAAAAAAAAAAAAAAAAAHLb/Qym6//xHxP//I7r//ye9//8vwf//NsX//0DK + //9Hzv//T9L//1bV//9w3P//3fb///7+//+f6P//Wdb//1TU//9M0f//Rc3//zzJ//80xP//K7///ya8 + //8/wv//Nr///hu2/1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8EHLb/w0bE//8tvP//JLv//yu+ + //8xwv//Osf//0HL//9Iz///TtH//1nV//+h5///yfH//3Tc//9R0///TdH//0XN//8/yv//NsX//zDB + //8ovf//Jbv//07G//8juP/VG7b/CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv9HH7f/61HH + //8pu///K73//zDA//83xP//Pcf//0TL//9Jzf//TM///0/Q//9P0P//TtD//0vO//9IzP//Qcr//zzG + //80w///LsD//ym8//9Dw///Nb7/8hy2/1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABu2 + /w4btv+sQcL//zvB//8svP//ML7//zbC//88xP//Qcn//0XK//9KzP//id7//6fm//9Y0P//SMv//0TK + //8/x///OsT//zTB//8vvv//Mb3//1DH//8dtv+6G7b/FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABy2/y4puv/3Tsb//zC8//8yvv//NsD//zrC//9AxP//Qsb//1PM///P8f//7/r//3TW + //9Ex///Qsb//z7D//85wf//NL///zG9//9Jxf//N7//+xu2/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAG7b/ARy2/6xIxP//PsH//zS+//83v///OsH//z3C//9AxP//Ucn//8/w + ///w+v//c9T//0LE//9Aw///PML//znA//82v///Nb///1PI//8iuP+/G7b/BAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7b/OB62/+Fcy///PsH//zzA//8+wf//QML//0HC + //9SyP//z/D///D6//9z0///QsP//0HC//8/wf//PcH//zzA//9UyP//M77/6Ry2/0UAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8JG7b/mUbE//9Rx///QMH//0HC + //9Dwv//RML//1PI///P8P//8Pr//3TS//9Ew///RML//0LC//9Bwf//R8T//1rL//8ctv+pG7b/DQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8cKbr/8FzL + //9Lxf//SsX//0rF//9Kxf//WMr//9Hw///x+v//edT//0rF//9Kxf//SsX//0rF//9dzP//OL//9hu2 + /yoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAActv+VTMX//1vL//9RyP//Ucj//1HI//9ezP//0vH///H6//991v//Ucj//1HI//9RyP//U8j//1/M + //8iuP+oG7b/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABu2/yoetv/UcNL//1/M//9cy///XMv//2jP///V8f//8vv//4XY//9cy///XMv//1zL + //9v0f//NL7/3hy2/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + rEHwD6xB+B+sQfgfrEH8P6xB/j+sQf5/rEE= + + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/Dialog/fLog.Designer.cs b/Viewer/AlarmViewer/Dialog/fLog.Designer.cs new file mode 100644 index 0000000..dd1e5e8 --- /dev/null +++ b/Viewer/AlarmViewer/Dialog/fLog.Designer.cs @@ -0,0 +1,60 @@ +namespace vmsnet +{ + partial class fLog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.SuspendLayout(); + // + // richTextBox1 + // + this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBox1.Location = new System.Drawing.Point(0, 0); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(776, 524); + this.richTextBox1.TabIndex = 0; + this.richTextBox1.Text = ""; + // + // fLog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(776, 524); + this.Controls.Add(this.richTextBox1); + this.Name = "fLog"; + this.Text = "fLog"; + this.Load += new System.EventHandler(this.fLog_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox1; + } +} \ No newline at end of file diff --git a/Viewer/AlarmViewer/Dialog/fLog.cs b/Viewer/AlarmViewer/Dialog/fLog.cs new file mode 100644 index 0000000..01a0eeb --- /dev/null +++ b/Viewer/AlarmViewer/Dialog/fLog.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using vmsnet; + +namespace vmsnet +{ + public partial class fLog : Form + { + public fLog() + { + InitializeComponent(); + PUB.log.RaiseMsg += Log_RaiseMsg; + this.FormClosed += (s1, e1) => + { + PUB.log.RaiseMsg -= Log_RaiseMsg; + this.Dispose(); + }; + } + + + + private void Log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + addmsg(Message); + } + void addmsg(string mbox) + { + if (this.richTextBox1.InvokeRequired) + { + this.richTextBox1.BeginInvoke(new Action(() => + { + this.richTextBox1.AppendText(mbox + "\n"); + this.richTextBox1.ScrollToCaret(); + })); + } + else + { + this.richTextBox1.AppendText(mbox + "\n"); + this.richTextBox1.ScrollToCaret(); + } + } + private void fLog_Load(object sender, EventArgs e) + { + + } + } +} diff --git a/Viewer/AlarmViewer/Dialog/fLog.resx b/Viewer/AlarmViewer/Dialog/fLog.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Viewer/AlarmViewer/Dialog/fLog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/DocumentElement.Designer.cs b/Viewer/AlarmViewer/DocumentElement.Designer.cs new file mode 100644 index 0000000..4dd25c3 --- /dev/null +++ b/Viewer/AlarmViewer/DocumentElement.Designer.cs @@ -0,0 +1,6743 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace vmsnet { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DocumentElement")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DocumentElement : global::System.Data.DataSet { + + private CHANNELDataTable tableCHANNEL; + + private DEVICEDataTable tableDEVICE; + + private GRPDataTable tableGRP; + + private NORMALDataTable tableNORMAL; + + private VIEWGROUPDataTable tableVIEWGROUP; + + private WINDataTable tableWIN; + + private ALARMDataTable tableALARM; + + private VIEWGROUPRDataTable tableVIEWGROUPR; + + private TRENDVIEWCHLISTDataTable tableTRENDVIEWCHLIST; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DocumentElement() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DocumentElement(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["CHANNEL"] != null)) { + base.Tables.Add(new CHANNELDataTable(ds.Tables["CHANNEL"])); + } + if ((ds.Tables["DEVICE"] != null)) { + base.Tables.Add(new DEVICEDataTable(ds.Tables["DEVICE"])); + } + if ((ds.Tables["GRP"] != null)) { + base.Tables.Add(new GRPDataTable(ds.Tables["GRP"])); + } + if ((ds.Tables["NORMAL"] != null)) { + base.Tables.Add(new NORMALDataTable(ds.Tables["NORMAL"])); + } + if ((ds.Tables["VIEWGROUP"] != null)) { + base.Tables.Add(new VIEWGROUPDataTable(ds.Tables["VIEWGROUP"])); + } + if ((ds.Tables["WIN"] != null)) { + base.Tables.Add(new WINDataTable(ds.Tables["WIN"])); + } + if ((ds.Tables["ALARM"] != null)) { + base.Tables.Add(new ALARMDataTable(ds.Tables["ALARM"])); + } + if ((ds.Tables["VIEWGROUPR"] != null)) { + base.Tables.Add(new VIEWGROUPRDataTable(ds.Tables["VIEWGROUPR"])); + } + if ((ds.Tables["TRENDVIEWCHLIST"] != null)) { + base.Tables.Add(new TRENDVIEWCHLISTDataTable(ds.Tables["TRENDVIEWCHLIST"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public CHANNELDataTable CHANNEL { + get { + return this.tableCHANNEL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public DEVICEDataTable DEVICE { + get { + return this.tableDEVICE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public GRPDataTable GRP { + get { + return this.tableGRP; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public NORMALDataTable NORMAL { + get { + return this.tableNORMAL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public VIEWGROUPDataTable VIEWGROUP { + get { + return this.tableVIEWGROUP; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public WINDataTable WIN { + get { + return this.tableWIN; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public ALARMDataTable ALARM { + get { + return this.tableALARM; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public VIEWGROUPRDataTable VIEWGROUPR { + get { + return this.tableVIEWGROUPR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public TRENDVIEWCHLISTDataTable TRENDVIEWCHLIST { + get { + return this.tableTRENDVIEWCHLIST; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataSet Clone() { + DocumentElement cln = ((DocumentElement)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["CHANNEL"] != null)) { + base.Tables.Add(new CHANNELDataTable(ds.Tables["CHANNEL"])); + } + if ((ds.Tables["DEVICE"] != null)) { + base.Tables.Add(new DEVICEDataTable(ds.Tables["DEVICE"])); + } + if ((ds.Tables["GRP"] != null)) { + base.Tables.Add(new GRPDataTable(ds.Tables["GRP"])); + } + if ((ds.Tables["NORMAL"] != null)) { + base.Tables.Add(new NORMALDataTable(ds.Tables["NORMAL"])); + } + if ((ds.Tables["VIEWGROUP"] != null)) { + base.Tables.Add(new VIEWGROUPDataTable(ds.Tables["VIEWGROUP"])); + } + if ((ds.Tables["WIN"] != null)) { + base.Tables.Add(new WINDataTable(ds.Tables["WIN"])); + } + if ((ds.Tables["ALARM"] != null)) { + base.Tables.Add(new ALARMDataTable(ds.Tables["ALARM"])); + } + if ((ds.Tables["VIEWGROUPR"] != null)) { + base.Tables.Add(new VIEWGROUPRDataTable(ds.Tables["VIEWGROUPR"])); + } + if ((ds.Tables["TRENDVIEWCHLIST"] != null)) { + base.Tables.Add(new TRENDVIEWCHLISTDataTable(ds.Tables["TRENDVIEWCHLIST"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars(bool initTable) { + this.tableCHANNEL = ((CHANNELDataTable)(base.Tables["CHANNEL"])); + if ((initTable == true)) { + if ((this.tableCHANNEL != null)) { + this.tableCHANNEL.InitVars(); + } + } + this.tableDEVICE = ((DEVICEDataTable)(base.Tables["DEVICE"])); + if ((initTable == true)) { + if ((this.tableDEVICE != null)) { + this.tableDEVICE.InitVars(); + } + } + this.tableGRP = ((GRPDataTable)(base.Tables["GRP"])); + if ((initTable == true)) { + if ((this.tableGRP != null)) { + this.tableGRP.InitVars(); + } + } + this.tableNORMAL = ((NORMALDataTable)(base.Tables["NORMAL"])); + if ((initTable == true)) { + if ((this.tableNORMAL != null)) { + this.tableNORMAL.InitVars(); + } + } + this.tableVIEWGROUP = ((VIEWGROUPDataTable)(base.Tables["VIEWGROUP"])); + if ((initTable == true)) { + if ((this.tableVIEWGROUP != null)) { + this.tableVIEWGROUP.InitVars(); + } + } + this.tableWIN = ((WINDataTable)(base.Tables["WIN"])); + if ((initTable == true)) { + if ((this.tableWIN != null)) { + this.tableWIN.InitVars(); + } + } + this.tableALARM = ((ALARMDataTable)(base.Tables["ALARM"])); + if ((initTable == true)) { + if ((this.tableALARM != null)) { + this.tableALARM.InitVars(); + } + } + this.tableVIEWGROUPR = ((VIEWGROUPRDataTable)(base.Tables["VIEWGROUPR"])); + if ((initTable == true)) { + if ((this.tableVIEWGROUPR != null)) { + this.tableVIEWGROUPR.InitVars(); + } + } + this.tableTRENDVIEWCHLIST = ((TRENDVIEWCHLISTDataTable)(base.Tables["TRENDVIEWCHLIST"])); + if ((initTable == true)) { + if ((this.tableTRENDVIEWCHLIST != null)) { + this.tableTRENDVIEWCHLIST.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.DataSetName = "DocumentElement"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DocumentElement.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableCHANNEL = new CHANNELDataTable(); + base.Tables.Add(this.tableCHANNEL); + this.tableDEVICE = new DEVICEDataTable(); + base.Tables.Add(this.tableDEVICE); + this.tableGRP = new GRPDataTable(); + base.Tables.Add(this.tableGRP); + this.tableNORMAL = new NORMALDataTable(); + base.Tables.Add(this.tableNORMAL); + this.tableVIEWGROUP = new VIEWGROUPDataTable(); + base.Tables.Add(this.tableVIEWGROUP); + this.tableWIN = new WINDataTable(); + base.Tables.Add(this.tableWIN); + this.tableALARM = new ALARMDataTable(); + base.Tables.Add(this.tableALARM); + this.tableVIEWGROUPR = new VIEWGROUPRDataTable(); + base.Tables.Add(this.tableVIEWGROUPR); + this.tableTRENDVIEWCHLIST = new TRENDVIEWCHLISTDataTable(); + base.Tables.Add(this.tableTRENDVIEWCHLIST); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeCHANNEL() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeDEVICE() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeGRP() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeNORMAL() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeVIEWGROUP() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeWIN() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeALARM() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeVIEWGROUPR() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeTRENDVIEWCHLIST() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void CHANNELRowChangeEventHandler(object sender, CHANNELRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void DEVICERowChangeEventHandler(object sender, DEVICERowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void GRPRowChangeEventHandler(object sender, GRPRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void NORMALRowChangeEventHandler(object sender, NORMALRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void VIEWGROUPRowChangeEventHandler(object sender, VIEWGROUPRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void WINRowChangeEventHandler(object sender, WINRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void ALARMRowChangeEventHandler(object sender, ALARMRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void VIEWGROUPRRowChangeEventHandler(object sender, VIEWGROUPRRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void TRENDVIEWCHLISTRowChangeEventHandler(object sender, TRENDVIEWCHLISTRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class CHANNELDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnENABLE; + + private global::System.Data.DataColumn columnUSE; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnGIDX; + + private global::System.Data.DataColumn columnMACHINE; + + private global::System.Data.DataColumn columnALAMTYPE; + + private global::System.Data.DataColumn columnALAMH; + + private global::System.Data.DataColumn columnALAML; + + private global::System.Data.DataColumn columnCOLOR; + + private global::System.Data.DataColumn columnAUTOH; + + private global::System.Data.DataColumn columnAUTOL; + + private global::System.Data.DataColumn columnUNIT; + + private global::System.Data.DataColumn columnDECPOS; + + private global::System.Data.DataColumn columnGRPNAME; + + private global::System.Data.DataColumn columnIDX_M; + + private global::System.Data.DataColumn columnIDX_U; + + private global::System.Data.DataColumn columnIDX_C; + + private global::System.Data.DataColumn columnVOFFSET; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELDataTable() { + this.TableName = "CHANNEL"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal CHANNELDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected CHANNELDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ENABLEColumn { + get { + return this.columnENABLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn USEColumn { + get { + return this.columnUSE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GIDXColumn { + get { + return this.columnGIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MACHINEColumn { + get { + return this.columnMACHINE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMTYPEColumn { + get { + return this.columnALAMTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMHColumn { + get { + return this.columnALAMH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMLColumn { + get { + return this.columnALAML; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn COLORColumn { + get { + return this.columnCOLOR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AUTOHColumn { + get { + return this.columnAUTOH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AUTOLColumn { + get { + return this.columnAUTOL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn UNITColumn { + get { + return this.columnUNIT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DECPOSColumn { + get { + return this.columnDECPOS; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GRPNAMEColumn { + get { + return this.columnGRPNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDX_MColumn { + get { + return this.columnIDX_M; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDX_UColumn { + get { + return this.columnIDX_U; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDX_CColumn { + get { + return this.columnIDX_C; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VOFFSETColumn { + get { + return this.columnVOFFSET; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow this[int index] { + get { + return ((CHANNELRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event CHANNELRowChangeEventHandler CHANNELRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event CHANNELRowChangeEventHandler CHANNELRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event CHANNELRowChangeEventHandler CHANNELRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event CHANNELRowChangeEventHandler CHANNELRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddCHANNELRow(CHANNELRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow AddCHANNELRow( + int ENABLE, + int USE, + string TITLE, + int GIDX, + string MACHINE, + int ALAMTYPE, + float ALAMH, + float ALAML, + int COLOR, + float AUTOH, + float AUTOL, + string UNIT, + int DECPOS, + string GRPNAME, + int IDX_M, + int IDX_U, + int IDX_C, + float VOFFSET) { + CHANNELRow rowCHANNELRow = ((CHANNELRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + ENABLE, + USE, + TITLE, + GIDX, + MACHINE, + ALAMTYPE, + ALAMH, + ALAML, + COLOR, + AUTOH, + AUTOL, + UNIT, + DECPOS, + GRPNAME, + IDX_M, + IDX_U, + IDX_C, + VOFFSET}; + rowCHANNELRow.ItemArray = columnValuesArray; + this.Rows.Add(rowCHANNELRow); + return rowCHANNELRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow FindByIDX(int IDX) { + return ((CHANNELRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + CHANNELDataTable cln = ((CHANNELDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new CHANNELDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnENABLE = base.Columns["ENABLE"]; + this.columnUSE = base.Columns["USE"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnGIDX = base.Columns["GIDX"]; + this.columnMACHINE = base.Columns["MACHINE"]; + this.columnALAMTYPE = base.Columns["ALAMTYPE"]; + this.columnALAMH = base.Columns["ALAMH"]; + this.columnALAML = base.Columns["ALAML"]; + this.columnCOLOR = base.Columns["COLOR"]; + this.columnAUTOH = base.Columns["AUTOH"]; + this.columnAUTOL = base.Columns["AUTOL"]; + this.columnUNIT = base.Columns["UNIT"]; + this.columnDECPOS = base.Columns["DECPOS"]; + this.columnGRPNAME = base.Columns["GRPNAME"]; + this.columnIDX_M = base.Columns["IDX_M"]; + this.columnIDX_U = base.Columns["IDX_U"]; + this.columnIDX_C = base.Columns["IDX_C"]; + this.columnVOFFSET = base.Columns["VOFFSET"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnENABLE = new global::System.Data.DataColumn("ENABLE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnENABLE); + this.columnUSE = new global::System.Data.DataColumn("USE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUSE); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnGIDX = new global::System.Data.DataColumn("GIDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGIDX); + this.columnMACHINE = new global::System.Data.DataColumn("MACHINE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMACHINE); + this.columnALAMTYPE = new global::System.Data.DataColumn("ALAMTYPE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMTYPE); + this.columnALAMH = new global::System.Data.DataColumn("ALAMH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMH); + this.columnALAML = new global::System.Data.DataColumn("ALAML", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAML); + this.columnCOLOR = new global::System.Data.DataColumn("COLOR", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCOLOR); + this.columnAUTOH = new global::System.Data.DataColumn("AUTOH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAUTOH); + this.columnAUTOL = new global::System.Data.DataColumn("AUTOL", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAUTOL); + this.columnUNIT = new global::System.Data.DataColumn("UNIT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUNIT); + this.columnDECPOS = new global::System.Data.DataColumn("DECPOS", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDECPOS); + this.columnGRPNAME = new global::System.Data.DataColumn("GRPNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGRPNAME); + this.columnIDX_M = new global::System.Data.DataColumn("IDX_M", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX_M); + this.columnIDX_U = new global::System.Data.DataColumn("IDX_U", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX_U); + this.columnIDX_C = new global::System.Data.DataColumn("IDX_C", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX_C); + this.columnVOFFSET = new global::System.Data.DataColumn("VOFFSET", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVOFFSET); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnENABLE.DefaultValue = ((int)(0)); + this.columnUSE.DefaultValue = ((int)(0)); + this.columnTITLE.DefaultValue = ((string)("")); + this.columnGIDX.DefaultValue = ((int)(0)); + this.columnMACHINE.DefaultValue = ((string)("")); + this.columnALAMTYPE.DefaultValue = ((int)(0)); + this.columnALAMH.DefaultValue = ((float)(0F)); + this.columnALAML.DefaultValue = ((float)(0F)); + this.columnCOLOR.DefaultValue = ((int)(0)); + this.columnAUTOH.DefaultValue = ((float)(0F)); + this.columnAUTOL.DefaultValue = ((float)(0F)); + this.columnUNIT.DefaultValue = ((string)("")); + this.columnDECPOS.DefaultValue = ((int)(0)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow NewCHANNELRow() { + return ((CHANNELRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new CHANNELRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(CHANNELRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.CHANNELRowChanged != null)) { + this.CHANNELRowChanged(this, new CHANNELRowChangeEvent(((CHANNELRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.CHANNELRowChanging != null)) { + this.CHANNELRowChanging(this, new CHANNELRowChangeEvent(((CHANNELRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.CHANNELRowDeleted != null)) { + this.CHANNELRowDeleted(this, new CHANNELRowChangeEvent(((CHANNELRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.CHANNELRowDeleting != null)) { + this.CHANNELRowDeleting(this, new CHANNELRowChangeEvent(((CHANNELRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveCHANNELRow(CHANNELRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "CHANNELDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class DEVICEDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnUSE; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnIP; + + private global::System.Data.DataColumn columnCHCOUNT; + + private global::System.Data.DataColumn columnKACOMMAND; + + private global::System.Data.DataColumn columnCHCOMMAND; + + private global::System.Data.DataColumn columnSNCOMMAND; + + private global::System.Data.DataColumn columnPORT; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICEDataTable() { + this.TableName = "DEVICE"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal DEVICEDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DEVICEDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn USEColumn { + get { + return this.columnUSE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IPColumn { + get { + return this.columnIP; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CHCOUNTColumn { + get { + return this.columnCHCOUNT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn KACOMMANDColumn { + get { + return this.columnKACOMMAND; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CHCOMMANDColumn { + get { + return this.columnCHCOMMAND; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SNCOMMANDColumn { + get { + return this.columnSNCOMMAND; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PORTColumn { + get { + return this.columnPORT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow this[int index] { + get { + return ((DEVICERow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event DEVICERowChangeEventHandler DEVICERowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event DEVICERowChangeEventHandler DEVICERowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event DEVICERowChangeEventHandler DEVICERowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event DEVICERowChangeEventHandler DEVICERowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddDEVICERow(DEVICERow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow AddDEVICERow(int USE, string TITLE, string IP, string CHCOUNT, string KACOMMAND, string CHCOMMAND, string SNCOMMAND, int PORT) { + DEVICERow rowDEVICERow = ((DEVICERow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + USE, + TITLE, + IP, + CHCOUNT, + KACOMMAND, + CHCOMMAND, + SNCOMMAND, + PORT}; + rowDEVICERow.ItemArray = columnValuesArray; + this.Rows.Add(rowDEVICERow); + return rowDEVICERow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow FindByIDX(int IDX) { + return ((DEVICERow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + DEVICEDataTable cln = ((DEVICEDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new DEVICEDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnUSE = base.Columns["USE"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnIP = base.Columns["IP"]; + this.columnCHCOUNT = base.Columns["CHCOUNT"]; + this.columnKACOMMAND = base.Columns["KACOMMAND"]; + this.columnCHCOMMAND = base.Columns["CHCOMMAND"]; + this.columnSNCOMMAND = base.Columns["SNCOMMAND"]; + this.columnPORT = base.Columns["PORT"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnUSE = new global::System.Data.DataColumn("USE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUSE); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnIP = new global::System.Data.DataColumn("IP", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIP); + this.columnCHCOUNT = new global::System.Data.DataColumn("CHCOUNT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCHCOUNT); + this.columnKACOMMAND = new global::System.Data.DataColumn("KACOMMAND", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnKACOMMAND); + this.columnCHCOMMAND = new global::System.Data.DataColumn("CHCOMMAND", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCHCOMMAND); + this.columnSNCOMMAND = new global::System.Data.DataColumn("SNCOMMAND", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSNCOMMAND); + this.columnPORT = new global::System.Data.DataColumn("PORT", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPORT); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnUSE.DefaultValue = ((int)(0)); + this.columnTITLE.DefaultValue = ((string)("")); + this.columnIP.DefaultValue = ((string)("")); + this.columnCHCOUNT.DefaultValue = ((string)("")); + this.columnKACOMMAND.DefaultValue = ((string)("")); + this.columnCHCOMMAND.DefaultValue = ((string)("")); + this.columnSNCOMMAND.DefaultValue = ((string)("")); + this.columnPORT.DefaultValue = ((int)(34150)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow NewDEVICERow() { + return ((DEVICERow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new DEVICERow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(DEVICERow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.DEVICERowChanged != null)) { + this.DEVICERowChanged(this, new DEVICERowChangeEvent(((DEVICERow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.DEVICERowChanging != null)) { + this.DEVICERowChanging(this, new DEVICERowChangeEvent(((DEVICERow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.DEVICERowDeleted != null)) { + this.DEVICERowDeleted(this, new DEVICERowChangeEvent(((DEVICERow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.DEVICERowDeleting != null)) { + this.DEVICERowDeleting(this, new DEVICERowChangeEvent(((DEVICERow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveDEVICERow(DEVICERow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "DEVICEDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class GRPDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnUSE; + + private global::System.Data.DataColumn columnWINDOW; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnMATRIX; + + private global::System.Data.DataColumn columnPOS; + + private global::System.Data.DataColumn columnSPAN; + + private global::System.Data.DataColumn columnFONT; + + private global::System.Data.DataColumn columnALAMH; + + private global::System.Data.DataColumn columnALAML; + + private global::System.Data.DataColumn columnKADEVICE; + + private global::System.Data.DataColumn columnALAMTYPE; + + private global::System.Data.DataColumn columnAUTOH; + + private global::System.Data.DataColumn columnAUTOL; + + private global::System.Data.DataColumn columnNBOFF; + + private global::System.Data.DataColumn columnNBSEQ; + + private global::System.Data.DataColumn columnNBHH; + + private global::System.Data.DataColumn columnNBH; + + private global::System.Data.DataColumn columnNBLL; + + private global::System.Data.DataColumn columnNBL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPDataTable() { + this.TableName = "GRP"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal GRPDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected GRPDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn USEColumn { + get { + return this.columnUSE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn WINDOWColumn { + get { + return this.columnWINDOW; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MATRIXColumn { + get { + return this.columnMATRIX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn POSColumn { + get { + return this.columnPOS; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SPANColumn { + get { + return this.columnSPAN; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn FONTColumn { + get { + return this.columnFONT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMHColumn { + get { + return this.columnALAMH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMLColumn { + get { + return this.columnALAML; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn KADEVICEColumn { + get { + return this.columnKADEVICE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMTYPEColumn { + get { + return this.columnALAMTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AUTOHColumn { + get { + return this.columnAUTOH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AUTOLColumn { + get { + return this.columnAUTOL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBOFFColumn { + get { + return this.columnNBOFF; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBSEQColumn { + get { + return this.columnNBSEQ; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBHHColumn { + get { + return this.columnNBHH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBHColumn { + get { + return this.columnNBH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBLLColumn { + get { + return this.columnNBLL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBLColumn { + get { + return this.columnNBL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow this[int index] { + get { + return ((GRPRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event GRPRowChangeEventHandler GRPRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event GRPRowChangeEventHandler GRPRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event GRPRowChangeEventHandler GRPRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event GRPRowChangeEventHandler GRPRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddGRPRow(GRPRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow AddGRPRow( + int USE, + int WINDOW, + string TITLE, + string MATRIX, + string POS, + string SPAN, + string FONT, + float ALAMH, + float ALAML, + string KADEVICE, + string ALAMTYPE, + float AUTOH, + float AUTOL, + float NBOFF, + int NBSEQ, + float NBHH, + float NBH, + float NBLL, + float NBL) { + GRPRow rowGRPRow = ((GRPRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + USE, + WINDOW, + TITLE, + MATRIX, + POS, + SPAN, + FONT, + ALAMH, + ALAML, + KADEVICE, + ALAMTYPE, + AUTOH, + AUTOL, + NBOFF, + NBSEQ, + NBHH, + NBH, + NBLL, + NBL}; + rowGRPRow.ItemArray = columnValuesArray; + this.Rows.Add(rowGRPRow); + return rowGRPRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow FindByIDX(int IDX) { + return ((GRPRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + GRPDataTable cln = ((GRPDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new GRPDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnUSE = base.Columns["USE"]; + this.columnWINDOW = base.Columns["WINDOW"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnMATRIX = base.Columns["MATRIX"]; + this.columnPOS = base.Columns["POS"]; + this.columnSPAN = base.Columns["SPAN"]; + this.columnFONT = base.Columns["FONT"]; + this.columnALAMH = base.Columns["ALAMH"]; + this.columnALAML = base.Columns["ALAML"]; + this.columnKADEVICE = base.Columns["KADEVICE"]; + this.columnALAMTYPE = base.Columns["ALAMTYPE"]; + this.columnAUTOH = base.Columns["AUTOH"]; + this.columnAUTOL = base.Columns["AUTOL"]; + this.columnNBOFF = base.Columns["NBOFF"]; + this.columnNBSEQ = base.Columns["NBSEQ"]; + this.columnNBHH = base.Columns["NBHH"]; + this.columnNBH = base.Columns["NBH"]; + this.columnNBLL = base.Columns["NBLL"]; + this.columnNBL = base.Columns["NBL"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnUSE = new global::System.Data.DataColumn("USE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUSE); + this.columnWINDOW = new global::System.Data.DataColumn("WINDOW", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnWINDOW); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnMATRIX = new global::System.Data.DataColumn("MATRIX", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMATRIX); + this.columnPOS = new global::System.Data.DataColumn("POS", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPOS); + this.columnSPAN = new global::System.Data.DataColumn("SPAN", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSPAN); + this.columnFONT = new global::System.Data.DataColumn("FONT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnFONT); + this.columnALAMH = new global::System.Data.DataColumn("ALAMH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMH); + this.columnALAML = new global::System.Data.DataColumn("ALAML", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAML); + this.columnKADEVICE = new global::System.Data.DataColumn("KADEVICE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnKADEVICE); + this.columnALAMTYPE = new global::System.Data.DataColumn("ALAMTYPE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMTYPE); + this.columnAUTOH = new global::System.Data.DataColumn("AUTOH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAUTOH); + this.columnAUTOL = new global::System.Data.DataColumn("AUTOL", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAUTOL); + this.columnNBOFF = new global::System.Data.DataColumn("NBOFF", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBOFF); + this.columnNBSEQ = new global::System.Data.DataColumn("NBSEQ", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBSEQ); + this.columnNBHH = new global::System.Data.DataColumn("NBHH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBHH); + this.columnNBH = new global::System.Data.DataColumn("NBH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBH); + this.columnNBLL = new global::System.Data.DataColumn("NBLL", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBLL); + this.columnNBL = new global::System.Data.DataColumn("NBL", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBL); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnUSE.Caption = "ENABLE"; + this.columnUSE.DefaultValue = ((int)(0)); + this.columnWINDOW.DefaultValue = ((int)(0)); + this.columnTITLE.DefaultValue = ((string)("")); + this.columnMATRIX.DefaultValue = ((string)("")); + this.columnPOS.DefaultValue = ((string)("")); + this.columnSPAN.DefaultValue = ((string)("")); + this.columnFONT.DefaultValue = ((string)("")); + this.columnALAMH.DefaultValue = ((float)(0F)); + this.columnALAML.DefaultValue = ((float)(0F)); + this.columnKADEVICE.DefaultValue = ((string)("")); + this.columnALAMTYPE.DefaultValue = ((string)("")); + this.columnAUTOH.DefaultValue = ((float)(0F)); + this.columnAUTOL.DefaultValue = ((float)(0F)); + this.columnNBOFF.DefaultValue = ((float)(0F)); + this.columnNBSEQ.DefaultValue = ((int)(0)); + this.columnNBHH.DefaultValue = ((float)(0F)); + this.columnNBH.DefaultValue = ((float)(0F)); + this.columnNBLL.DefaultValue = ((float)(0F)); + this.columnNBL.DefaultValue = ((float)(0F)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow NewGRPRow() { + return ((GRPRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new GRPRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(GRPRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.GRPRowChanged != null)) { + this.GRPRowChanged(this, new GRPRowChangeEvent(((GRPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.GRPRowChanging != null)) { + this.GRPRowChanging(this, new GRPRowChangeEvent(((GRPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.GRPRowDeleted != null)) { + this.GRPRowDeleted(this, new GRPRowChangeEvent(((GRPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.GRPRowDeleting != null)) { + this.GRPRowDeleting(this, new GRPRowChangeEvent(((GRPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveGRPRow(GRPRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "GRPDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class NORMALDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnALAMH; + + private global::System.Data.DataColumn columnALAML; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALDataTable() { + this.TableName = "NORMAL"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal NORMALDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected NORMALDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMHColumn { + get { + return this.columnALAMH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMLColumn { + get { + return this.columnALAML; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow this[int index] { + get { + return ((NORMALRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event NORMALRowChangeEventHandler NORMALRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event NORMALRowChangeEventHandler NORMALRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event NORMALRowChangeEventHandler NORMALRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event NORMALRowChangeEventHandler NORMALRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddNORMALRow(NORMALRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow AddNORMALRow(float ALAMH, float ALAML) { + NORMALRow rowNORMALRow = ((NORMALRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + ALAMH, + ALAML}; + rowNORMALRow.ItemArray = columnValuesArray; + this.Rows.Add(rowNORMALRow); + return rowNORMALRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow FindByIDX(int IDX) { + return ((NORMALRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + NORMALDataTable cln = ((NORMALDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new NORMALDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnALAMH = base.Columns["ALAMH"]; + this.columnALAML = base.Columns["ALAML"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnALAMH = new global::System.Data.DataColumn("ALAMH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMH); + this.columnALAML = new global::System.Data.DataColumn("ALAML", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAML); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnALAMH.DefaultValue = ((float)(0F)); + this.columnALAML.DefaultValue = ((float)(0F)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow NewNORMALRow() { + return ((NORMALRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new NORMALRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(NORMALRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.NORMALRowChanged != null)) { + this.NORMALRowChanged(this, new NORMALRowChangeEvent(((NORMALRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.NORMALRowChanging != null)) { + this.NORMALRowChanging(this, new NORMALRowChangeEvent(((NORMALRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.NORMALRowDeleted != null)) { + this.NORMALRowDeleted(this, new NORMALRowChangeEvent(((NORMALRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.NORMALRowDeleting != null)) { + this.NORMALRowDeleting(this, new NORMALRowChangeEvent(((NORMALRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveNORMALRow(NORMALRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "NORMALDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class VIEWGROUPDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnGNAME; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnVAL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPDataTable() { + this.TableName = "VIEWGROUP"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal VIEWGROUPDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected VIEWGROUPDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GNAMEColumn { + get { + return this.columnGNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VALColumn { + get { + return this.columnVAL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow this[int index] { + get { + return ((VIEWGROUPRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRowChangeEventHandler VIEWGROUPRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRowChangeEventHandler VIEWGROUPRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRowChangeEventHandler VIEWGROUPRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRowChangeEventHandler VIEWGROUPRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddVIEWGROUPRow(VIEWGROUPRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow AddVIEWGROUPRow(string GNAME, string TITLE, string VAL) { + VIEWGROUPRow rowVIEWGROUPRow = ((VIEWGROUPRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + GNAME, + TITLE, + VAL}; + rowVIEWGROUPRow.ItemArray = columnValuesArray; + this.Rows.Add(rowVIEWGROUPRow); + return rowVIEWGROUPRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow FindByIDX(int IDX) { + return ((VIEWGROUPRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + VIEWGROUPDataTable cln = ((VIEWGROUPDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new VIEWGROUPDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnGNAME = base.Columns["GNAME"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnVAL = base.Columns["VAL"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnGNAME = new global::System.Data.DataColumn("GNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGNAME); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnVAL = new global::System.Data.DataColumn("VAL", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVAL); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnGNAME.Caption = "SANGHO"; + this.columnGNAME.DefaultValue = ((string)("")); + this.columnTITLE.Caption = "TEL"; + this.columnTITLE.DefaultValue = ((string)("")); + this.columnVAL.DefaultValue = ((string)("")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow NewVIEWGROUPRow() { + return ((VIEWGROUPRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new VIEWGROUPRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(VIEWGROUPRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.VIEWGROUPRowChanged != null)) { + this.VIEWGROUPRowChanged(this, new VIEWGROUPRowChangeEvent(((VIEWGROUPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.VIEWGROUPRowChanging != null)) { + this.VIEWGROUPRowChanging(this, new VIEWGROUPRowChangeEvent(((VIEWGROUPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.VIEWGROUPRowDeleted != null)) { + this.VIEWGROUPRowDeleted(this, new VIEWGROUPRowChangeEvent(((VIEWGROUPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.VIEWGROUPRowDeleting != null)) { + this.VIEWGROUPRowDeleting(this, new VIEWGROUPRowChangeEvent(((VIEWGROUPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveVIEWGROUPRow(VIEWGROUPRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "VIEWGROUPDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class WINDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnUSE; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnMATRIX; + + private global::System.Data.DataColumn columnALAMH; + + private global::System.Data.DataColumn columnALAML; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINDataTable() { + this.TableName = "WIN"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal WINDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected WINDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn USEColumn { + get { + return this.columnUSE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MATRIXColumn { + get { + return this.columnMATRIX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMHColumn { + get { + return this.columnALAMH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMLColumn { + get { + return this.columnALAML; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow this[int index] { + get { + return ((WINRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event WINRowChangeEventHandler WINRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event WINRowChangeEventHandler WINRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event WINRowChangeEventHandler WINRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event WINRowChangeEventHandler WINRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddWINRow(WINRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow AddWINRow(int USE, string TITLE, string MATRIX, float ALAMH, float ALAML) { + WINRow rowWINRow = ((WINRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + USE, + TITLE, + MATRIX, + ALAMH, + ALAML}; + rowWINRow.ItemArray = columnValuesArray; + this.Rows.Add(rowWINRow); + return rowWINRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow FindByIDX(int IDX) { + return ((WINRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + WINDataTable cln = ((WINDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new WINDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnUSE = base.Columns["USE"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnMATRIX = base.Columns["MATRIX"]; + this.columnALAMH = base.Columns["ALAMH"]; + this.columnALAML = base.Columns["ALAML"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnUSE = new global::System.Data.DataColumn("USE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUSE); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnMATRIX = new global::System.Data.DataColumn("MATRIX", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMATRIX); + this.columnALAMH = new global::System.Data.DataColumn("ALAMH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMH); + this.columnALAML = new global::System.Data.DataColumn("ALAML", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAML); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnUSE.DefaultValue = ((int)(0)); + this.columnTITLE.DefaultValue = ((string)("")); + this.columnMATRIX.Caption = "MACHINE"; + this.columnMATRIX.DefaultValue = ((string)("")); + this.columnALAMH.DefaultValue = ((float)(0F)); + this.columnALAML.DefaultValue = ((float)(0F)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow NewWINRow() { + return ((WINRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new WINRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(WINRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.WINRowChanged != null)) { + this.WINRowChanged(this, new WINRowChangeEvent(((WINRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.WINRowChanging != null)) { + this.WINRowChanging(this, new WINRowChangeEvent(((WINRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.WINRowDeleted != null)) { + this.WINRowDeleted(this, new WINRowChangeEvent(((WINRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.WINRowDeleting != null)) { + this.WINRowDeleting(this, new WINRowChangeEvent(((WINRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveWINRow(WINRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "WINDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ALARMDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnATIME; + + private global::System.Data.DataColumn columnCH; + + private global::System.Data.DataColumn columnRTYPE; + + private global::System.Data.DataColumn columnVOLT; + + private global::System.Data.DataColumn columnATYPE; + + private global::System.Data.DataColumn columnMAXVOLT; + + private global::System.Data.DataColumn columnMINVOLT; + + private global::System.Data.DataColumn columnAM; + + private global::System.Data.DataColumn columnAM2; + + private global::System.Data.DataColumn columnTIME; + + private global::System.Data.DataColumn columnRTYPESTR; + + private global::System.Data.DataColumn columnATYPESTR; + + private global::System.Data.DataColumn columnCHNAME; + + private global::System.Data.DataColumn columnREMARK; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMDataTable() { + this.TableName = "ALARM"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ALARMDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected ALARMDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ATIMEColumn { + get { + return this.columnATIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CHColumn { + get { + return this.columnCH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RTYPEColumn { + get { + return this.columnRTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VOLTColumn { + get { + return this.columnVOLT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ATYPEColumn { + get { + return this.columnATYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MAXVOLTColumn { + get { + return this.columnMAXVOLT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MINVOLTColumn { + get { + return this.columnMINVOLT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AMColumn { + get { + return this.columnAM; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AM2Column { + get { + return this.columnAM2; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TIMEColumn { + get { + return this.columnTIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RTYPESTRColumn { + get { + return this.columnRTYPESTR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ATYPESTRColumn { + get { + return this.columnATYPESTR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CHNAMEColumn { + get { + return this.columnCHNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn REMARKColumn { + get { + return this.columnREMARK; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow this[int index] { + get { + return ((ALARMRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ALARMRowChangeEventHandler ALARMRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ALARMRowChangeEventHandler ALARMRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ALARMRowChangeEventHandler ALARMRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ALARMRowChangeEventHandler ALARMRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddALARMRow(ALARMRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow AddALARMRow(string ATIME, short CH, short RTYPE, float VOLT, short ATYPE, float MAXVOLT, float MINVOLT, string AM, string AM2, string TIME, string RTYPESTR, string ATYPESTR, string CHNAME, string REMARK) { + ALARMRow rowALARMRow = ((ALARMRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + ATIME, + CH, + RTYPE, + VOLT, + ATYPE, + MAXVOLT, + MINVOLT, + AM, + AM2, + TIME, + RTYPESTR, + ATYPESTR, + CHNAME, + REMARK}; + rowALARMRow.ItemArray = columnValuesArray; + this.Rows.Add(rowALARMRow); + return rowALARMRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow FindByATIMECHRTYPE(string ATIME, short CH, short RTYPE) { + return ((ALARMRow)(this.Rows.Find(new object[] { + ATIME, + CH, + RTYPE}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + ALARMDataTable cln = ((ALARMDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new ALARMDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnATIME = base.Columns["ATIME"]; + this.columnCH = base.Columns["CH"]; + this.columnRTYPE = base.Columns["RTYPE"]; + this.columnVOLT = base.Columns["VOLT"]; + this.columnATYPE = base.Columns["ATYPE"]; + this.columnMAXVOLT = base.Columns["MAXVOLT"]; + this.columnMINVOLT = base.Columns["MINVOLT"]; + this.columnAM = base.Columns["AM"]; + this.columnAM2 = base.Columns["AM2"]; + this.columnTIME = base.Columns["TIME"]; + this.columnRTYPESTR = base.Columns["RTYPESTR"]; + this.columnATYPESTR = base.Columns["ATYPESTR"]; + this.columnCHNAME = base.Columns["CHNAME"]; + this.columnREMARK = base.Columns["REMARK"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnATIME = new global::System.Data.DataColumn("ATIME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnATIME); + this.columnCH = new global::System.Data.DataColumn("CH", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCH); + this.columnRTYPE = new global::System.Data.DataColumn("RTYPE", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRTYPE); + this.columnVOLT = new global::System.Data.DataColumn("VOLT", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVOLT); + this.columnATYPE = new global::System.Data.DataColumn("ATYPE", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnATYPE); + this.columnMAXVOLT = new global::System.Data.DataColumn("MAXVOLT", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMAXVOLT); + this.columnMINVOLT = new global::System.Data.DataColumn("MINVOLT", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMINVOLT); + this.columnAM = new global::System.Data.DataColumn("AM", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAM); + this.columnAM2 = new global::System.Data.DataColumn("AM2", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAM2); + this.columnTIME = new global::System.Data.DataColumn("TIME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTIME); + this.columnRTYPESTR = new global::System.Data.DataColumn("RTYPESTR", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRTYPESTR); + this.columnATYPESTR = new global::System.Data.DataColumn("ATYPESTR", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnATYPESTR); + this.columnCHNAME = new global::System.Data.DataColumn("CHNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCHNAME); + this.columnREMARK = new global::System.Data.DataColumn("REMARK", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnREMARK); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnATIME, + this.columnCH, + this.columnRTYPE}, true)); + this.columnATIME.AllowDBNull = false; + this.columnATIME.DefaultValue = ((string)("")); + this.columnCH.AllowDBNull = false; + this.columnCH.DefaultValue = ((short)(0)); + this.columnRTYPE.AllowDBNull = false; + this.columnRTYPE.DefaultValue = ((short)(0)); + this.columnVOLT.DefaultValue = ((float)(0F)); + this.columnATYPE.DefaultValue = ((short)(0)); + this.columnMAXVOLT.DefaultValue = ((float)(0F)); + this.columnMINVOLT.DefaultValue = ((float)(0F)); + this.columnAM.DefaultValue = ((string)("")); + this.columnAM2.DefaultValue = ((string)("")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow NewALARMRow() { + return ((ALARMRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new ALARMRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(ALARMRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ALARMRowChanged != null)) { + this.ALARMRowChanged(this, new ALARMRowChangeEvent(((ALARMRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ALARMRowChanging != null)) { + this.ALARMRowChanging(this, new ALARMRowChangeEvent(((ALARMRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ALARMRowDeleted != null)) { + this.ALARMRowDeleted(this, new ALARMRowChangeEvent(((ALARMRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ALARMRowDeleting != null)) { + this.ALARMRowDeleting(this, new ALARMRowChangeEvent(((ALARMRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveALARMRow(ALARMRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ALARMDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class VIEWGROUPRDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnGNAME; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnVAL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRDataTable() { + this.TableName = "VIEWGROUPR"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal VIEWGROUPRDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected VIEWGROUPRDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GNAMEColumn { + get { + return this.columnGNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VALColumn { + get { + return this.columnVAL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow this[int index] { + get { + return ((VIEWGROUPRRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRRowChangeEventHandler VIEWGROUPRRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRRowChangeEventHandler VIEWGROUPRRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRRowChangeEventHandler VIEWGROUPRRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRRowChangeEventHandler VIEWGROUPRRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddVIEWGROUPRRow(VIEWGROUPRRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow AddVIEWGROUPRRow(string GNAME, string TITLE, string VAL) { + VIEWGROUPRRow rowVIEWGROUPRRow = ((VIEWGROUPRRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + GNAME, + TITLE, + VAL}; + rowVIEWGROUPRRow.ItemArray = columnValuesArray; + this.Rows.Add(rowVIEWGROUPRRow); + return rowVIEWGROUPRRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow FindByIDX(int IDX) { + return ((VIEWGROUPRRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + VIEWGROUPRDataTable cln = ((VIEWGROUPRDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new VIEWGROUPRDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnGNAME = base.Columns["GNAME"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnVAL = base.Columns["VAL"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnGNAME = new global::System.Data.DataColumn("GNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGNAME); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnVAL = new global::System.Data.DataColumn("VAL", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVAL); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnGNAME.Caption = "SANGHO"; + this.columnGNAME.DefaultValue = ((string)("")); + this.columnTITLE.Caption = "TEL"; + this.columnTITLE.DefaultValue = ((string)("")); + this.columnVAL.DefaultValue = ((string)("")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow NewVIEWGROUPRRow() { + return ((VIEWGROUPRRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new VIEWGROUPRRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(VIEWGROUPRRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.VIEWGROUPRRowChanged != null)) { + this.VIEWGROUPRRowChanged(this, new VIEWGROUPRRowChangeEvent(((VIEWGROUPRRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.VIEWGROUPRRowChanging != null)) { + this.VIEWGROUPRRowChanging(this, new VIEWGROUPRRowChangeEvent(((VIEWGROUPRRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.VIEWGROUPRRowDeleted != null)) { + this.VIEWGROUPRRowDeleted(this, new VIEWGROUPRRowChangeEvent(((VIEWGROUPRRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.VIEWGROUPRRowDeleting != null)) { + this.VIEWGROUPRRowDeleting(this, new VIEWGROUPRRowChangeEvent(((VIEWGROUPRRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveVIEWGROUPRRow(VIEWGROUPRRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "VIEWGROUPRDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class TRENDVIEWCHLISTDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnSHOW; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnCOLOR; + + private global::System.Data.DataColumn columnch; + + private global::System.Data.DataColumn columndev; + + private global::System.Data.DataColumn columnunit; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTDataTable() { + this.TableName = "TRENDVIEWCHLIST"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal TRENDVIEWCHLISTDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected TRENDVIEWCHLISTDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SHOWColumn { + get { + return this.columnSHOW; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn COLORColumn { + get { + return this.columnCOLOR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn chColumn { + get { + return this.columnch; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn devColumn { + get { + return this.columndev; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn unitColumn { + get { + return this.columnunit; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow this[int index] { + get { + return ((TRENDVIEWCHLISTRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event TRENDVIEWCHLISTRowChangeEventHandler TRENDVIEWCHLISTRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event TRENDVIEWCHLISTRowChangeEventHandler TRENDVIEWCHLISTRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event TRENDVIEWCHLISTRowChangeEventHandler TRENDVIEWCHLISTRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event TRENDVIEWCHLISTRowChangeEventHandler TRENDVIEWCHLISTRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddTRENDVIEWCHLISTRow(TRENDVIEWCHLISTRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow AddTRENDVIEWCHLISTRow(int IDX, bool SHOW, string TITLE, int COLOR, int ch, int dev, int unit) { + TRENDVIEWCHLISTRow rowTRENDVIEWCHLISTRow = ((TRENDVIEWCHLISTRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + IDX, + SHOW, + TITLE, + COLOR, + ch, + dev, + unit}; + rowTRENDVIEWCHLISTRow.ItemArray = columnValuesArray; + this.Rows.Add(rowTRENDVIEWCHLISTRow); + return rowTRENDVIEWCHLISTRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow FindByIDX(int IDX) { + return ((TRENDVIEWCHLISTRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + TRENDVIEWCHLISTDataTable cln = ((TRENDVIEWCHLISTDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new TRENDVIEWCHLISTDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnSHOW = base.Columns["SHOW"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnCOLOR = base.Columns["COLOR"]; + this.columnch = base.Columns["ch"]; + this.columndev = base.Columns["dev"]; + this.columnunit = base.Columns["unit"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnSHOW = new global::System.Data.DataColumn("SHOW", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSHOW); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnCOLOR = new global::System.Data.DataColumn("COLOR", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCOLOR); + this.columnch = new global::System.Data.DataColumn("ch", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnch); + this.columndev = new global::System.Data.DataColumn("dev", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columndev); + this.columnunit = new global::System.Data.DataColumn("unit", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnunit); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow NewTRENDVIEWCHLISTRow() { + return ((TRENDVIEWCHLISTRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new TRENDVIEWCHLISTRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(TRENDVIEWCHLISTRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.TRENDVIEWCHLISTRowChanged != null)) { + this.TRENDVIEWCHLISTRowChanged(this, new TRENDVIEWCHLISTRowChangeEvent(((TRENDVIEWCHLISTRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.TRENDVIEWCHLISTRowChanging != null)) { + this.TRENDVIEWCHLISTRowChanging(this, new TRENDVIEWCHLISTRowChangeEvent(((TRENDVIEWCHLISTRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.TRENDVIEWCHLISTRowDeleted != null)) { + this.TRENDVIEWCHLISTRowDeleted(this, new TRENDVIEWCHLISTRowChangeEvent(((TRENDVIEWCHLISTRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.TRENDVIEWCHLISTRowDeleting != null)) { + this.TRENDVIEWCHLISTRowDeleting(this, new TRENDVIEWCHLISTRowChangeEvent(((TRENDVIEWCHLISTRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveTRENDVIEWCHLISTRow(TRENDVIEWCHLISTRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "TRENDVIEWCHLISTDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class CHANNELRow : global::System.Data.DataRow { + + private CHANNELDataTable tableCHANNEL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal CHANNELRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableCHANNEL = ((CHANNELDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableCHANNEL.IDXColumn])); + } + set { + this[this.tableCHANNEL.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int ENABLE { + get { + if (this.IsENABLENull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.ENABLEColumn])); + } + } + set { + this[this.tableCHANNEL.ENABLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int USE { + get { + if (this.IsUSENull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.USEColumn])); + } + } + set { + this[this.tableCHANNEL.USEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableCHANNEL.TITLEColumn])); + } + } + set { + this[this.tableCHANNEL.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int GIDX { + get { + if (this.IsGIDXNull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.GIDXColumn])); + } + } + set { + this[this.tableCHANNEL.GIDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MACHINE { + get { + if (this.IsMACHINENull()) { + return ""; + } + else { + return ((string)(this[this.tableCHANNEL.MACHINEColumn])); + } + } + set { + this[this.tableCHANNEL.MACHINEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int ALAMTYPE { + get { + if (this.IsALAMTYPENull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.ALAMTYPEColumn])); + } + } + set { + this[this.tableCHANNEL.ALAMTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAMH { + get { + if (this.IsALAMHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.ALAMHColumn])); + } + } + set { + this[this.tableCHANNEL.ALAMHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAML { + get { + if (this.IsALAMLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.ALAMLColumn])); + } + } + set { + this[this.tableCHANNEL.ALAMLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int COLOR { + get { + if (this.IsCOLORNull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.COLORColumn])); + } + } + set { + this[this.tableCHANNEL.COLORColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float AUTOH { + get { + if (this.IsAUTOHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.AUTOHColumn])); + } + } + set { + this[this.tableCHANNEL.AUTOHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float AUTOL { + get { + if (this.IsAUTOLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.AUTOLColumn])); + } + } + set { + this[this.tableCHANNEL.AUTOLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string UNIT { + get { + if (this.IsUNITNull()) { + return ""; + } + else { + return ((string)(this[this.tableCHANNEL.UNITColumn])); + } + } + set { + this[this.tableCHANNEL.UNITColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int DECPOS { + get { + if (this.IsDECPOSNull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.DECPOSColumn])); + } + } + set { + this[this.tableCHANNEL.DECPOSColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string GRPNAME { + get { + if (this.IsGRPNAMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableCHANNEL.GRPNAMEColumn])); + } + } + set { + this[this.tableCHANNEL.GRPNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX_M { + get { + if (this.IsIDX_MNull()) { + return -1; + } + else { + return ((int)(this[this.tableCHANNEL.IDX_MColumn])); + } + } + set { + this[this.tableCHANNEL.IDX_MColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX_U { + get { + if (this.IsIDX_UNull()) { + return -1; + } + else { + return ((int)(this[this.tableCHANNEL.IDX_UColumn])); + } + } + set { + this[this.tableCHANNEL.IDX_UColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX_C { + get { + if (this.IsIDX_CNull()) { + return -1; + } + else { + return ((int)(this[this.tableCHANNEL.IDX_CColumn])); + } + } + set { + this[this.tableCHANNEL.IDX_CColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float VOFFSET { + get { + if (this.IsVOFFSETNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.VOFFSETColumn])); + } + } + set { + this[this.tableCHANNEL.VOFFSETColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsENABLENull() { + return this.IsNull(this.tableCHANNEL.ENABLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetENABLENull() { + this[this.tableCHANNEL.ENABLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUSENull() { + return this.IsNull(this.tableCHANNEL.USEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUSENull() { + this[this.tableCHANNEL.USEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableCHANNEL.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableCHANNEL.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGIDXNull() { + return this.IsNull(this.tableCHANNEL.GIDXColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGIDXNull() { + this[this.tableCHANNEL.GIDXColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMACHINENull() { + return this.IsNull(this.tableCHANNEL.MACHINEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMACHINENull() { + this[this.tableCHANNEL.MACHINEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMTYPENull() { + return this.IsNull(this.tableCHANNEL.ALAMTYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMTYPENull() { + this[this.tableCHANNEL.ALAMTYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMHNull() { + return this.IsNull(this.tableCHANNEL.ALAMHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMHNull() { + this[this.tableCHANNEL.ALAMHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMLNull() { + return this.IsNull(this.tableCHANNEL.ALAMLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMLNull() { + this[this.tableCHANNEL.ALAMLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCOLORNull() { + return this.IsNull(this.tableCHANNEL.COLORColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCOLORNull() { + this[this.tableCHANNEL.COLORColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAUTOHNull() { + return this.IsNull(this.tableCHANNEL.AUTOHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAUTOHNull() { + this[this.tableCHANNEL.AUTOHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAUTOLNull() { + return this.IsNull(this.tableCHANNEL.AUTOLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAUTOLNull() { + this[this.tableCHANNEL.AUTOLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUNITNull() { + return this.IsNull(this.tableCHANNEL.UNITColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUNITNull() { + this[this.tableCHANNEL.UNITColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDECPOSNull() { + return this.IsNull(this.tableCHANNEL.DECPOSColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDECPOSNull() { + this[this.tableCHANNEL.DECPOSColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGRPNAMENull() { + return this.IsNull(this.tableCHANNEL.GRPNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGRPNAMENull() { + this[this.tableCHANNEL.GRPNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIDX_MNull() { + return this.IsNull(this.tableCHANNEL.IDX_MColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIDX_MNull() { + this[this.tableCHANNEL.IDX_MColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIDX_UNull() { + return this.IsNull(this.tableCHANNEL.IDX_UColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIDX_UNull() { + this[this.tableCHANNEL.IDX_UColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIDX_CNull() { + return this.IsNull(this.tableCHANNEL.IDX_CColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIDX_CNull() { + this[this.tableCHANNEL.IDX_CColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVOFFSETNull() { + return this.IsNull(this.tableCHANNEL.VOFFSETColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVOFFSETNull() { + this[this.tableCHANNEL.VOFFSETColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class DEVICERow : global::System.Data.DataRow { + + private DEVICEDataTable tableDEVICE; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal DEVICERow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableDEVICE = ((DEVICEDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableDEVICE.IDXColumn])); + } + set { + this[this.tableDEVICE.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int USE { + get { + if (this.IsUSENull()) { + return 0; + } + else { + return ((int)(this[this.tableDEVICE.USEColumn])); + } + } + set { + this[this.tableDEVICE.USEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.TITLEColumn])); + } + } + set { + this[this.tableDEVICE.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string IP { + get { + if (this.IsIPNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.IPColumn])); + } + } + set { + this[this.tableDEVICE.IPColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CHCOUNT { + get { + if (this.IsCHCOUNTNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.CHCOUNTColumn])); + } + } + set { + this[this.tableDEVICE.CHCOUNTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string KACOMMAND { + get { + if (this.IsKACOMMANDNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.KACOMMANDColumn])); + } + } + set { + this[this.tableDEVICE.KACOMMANDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CHCOMMAND { + get { + if (this.IsCHCOMMANDNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.CHCOMMANDColumn])); + } + } + set { + this[this.tableDEVICE.CHCOMMANDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SNCOMMAND { + get { + if (this.IsSNCOMMANDNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.SNCOMMANDColumn])); + } + } + set { + this[this.tableDEVICE.SNCOMMANDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int PORT { + get { + if (this.IsPORTNull()) { + return 34150; + } + else { + return ((int)(this[this.tableDEVICE.PORTColumn])); + } + } + set { + this[this.tableDEVICE.PORTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUSENull() { + return this.IsNull(this.tableDEVICE.USEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUSENull() { + this[this.tableDEVICE.USEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableDEVICE.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableDEVICE.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIPNull() { + return this.IsNull(this.tableDEVICE.IPColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIPNull() { + this[this.tableDEVICE.IPColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCHCOUNTNull() { + return this.IsNull(this.tableDEVICE.CHCOUNTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCHCOUNTNull() { + this[this.tableDEVICE.CHCOUNTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsKACOMMANDNull() { + return this.IsNull(this.tableDEVICE.KACOMMANDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetKACOMMANDNull() { + this[this.tableDEVICE.KACOMMANDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCHCOMMANDNull() { + return this.IsNull(this.tableDEVICE.CHCOMMANDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCHCOMMANDNull() { + this[this.tableDEVICE.CHCOMMANDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSNCOMMANDNull() { + return this.IsNull(this.tableDEVICE.SNCOMMANDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSNCOMMANDNull() { + this[this.tableDEVICE.SNCOMMANDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPORTNull() { + return this.IsNull(this.tableDEVICE.PORTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPORTNull() { + this[this.tableDEVICE.PORTColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class GRPRow : global::System.Data.DataRow { + + private GRPDataTable tableGRP; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal GRPRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableGRP = ((GRPDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableGRP.IDXColumn])); + } + set { + this[this.tableGRP.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int USE { + get { + if (this.IsUSENull()) { + return 0; + } + else { + return ((int)(this[this.tableGRP.USEColumn])); + } + } + set { + this[this.tableGRP.USEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int WINDOW { + get { + if (this.IsWINDOWNull()) { + return 0; + } + else { + return ((int)(this[this.tableGRP.WINDOWColumn])); + } + } + set { + this[this.tableGRP.WINDOWColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.TITLEColumn])); + } + } + set { + this[this.tableGRP.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MATRIX { + get { + if (this.IsMATRIXNull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.MATRIXColumn])); + } + } + set { + this[this.tableGRP.MATRIXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string POS { + get { + if (this.IsPOSNull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.POSColumn])); + } + } + set { + this[this.tableGRP.POSColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SPAN { + get { + if (this.IsSPANNull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.SPANColumn])); + } + } + set { + this[this.tableGRP.SPANColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string FONT { + get { + if (this.IsFONTNull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.FONTColumn])); + } + } + set { + this[this.tableGRP.FONTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAMH { + get { + if (this.IsALAMHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.ALAMHColumn])); + } + } + set { + this[this.tableGRP.ALAMHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAML { + get { + if (this.IsALAMLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.ALAMLColumn])); + } + } + set { + this[this.tableGRP.ALAMLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string KADEVICE { + get { + if (this.IsKADEVICENull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.KADEVICEColumn])); + } + } + set { + this[this.tableGRP.KADEVICEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ALAMTYPE { + get { + if (this.IsALAMTYPENull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.ALAMTYPEColumn])); + } + } + set { + this[this.tableGRP.ALAMTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float AUTOH { + get { + if (this.IsAUTOHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.AUTOHColumn])); + } + } + set { + this[this.tableGRP.AUTOHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float AUTOL { + get { + if (this.IsAUTOLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.AUTOLColumn])); + } + } + set { + this[this.tableGRP.AUTOLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBOFF { + get { + if (this.IsNBOFFNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBOFFColumn])); + } + } + set { + this[this.tableGRP.NBOFFColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int NBSEQ { + get { + if (this.IsNBSEQNull()) { + return 0; + } + else { + return ((int)(this[this.tableGRP.NBSEQColumn])); + } + } + set { + this[this.tableGRP.NBSEQColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBHH { + get { + if (this.IsNBHHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBHHColumn])); + } + } + set { + this[this.tableGRP.NBHHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBH { + get { + if (this.IsNBHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBHColumn])); + } + } + set { + this[this.tableGRP.NBHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBLL { + get { + if (this.IsNBLLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBLLColumn])); + } + } + set { + this[this.tableGRP.NBLLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBL { + get { + if (this.IsNBLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBLColumn])); + } + } + set { + this[this.tableGRP.NBLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUSENull() { + return this.IsNull(this.tableGRP.USEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUSENull() { + this[this.tableGRP.USEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsWINDOWNull() { + return this.IsNull(this.tableGRP.WINDOWColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetWINDOWNull() { + this[this.tableGRP.WINDOWColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableGRP.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableGRP.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMATRIXNull() { + return this.IsNull(this.tableGRP.MATRIXColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMATRIXNull() { + this[this.tableGRP.MATRIXColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPOSNull() { + return this.IsNull(this.tableGRP.POSColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPOSNull() { + this[this.tableGRP.POSColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSPANNull() { + return this.IsNull(this.tableGRP.SPANColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSPANNull() { + this[this.tableGRP.SPANColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsFONTNull() { + return this.IsNull(this.tableGRP.FONTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetFONTNull() { + this[this.tableGRP.FONTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMHNull() { + return this.IsNull(this.tableGRP.ALAMHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMHNull() { + this[this.tableGRP.ALAMHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMLNull() { + return this.IsNull(this.tableGRP.ALAMLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMLNull() { + this[this.tableGRP.ALAMLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsKADEVICENull() { + return this.IsNull(this.tableGRP.KADEVICEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetKADEVICENull() { + this[this.tableGRP.KADEVICEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMTYPENull() { + return this.IsNull(this.tableGRP.ALAMTYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMTYPENull() { + this[this.tableGRP.ALAMTYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAUTOHNull() { + return this.IsNull(this.tableGRP.AUTOHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAUTOHNull() { + this[this.tableGRP.AUTOHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAUTOLNull() { + return this.IsNull(this.tableGRP.AUTOLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAUTOLNull() { + this[this.tableGRP.AUTOLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBOFFNull() { + return this.IsNull(this.tableGRP.NBOFFColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBOFFNull() { + this[this.tableGRP.NBOFFColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBSEQNull() { + return this.IsNull(this.tableGRP.NBSEQColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBSEQNull() { + this[this.tableGRP.NBSEQColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBHHNull() { + return this.IsNull(this.tableGRP.NBHHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBHHNull() { + this[this.tableGRP.NBHHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBHNull() { + return this.IsNull(this.tableGRP.NBHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBHNull() { + this[this.tableGRP.NBHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBLLNull() { + return this.IsNull(this.tableGRP.NBLLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBLLNull() { + this[this.tableGRP.NBLLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBLNull() { + return this.IsNull(this.tableGRP.NBLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBLNull() { + this[this.tableGRP.NBLColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class NORMALRow : global::System.Data.DataRow { + + private NORMALDataTable tableNORMAL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal NORMALRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableNORMAL = ((NORMALDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableNORMAL.IDXColumn])); + } + set { + this[this.tableNORMAL.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAMH { + get { + if (this.IsALAMHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableNORMAL.ALAMHColumn])); + } + } + set { + this[this.tableNORMAL.ALAMHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAML { + get { + if (this.IsALAMLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableNORMAL.ALAMLColumn])); + } + } + set { + this[this.tableNORMAL.ALAMLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMHNull() { + return this.IsNull(this.tableNORMAL.ALAMHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMHNull() { + this[this.tableNORMAL.ALAMHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMLNull() { + return this.IsNull(this.tableNORMAL.ALAMLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMLNull() { + this[this.tableNORMAL.ALAMLColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class VIEWGROUPRow : global::System.Data.DataRow { + + private VIEWGROUPDataTable tableVIEWGROUP; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal VIEWGROUPRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableVIEWGROUP = ((VIEWGROUPDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableVIEWGROUP.IDXColumn])); + } + set { + this[this.tableVIEWGROUP.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string GNAME { + get { + if (this.IsGNAMENull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUP.GNAMEColumn])); + } + } + set { + this[this.tableVIEWGROUP.GNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUP.TITLEColumn])); + } + } + set { + this[this.tableVIEWGROUP.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VAL { + get { + if (this.IsVALNull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUP.VALColumn])); + } + } + set { + this[this.tableVIEWGROUP.VALColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGNAMENull() { + return this.IsNull(this.tableVIEWGROUP.GNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGNAMENull() { + this[this.tableVIEWGROUP.GNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableVIEWGROUP.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableVIEWGROUP.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVALNull() { + return this.IsNull(this.tableVIEWGROUP.VALColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVALNull() { + this[this.tableVIEWGROUP.VALColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class WINRow : global::System.Data.DataRow { + + private WINDataTable tableWIN; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal WINRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableWIN = ((WINDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableWIN.IDXColumn])); + } + set { + this[this.tableWIN.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int USE { + get { + if (this.IsUSENull()) { + return 0; + } + else { + return ((int)(this[this.tableWIN.USEColumn])); + } + } + set { + this[this.tableWIN.USEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableWIN.TITLEColumn])); + } + } + set { + this[this.tableWIN.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MATRIX { + get { + if (this.IsMATRIXNull()) { + return ""; + } + else { + return ((string)(this[this.tableWIN.MATRIXColumn])); + } + } + set { + this[this.tableWIN.MATRIXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAMH { + get { + if (this.IsALAMHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableWIN.ALAMHColumn])); + } + } + set { + this[this.tableWIN.ALAMHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAML { + get { + if (this.IsALAMLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableWIN.ALAMLColumn])); + } + } + set { + this[this.tableWIN.ALAMLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUSENull() { + return this.IsNull(this.tableWIN.USEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUSENull() { + this[this.tableWIN.USEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableWIN.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableWIN.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMATRIXNull() { + return this.IsNull(this.tableWIN.MATRIXColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMATRIXNull() { + this[this.tableWIN.MATRIXColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMHNull() { + return this.IsNull(this.tableWIN.ALAMHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMHNull() { + this[this.tableWIN.ALAMHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMLNull() { + return this.IsNull(this.tableWIN.ALAMLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMLNull() { + this[this.tableWIN.ALAMLColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class ALARMRow : global::System.Data.DataRow { + + private ALARMDataTable tableALARM; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ALARMRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableALARM = ((ALARMDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ATIME { + get { + return ((string)(this[this.tableALARM.ATIMEColumn])); + } + set { + this[this.tableALARM.ATIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short CH { + get { + return ((short)(this[this.tableALARM.CHColumn])); + } + set { + this[this.tableALARM.CHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short RTYPE { + get { + return ((short)(this[this.tableALARM.RTYPEColumn])); + } + set { + this[this.tableALARM.RTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float VOLT { + get { + if (this.IsVOLTNull()) { + return 0F; + } + else { + return ((float)(this[this.tableALARM.VOLTColumn])); + } + } + set { + this[this.tableALARM.VOLTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short ATYPE { + get { + if (this.IsATYPENull()) { + return 0; + } + else { + return ((short)(this[this.tableALARM.ATYPEColumn])); + } + } + set { + this[this.tableALARM.ATYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float MAXVOLT { + get { + if (this.IsMAXVOLTNull()) { + return 0F; + } + else { + return ((float)(this[this.tableALARM.MAXVOLTColumn])); + } + } + set { + this[this.tableALARM.MAXVOLTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float MINVOLT { + get { + if (this.IsMINVOLTNull()) { + return 0F; + } + else { + return ((float)(this[this.tableALARM.MINVOLTColumn])); + } + } + set { + this[this.tableALARM.MINVOLTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string AM { + get { + if (this.IsAMNull()) { + return ""; + } + else { + return ((string)(this[this.tableALARM.AMColumn])); + } + } + set { + this[this.tableALARM.AMColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string AM2 { + get { + if (this.IsAM2Null()) { + return ""; + } + else { + return ((string)(this[this.tableALARM.AM2Column])); + } + } + set { + this[this.tableALARM.AM2Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TIME { + get { + if (this.IsTIMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.TIMEColumn])); + } + } + set { + this[this.tableALARM.TIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string RTYPESTR { + get { + if (this.IsRTYPESTRNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.RTYPESTRColumn])); + } + } + set { + this[this.tableALARM.RTYPESTRColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ATYPESTR { + get { + if (this.IsATYPESTRNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.ATYPESTRColumn])); + } + } + set { + this[this.tableALARM.ATYPESTRColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CHNAME { + get { + if (this.IsCHNAMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.CHNAMEColumn])); + } + } + set { + this[this.tableALARM.CHNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string REMARK { + get { + if (this.IsREMARKNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.REMARKColumn])); + } + } + set { + this[this.tableALARM.REMARKColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVOLTNull() { + return this.IsNull(this.tableALARM.VOLTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVOLTNull() { + this[this.tableALARM.VOLTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsATYPENull() { + return this.IsNull(this.tableALARM.ATYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetATYPENull() { + this[this.tableALARM.ATYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMAXVOLTNull() { + return this.IsNull(this.tableALARM.MAXVOLTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMAXVOLTNull() { + this[this.tableALARM.MAXVOLTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMINVOLTNull() { + return this.IsNull(this.tableALARM.MINVOLTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMINVOLTNull() { + this[this.tableALARM.MINVOLTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAMNull() { + return this.IsNull(this.tableALARM.AMColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAMNull() { + this[this.tableALARM.AMColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAM2Null() { + return this.IsNull(this.tableALARM.AM2Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAM2Null() { + this[this.tableALARM.AM2Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTIMENull() { + return this.IsNull(this.tableALARM.TIMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTIMENull() { + this[this.tableALARM.TIMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRTYPESTRNull() { + return this.IsNull(this.tableALARM.RTYPESTRColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRTYPESTRNull() { + this[this.tableALARM.RTYPESTRColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsATYPESTRNull() { + return this.IsNull(this.tableALARM.ATYPESTRColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetATYPESTRNull() { + this[this.tableALARM.ATYPESTRColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCHNAMENull() { + return this.IsNull(this.tableALARM.CHNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCHNAMENull() { + this[this.tableALARM.CHNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsREMARKNull() { + return this.IsNull(this.tableALARM.REMARKColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetREMARKNull() { + this[this.tableALARM.REMARKColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class VIEWGROUPRRow : global::System.Data.DataRow { + + private VIEWGROUPRDataTable tableVIEWGROUPR; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal VIEWGROUPRRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableVIEWGROUPR = ((VIEWGROUPRDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableVIEWGROUPR.IDXColumn])); + } + set { + this[this.tableVIEWGROUPR.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string GNAME { + get { + if (this.IsGNAMENull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUPR.GNAMEColumn])); + } + } + set { + this[this.tableVIEWGROUPR.GNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUPR.TITLEColumn])); + } + } + set { + this[this.tableVIEWGROUPR.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VAL { + get { + if (this.IsVALNull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUPR.VALColumn])); + } + } + set { + this[this.tableVIEWGROUPR.VALColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGNAMENull() { + return this.IsNull(this.tableVIEWGROUPR.GNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGNAMENull() { + this[this.tableVIEWGROUPR.GNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableVIEWGROUPR.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableVIEWGROUPR.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVALNull() { + return this.IsNull(this.tableVIEWGROUPR.VALColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVALNull() { + this[this.tableVIEWGROUPR.VALColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class TRENDVIEWCHLISTRow : global::System.Data.DataRow { + + private TRENDVIEWCHLISTDataTable tableTRENDVIEWCHLIST; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal TRENDVIEWCHLISTRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableTRENDVIEWCHLIST = ((TRENDVIEWCHLISTDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableTRENDVIEWCHLIST.IDXColumn])); + } + set { + this[this.tableTRENDVIEWCHLIST.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool SHOW { + get { + if (this.IsSHOWNull()) { + return false; + } + else { + return ((bool)(this[this.tableTRENDVIEWCHLIST.SHOWColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.SHOWColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableTRENDVIEWCHLIST.TITLEColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int COLOR { + get { + if (this.IsCOLORNull()) { + return 0; + } + else { + return ((int)(this[this.tableTRENDVIEWCHLIST.COLORColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.COLORColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int ch { + get { + if (this.IschNull()) { + return -1; + } + else { + return ((int)(this[this.tableTRENDVIEWCHLIST.chColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.chColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int dev { + get { + if (this.IsdevNull()) { + return -1; + } + else { + return ((int)(this[this.tableTRENDVIEWCHLIST.devColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.devColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int unit { + get { + if (this.IsunitNull()) { + return -1; + } + else { + return ((int)(this[this.tableTRENDVIEWCHLIST.unitColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.unitColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSHOWNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.SHOWColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSHOWNull() { + this[this.tableTRENDVIEWCHLIST.SHOWColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableTRENDVIEWCHLIST.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCOLORNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.COLORColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCOLORNull() { + this[this.tableTRENDVIEWCHLIST.COLORColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IschNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.chColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetchNull() { + this[this.tableTRENDVIEWCHLIST.chColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsdevNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.devColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetdevNull() { + this[this.tableTRENDVIEWCHLIST.devColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsunitNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.unitColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetunitNull() { + this[this.tableTRENDVIEWCHLIST.unitColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class CHANNELRowChangeEvent : global::System.EventArgs { + + private CHANNELRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRowChangeEvent(CHANNELRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class DEVICERowChangeEvent : global::System.EventArgs { + + private DEVICERow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERowChangeEvent(DEVICERow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class GRPRowChangeEvent : global::System.EventArgs { + + private GRPRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRowChangeEvent(GRPRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class NORMALRowChangeEvent : global::System.EventArgs { + + private NORMALRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRowChangeEvent(NORMALRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class VIEWGROUPRowChangeEvent : global::System.EventArgs { + + private VIEWGROUPRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRowChangeEvent(VIEWGROUPRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class WINRowChangeEvent : global::System.EventArgs { + + private WINRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRowChangeEvent(WINRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class ALARMRowChangeEvent : global::System.EventArgs { + + private ALARMRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRowChangeEvent(ALARMRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class VIEWGROUPRRowChangeEvent : global::System.EventArgs { + + private VIEWGROUPRRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRowChangeEvent(VIEWGROUPRRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class TRENDVIEWCHLISTRowChangeEvent : global::System.EventArgs { + + private TRENDVIEWCHLISTRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRowChangeEvent(TRENDVIEWCHLISTRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Viewer/AlarmViewer/DocumentElement.cs b/Viewer/AlarmViewer/DocumentElement.cs new file mode 100644 index 0000000..28c8e1f --- /dev/null +++ b/Viewer/AlarmViewer/DocumentElement.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + +namespace vmsnet +{ + public partial class DocumentElement + { + } + +} diff --git a/Viewer/AlarmViewer/DocumentElement.xsc b/Viewer/AlarmViewer/DocumentElement.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Viewer/AlarmViewer/DocumentElement.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/DocumentElement.xsd b/Viewer/AlarmViewer/DocumentElement.xsd new file mode 100644 index 0000000..bbef828 --- /dev/null +++ b/Viewer/AlarmViewer/DocumentElement.xsd @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/DocumentElement.xss b/Viewer/AlarmViewer/DocumentElement.xss new file mode 100644 index 0000000..1a54c51 --- /dev/null +++ b/Viewer/AlarmViewer/DocumentElement.xss @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/MethodExts.cs b/Viewer/AlarmViewer/MethodExts.cs new file mode 100644 index 0000000..a0f6dbc --- /dev/null +++ b/Viewer/AlarmViewer/MethodExts.cs @@ -0,0 +1,39 @@ +using System; +using System.Xml; +using System.Linq; +using System.Xml.Linq; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using AR; +using System.IO; +using System.Text; + + +namespace Project +{ + public static class MethodExts + { + /// + /// 지정된 파일 끝에 내용을 추가합니다. + /// + /// + /// + public static void AppendText(this System.IO.FileInfo filename, string data) + { + if (filename.Directory.Exists == false) filename.Directory.Create(); + using (var writer = new StreamWriter(filename.FullName, true, System.Text.Encoding.Default)) + writer.Write(data);// + } + + public static void WriteText(this System.IO.FileInfo filename, string data, bool append = false) + { + if (filename.Directory.Exists == false) filename.Directory.Create(); + if (append == false) + System.IO.File.WriteAllText(filename.FullName, data); + else + AppendText(filename, data); + } + + } + +} diff --git a/Viewer/AlarmViewer/My Project/Application.myapp b/Viewer/AlarmViewer/My Project/Application.myapp new file mode 100644 index 0000000..572da45 --- /dev/null +++ b/Viewer/AlarmViewer/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + true + Frm_Main + false + 0 + true + 0 + true + \ No newline at end of file diff --git a/Viewer/AlarmViewer/My Project/DataSources/ChartData.datasource b/Viewer/AlarmViewer/My Project/DataSources/ChartData.datasource new file mode 100644 index 0000000..7d410a3 --- /dev/null +++ b/Viewer/AlarmViewer/My Project/DataSources/ChartData.datasource @@ -0,0 +1,10 @@ + + + + vmsnet.ChartData, cVMS.NET, Version=16.3.15.1530, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Viewer/AlarmViewer/My Project/Resources.resx b/Viewer/AlarmViewer/My Project/Resources.resx new file mode 100644 index 0000000..66f85e1 --- /dev/null +++ b/Viewer/AlarmViewer/My Project/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Blue Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Green Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Purple Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Red Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/My Project/Settings.settings b/Viewer/AlarmViewer/My Project/Settings.settings new file mode 100644 index 0000000..006bdaa --- /dev/null +++ b/Viewer/AlarmViewer/My Project/Settings.settings @@ -0,0 +1,9 @@ + + + + + + 2 + + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/My Project/licenses.licx b/Viewer/AlarmViewer/My Project/licenses.licx new file mode 100644 index 0000000..e69de29 diff --git a/Viewer/AlarmViewer/OpenTK.dll.config b/Viewer/AlarmViewer/OpenTK.dll.config new file mode 100644 index 0000000..7098d39 --- /dev/null +++ b/Viewer/AlarmViewer/OpenTK.dll.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Viewer/AlarmViewer/Program.cs b/Viewer/AlarmViewer/Program.cs new file mode 100644 index 0000000..0a4995c --- /dev/null +++ b/Viewer/AlarmViewer/Program.cs @@ -0,0 +1,42 @@ +using System; +using System.Linq; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using vmsnet; + +namespace vmsnet +{ + + internal static class Program + { + [DllImport("user32.dll")] + private static extern bool SetProcessDPIAware(); + + /// + /// 해당 애플리케이션의 주 진입점입니다. + /// + [STAThread] + static void Main(string[] args) + { + if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware(); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + if (System.Diagnostics.Debugger.IsAttached == false) + AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; + if (args != null && args.Any()) PUB.ExtCommand = args[0]; + Application.Run(new Frm_Alamlist()); + } + + private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + PUB.NotExitMonitor = true; + string fn = System.IO.Path.Combine("Bugreport", DateTime.Now.ToString("yyMMddHHmmss") + "_error.xml"); + var fi = new System.IO.FileInfo(fn); + if (fi.Directory.Exists == false) fi.Directory.Create(); + System.IO.File.WriteAllText(fi.FullName, e.ExceptionObject.ToString(), System.Text.Encoding.Default); + } + } + + + +} diff --git a/Viewer/AlarmViewer/Properties/AssemblyInfo.cs b/Viewer/AlarmViewer/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4ebecf1 --- /dev/null +++ b/Viewer/AlarmViewer/Properties/AssemblyInfo.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using System.Reflection; +using System.Runtime.InteropServices; + + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. + +// 어셈블리 특성 값을 검토합니다. + +[assembly:AssemblyTitle("cell Voltage Monitoring System - (For GM10) - 2016")] +[assembly:AssemblyDescription("VMS")] +[assembly:AssemblyCompany("JDTEK")] +[assembly: AssemblyProduct("cVMS.NET")] +[assembly:AssemblyCopyright("Copyright ©JDTEK 2012")] +[assembly:AssemblyTrademark("Arinware")] + +[assembly:ComVisible(false)] + +//이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly:Guid("b998cd4f-ec54-4613-b634-71682953653e")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// + +[assembly: AssemblyVersion("24.09.03.1200")] +[assembly: AssemblyFileVersion("24.09.03.1200")] + diff --git a/Viewer/AlarmViewer/Properties/Resources.Designer.cs b/Viewer/AlarmViewer/Properties/Resources.Designer.cs new file mode 100644 index 0000000..d8c66bc --- /dev/null +++ b/Viewer/AlarmViewer/Properties/Resources.Designer.cs @@ -0,0 +1,173 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Project.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Project.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Backup_Green_Button { + get { + object obj = ResourceManager.GetObject("Backup_Green_Button", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Blue_Ball { + get { + object obj = ResourceManager.GetObject("Blue_Ball", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Clear_Green_Button { + get { + object obj = ResourceManager.GetObject("Clear_Green_Button", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap down_16 { + get { + object obj = ResourceManager.GetObject("down_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap down_orange { + get { + object obj = ResourceManager.GetObject("down_orange", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Get_Info_Blue_Button { + get { + object obj = ResourceManager.GetObject("Get_Info_Blue_Button", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Green_Ball { + get { + object obj = ResourceManager.GetObject("Green_Ball", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Orange_Ball { + get { + object obj = ResourceManager.GetObject("Orange_Ball", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Purple_Ball { + get { + object obj = ResourceManager.GetObject("Purple_Ball", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Red_Ball { + get { + object obj = ResourceManager.GetObject("Red_Ball", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap up_16 { + get { + object obj = ResourceManager.GetObject("up_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Viewer/AlarmViewer/Properties/Resources.resx b/Viewer/AlarmViewer/Properties/Resources.resx new file mode 100644 index 0000000..3260559 --- /dev/null +++ b/Viewer/AlarmViewer/Properties/Resources.resx @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Backup Green Button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Blue Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Clear Green Button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down_orange.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Get Info Blue Button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Green Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Orange Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Purple Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Red Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\up_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/Properties/Settings.Designer.cs b/Viewer/AlarmViewer/Properties/Settings.Designer.cs new file mode 100644 index 0000000..766203c --- /dev/null +++ b/Viewer/AlarmViewer/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Project.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Viewer/AlarmViewer/Properties/Settings.settings b/Viewer/AlarmViewer/Properties/Settings.settings new file mode 100644 index 0000000..049245f --- /dev/null +++ b/Viewer/AlarmViewer/Properties/Settings.settings @@ -0,0 +1,6 @@ + + + + + + diff --git a/Viewer/AlarmViewer/Properties/app.manifest b/Viewer/AlarmViewer/Properties/app.manifest new file mode 100644 index 0000000..e1f90c3 --- /dev/null +++ b/Viewer/AlarmViewer/Properties/app.manifest @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + true + + + + + + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/Properties/licenses.licx b/Viewer/AlarmViewer/Properties/licenses.licx new file mode 100644 index 0000000..e69de29 diff --git a/Viewer/AlarmViewer/Properties/licenses.licx.bak b/Viewer/AlarmViewer/Properties/licenses.licx.bak new file mode 100644 index 0000000..edf9012 --- /dev/null +++ b/Viewer/AlarmViewer/Properties/licenses.licx.bak @@ -0,0 +1 @@ +DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v10.1.Win, Version=10.1.5.0, Culture=neutral, PublicKeyToken=940cfcde86f32efd diff --git a/Viewer/AlarmViewer/ReadMe.txt b/Viewer/AlarmViewer/ReadMe.txt new file mode 100644 index 0000000..d942282 --- /dev/null +++ b/Viewer/AlarmViewer/ReadMe.txt @@ -0,0 +1 @@ +20240827 메인프로젝트에서 분리 \ No newline at end of file diff --git a/Viewer/AlarmViewer/Resources/Backup Green Button.png b/Viewer/AlarmViewer/Resources/Backup Green Button.png new file mode 100644 index 0000000000000000000000000000000000000000..da9ebb8410c92aac56b4d851366ec28b1f97390e GIT binary patch literal 4897 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 literal 0 HcmV?d00001 diff --git a/Viewer/AlarmViewer/Resources/Orange Ball.png b/Viewer/AlarmViewer/Resources/Orange Ball.png new file mode 100644 index 0000000000000000000000000000000000000000..3f83cc6db4558d9b7ab6a20b4bd3c79c650cae11 GIT binary patch literal 4074 zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000FQNklxniVGqUwO0>dLf3k+?C&P=E8`R04v+xkz5L>(!)2_o#E(gFV^sEh>5yr0_-#B*p$XckG&?>xTZl!3+#cp&x9y z!Zjr77ZQKr1Nsl|YfFFI5eMFB*|x*IQ@Y*afEG1X{$#-ePq*Il@CMY#1*9}sHAa<3 zxZ~jUV7kLBTDOVor|Vh=FZ~Yi##H@x48h4aLpQ~bYf}%lEm^k-<>nA)WOf;D*CF8) zSC9S3Xzs!uU>Cre&%DYV<5mVh3y+)OSX=X|_2A{vr6EN0te{In;N@vvwH`AZYtzEx zdK!zy^blxKt*OOpFfEXY;*G?Z17xCzX+di78nmd^>0y}ez;Y`b-=0V=1%C`gPZsAK zAR7EJ63L}l;rMnfYWa)~1fsUo)-6O?g1F8UJ})+Q+g& zXi=$|8PI?d{9Jzi8Bhu=^M;Ko4CGwjTNF|Tx80oUvP?YRLyO8)tAaBVP6?&dWD?FF zlu}GMB?3`rs#U?kq0vz=6lguaFcd?hqi9hFt1<9(Utth24G5X@)&~fgh-uJQ7$gw& zbu|WhOJ%RKH=l<{7(wRl00NOPz4<()ve&6a_1^6-=)9EaCol{Q+phdjvxQ;X1cpI( zCW{u;d6&Ncv~bEPdmo)V-wkmaq9KG}Rv;RJxXsD)-IU7iM_M>l{WnD2#O{H?;g0mh zYZ!?HMokPvf#&Z)6h=)9Bat9|@frhz!yOv6`=4_qA24@8`be6gUntK7n=|2quS1)5NfCRICPUn@nGhvuC;~ zdXaqxdq9%uh?azVp{lTzmeW zvsczPH8*l^QxZEFBNmGSFg{+waa^)JS^E3(WXsWCuc%cAuF`Z)MBi%|29D#nsZ`1X zf*D(}04*&oQYaMsY&JU%f=qbaS6A?a4fw=(+HeL9oEWZvybK`UA}3 zFtvv>#>2m5RdPTnaFsq4#{d8T07*qoM6N<$f=uA24gdfE literal 0 HcmV?d00001 diff --git a/Viewer/AlarmViewer/Resources/Purple Ball.png b/Viewer/AlarmViewer/Resources/Purple Ball.png new file mode 100644 index 0000000000000000000000000000000000000000..7d744b985c4449a8337a42716a95729fc43f5a9d GIT binary patch literal 4098 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 Z4gd+^77;9rn~wkh002ovPDHLkV1kY$y*mH^ literal 0 HcmV?d00001 diff --git a/Viewer/AlarmViewer/Resources/down_16.png b/Viewer/AlarmViewer/Resources/down_16.png new file mode 100644 index 0000000000000000000000000000000000000000..81758987571f48a6c4b1d6053be980c2bcd8601f GIT binary patch literal 3284 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 literal 0 HcmV?d00001 diff --git a/Viewer/AlarmViewer/Resources/up_16.png b/Viewer/AlarmViewer/Resources/up_16.png new file mode 100644 index 0000000000000000000000000000000000000000..4387c3c27bc7e2074b4d5b110befdc6fece57012 GIT binary patch literal 3197 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 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + diff --git a/Viewer/AlarmViewer/packages.config b/Viewer/AlarmViewer/packages.config new file mode 100644 index 0000000..455cc2f --- /dev/null +++ b/Viewer/AlarmViewer/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Viewer/AlarmViewer/pub.cs b/Viewer/AlarmViewer/pub.cs new file mode 100644 index 0000000..0408737 --- /dev/null +++ b/Viewer/AlarmViewer/pub.cs @@ -0,0 +1,145 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using System.Xml.Linq; +using AR; +using System.Windows.Media; +using System.Media; +using System.IO; +using System.Runtime.CompilerServices; +using System.Linq; +using System.Threading.Tasks; +using vmsnet; + +namespace vmsnet +{ + + sealed class PUB + { + public static AR.Log log; + public static bool NotExitMonitor = false; + public static CFDBA Alarm; + public static CSetting CONFIG; + public static string lasttime = ""; + public static DocumentElement DS = new DocumentElement(); + public static bool runerror = false; ////실행오류 + public static string lastStatueMessage = ""; + public static System.Text.StringBuilder StartErrmsg = new System.Text.StringBuilder(); + public static int WindowCount = 0; + public static DateTime StartupTime = DateTime.Now; + public static string ExtCommand = ""; + + public static string GetGrpName(int idx) + { + var dr = PUB.DS.GRP.Select("IDX=" + System.Convert.ToString(idx)) as DocumentElement.GRPRow[]; + if (dr.Length != 1) + { + return ""; + } + return dr[0].TITLE; + } + + public static string GetChannelName(int idx) + { + var dr = PUB.DS.CHANNEL.Select("IDX=" + System.Convert.ToString(idx)) as DocumentElement.CHANNELRow[]; + if (dr.Length != 1) + { + return ""; + } + return dr[0].TITLE; + } + ////타임정보를 숫자로 반환함 + public static decimal get_TimeNumber(DateTime time) + { + return time.Hour * 3600 + time.Minute * 60 + time.Second; + } + + public static string get_TimeString(decimal timenumber, string fn) + { + ////파일명에 년/월/일이 있음 + string[] fnb = fn.Split("\\".ToCharArray()); + string Filename = fnb[fnb.Length - 1]; + string daystr = fnb[fnb.Length - 2]; + string monstr = fnb[fnb.Length - 3]; + string yearstr = fnb[fnb.Length - 4]; + + ////timenumber를 다시 시,분,초 로 변환한다. + decimal namugy = timenumber; + int hour = (int)(Math.Floor(namugy / 3600)); + namugy = namugy - (hour * 3600); + int min = (int)(Math.Floor(namugy / 60)); + namugy = namugy - (min * 60); + int sec = (int)namugy; + + return yearstr + "-" + monstr + "-" + daystr + " " + hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00"); + } + + public static void INIT(out List errormessages) + { + errormessages = new List(); + var errorlist = new List(); + log = new AR.Log();//.ArinLog(); + + + CONFIG = new CSetting(); ////설정파일 초기화 150319 + CONFIG.filename = new System.IO.FileInfo("..\\Setting.xml").FullName; + CONFIG.Load(); + + + if (UTIL.IsDriveValid(CONFIG.GetDatabasePath()) == false) + { + errorlist.Add($"저장경로의 드라이브가 유효하지 않아 임시경로로 변경 됩니다\n" + + $"전:{CONFIG.GetDatabasePath()}\n" + + $"후:{UTIL.CurrentPath}"); + CONFIG.databasefolder = UTIL.CurrentPath; + } + if (System.IO.Directory.Exists(CONFIG.GetDatabasePath()) == false) + { + try + { + System.IO.Directory.CreateDirectory(CONFIG.GetDatabasePath()); + errorlist.Add($"저장경로 신규생성\n{CONFIG.GetDatabasePath()}"); + } + catch (Exception ex) + { + //CONFIG.GetDatabasePath() = UTIL.CurrentPath; + errorlist.Add($"저장경로 생성실패\n{CONFIG.GetDatabasePath()}\n{ex.Message}"); + } + } + + Alarm = new CFDBA(CONFIG.GetDatabasePath(), "Database", "Alarm"); + + + ////설정정보를 가져온다. + //List errorlist = new List(); + System.Threading.Tasks.Task task = Task.Factory.StartNew(() => + { + string[] BackTables = new string[] { "DEVICE", "GRP", "NORMAL", "WIN", "VIEWGROUP", "CHANNEL", "VIEWGROUPR" }; + foreach (string tabname in BackTables) + { + var fname = System.IO.Path.Combine(CONFIG.GetDatabasePath(), "Database", "Config", $"{tabname}.xml"); + var fn = new System.IO.FileInfo(fname); + if (fn.Exists) + { + PUB.DS.Tables[tabname].ReadXml(fn.FullName); + PUB.log.Add($"Load File({tabname}) : {fn.FullName}"); + } + } + }); + task.Wait(); + + + + + log.Add(AR.Log.ETYPE.NORMAL, "설정읽어오기완료"); + + if (errorlist.Any()) errormessages.AddRange(errorlist); + } + + + } +} diff --git a/Viewer/TrendViewer/Alert.ico b/Viewer/TrendViewer/Alert.ico new file mode 100644 index 0000000000000000000000000000000000000000..62233153eb4fcc0f4fcf5678211f283f437aa579 GIT binary patch literal 15086 zcmeI33v^c1mB+sr6crpEY6lAl3W$P5iV)s}KtRwCL>{75w4>G9S_Nf%l(wLq>Z%>v zL8~*`8Cw}U>X_As2n8(<722`df|XZAAqa|2iw%!KEy+Fe`+fIb5<-9k^3AYj&0TA+ zlk?j9zaRH}_ndu_$>e47Gd+7|C_84J>XOM6WHOnK9g}*?OlAXZEh+8)Vv|hf9tNDv z7^Y;dhHU@8{IvVYu4AAk&~ea-P;=;{qm0BPwx*C+kI^TVkhtwX6>1N4g3f}v9wj6e zF^Nr#VimL4^OO2%l-;0#&`78RDm_YQOoB;l-6656gMK&`Y7KR5_V~6*nMXdj?r5eH zf3$5fSkHz|hV+5-DX7N@b3UBb=Gn@%?dFGYG}38vt2Q?K*NQvEnqc-_5dSGq_rL!6 zo~0@7_P+?>bg1Kk5YBu)gf1_HaL%F-&RrTp&zC~zvn+)EzYbyWZ$c<~HH4AB4dKES zA&hxFgmJ$QVf?BPE?phMWozQny6yHm&hgH3zI@~-U->IXdCFD3I8t1v&8=Jw)^j1> z1F;)JEufBV=S8d2an9+={LTsP9`HT?PE`+gQ5#yEXLb!H)2w#3XglQW? zxb2+~W^4{&=DQ)xdM_@m+it((9Pd2m%SV3lmA`V7ryge^zcV;$=&(bqP)o?z_Z>bS zYTa&LG$+MhusDQH3$X#z<(DCJUlQA=U^zB>C4^$_y)uML-iU2{)gMB*?k%uw0AqOw z)4_T>bjOysv~Iioj&r=ealU-yCtvyN2jwYO`MtnmJS5nbXR*eZ#hwT0gX7yhS9u;| zDjhc-Ug~{@__0AZ@xK`RdEkG9FbrFbCJrt}{v>c{%WK{Y;RbB`l|+YIH^q8birsem z9p`xGIbS~VlW#VTkfXe83?Y9w{?L|L{PQB$MeQx-yyQ1P9pbfge)xgo#^T4m_)z_g zp|kO&KJ87M4nWRO5$A7e+p@>h=X^#5RdaS44{+s_YvIvw(1 z?EQ|P$lA~kTj)DuQJ?mJ-#$L5rGtJjHh%bi*yov!{cX3uCU)1MeQck`4)T0=zl46B zkq@4q91?gkfU&Kion4ssMSP$g^h4@{&tfCrGvhV8cH)2Ss6CAdU$_@j7FBcKt`!bp3aJ8aL^hsjq9Ek4Rvn;LKZolIk?>y(rM|;Ru{>mCgeOzq& zPrz|TL-8j%+>-SHath%m-)`8Z$719Wr+rx01|WL~7>41e5yZkMa9s$#5@KTvSWDFh zvTnQmj&r>8oG%~w$yfg8LSI4OB<>$P9PA1H{f=|I^PDdq`N>!8Bhl&N*!DY--{x@f zCpuiG4<;gW1hRU-zo+=IRRR9)kKG2*J`|b5uxBwelCe`+AJb>$cD@hP4YJ>Hj(48( znq6d&U3zeeg4e$?Vp6&KK&hgH3zI^28Z_O>(-fvFi-O(7>YxrP=K9~-!LCA4U9S98q zgX^^K_fT*RgZy5ZS_^+M_-(h}agKMM^W`IHpCsoV;ZJlZ)dzmp`7R7W-VkIL zLPMb8XlxKw6imhdgq2ikuM>*HwfjH*Sp zjV4x%v-DX_{9j0$?RCv5;eG#lwe7ELOw6@;f&Y1Z@QpR`w@E3o>!REF&Pks&;IC^; z+U9p|Vte<0`L$&>W*z?L>w`)7z;8R>Ip2xeGz0z8XD#?^_owws`8~U9-QKt#*O*uj z#0&h-oPiI%^@liaFXwl)Hr>THe)_E2xqp8;ej4w2@_qlxf#fxIJNUaomDzjhBY?MgYg6ZKP&e;>*GC!F;)Wkq$neY5e6>n^%Ccwd+U z{MmixW%%GBa2XdV{h&OApK^YvZ_>7J)BiBzu>E203v-~uEgkW}qr{Bw?ftAt2O@P! zY=7AM!W`hw?lbkl4>xgkf_>{E?XHg4-hE-)#>R0Z{J?XKYvGT;uZ_i7oBnO{UfUn> zzVJw})-@OW?lafvgMZ%=`$1o%G>5+*gV3?j_JwufIFdH-PtXTXyc2@9{xM}rKYe%a zdOzbxWaN4-I=tq$+1&T>1DK^U=y7yGw?^L=Hnu+CAE6JPCWhvt!`!VQEc(yAai5cY zVGeXyt5v-_O?m2cx*==1+P_qRa&iCbAU%dWi2s(8fVmnokL8MUaa`q;8Vby;b>u(B#G zBkMCOtI{%950zDW%UQs(o|a29nSATz)n!xb2u#Zs))CyHW{JQ;>uHI=nby-1fx-IT za#mhkPs^qGaXl@|o5uBuv}_UAKTgXIalJArqnUACiz_ECy{FX?8VViio)&r6ytZ-f zwF#y9<6M{d$jRoYl?xpYwT36wp~H-BRLJ<3dEdv~lOcWB=9H^pxh&(N}W z8^}lW;@r6ZuQ*TU+iMi(O6Co{8!}}r_Z8UlePKQ4RFt3NtYi{r4W;A~y)!a|eXRM< z^InYai@$#iBIU8r$=q>ytu6AqG0q&3_XM2l9hzaBL6>r_G8wsl z!=BR|zIP|?;M?!3d{22FWa`HF9>Ns%+7rRy-HD-mvwLsC{AE_37vkSdgf0?vd&a*mWF*E z`i7tLe5kwt8>D%CeV`4rW%h0n7$)I|sqClU-pyGChZ){UP;X_I;HOk~?=z^owluF( zup~t2cf$o>AL{{npU$8p$7n{{V?PvWO9m6dm$LjefMVWdD;&A7t_|B`~-YIRZCo*RdDto4nERmJ&~X0 zga?2jn-8XaJn~my`#=8$`{Vm;4wZKEr{;cp<9B77o9VkG>_PU>I)&BI$k;qEl$ita zedvuI@CXC=dvJnb9Clby5kdv>Zzb-`fto)w|7q@%SPOli@w_{H=P!XLH<;`HFuvdE z^TVbqu&Wr%ZCd&c>l@EV_sS>s%wO7W-p{*1j-SAo^B0E?&}BsZCC4L?e**M~?}D+I z<|2n9qZm@JRQ`0{N%MBLo3|@MzVER6Wn@1MpOYFY-|@_CM;ugWgNyK^xwe!%n|&So zZ^!<3V*j)~EzKMDTM~97yFvGJYU2dML*~Xm2L^LtDNTX@?}cEwhV+AB2Jb=TOnhw)^=`gD-r5zyF62MDF>W&sZ(125{QljB@UG8T^f{e1 zblErY_1{7I+;b3f(B@Rc1u{^aKPJoRZx-uD-2Z{OJR>f#56lFM0tfA(Go&u)!#Fv$J_?MJlM z)g|jdZCw_IdH(Jg^W5qFEwcYd&!LbvlHAUgv!4%tMEA)D!kNo<8$!&v&ACuZ_NX6pS{Sh}i`b7u zp=4zgu3Q_jAC1CI8zS~#5&w4(v0se%_K(=}MS=f)*uh*eAJg`^s{0C-MC?f-_SDRO zJqlCSMd7ycD138sJb(PE>iK=)(SBalL(auKnYQzz)_oR7fA0E1#Q!ox?8zebgi&~4 zOB8;wEnDnMz~lNg5&M^jyR%XF zEOG}jrt`w+9_7}2;MctG;^=*FaIX*y@R*J6&u)#lW63;l^`;LQA2PO8&AI8{V7R%2 zv4zMO#`xK9G5@`YeG>d=E5SCM7DRWZ<7=1jZ8~siwCQ57j$!P>$e;gy{C6q!k;|g3 zjA>STUd?*D`O)XE!B$s8k8g^|#l(MKzarxQYoagL99!4l@Xs%LDO&Tl_`B@gC@lX| z#2t%>Z}n&cef7F02Zr%8R!8BVz&{5J-y#-}J*6&rb+sWU?}BB~Zywzkg-4((UX50X ztFEyJY6C;@1K3~rT^B}&bx*6`l4t>bTqd3a$vId%^Z3R+l+DVDGMQ?cl~-1@G(V>D are#G^MT?j|?od`FRTh>NMbgZ&qW=a@HT}2% literal 0 HcmV?d00001 diff --git a/Viewer/TrendViewer/Class/CFDB.cs b/Viewer/TrendViewer/Class/CFDB.cs new file mode 100644 index 0000000..70bc96a --- /dev/null +++ b/Viewer/TrendViewer/Class/CFDB.cs @@ -0,0 +1,346 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using System.IO; +using System.Text; +using AR; + +namespace vmsnet +{ + public class CFDB + { + string _BaseDir; + + System.Text.StringBuilder[] StrBuf; ////데이터버퍼 + DateTime[] LastTime; ////데이터시간 + System.IO.FileInfo[] File; ////데이터파일정보 + int MaxCount = 10; + public bool IsReady { get; private set; } + + public CFDB(params string[] dirarrays) + { + var dir = System.IO.Path.Combine(dirarrays); + _BaseDir = dir; + + StrBuf = new System.Text.StringBuilder[MaxCount]; + LastTime = new DateTime[MaxCount]; + File = new System.IO.FileInfo[MaxCount]; + + if (System.IO.Directory.Exists(_BaseDir) == false) + { + + try + { + + System.IO.Directory.CreateDirectory(_BaseDir); + IsReady = true; + } + catch + { + IsReady = false; + } + + } + else IsReady = true; + + + ////Data Initialize + for (int i = 0; i < MaxCount; i++) + { + StrBuf[i] = new System.Text.StringBuilder(); + LastTime[i] = DateTime.Now; + File[i] = null; + } + } + + ////지정한 기간내 파일의 존재여부를 확인합니다. + //public int GetfileCount(string table, DateTime sd, DateTime ed) + //{ + // return GetfileS(table, sd, ed).Count; + //} + + + /// + /// 데이터를 기록합니다. + /// + /// 기록시간(파일명이 결정됨) + /// 기록할테이블명(파일명) + /// 기록할데이터(열데이터가 틀려서 고정할 수 없다) + /// + /// + public bool InsertData(DateTime time, string table, StringBuilder buffers) + { + string DayStr = time.ToString("yyyyMMdd"); + byte TableIndex = byte.Parse(table.Substring(5)); + + ////해당데이터의 시간과 파일정보를 기록 + LastTime[TableIndex - 1] = time; + File[TableIndex - 1] = new System.IO.FileInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6) + "\\" + (time.Hour ).ToString("00") + "_" + table + ".txt"); + if (!File[TableIndex - 1].Directory.Exists) + File[TableIndex - 1].Directory.Create(); + + ////각테이블별로 시작 열번호를 넣는다. + int si = 1 + 160 * (TableIndex - 1); + int ei = si + (160 - 1); + + ////파일이 없다면 제목줄을 생성해준다. + if (!File[TableIndex - 1].Exists) + { + ////헤더를 추가해야한다. + var Header = new System.Text.StringBuilder(); + Header.Append("\t" + "TIME"); + for (int j = si; j <= ei; j++) + { + Header.Append("\t" + "C" + j.ToString("000")); + } + //Header.Append(vbTab + "KA") + Header.AppendLine(); ////제목줄을 한칸띄운다 + + //File[TableIndex - 1].WriteText(Header); // 이전 단독모드 + /* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */ + using (FileStream fs = new FileStream(File[TableIndex - 1].FullName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) + using (StreamWriter writer = new StreamWriter(fs)) + { writer.Write(Header.ToString()); } + } + + StrBuf[TableIndex - 1].AppendLine("\t" + time.ToFileTime().ToString() + buffers.ToString()); + + ////4kb 단위로 파일을 기록한다. + if (StrBuf[TableIndex - 1].Length > 4096) ////실제파일 기록은 5초마다 한다. + { + //File[TableIndex - 1].AppendText(StrBuf[TableIndex - 1]); // 이전은 단독모드 + /* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */ + using (FileStream fs = new FileStream(File[TableIndex - 1].FullName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)) + using (StreamWriter writer = new StreamWriter(fs)) + { writer.Write(StrBuf[TableIndex - 1].ToString()); } + + StrBuf[TableIndex - 1].Clear(); + } + return true; + } + + ~CFDB() + { + ////버퍼에 남아잇는 데이터를 기록한다. + for (int i = 0; i < MaxCount; i++) + { + if (StrBuf[i].Length > 0) + { + try + { + using (var writer = new StreamWriter(File[i].FullName, true, System.Text.Encoding.Default)) + writer.Write(StrBuf[i].ToString());// + } + catch { } + } + StrBuf[i].Clear(); + } + } + + /// + /// 저장폴더내에 존재하는 날짜정보를 반환합니다. + /// + /// + /// + //public List GetDateList() + //{ + // List REtval = new List(); + + // System.IO.DirectoryInfo BDI = new System.IO.DirectoryInfo(_BaseDir); + // foreach (System.IO.DirectoryInfo Fd_Year in BDI.GetDirectories()) + // { + // foreach (System.IO.DirectoryInfo FD_Mon in Fd_Year.GetDirectories()) + // { + // foreach (System.IO.DirectoryInfo Fd_Day in FD_Mon.GetDirectories()) + // { + // if (Fd_Day.GetFiles().Length > 0) + // { + // REtval.Add(Fd_Year.Name + FD_Mon.Name + Fd_Day.Name); + // } + // } + // } + // } + // REtval.Sort(); + // return REtval; + //} + + //public enum eTableList + //{ + // DATAB1 = 1, + // DATAB2 = 2, + // DATAB3 = 3, + // DATAB4 = 4, + // DATAB5 = 5 + //} + + /// + /// 저장폴더내에 존재하는 날짜정보를 반환합니다. + /// + /// 찾고자하는테이블명(파일은 시_테이블명.txt로 되어있다. + /// + /// + //public List GetDateList(eTableList tablename) + //{ + // List REtval = new List(); + + // System.IO.DirectoryInfo BDI = new System.IO.DirectoryInfo(_BaseDir); + // foreach (System.IO.DirectoryInfo Fd_Year in BDI.GetDirectories()) + // { + // foreach (System.IO.DirectoryInfo FD_Mon in Fd_Year.GetDirectories()) + // { + // foreach (System.IO.DirectoryInfo Fd_Day in FD_Mon.GetDirectories()) + // { + // if (Fd_Day.GetFiles("*_" + tablename.ToString() +".txt").Length > 0) + // { + // REtval.Add(Fd_Year.Name + FD_Mon.Name + Fd_Day.Name); + // } + // } + // } + // } + // REtval.Sort(); + // return REtval; + //} + + public List<(int Year, int Month)> GetAvailableDates() + { + var availableDates = new List<(int Year, int Month)>(); + + if (!Directory.Exists(_BaseDir)) + return availableDates; + + // Get all year directories + foreach (var yearDir in Directory.GetDirectories(_BaseDir)) + { + if (int.TryParse(Path.GetFileName(yearDir), out int year)) + { + // Get all month directories within the year directory + foreach (var monthDir in Directory.GetDirectories(yearDir)) + { + if (int.TryParse(Path.GetFileName(monthDir), out int month)) + { + availableDates.Add((year, month)); + } + } + } + } + + return availableDates; + } + + ////기간내 존재하는 파일을 반환합니다(테이블단위) + public List GetfileS(string table, DateTime sd, DateTime ed) + { + List REtval = new List(); + int SttYear = sd.Year; + int EndYear = ed.Year; + if (EndYear < SttYear) return REtval; + + int SttMonth = sd.Month; + int EndMonth = ed.Month; + + int SttDay = sd.Day; + int EndDay = ed.Day; + + int si = int.Parse(sd.ToString("yyyyMMdd")); + int ei = int.Parse(ed.ToString("yyyyMMdd")); + bool SameDay = si == ei ? true : false; + + //for (int dayinfo = si; dayinfo <= ei; dayinfo++) + //{ + // string dayStr = dayinfo.ToString(); + // string dirname = Path.Combine(_BaseDir, dayStr.Substring(0, 4), dayStr.Substring(4, 2), dayStr.Substring(6)); + // var dir = new DirectoryInfo(dirname); + // if (!dir.Exists) continue; + + // int startHour = (dayinfo == si) ? int.Parse(sd.ToString("HH")) : 0; + // int endHour = (dayinfo == ei) ? int.Parse(ed.ToString("HH")) : 23; + + // // 동일 날짜인 경우 + // if (SameDay) + // { + // startHour = int.Parse(sd.ToString("HH")); + // endHour = int.Parse(ed.ToString("HH")); + // } + + // for (int hourinfo = startHour; hourinfo <= endHour; hourinfo++) + // { + // string filename = Path.Combine(dir.FullName, $"{hourinfo:00}_{table}.txt"); + // if (System.IO.File.Exists(filename)) + // { + // REtval.Add(filename); + // } + // } + //} + + + ////20140101 + for (int dayinfo = si; dayinfo <= ei; dayinfo++) + { + string DayStr = dayinfo.ToString(); + + // Ex) dirname = ..\bin\Debug\Database\volt\2024\09\01 + var dirname = Path.Combine(_BaseDir, DayStr.Substring(0, 4), DayStr.Substring(4, 2), DayStr.Substring(6)); + var dir = new System.IO.DirectoryInfo(dirname); + if (!dir.Exists) continue; + + ////폴더가 존재하므로 해당 테이블파일이 존재하는지 확인한다 + if (SameDay) + { + ////동일날짜라면 해당 시간대만 조회하면됨 + for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo).ToString("00") + "_" + table + ".txt"; + if (System.IO.File.Exists(fn)) + REtval.Add(fn); + } + } + else + { + if (dayinfo == si) ////시작일이라면 시작시간부터 24시까지 이다. + { + for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= 23; hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo).ToString("00") + "_" + table + ".txt"; + if (System.IO.File.Exists(fn)) + REtval.Add(fn); + } + } + else if (dayinfo == ei) ////종료일이라면 1~ 종료시까지이다. + { + for (int hourinfo = 0; hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo).ToString("00") + "_" + table + ".txt"; + if (System.IO.File.Exists(fn)) + REtval.Add(fn); + } + } + else + { + ////중간에 끼어있는 날짜라면 1~24모두가 속한다. + for (int hourinfo = 0; hourinfo <= 23; hourinfo++) + { + /* 주석일: 2024-09-20 | 주석내용: 파일명 설명 | 주석자: 이재웅 + * + * 파일명이 '08_DATAB1.txt'라면 + * 08 : 시간 + * _DATAB : 고정값 + * 1 : 채널 + */ + string fn = dir.FullName + "\\" + (hourinfo).ToString("00") + "_" + table + ".txt"; + if (System.IO.File.Exists(fn)) + REtval.Add(fn); + } + } + } + } + REtval.Sort(); + return REtval; + } + + } + +} diff --git a/Viewer/TrendViewer/Class/CFDBA.cs b/Viewer/TrendViewer/Class/CFDBA.cs new file mode 100644 index 0000000..f88550d --- /dev/null +++ b/Viewer/TrendViewer/Class/CFDBA.cs @@ -0,0 +1,195 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using AR; + +namespace vmsnet +{ + public class CFDBA + { + string _BaseDir; + + public CFDBA(params string[] dirarrays) + { + var dir = System.IO.Path.Combine(dirarrays); + _BaseDir = dir; + if (System.IO.Directory.Exists(_BaseDir) == false) + { + System.IO.Directory.CreateDirectory(_BaseDir); + } + } + + ////지정한 기간내 파일의 존재여부를 확인합니다. + public int GetfileCount(DateTime sd, DateTime ed) + { + return GetfileS(sd, ed).Count; + } + + + ////기간내 존재하는 파일을 반환합니다(테이블단위) + public List GetfileS(DateTime sd, DateTime ed) + { + List REtval = new List(); + int SttYear = sd.Year; + int EndYear = ed.Year; + if (EndYear < SttYear) + { + return REtval; + } + + int SttMonth = sd.Month; + int EndMonth = ed.Month; + + int SttDay = sd.Day; + int EndDay = ed.Day; + + int si = System.Convert.ToInt32(sd.ToString("yyyyMMdd")); + int ei = System.Convert.ToInt32(ed.ToString("yyyyMMdd")); + bool SameDay = si == ei ? true : false; + + ////20140101 + for (int dayinfo = si; dayinfo <= ei; dayinfo++) + { + string DayStr = dayinfo.ToString(); + System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6)); + if (!dir.Exists) + { + continue; + } + ////폴더가 존재하므로 해당 테이블파일이 존재하는지 확인한다 + + if (SameDay) + { + ////동일날짜라면 해당 시간대만 조회하면됨 + for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt"; + if (System.IO.File.Exists(fn)) + { + REtval.Add(fn); + } + } + } + else + { + if (dayinfo == si) ////시작일이라면 시작시간부터 24시까지 이다. + { + for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= 23; hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt"; + if (System.IO.File.Exists(fn)) + { + REtval.Add(fn); + } + } + } + else if (dayinfo == ei) ////종료일이라면 1~ 종료시까지이다. + { + for (int hourinfo = 0; hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt"; + if (System.IO.File.Exists(fn)) + { + REtval.Add(fn); + } + } + } + else + { + ////중간에 끼어있는 날짜라면 1~24모두가 속한다. + for (int hourinfo = 0; hourinfo <= 23; hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt"; + if (System.IO.File.Exists(fn)) + { + REtval.Add(fn); + } + } + } + } + } + REtval.Sort(); + return REtval; + } + + + /// + /// 이번달이후의 데이터를 조회합니다. + /// + /// + /// + /// + public DocumentElement.ALARMDataTable GetAlarmData(int ch) + { + ////이번달이후의 데이터를 가져온다. + DateTime sd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01 00:00:00")); + DateTime ed = DateTime.Now; + return GetAlarmData(ch, sd, ed); + } + + public DocumentElement.ALARMDataTable GetAlarmData(DateTime sd, DateTime ed) + { + return GetAlarmData(-1, sd, ed); + } + + public DocumentElement.ALARMDataTable GetAlarmData(DateTime sd, DateTime ed, int rtypes, int rtypee) + { + return GetAlarmData(-1, sd, ed, rtypes, rtypee); + } + + /// + /// 지정된시간사이의 데이터를 조회합니다. + /// + /// 시작시간(20120319161800) + /// 종료시간(년월일시분초) + /// + /// + public DocumentElement.ALARMDataTable GetAlarmData(int ch, DateTime sd, DateTime ed, int rtypes = -1, int rtypee = -1) + { + List files = GetfileS(sd, ed); + + DocumentElement.ALARMDataTable alaramDT = new DocumentElement.ALARMDataTable(); + foreach (string fn in files) + { + foreach (string line in System.IO.File.ReadAllLines(fn)) + { + if (line.Trim() == "") continue; + + string[] buf = line.Split(System.Convert.ToChar("\t")); + if (buf.GetUpperBound(0) < 8) continue; ////데이터수량이 안맞다. + + string chStr = buf[1]; + if (chStr.IsNumeric() == false) continue; ////채널정보가 일치하지 않는경우 + + if (ch > -1 && chStr != ch.ToString()) continue; + + if (rtypes != -1 && rtypee != -1) ////rtype도 검색한다. + { + if (buf[2] != rtypes.ToString() && buf[2] != rtypee.ToString()) continue; + } + + var newdr = alaramDT.NewALARMRow(); + newdr.ATIME = buf[1]; + newdr.CH = short.Parse(buf[2]); + newdr.RTYPE = short.Parse(buf[3]); + newdr.VOLT = float.Parse(buf[4]); + newdr.ATYPE = short.Parse(buf[5]); + newdr.MAXVOLT = float.Parse(buf[6]); + newdr.MINVOLT = float.Parse(buf[7]); + newdr.AM = buf[8]; + newdr.AM2 = buf[9]; + alaramDT.AddALARMRow(newdr); + } + } + alaramDT.AcceptChanges(); + return alaramDT; + } + + + } + +} diff --git a/Viewer/TrendViewer/Class/CFDBK.cs b/Viewer/TrendViewer/Class/CFDBK.cs new file mode 100644 index 0000000..79081d8 --- /dev/null +++ b/Viewer/TrendViewer/Class/CFDBK.cs @@ -0,0 +1,215 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using System.Text; +using System.IO; + +namespace vmsnet +{ + public class CFDBK + { + string _BaseDir; + + System.Text.StringBuilder StrBuf; ////데이터버퍼 + DateTime LastTime; ////데이터시간 + System.IO.FileInfo File; ////데이터파일정보 + + public CFDBK(params string[] dirarrays) + { + var dir = System.IO.Path.Combine(dirarrays); + _BaseDir = dir; + if (System.IO.Directory.Exists(_BaseDir) == false) + { + System.IO.Directory.CreateDirectory(_BaseDir); + } + + StrBuf = new System.Text.StringBuilder(); + LastTime = DateTime.Now; + File = null; + } + + ////지정한 기간내 파일의 존재여부를 확인합니다. + public int GetfileCount(DateTime sd, DateTime ed) + { + return GetfileS(sd, ed).Count; + } + + /// + /// 데이터를 기록합니다. + /// + /// 기록시간(파일명이 결정됨) + /// 기록된데이터 + /// 데이터의헤더(신규파일생성시) + /// + /// + public bool InsertData(DateTime time, string buffer, StringBuilder Header) + { + string DayStr = time.ToString("yyyyMMdd"); + //Dim TableIndex As Byte = table.Substring(5, 1) + + ////해당데이터의 시간과 파일정보를 기록 + LastTime = time; + File = new System.IO.FileInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6) + "\\" + + (time.Hour + 1).ToString("00") +".txt"); + if (!File.Directory.Exists) + { + File.Directory.Create(); + } + + ////파일이 없다면 제목줄을 생성해준다. + if (!File.Exists) + { + //File.WriteText(Header, true); // 이전은 단독모드 + /* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */ + using (FileStream fs = new FileStream(File.FullName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) + using (StreamWriter writer = new StreamWriter(fs)) + { writer.WriteLine(Header); } + } + + StrBuf.AppendLine(System.Convert.ToString("\t" + time.ToFileTime().ToString() + buffer)); + + ////4kb 단위로 파일을 기록한다. + if (StrBuf.Length > 500) ////실제파일 기록은 5초마다 한다. + { + //File.WriteText(StrBuf, true); // 이전은 단독모드 + /* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */ + using (FileStream fs = new FileStream(File.FullName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)) + using (StreamWriter writer = new StreamWriter(fs)) + { writer.Write(StrBuf.ToString()); } + + StrBuf.Clear(); + } + + return true; + } + + ~CFDBK() + { + if (StrBuf.Length > 0) File.WriteText(StrBuf, true); + StrBuf.Clear(); + + } + + /// + /// 저장폴더내에 존재하는 날짜정보를 반환합니다. + /// + /// + /// + public List GetDateList() + { + List REtval = new List(); + + System.IO.DirectoryInfo BDI = new System.IO.DirectoryInfo(_BaseDir); + foreach (System.IO.DirectoryInfo Fd_Year in BDI.GetDirectories()) + { + foreach (System.IO.DirectoryInfo FD_Mon in Fd_Year.GetDirectories()) + { + foreach (System.IO.DirectoryInfo Fd_Day in FD_Mon.GetDirectories()) + { + if (Fd_Day.GetFiles().Length > 0) + { + REtval.Add(Fd_Year.Name + FD_Mon.Name + Fd_Day.Name); + } + } + } + } + + REtval.Sort(); + return REtval; + } + + + + ////기간내 존재하는 파일을 반환합니다(테이블단위) + public List GetfileS(DateTime sd, DateTime ed) + { + List REtval = new List(); + int SttYear = sd.Year; + int EndYear = ed.Year; + if (EndYear < SttYear) + { + return REtval; + } + + int SttMonth = sd.Month; + int EndMonth = ed.Month; + + int SttDay = sd.Day; + int EndDay = ed.Day; + + int si = System.Convert.ToInt32(sd.ToString("yyyyMMdd")); + int ei = System.Convert.ToInt32(ed.ToString("yyyyMMdd")); + bool SameDay = si == ei ? true : false; + + ////20140101 + for (int dayinfo = si; dayinfo <= ei; dayinfo++) + { + string DayStr = dayinfo.ToString(); + System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6)); + if (!dir.Exists) + { + continue; + } + ////폴더가 존재하므로 해당 테이블파일이 존재하는지 확인한다 + + if (SameDay) + { + ////동일날짜라면 해당 시간대만 조회하면됨 + for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") +".txt"; + if (System.IO.File.Exists(fn)) + { + REtval.Add(fn); + } + } + } + else + { + if (dayinfo == si) ////시작일이라면 시작시간부터 24시까지 이다. + { + for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= 23; hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") +".txt"; + if (System.IO.File.Exists(fn)) + { + REtval.Add(fn); + } + } + } + else if (dayinfo == ei) ////종료일이라면 1~ 종료시까지이다. + { + for (int hourinfo = 0; hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") +".txt"; + if (System.IO.File.Exists(fn)) + { + REtval.Add(fn); + } + } + } + else + { + ////중간에 끼어있는 날짜라면 1~24모두가 속한다. + for (int hourinfo = 0; hourinfo <= 23; hourinfo++) + { + string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") +".txt"; + if (System.IO.File.Exists(fn)) + { + REtval.Add(fn); + } + } + } + } + } + REtval.Sort(); + return REtval; + } + + } + +} diff --git a/Viewer/TrendViewer/Class/ChartData.cs b/Viewer/TrendViewer/Class/ChartData.cs new file mode 100644 index 0000000..1d851ce --- /dev/null +++ b/Viewer/TrendViewer/Class/ChartData.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + +namespace vmsnet +{ + public class ChartData + { + public double Volt { get; set; } + public DateTime Time { get; set; } + } + public class ChartListData + { + public List ChannelList; // ׷캰 ä + public List FileList; // ׷캰 ϸ + public ChartListData() + { + ChannelList = new List(); // ׷캰 ä + FileList = new List(); // ׷캰 ϸ + + } + /// + /// ä ϸ ʱȭ + /// + public void Clear() + { + ChannelList.Clear(); + FileList.Clear(); + } + + public override string ToString() + { + return $"{this.ChannelList.Count}Ch,{this.FileList.Count}Files"; + } + } +} diff --git a/Viewer/TrendViewer/Class/EventArgs.cs b/Viewer/TrendViewer/Class/EventArgs.cs new file mode 100644 index 0000000..5fcd5df --- /dev/null +++ b/Viewer/TrendViewer/Class/EventArgs.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace vmsnet +{ + class RemoteCommand : EventArgs + { + public rCommand Command; + public object Data; + public RemoteCommand(rCommand cmd, object data) + { + Command = cmd; + Data = data; + } + } +} diff --git a/Viewer/TrendViewer/Class/StructAndEnum.cs b/Viewer/TrendViewer/Class/StructAndEnum.cs new file mode 100644 index 0000000..cfcdc3d --- /dev/null +++ b/Viewer/TrendViewer/Class/StructAndEnum.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace vmsnet +{ + + // struct SCell + //{ + // public string name; + // public Color backcolor; + // public short idx; + // public string group; + //} + + enum rCommand + { + ValueUpdate, + DisableUIItems, + EnableUIItems, + StateMessage, + UpdateAlarmSetting, + SaveGroupClass, + DAQConnected, + DAQDisconnected, + DAQTryConnect, + RefreshChart, + } + enum ConnState + { + Disconnected, + Connected, + TryConnect, + } +} diff --git a/Viewer/TrendViewer/DS1.Designer.cs b/Viewer/TrendViewer/DS1.Designer.cs new file mode 100644 index 0000000..0a8f32f --- /dev/null +++ b/Viewer/TrendViewer/DS1.Designer.cs @@ -0,0 +1,1380 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace vmsnet { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DS1")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DS1 : global::System.Data.DataSet { + + private channelDataTable tablechannel; + + private groupDataTable tablegroup; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DS1() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DS1(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["channel"] != null)) { + base.Tables.Add(new channelDataTable(ds.Tables["channel"])); + } + if ((ds.Tables["group"] != null)) { + base.Tables.Add(new groupDataTable(ds.Tables["group"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public channelDataTable channel { + get { + return this.tablechannel; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public groupDataTable group { + get { + return this.tablegroup; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataSet Clone() { + DS1 cln = ((DS1)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["channel"] != null)) { + base.Tables.Add(new channelDataTable(ds.Tables["channel"])); + } + if ((ds.Tables["group"] != null)) { + base.Tables.Add(new groupDataTable(ds.Tables["group"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars(bool initTable) { + this.tablechannel = ((channelDataTable)(base.Tables["channel"])); + if ((initTable == true)) { + if ((this.tablechannel != null)) { + this.tablechannel.InitVars(); + } + } + this.tablegroup = ((groupDataTable)(base.Tables["group"])); + if ((initTable == true)) { + if ((this.tablegroup != null)) { + this.tablegroup.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.DataSetName = "DS1"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DS1.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tablechannel = new channelDataTable(); + base.Tables.Add(this.tablechannel); + this.tablegroup = new groupDataTable(); + base.Tables.Add(this.tablegroup); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializechannel() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializegroup() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DS1 ds = new DS1(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void channelRowChangeEventHandler(object sender, channelRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void groupRowChangeEventHandler(object sender, groupRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class channelDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnuse; + + private global::System.Data.DataColumn columncname; + + private global::System.Data.DataColumn columnc1; + + private global::System.Data.DataColumn columnc2; + + private global::System.Data.DataColumn columncc; + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columntidx; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public channelDataTable() { + this.TableName = "channel"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal channelDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected channelDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn useColumn { + get { + return this.columnuse; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn cnameColumn { + get { + return this.columncname; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn c1Column { + get { + return this.columnc1; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn c2Column { + get { + return this.columnc2; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ccColumn { + get { + return this.columncc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn tidxColumn { + get { + return this.columntidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public channelRow this[int index] { + get { + return ((channelRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event channelRowChangeEventHandler channelRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event channelRowChangeEventHandler channelRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event channelRowChangeEventHandler channelRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event channelRowChangeEventHandler channelRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddchannelRow(channelRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public channelRow AddchannelRow(bool use, string cname, string c1, string c2, int cc, int idx, int tidx) { + channelRow rowchannelRow = ((channelRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + use, + cname, + c1, + c2, + cc, + idx, + tidx}; + rowchannelRow.ItemArray = columnValuesArray; + this.Rows.Add(rowchannelRow); + return rowchannelRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + channelDataTable cln = ((channelDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new channelDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnuse = base.Columns["use"]; + this.columncname = base.Columns["cname"]; + this.columnc1 = base.Columns["c1"]; + this.columnc2 = base.Columns["c2"]; + this.columncc = base.Columns["cc"]; + this.columnidx = base.Columns["idx"]; + this.columntidx = base.Columns["tidx"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnuse = new global::System.Data.DataColumn("use", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnuse); + this.columncname = new global::System.Data.DataColumn("cname", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncname); + this.columnc1 = new global::System.Data.DataColumn("c1", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnc1); + this.columnc2 = new global::System.Data.DataColumn("c2", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnc2); + this.columncc = new global::System.Data.DataColumn("cc", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncc); + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columntidx = new global::System.Data.DataColumn("tidx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columntidx); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public channelRow NewchannelRow() { + return ((channelRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new channelRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(channelRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.channelRowChanged != null)) { + this.channelRowChanged(this, new channelRowChangeEvent(((channelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.channelRowChanging != null)) { + this.channelRowChanging(this, new channelRowChangeEvent(((channelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.channelRowDeleted != null)) { + this.channelRowDeleted(this, new channelRowChangeEvent(((channelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.channelRowDeleting != null)) { + this.channelRowDeleting(this, new channelRowChangeEvent(((channelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemovechannelRow(channelRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DS1 ds = new DS1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "channelDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class groupDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columncname; + + private global::System.Data.DataColumn columnvalue; + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columngname; + + private global::System.Data.DataColumn columnrname; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public groupDataTable() { + this.TableName = "group"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal groupDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected groupDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn cnameColumn { + get { + return this.columncname; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn valueColumn { + get { + return this.columnvalue; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn gnameColumn { + get { + return this.columngname; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn rnameColumn { + get { + return this.columnrname; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public groupRow this[int index] { + get { + return ((groupRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event groupRowChangeEventHandler groupRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event groupRowChangeEventHandler groupRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event groupRowChangeEventHandler groupRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event groupRowChangeEventHandler groupRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddgroupRow(groupRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public groupRow AddgroupRow(string cname, string value, int idx, string gname, string rname) { + groupRow rowgroupRow = ((groupRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + cname, + value, + idx, + gname, + rname}; + rowgroupRow.ItemArray = columnValuesArray; + this.Rows.Add(rowgroupRow); + return rowgroupRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + groupDataTable cln = ((groupDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new groupDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columncname = base.Columns["cname"]; + this.columnvalue = base.Columns["value"]; + this.columnidx = base.Columns["idx"]; + this.columngname = base.Columns["gname"]; + this.columnrname = base.Columns["rname"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columncname = new global::System.Data.DataColumn("cname", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncname); + this.columnvalue = new global::System.Data.DataColumn("value", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvalue); + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columngname = new global::System.Data.DataColumn("gname", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columngname); + this.columnrname = new global::System.Data.DataColumn("rname", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnrname); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public groupRow NewgroupRow() { + return ((groupRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new groupRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(groupRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.groupRowChanged != null)) { + this.groupRowChanged(this, new groupRowChangeEvent(((groupRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.groupRowChanging != null)) { + this.groupRowChanging(this, new groupRowChangeEvent(((groupRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.groupRowDeleted != null)) { + this.groupRowDeleted(this, new groupRowChangeEvent(((groupRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.groupRowDeleting != null)) { + this.groupRowDeleting(this, new groupRowChangeEvent(((groupRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemovegroupRow(groupRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DS1 ds = new DS1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "groupDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class channelRow : global::System.Data.DataRow { + + private channelDataTable tablechannel; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal channelRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tablechannel = ((channelDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool use { + get { + if (this.IsuseNull()) { + return false; + } + else { + return ((bool)(this[this.tablechannel.useColumn])); + } + } + set { + this[this.tablechannel.useColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string cname { + get { + try { + return ((string)(this[this.tablechannel.cnameColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'channel\' 테이블의 \'cname\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tablechannel.cnameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string c1 { + get { + if (this.Isc1Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tablechannel.c1Column])); + } + } + set { + this[this.tablechannel.c1Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string c2 { + get { + if (this.Isc2Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tablechannel.c2Column])); + } + } + set { + this[this.tablechannel.c2Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int cc { + get { + if (this.IsccNull()) { + return 0; + } + else { + return ((int)(this[this.tablechannel.ccColumn])); + } + } + set { + this[this.tablechannel.ccColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + try { + return ((int)(this[this.tablechannel.idxColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'channel\' 테이블의 \'idx\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tablechannel.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int tidx { + get { + try { + return ((int)(this[this.tablechannel.tidxColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'channel\' 테이블의 \'tidx\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tablechannel.tidxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsuseNull() { + return this.IsNull(this.tablechannel.useColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetuseNull() { + this[this.tablechannel.useColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IscnameNull() { + return this.IsNull(this.tablechannel.cnameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetcnameNull() { + this[this.tablechannel.cnameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isc1Null() { + return this.IsNull(this.tablechannel.c1Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setc1Null() { + this[this.tablechannel.c1Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isc2Null() { + return this.IsNull(this.tablechannel.c2Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setc2Null() { + this[this.tablechannel.c2Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsccNull() { + return this.IsNull(this.tablechannel.ccColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetccNull() { + this[this.tablechannel.ccColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsidxNull() { + return this.IsNull(this.tablechannel.idxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetidxNull() { + this[this.tablechannel.idxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IstidxNull() { + return this.IsNull(this.tablechannel.tidxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SettidxNull() { + this[this.tablechannel.tidxColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class groupRow : global::System.Data.DataRow { + + private groupDataTable tablegroup; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal groupRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tablegroup = ((groupDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string cname { + get { + if (this.IscnameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tablegroup.cnameColumn])); + } + } + set { + this[this.tablegroup.cnameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string value { + get { + if (this.IsvalueNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tablegroup.valueColumn])); + } + } + set { + this[this.tablegroup.valueColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + try { + return ((int)(this[this.tablegroup.idxColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'group\' 테이블의 \'idx\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tablegroup.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string gname { + get { + if (this.IsgnameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tablegroup.gnameColumn])); + } + } + set { + this[this.tablegroup.gnameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string rname { + get { + if (this.IsrnameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tablegroup.rnameColumn])); + } + } + set { + this[this.tablegroup.rnameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IscnameNull() { + return this.IsNull(this.tablegroup.cnameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetcnameNull() { + this[this.tablegroup.cnameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvalueNull() { + return this.IsNull(this.tablegroup.valueColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvalueNull() { + this[this.tablegroup.valueColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsidxNull() { + return this.IsNull(this.tablegroup.idxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetidxNull() { + this[this.tablegroup.idxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsgnameNull() { + return this.IsNull(this.tablegroup.gnameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetgnameNull() { + this[this.tablegroup.gnameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsrnameNull() { + return this.IsNull(this.tablegroup.rnameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetrnameNull() { + this[this.tablegroup.rnameColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class channelRowChangeEvent : global::System.EventArgs { + + private channelRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public channelRowChangeEvent(channelRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public channelRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class groupRowChangeEvent : global::System.EventArgs { + + private groupRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public groupRowChangeEvent(groupRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public groupRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Viewer/TrendViewer/DS1.xsc b/Viewer/TrendViewer/DS1.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Viewer/TrendViewer/DS1.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Viewer/TrendViewer/DS1.xsd b/Viewer/TrendViewer/DS1.xsd new file mode 100644 index 0000000..565c7c9 --- /dev/null +++ b/Viewer/TrendViewer/DS1.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Viewer/TrendViewer/DS1.xss b/Viewer/TrendViewer/DS1.xss new file mode 100644 index 0000000..375a452 --- /dev/null +++ b/Viewer/TrendViewer/DS1.xss @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/Viewer/TrendViewer/Dialog/Frm_SMsg.Designer.cs b/Viewer/TrendViewer/Dialog/Frm_SMsg.Designer.cs new file mode 100644 index 0000000..697ca23 --- /dev/null +++ b/Viewer/TrendViewer/Dialog/Frm_SMsg.Designer.cs @@ -0,0 +1,68 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + + +namespace vmsnet +{ + partial class Frm_SMsg : System.Windows.Forms.Form + { + + //Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다. + [System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing) + { + try + { + if (disposing && components != null) + { + components.Dispose(); + } + } + finally + { + base.Dispose(disposing); + } + } + + //Windows Form 디자이너에 필요합니다. + private System.ComponentModel.Container components = null; + + //참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다. + //수정하려면 Windows Form 디자이너를 사용하십시오. + //코드 편집기를 사용하여 수정하지 마십시오. + [System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent() + { + this.Label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + //Label1 + // + this.Label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.Label1.Location = new System.Drawing.Point(0, 0); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(516, 56); + this.Label1.TabIndex = 0; + this.Label1.Text = "..."; + this.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + //Frm_SMsg + // + this.AutoScaleDimensions = new System.Drawing.SizeF((float) (7.0F), (float) (12.0F)); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(516, 56); + this.Controls.Add(this.Label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Name = "Frm_SMsg"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "잠시만 기다려주세요"; + this.ResumeLayout(false); + + } + internal System.Windows.Forms.Label Label1; + } + +} diff --git a/Viewer/TrendViewer/Dialog/Frm_SMsg.cs b/Viewer/TrendViewer/Dialog/Frm_SMsg.cs new file mode 100644 index 0000000..15cf326 --- /dev/null +++ b/Viewer/TrendViewer/Dialog/Frm_SMsg.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + +namespace vmsnet +{ + public partial class Frm_SMsg + { + public Frm_SMsg() + { + InitializeComponent(); + } + } +} diff --git a/Viewer/TrendViewer/Dialog/Frm_SMsg.resx b/Viewer/TrendViewer/Dialog/Frm_SMsg.resx new file mode 100644 index 0000000..d58980a --- /dev/null +++ b/Viewer/TrendViewer/Dialog/Frm_SMsg.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Viewer/TrendViewer/Dialog/Frm_SelectCH.Designer.cs b/Viewer/TrendViewer/Dialog/Frm_SelectCH.Designer.cs new file mode 100644 index 0000000..37a992c --- /dev/null +++ b/Viewer/TrendViewer/Dialog/Frm_SelectCH.Designer.cs @@ -0,0 +1,168 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + +namespace vmsnet +{ + partial class Frm_SelectCH : System.Windows.Forms.Form + { + + //Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다. + [System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing) + { + try + { + if (disposing && components != null) + { + components.Dispose(); + } + } + finally + { + base.Dispose(disposing); + } + } + + //Windows Form 디자이너에 필요합니다. + private System.ComponentModel.Container components = null; + + //참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다. + //수정하려면 Windows Form 디자이너를 사용하십시오. + //코드 편집기에서는 수정하지 마세요. + [System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Frm_SelectCH)); + this.Button1 = new System.Windows.Forms.Button(); + this.Panel1 = new System.Windows.Forms.Panel(); + this.Button4 = new System.Windows.Forms.Button(); + this.Button3 = new System.Windows.Forms.Button(); + this.Button2 = new System.Windows.Forms.Button(); + this.CheckedListBox1 = new System.Windows.Forms.ListView(); + this.ColumnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.Panel1.SuspendLayout(); + this.SuspendLayout(); + // + // Button1 + // + this.Button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.Button1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Button1.Location = new System.Drawing.Point(0, 624); + this.Button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Button1.Name = "Button1"; + this.Button1.Size = new System.Drawing.Size(388, 101); + this.Button1.TabIndex = 1; + this.Button1.Text = "확인"; + this.Button1.UseVisualStyleBackColor = true; + this.Button1.Click += new System.EventHandler(this.Button1_Click); + // + // Panel1 + // + this.Panel1.Controls.Add(this.Button4); + this.Panel1.Controls.Add(this.Button3); + this.Panel1.Controls.Add(this.Button2); + this.Panel1.Dock = System.Windows.Forms.DockStyle.Right; + this.Panel1.Location = new System.Drawing.Point(219, 0); + this.Panel1.Name = "Panel1"; + this.Panel1.Size = new System.Drawing.Size(169, 624); + this.Panel1.TabIndex = 2; + // + // Button4 + // + this.Button4.Dock = System.Windows.Forms.DockStyle.Top; + this.Button4.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Button4.Location = new System.Drawing.Point(0, 166); + this.Button4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Button4.Name = "Button4"; + this.Button4.Size = new System.Drawing.Size(169, 83); + this.Button4.TabIndex = 4; + this.Button4.Text = "선택 반전"; + this.Button4.UseVisualStyleBackColor = true; + this.Button4.Visible = false; + this.Button4.Click += new System.EventHandler(this.Button4_Click); + // + // Button3 + // + this.Button3.Dock = System.Windows.Forms.DockStyle.Top; + this.Button3.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Button3.Location = new System.Drawing.Point(0, 83); + this.Button3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Button3.Name = "Button3"; + this.Button3.Size = new System.Drawing.Size(169, 83); + this.Button3.TabIndex = 3; + this.Button3.Text = "전체 해제"; + this.Button3.UseVisualStyleBackColor = true; + this.Button3.Click += new System.EventHandler(this.Button3_Click); + // + // Button2 + // + this.Button2.Dock = System.Windows.Forms.DockStyle.Top; + this.Button2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Button2.Location = new System.Drawing.Point(0, 0); + this.Button2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Button2.Name = "Button2"; + this.Button2.Size = new System.Drawing.Size(169, 83); + this.Button2.TabIndex = 2; + this.Button2.Text = "전체 선택"; + this.Button2.UseVisualStyleBackColor = true; + this.Button2.Visible = false; + this.Button2.Click += new System.EventHandler(this.Button2_Click); + // + // CheckedListBox1 + // + this.CheckedListBox1.CheckBoxes = true; + this.CheckedListBox1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.ColumnHeader2}); + this.CheckedListBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.CheckedListBox1.FullRowSelect = true; + this.CheckedListBox1.GridLines = true; + this.CheckedListBox1.HideSelection = false; + this.CheckedListBox1.Location = new System.Drawing.Point(0, 0); + this.CheckedListBox1.MultiSelect = false; + this.CheckedListBox1.Name = "CheckedListBox1"; + this.CheckedListBox1.Size = new System.Drawing.Size(219, 624); + this.CheckedListBox1.TabIndex = 3; + this.CheckedListBox1.UseCompatibleStateImageBehavior = false; + this.CheckedListBox1.View = System.Windows.Forms.View.Details; + // + // ColumnHeader2 + // + this.ColumnHeader2.Text = "Title"; + this.ColumnHeader2.Width = 214; + // + // Frm_SelectCH + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(388, 725); + this.Controls.Add(this.CheckedListBox1); + this.Controls.Add(this.Panel1); + this.Controls.Add(this.Button1); + this.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Frm_SelectCH"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "채널 선택"; + this.Load += new System.EventHandler(this.Frm_SelectCH_Load); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Frm_SelectCH_KeyDown); + this.Panel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + internal Button Button1; + internal Panel Panel1; + internal Button Button2; + internal Button Button4; + internal Button Button3; + internal ColumnHeader ColumnHeader2; + public ListView CheckedListBox1; + } + +} diff --git a/Viewer/TrendViewer/Dialog/Frm_SelectCH.cs b/Viewer/TrendViewer/Dialog/Frm_SelectCH.cs new file mode 100644 index 0000000..7585c29 --- /dev/null +++ b/Viewer/TrendViewer/Dialog/Frm_SelectCH.cs @@ -0,0 +1,92 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using AR; + +namespace vmsnet +{ + public partial class Frm_SelectCH + { + + public Frm_SelectCH(TrendCtrlII.CChinfo[] lst) + { + + // 디자이너에서 이 호출이 필요합니다. + InitializeComponent(); + + // InitializeComponent() 호출 뒤에 초기화 코드를 추가하세요. + this.CheckedListBox1.Items.Clear(); + + foreach (var item in lst) + { + ListViewItem lv = this.CheckedListBox1.Items.Add(System.Convert.ToString(item.TITLE)); + lv.SubItems.Add(item.TITLE.ToString()); + //lv.SubItems.Add(item.CH) + lv.Checked = item.Show; + lv.Tag = item.Idx; + lv.BackColor = item.Show ? Color.Lime : Color.White; + } + + CheckedListBox1.ItemChecked += CheckedListBox1_ItemChecked; + } + + private void CheckedListBox1_ItemChecked(object sender, ItemCheckedEventArgs e) + { + e.Item.BackColor = e.Item.Checked ? Color.Lime : Color.White; + } + + public void Frm_SelectCH_Load(object sender, EventArgs e) + { + + } + + public void Frm_SelectCH_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) + { + this.Close(); + } + } + + public void Button2_Click(object sender, EventArgs e) + { + foreach (ListViewItem item in CheckedListBox1.Items) + { + item.Checked = true; + item.BackColor = item.Checked ? Color.Lime : Color.White; + } + } + + public void Button3_Click(object sender, EventArgs e) + { + foreach (ListViewItem item in CheckedListBox1.Items) + { + item.Checked = false; + item.BackColor = item.Checked ? Color.Lime : Color.White; + } + } + + public void Button4_Click(object sender, EventArgs e) + { + foreach (ListViewItem item in CheckedListBox1.Items) + { + item.Checked = !item.Checked; + item.BackColor = item.Checked ? Color.Lime : Color.White; + } + } + + public void Button1_Click(object sender, EventArgs e) + { + if (CheckedListBox1.CheckedItems.Count > 10) + { + UTIL.MsgE("최대 10개까지 선택 가능 합니다"); + return ; + } + DialogResult = DialogResult.OK; + } + } +} diff --git a/Viewer/TrendViewer/Dialog/Frm_SelectCH.resx b/Viewer/TrendViewer/Dialog/Frm_SelectCH.resx new file mode 100644 index 0000000..06ea6a8 --- /dev/null +++ b/Viewer/TrendViewer/Dialog/Frm_SelectCH.resx @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcrvQCHK70BByu + 9AYcrvQKHK70DByu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu + 9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu + 9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9AwcrvQKHK70Bxyu9AQcrvQCAAAAAByu + 9AIcrvQGHK70DByu9BUcrvQdHK70Ixyu9CYcrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu + 9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu + 9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jhyu9CMcrvQdHK70FRyu + 9AwcrvQGHK70Ahyu9AMcrvQMHK70GRyu9CocrvQ7HK70Rhyu9EwcrvROHK70Thyu9E4crvROHK70Thyu + 9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu + 9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70TRyu + 9EYcrvQ7HK70Kxyu9BkcrvQMHK70BByu9AUcrvQSHK70Jwuh7VYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ + 6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ + 6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ + 6WYAmelmAJnpZgCZ6WYAmelmCqDtWByu9CgcrvQTHK70Bhyu9AYcrvQWHK70Lgmi7nEYsvzXHLb//xy2 + //8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2 + //8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2 + //8ctv//HLb//xy2//8ctv//HLb//xy2//8Zs/3fC6PweRyu9C4crvQWHK70Bxyu9AYcrvQUHK70Kxex + +8Actv//HLb//x23//8et///ILj//yK6//8lu///Kb3//yzA//8wwv//NcT//znH//89yv//Qcv//0bN + //9Kz///TdH//1HS//9T1P//V9X//1nW//9X1f//U9T//1HS//9N0f//Ss///0bN//9By///Pcr//znH + //81xP//MML//yzA//8pvf//Jbv//yK6//8guP//Hrf//xy2//8ctv//GbP81Ryu9CwcrvQVHK70Bhyu + 9AQcrvQPHK70IBu1/tUctv//HLb//x63//8nuv//JLv//ym9//8uwP//M8P//zrH//9By///R87//0/R + //9X1f//Xdj//2Tb//9r3f//cd///3bi//974///f+X//4Dm//9/5f//e+P//3bi//9x3///a93//2Tb + //9d2P//V9X//0/R//9Hzv//Qcv//zrH//8zw///LsD//ym9//8mu///JLr//x63//8ctv//HLb/8hyu + 9CAcrvQQHK70BRyu9AIcrvQIHK70Ehy1/qIctv//HLb//za+//8juf//Irn//yW8//8rv///MML//zbF + //89yf//RM3//0rQ//9S0///Wdb//1/Z//9m3P//a97//3Hg//904v//d+L//3jk//934v//dOL//3Hg + //9r3v//Ztz//1/Z//9Z1v//UtP//0rQ//9Ezf//Pcn//zbF//8wwv//K7///yW8//8iuf//Mr7//x23 + //8ctv//HLb/xRyu9BIcrvQIHK70Ahyu9AEcrvQEHK70CBy0/C8ctv/8HLb//1PJ//8kuv//Ibn//yW7 + //8qv///MMH//zXE//87yP//Qsv//0nP//9Q0///Vtb//13Y//9j2v//ad3//23e//9x4P//c+H//3Ti + //9z4f//ceD//23e//9p3f//Y9r//13Y//9W1v//UNP//0nP//9Cy///O8j//zXE//8wwf//Kr///yW7 + //8iuf//Q8P//yO5//8ctv//HLX+TByu9AgcrvQEHK70AQAAAAAcrvQBHK70Ahyu9AMctv+bHLb//0/H + //83wP//Irn//yS7//8ovf//LsD//zTE//86yP//QMv//0bO//9N0f//VNT//1nW//9f2f//ZNv//2nd + //9r3v//bd7//27g//9t3v//a97//2nd//9k2///X9n//1nW//9U1P//TdH//0bO//9Ay///Osj//zTE + //8uwP//KL3//yS7//8lu///ac///x+4//8ctv++HK70Axyu9AIcrvQBAAAAAAAAAAAAAAAAAAAAAAAA + AAActv8bHLb/9iS4//9mz///I7r//yK6//8nvf//LL///zLC//83xf//Pcn//0PN//9K0P//UNP//1XV + //9a1///X9n//2Pa//9r3f//zvT//+37//+w7f//Ztz//2Pa//9f2f//Wtf//1XV//9Q0///StD//0PN + //89yf//N8X//zLC//8sv///J73//yS6//89wf//Usn//xy2//8ctv82AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHLb/jRy2//9Vyv//OMD//yO5//8lvP//Kr///y7B//80xP//Osj//0DL + //9Gzf//StD//1DT//9V1f//Wdb//13Y//+f6P//////////////////dN7//13Y//9Z1v//VdX//1DT + //9K0P//Rs3//0DL//86yP//NMT//y7B//8qv///Jbz//ya7//9q0P//JLn//xy2/64AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Ehy2//Mluf//aM///yS6//8juv//J73//yy/ + //8xwv//NsX//zvI//9By///Rs7//0rQ//9Q0///VNT//1bW//+T5P/////////////7/v//adr//1bW + //9U1P//UNP//0rQ//9Gzv//Qcv//zvI//82xf//McL//yy///8nvf//JLr//z7C//9SyP//HLb//By2 + /yoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/34ctv//VMr//zrA + //8juf//Jbz//ym9//8uwP//MsL//zfF//88yf//Qcv//0bN//9K0P//TdH//1DT//9U1P//nuf//8fx + //+C4P//UtP//1DT//9N0f//StD//0bN//9By///PMn//zfF//8ywv//LsD//ym9//8lvP//Jrv//2rQ + //8kuf//HLb/ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2 + /wwctv/tJLn//2nP//8nu///Jrv//yq9//8twP//MsL//zbE//87x///P8n//0TM//9Izf//S8///03Q + //9P0f//UdH//1HS//9R0f//T9H//03Q//9Lz///SM3//0TM//8/yf//O8f//zbE//8ywv//LcD//yq9 + //8nu///QsL//1HI//8ctv/5HLb/IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAActv9yHLb//1TJ//8/wv//J7v//yq8//8uvv//MsH//zXD//86xP//Psf//0LK + //9Fy///SMz//0rN//9Mzv//Tc///07P//9Nz///TM7//0rN//9IzP//Rcv//0LK//8+x///OsT//zXD + //8ywf//Lr7//yq8//8svP//bdH//yS5//8ctv+TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8GHLb/5CS4//9s0f//Lbz//yy8//8vvf//Mr///zXC + //85w///PcX//0DI//9Dyf//Rsr//0nL//9Ozf//1fP///n9//+K3v//Ssz//0nL//9Gyv//Q8n//0DI + //89xf//OcP//zXC//8yv///L73//yy8//9GxP//UMj//xy2//Mctv8YAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Zhy2//9Vyf//RcP//y68 + //8wvf//Mr7//zbA//85wf//PMP//0DE//9Cx///RMf//0bJ//9w1f/////////////Q8f//R8n//0bJ + //9Ex///Qsf//0DE//88w///OcH//zbA//8yvv//ML3//zK+//9w0v//I7n//xy2/4cAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Axy2 + /9siuP//b9H//zW+//8yvv//NL///zbA//84wv//O8L//z7D//9Axf//QsX//0TH//9x1f////////// + ///U8v//Rcj//0TH//9Cxf//QMX//z7D//87wv//OML//zbA//80v///Mr7//03F//9PyP//HLb/7Ry2 + /xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABy2/1cctv//VMn//0zF//81vv//Nr///ze///85wP//O8H//zzC//8/w///QcT//0LE + //9v0//////////////T8v//Q8X//0LE//9BxP//P8P//zzC//87wf//OcD//ze///82v///OMD//3LS + //8guP//HLb/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/PIrj//3TT//88wP//OsD//zvA//88wf//PsL//z/C + //9Aw///QsP//0PD//9w0//////////////T8v//RMX//0PD//9Cw///QMP//z/C//8+wv//PMH//zvA + //87wP//VMn//1DI//8ctv/nHLb/DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9OHLb//1PJ//9Vyf//PsD//z7B + //8/wf//QMH//0HC//9Cwv//Q8P//0PD//9w0v/////////////T8f//RMP//0PD//9Dw///QsL//0HC + //9Awf//P8H//z7B//9Bwv//d9X//x+3//8ctv9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/xiK4 + //961f//RsT//0LC//9Cwv//Q8P//0TD//9Fw///RcP//0bE//9x0//////////////U8f//RsT//0bE + //9Fw///RcP//0TD//9Dw///QsL//0PC//9dzP//Ucj//xy2/94ctv8GAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHLb/Pxy2//9Vyf//Xs3//0nE//9IxP//SMT//0jE//9IxP//ScT//0nF//900/////////// + ///V8v//SsX//0nF//9JxP//SMT//0jE//9IxP//SMT//0zH//991f//H7f//xy2/10AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/7oiuP//ftb//1LI//9Ox///Tsf//07H//9Ox///Tsf//07H + //931P/////////////W8v//Tsf//07H//9Ox///Tsf//07H//9Ox///Tsf//2bP//9RyP//HLb/1Ry2 + /wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zMctv//Vsn//2jP//9Uyf//U8n//1PJ + //9Tyf//U8n//1PJ//971v/////////////X8v//U8n//1PJ//9Tyf//U8n//1PJ//9Tyf//V8r//4HY + //8ft///HLb/UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+rIbj//4XZ + //9dzP//Wsv//1rL//9ay///Wsv//1rL//+B1//////////////Y8///Wsv//1rL//9ay///Wsv//1rL + //9ay///cdL//1LJ//8ctv/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAActv8nHLb//FfK//900///Yc3//2DN//9gzf//YM3//2DN//+F2f/////////////a8///YM3//2DN + //9gzf//YM3//2DN//9kzv//h9n//x+3//8ctv9CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHLb/nB+3//+L2///atD//2bP//9mz///Zs///2bP//+K2v////////// + ///b9P//Zs///2bP//9mz///Zs///2fP//981f//Usn//xy2/70AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Gxy2//lYyv//f9b//23R//9t0f//bdH//23R + //+P3P/////////////d9P//bdH//23R//9t0f//bdH//3DR//+M2v//Hrf//xy2/zYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/40ft///ktz//3bU + //9z0///c9P//3PT//+U3f/////////////e9f//c9P//3PT//9z0///c9P//4bZ//9SyP//HLb/rgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2 + /xUctv/zWMr//4ra//961f//etX//3rV//+Z3//////////////g9f//etX//3rV//961f//fdX//5Hc + //8et//8HLb/KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAActv+BH7f//5be//+C2P//gNf//4DX//+Q3P///v/////////Q8P//gNf//4DX + //+A1///kd3//1TJ//8ctv+iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8MHLb/7VnK//+V3f//htn//4bZ//+G2f//m+D//6/m + //+K2v//htn//4bZ//+J2f//lt3//x63//kctv8hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/ciC3//+a3///j9z//43b + //+N2///jdv//43b//+N2///jdv//43b//+b4P//VMn//xy2/5MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Bhy2 + /+RZyv//n+H//5Pd//+T3f//k93//5Pd//+T3f//k93//5bd//+a3///Hrf/8xy2/xsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABy2/2Met///oOH//5vg//+a3///mt///5rf//+a3///mt///6bj//9Uyf//HLb/hwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/YWcr//6rk//+f4f//n+H//5/h//+f4f//ouH//57h + //8et//tHLb/EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9UHrf//6Ti//+m4///peL//6Xi + //+l4v//r+X//1LI//8ctv97AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/zFrL + //+z6P//quX//6rl//+s5f//oeL//x63/+cctv8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHLb/RR63//+p5P//tuj//7Pn//+96v//VMn//xy2/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/71GxP//wuz//8Xt//+S3f//HLb/3hy2/wYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zYctv//Mr3//1HI//8iuP//HLb/YAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+HHLb//xy2 + //8ctv+lHLb/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHLb/Jxy2/zYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP////////z9gAAAAAAB/P0AAAAAAAD8/QAAAAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAA + AAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAAAAAAAPz9gAAAAAAB/P3wAAAAAA/8/fgAAAAAH/z9+AAAAAAf + /P38AAAAAD/8/fwAAAAAP/z9/gAAAAB//P3+AAAAAH/8/f8AAAAA//z9/wAAAAD//P3/gAAAAf/8/f+A + AAAB//z9/8AAAAP//P3/4AAAA//8/f/gAAAH//z9//AAAAf//P3/8AAAD//8/f/4AAAf//z9//gAAB// + /P3//AAAP//8/f/8AAA///z9//4AAH///P3//gAAf//8/f//AAD///z9//8AAP///P3//4AB///8/f// + gAH///z9///AA////P3//8AD///8/f//4Af///z9///wB////P3///AP///8/f//+A////z9///4H/// + /P3///wf///8/f///n////z9/////////P3////////8/SgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHK70ARuu9AIcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu + 9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu + 9AQcrvQEG670BByu9AMbrvQBAAAAABuu9AIbrvQIG670Ehuu9BobrvQeG670Hhuu9B4brvQeG670Hhuu + 9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu + 9B4brvQeG670Hhuu9B4brvQaG670Ehuu9AgbrvQCG670Bxyu9BgVqPE+EqfwThKn8FUSp/BWEqfwVhKn + 8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn + 8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8E4UqPE/G670GRyu9AgbrvQLG670JAuk8IARq/bDEqz3zBKs + 98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs + 98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqv3xQyk8YYbrvQkG670Cxuu9AocrvQgGbP92hy2 + //8et///Ibj//yW7//8qvv//MsP//znG//9Cy///SM7//1HS//9X1f//Xtf//2PZ//9l2///Ydn//1vW + //9W1P//TtD//0fO//8+yf//N8X//y/B//8pvf//I7r//yC4//8ctv//GrT96Ruu9CEcrvQKG670BRuu + 9BMbtf7MG7b//yq6//8juf//KL3//y/B//85x///Qsz//07R//9Y1f//Ytr//2vd//9z4f//eOL//3rk + //934v//cN///2nd//9e2P//VdT//0nP//9Ayv//NcT//y3A//8lu///Krv//xy2//8btv/iG670Exuu + 9AYbrvQBHK70BRuz+18ctv/zRMT//yS6//8mvP//Lb///zbF//8/yv//Ss///1PU//9d2P//Zdv//2ze + //9w3///ceD//2/f//9q3f//Y9r//1nW//9R0///Rc3//zzJ//8ywv//K7///yS6//9Awv//H7f/+Byz + /HAbrvQFHK70AQAAAAAbrvQBG7L6GBu2/70+wf//M7///yS7//8qvv//NMP//zvI//9Gzv//T9L//1jW + //9f2f//Z9v//5fn//+17v//eOD//2Pa//9d2P//VNT//03R//9CzP//Osf//zDB//8pvf//Kbv//03H + //8ctv/LG7L6Ihuu9AEAAAAAAAAAAAAAAAAAAAAAHLb/Qym6//xHxP//I7r//ye9//8vwf//NsX//0DK + //9Hzv//T9L//1bV//9w3P//3fb///7+//+f6P//Wdb//1TU//9M0f//Rc3//zzJ//80xP//K7///ya8 + //8/wv//Nr///hu2/1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8EHLb/w0bE//8tvP//JLv//yu+ + //8xwv//Osf//0HL//9Iz///TtH//1nV//+h5///yfH//3Tc//9R0///TdH//0XN//8/yv//NsX//zDB + //8ovf//Jbv//07G//8juP/VG7b/CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv9HH7f/61HH + //8pu///K73//zDA//83xP//Pcf//0TL//9Jzf//TM///0/Q//9P0P//TtD//0vO//9IzP//Qcr//zzG + //80w///LsD//ym8//9Dw///Nb7/8hy2/1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABu2 + /w4btv+sQcL//zvB//8svP//ML7//zbC//88xP//Qcn//0XK//9KzP//id7//6fm//9Y0P//SMv//0TK + //8/x///OsT//zTB//8vvv//Mb3//1DH//8dtv+6G7b/FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABy2/y4puv/3Tsb//zC8//8yvv//NsD//zrC//9AxP//Qsb//1PM///P8f//7/r//3TW + //9Ex///Qsb//z7D//85wf//NL///zG9//9Jxf//N7//+xu2/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAG7b/ARy2/6xIxP//PsH//zS+//83v///OsH//z3C//9AxP//Ucn//8/w + ///w+v//c9T//0LE//9Aw///PML//znA//82v///Nb///1PI//8iuP+/G7b/BAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7b/OB62/+Fcy///PsH//zzA//8+wf//QML//0HC + //9SyP//z/D///D6//9z0///QsP//0HC//8/wf//PcH//zzA//9UyP//M77/6Ry2/0UAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8JG7b/mUbE//9Rx///QMH//0HC + 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 + rEHwD6xB+B+sQfgfrEH8P6xB/j+sQf5/rEE= + + + \ No newline at end of file diff --git a/Viewer/TrendViewer/Dialog/fPleaseWait.Designer.cs b/Viewer/TrendViewer/Dialog/fPleaseWait.Designer.cs new file mode 100644 index 0000000..08f0f85 --- /dev/null +++ b/Viewer/TrendViewer/Dialog/fPleaseWait.Designer.cs @@ -0,0 +1,64 @@ +namespace vmsnet +{ + partial class fPleaseWait + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.White; + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(800, 450); + this.label1.TabIndex = 0; + this.label1.Text = "잠시만 기다려 주세요"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // fPleaseWait + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.label1); + this.DoubleBuffered = true; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "fPleaseWait"; + this.Text = "f"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/Viewer/TrendViewer/Dialog/fPleaseWait.cs b/Viewer/TrendViewer/Dialog/fPleaseWait.cs new file mode 100644 index 0000000..6f2ff52 --- /dev/null +++ b/Viewer/TrendViewer/Dialog/fPleaseWait.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace vmsnet +{ + public partial class fPleaseWait : Form + { + public fPleaseWait() + { + InitializeComponent(); + } + } +} diff --git a/Viewer/TrendViewer/Dialog/fPleaseWait.resx b/Viewer/TrendViewer/Dialog/fPleaseWait.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Viewer/TrendViewer/Dialog/fPleaseWait.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Viewer/TrendViewer/DocumentElement.Designer.cs b/Viewer/TrendViewer/DocumentElement.Designer.cs new file mode 100644 index 0000000..4dd25c3 --- /dev/null +++ b/Viewer/TrendViewer/DocumentElement.Designer.cs @@ -0,0 +1,6743 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace vmsnet { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DocumentElement")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DocumentElement : global::System.Data.DataSet { + + private CHANNELDataTable tableCHANNEL; + + private DEVICEDataTable tableDEVICE; + + private GRPDataTable tableGRP; + + private NORMALDataTable tableNORMAL; + + private VIEWGROUPDataTable tableVIEWGROUP; + + private WINDataTable tableWIN; + + private ALARMDataTable tableALARM; + + private VIEWGROUPRDataTable tableVIEWGROUPR; + + private TRENDVIEWCHLISTDataTable tableTRENDVIEWCHLIST; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DocumentElement() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DocumentElement(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["CHANNEL"] != null)) { + base.Tables.Add(new CHANNELDataTable(ds.Tables["CHANNEL"])); + } + if ((ds.Tables["DEVICE"] != null)) { + base.Tables.Add(new DEVICEDataTable(ds.Tables["DEVICE"])); + } + if ((ds.Tables["GRP"] != null)) { + base.Tables.Add(new GRPDataTable(ds.Tables["GRP"])); + } + if ((ds.Tables["NORMAL"] != null)) { + base.Tables.Add(new NORMALDataTable(ds.Tables["NORMAL"])); + } + if ((ds.Tables["VIEWGROUP"] != null)) { + base.Tables.Add(new VIEWGROUPDataTable(ds.Tables["VIEWGROUP"])); + } + if ((ds.Tables["WIN"] != null)) { + base.Tables.Add(new WINDataTable(ds.Tables["WIN"])); + } + if ((ds.Tables["ALARM"] != null)) { + base.Tables.Add(new ALARMDataTable(ds.Tables["ALARM"])); + } + if ((ds.Tables["VIEWGROUPR"] != null)) { + base.Tables.Add(new VIEWGROUPRDataTable(ds.Tables["VIEWGROUPR"])); + } + if ((ds.Tables["TRENDVIEWCHLIST"] != null)) { + base.Tables.Add(new TRENDVIEWCHLISTDataTable(ds.Tables["TRENDVIEWCHLIST"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public CHANNELDataTable CHANNEL { + get { + return this.tableCHANNEL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public DEVICEDataTable DEVICE { + get { + return this.tableDEVICE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public GRPDataTable GRP { + get { + return this.tableGRP; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public NORMALDataTable NORMAL { + get { + return this.tableNORMAL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public VIEWGROUPDataTable VIEWGROUP { + get { + return this.tableVIEWGROUP; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public WINDataTable WIN { + get { + return this.tableWIN; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public ALARMDataTable ALARM { + get { + return this.tableALARM; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public VIEWGROUPRDataTable VIEWGROUPR { + get { + return this.tableVIEWGROUPR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public TRENDVIEWCHLISTDataTable TRENDVIEWCHLIST { + get { + return this.tableTRENDVIEWCHLIST; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataSet Clone() { + DocumentElement cln = ((DocumentElement)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["CHANNEL"] != null)) { + base.Tables.Add(new CHANNELDataTable(ds.Tables["CHANNEL"])); + } + if ((ds.Tables["DEVICE"] != null)) { + base.Tables.Add(new DEVICEDataTable(ds.Tables["DEVICE"])); + } + if ((ds.Tables["GRP"] != null)) { + base.Tables.Add(new GRPDataTable(ds.Tables["GRP"])); + } + if ((ds.Tables["NORMAL"] != null)) { + base.Tables.Add(new NORMALDataTable(ds.Tables["NORMAL"])); + } + if ((ds.Tables["VIEWGROUP"] != null)) { + base.Tables.Add(new VIEWGROUPDataTable(ds.Tables["VIEWGROUP"])); + } + if ((ds.Tables["WIN"] != null)) { + base.Tables.Add(new WINDataTable(ds.Tables["WIN"])); + } + if ((ds.Tables["ALARM"] != null)) { + base.Tables.Add(new ALARMDataTable(ds.Tables["ALARM"])); + } + if ((ds.Tables["VIEWGROUPR"] != null)) { + base.Tables.Add(new VIEWGROUPRDataTable(ds.Tables["VIEWGROUPR"])); + } + if ((ds.Tables["TRENDVIEWCHLIST"] != null)) { + base.Tables.Add(new TRENDVIEWCHLISTDataTable(ds.Tables["TRENDVIEWCHLIST"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars(bool initTable) { + this.tableCHANNEL = ((CHANNELDataTable)(base.Tables["CHANNEL"])); + if ((initTable == true)) { + if ((this.tableCHANNEL != null)) { + this.tableCHANNEL.InitVars(); + } + } + this.tableDEVICE = ((DEVICEDataTable)(base.Tables["DEVICE"])); + if ((initTable == true)) { + if ((this.tableDEVICE != null)) { + this.tableDEVICE.InitVars(); + } + } + this.tableGRP = ((GRPDataTable)(base.Tables["GRP"])); + if ((initTable == true)) { + if ((this.tableGRP != null)) { + this.tableGRP.InitVars(); + } + } + this.tableNORMAL = ((NORMALDataTable)(base.Tables["NORMAL"])); + if ((initTable == true)) { + if ((this.tableNORMAL != null)) { + this.tableNORMAL.InitVars(); + } + } + this.tableVIEWGROUP = ((VIEWGROUPDataTable)(base.Tables["VIEWGROUP"])); + if ((initTable == true)) { + if ((this.tableVIEWGROUP != null)) { + this.tableVIEWGROUP.InitVars(); + } + } + this.tableWIN = ((WINDataTable)(base.Tables["WIN"])); + if ((initTable == true)) { + if ((this.tableWIN != null)) { + this.tableWIN.InitVars(); + } + } + this.tableALARM = ((ALARMDataTable)(base.Tables["ALARM"])); + if ((initTable == true)) { + if ((this.tableALARM != null)) { + this.tableALARM.InitVars(); + } + } + this.tableVIEWGROUPR = ((VIEWGROUPRDataTable)(base.Tables["VIEWGROUPR"])); + if ((initTable == true)) { + if ((this.tableVIEWGROUPR != null)) { + this.tableVIEWGROUPR.InitVars(); + } + } + this.tableTRENDVIEWCHLIST = ((TRENDVIEWCHLISTDataTable)(base.Tables["TRENDVIEWCHLIST"])); + if ((initTable == true)) { + if ((this.tableTRENDVIEWCHLIST != null)) { + this.tableTRENDVIEWCHLIST.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.DataSetName = "DocumentElement"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DocumentElement.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableCHANNEL = new CHANNELDataTable(); + base.Tables.Add(this.tableCHANNEL); + this.tableDEVICE = new DEVICEDataTable(); + base.Tables.Add(this.tableDEVICE); + this.tableGRP = new GRPDataTable(); + base.Tables.Add(this.tableGRP); + this.tableNORMAL = new NORMALDataTable(); + base.Tables.Add(this.tableNORMAL); + this.tableVIEWGROUP = new VIEWGROUPDataTable(); + base.Tables.Add(this.tableVIEWGROUP); + this.tableWIN = new WINDataTable(); + base.Tables.Add(this.tableWIN); + this.tableALARM = new ALARMDataTable(); + base.Tables.Add(this.tableALARM); + this.tableVIEWGROUPR = new VIEWGROUPRDataTable(); + base.Tables.Add(this.tableVIEWGROUPR); + this.tableTRENDVIEWCHLIST = new TRENDVIEWCHLISTDataTable(); + base.Tables.Add(this.tableTRENDVIEWCHLIST); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeCHANNEL() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeDEVICE() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeGRP() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeNORMAL() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeVIEWGROUP() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeWIN() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeALARM() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeVIEWGROUPR() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeTRENDVIEWCHLIST() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void CHANNELRowChangeEventHandler(object sender, CHANNELRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void DEVICERowChangeEventHandler(object sender, DEVICERowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void GRPRowChangeEventHandler(object sender, GRPRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void NORMALRowChangeEventHandler(object sender, NORMALRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void VIEWGROUPRowChangeEventHandler(object sender, VIEWGROUPRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void WINRowChangeEventHandler(object sender, WINRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void ALARMRowChangeEventHandler(object sender, ALARMRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void VIEWGROUPRRowChangeEventHandler(object sender, VIEWGROUPRRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void TRENDVIEWCHLISTRowChangeEventHandler(object sender, TRENDVIEWCHLISTRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class CHANNELDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnENABLE; + + private global::System.Data.DataColumn columnUSE; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnGIDX; + + private global::System.Data.DataColumn columnMACHINE; + + private global::System.Data.DataColumn columnALAMTYPE; + + private global::System.Data.DataColumn columnALAMH; + + private global::System.Data.DataColumn columnALAML; + + private global::System.Data.DataColumn columnCOLOR; + + private global::System.Data.DataColumn columnAUTOH; + + private global::System.Data.DataColumn columnAUTOL; + + private global::System.Data.DataColumn columnUNIT; + + private global::System.Data.DataColumn columnDECPOS; + + private global::System.Data.DataColumn columnGRPNAME; + + private global::System.Data.DataColumn columnIDX_M; + + private global::System.Data.DataColumn columnIDX_U; + + private global::System.Data.DataColumn columnIDX_C; + + private global::System.Data.DataColumn columnVOFFSET; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELDataTable() { + this.TableName = "CHANNEL"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal CHANNELDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected CHANNELDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ENABLEColumn { + get { + return this.columnENABLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn USEColumn { + get { + return this.columnUSE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GIDXColumn { + get { + return this.columnGIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MACHINEColumn { + get { + return this.columnMACHINE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMTYPEColumn { + get { + return this.columnALAMTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMHColumn { + get { + return this.columnALAMH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMLColumn { + get { + return this.columnALAML; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn COLORColumn { + get { + return this.columnCOLOR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AUTOHColumn { + get { + return this.columnAUTOH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AUTOLColumn { + get { + return this.columnAUTOL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn UNITColumn { + get { + return this.columnUNIT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DECPOSColumn { + get { + return this.columnDECPOS; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GRPNAMEColumn { + get { + return this.columnGRPNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDX_MColumn { + get { + return this.columnIDX_M; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDX_UColumn { + get { + return this.columnIDX_U; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDX_CColumn { + get { + return this.columnIDX_C; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VOFFSETColumn { + get { + return this.columnVOFFSET; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow this[int index] { + get { + return ((CHANNELRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event CHANNELRowChangeEventHandler CHANNELRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event CHANNELRowChangeEventHandler CHANNELRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event CHANNELRowChangeEventHandler CHANNELRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event CHANNELRowChangeEventHandler CHANNELRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddCHANNELRow(CHANNELRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow AddCHANNELRow( + int ENABLE, + int USE, + string TITLE, + int GIDX, + string MACHINE, + int ALAMTYPE, + float ALAMH, + float ALAML, + int COLOR, + float AUTOH, + float AUTOL, + string UNIT, + int DECPOS, + string GRPNAME, + int IDX_M, + int IDX_U, + int IDX_C, + float VOFFSET) { + CHANNELRow rowCHANNELRow = ((CHANNELRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + ENABLE, + USE, + TITLE, + GIDX, + MACHINE, + ALAMTYPE, + ALAMH, + ALAML, + COLOR, + AUTOH, + AUTOL, + UNIT, + DECPOS, + GRPNAME, + IDX_M, + IDX_U, + IDX_C, + VOFFSET}; + rowCHANNELRow.ItemArray = columnValuesArray; + this.Rows.Add(rowCHANNELRow); + return rowCHANNELRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow FindByIDX(int IDX) { + return ((CHANNELRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + CHANNELDataTable cln = ((CHANNELDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new CHANNELDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnENABLE = base.Columns["ENABLE"]; + this.columnUSE = base.Columns["USE"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnGIDX = base.Columns["GIDX"]; + this.columnMACHINE = base.Columns["MACHINE"]; + this.columnALAMTYPE = base.Columns["ALAMTYPE"]; + this.columnALAMH = base.Columns["ALAMH"]; + this.columnALAML = base.Columns["ALAML"]; + this.columnCOLOR = base.Columns["COLOR"]; + this.columnAUTOH = base.Columns["AUTOH"]; + this.columnAUTOL = base.Columns["AUTOL"]; + this.columnUNIT = base.Columns["UNIT"]; + this.columnDECPOS = base.Columns["DECPOS"]; + this.columnGRPNAME = base.Columns["GRPNAME"]; + this.columnIDX_M = base.Columns["IDX_M"]; + this.columnIDX_U = base.Columns["IDX_U"]; + this.columnIDX_C = base.Columns["IDX_C"]; + this.columnVOFFSET = base.Columns["VOFFSET"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnENABLE = new global::System.Data.DataColumn("ENABLE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnENABLE); + this.columnUSE = new global::System.Data.DataColumn("USE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUSE); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnGIDX = new global::System.Data.DataColumn("GIDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGIDX); + this.columnMACHINE = new global::System.Data.DataColumn("MACHINE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMACHINE); + this.columnALAMTYPE = new global::System.Data.DataColumn("ALAMTYPE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMTYPE); + this.columnALAMH = new global::System.Data.DataColumn("ALAMH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMH); + this.columnALAML = new global::System.Data.DataColumn("ALAML", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAML); + this.columnCOLOR = new global::System.Data.DataColumn("COLOR", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCOLOR); + this.columnAUTOH = new global::System.Data.DataColumn("AUTOH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAUTOH); + this.columnAUTOL = new global::System.Data.DataColumn("AUTOL", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAUTOL); + this.columnUNIT = new global::System.Data.DataColumn("UNIT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUNIT); + this.columnDECPOS = new global::System.Data.DataColumn("DECPOS", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDECPOS); + this.columnGRPNAME = new global::System.Data.DataColumn("GRPNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGRPNAME); + this.columnIDX_M = new global::System.Data.DataColumn("IDX_M", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX_M); + this.columnIDX_U = new global::System.Data.DataColumn("IDX_U", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX_U); + this.columnIDX_C = new global::System.Data.DataColumn("IDX_C", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX_C); + this.columnVOFFSET = new global::System.Data.DataColumn("VOFFSET", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVOFFSET); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnENABLE.DefaultValue = ((int)(0)); + this.columnUSE.DefaultValue = ((int)(0)); + this.columnTITLE.DefaultValue = ((string)("")); + this.columnGIDX.DefaultValue = ((int)(0)); + this.columnMACHINE.DefaultValue = ((string)("")); + this.columnALAMTYPE.DefaultValue = ((int)(0)); + this.columnALAMH.DefaultValue = ((float)(0F)); + this.columnALAML.DefaultValue = ((float)(0F)); + this.columnCOLOR.DefaultValue = ((int)(0)); + this.columnAUTOH.DefaultValue = ((float)(0F)); + this.columnAUTOL.DefaultValue = ((float)(0F)); + this.columnUNIT.DefaultValue = ((string)("")); + this.columnDECPOS.DefaultValue = ((int)(0)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow NewCHANNELRow() { + return ((CHANNELRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new CHANNELRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(CHANNELRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.CHANNELRowChanged != null)) { + this.CHANNELRowChanged(this, new CHANNELRowChangeEvent(((CHANNELRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.CHANNELRowChanging != null)) { + this.CHANNELRowChanging(this, new CHANNELRowChangeEvent(((CHANNELRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.CHANNELRowDeleted != null)) { + this.CHANNELRowDeleted(this, new CHANNELRowChangeEvent(((CHANNELRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.CHANNELRowDeleting != null)) { + this.CHANNELRowDeleting(this, new CHANNELRowChangeEvent(((CHANNELRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveCHANNELRow(CHANNELRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "CHANNELDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class DEVICEDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnUSE; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnIP; + + private global::System.Data.DataColumn columnCHCOUNT; + + private global::System.Data.DataColumn columnKACOMMAND; + + private global::System.Data.DataColumn columnCHCOMMAND; + + private global::System.Data.DataColumn columnSNCOMMAND; + + private global::System.Data.DataColumn columnPORT; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICEDataTable() { + this.TableName = "DEVICE"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal DEVICEDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DEVICEDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn USEColumn { + get { + return this.columnUSE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IPColumn { + get { + return this.columnIP; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CHCOUNTColumn { + get { + return this.columnCHCOUNT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn KACOMMANDColumn { + get { + return this.columnKACOMMAND; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CHCOMMANDColumn { + get { + return this.columnCHCOMMAND; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SNCOMMANDColumn { + get { + return this.columnSNCOMMAND; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PORTColumn { + get { + return this.columnPORT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow this[int index] { + get { + return ((DEVICERow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event DEVICERowChangeEventHandler DEVICERowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event DEVICERowChangeEventHandler DEVICERowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event DEVICERowChangeEventHandler DEVICERowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event DEVICERowChangeEventHandler DEVICERowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddDEVICERow(DEVICERow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow AddDEVICERow(int USE, string TITLE, string IP, string CHCOUNT, string KACOMMAND, string CHCOMMAND, string SNCOMMAND, int PORT) { + DEVICERow rowDEVICERow = ((DEVICERow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + USE, + TITLE, + IP, + CHCOUNT, + KACOMMAND, + CHCOMMAND, + SNCOMMAND, + PORT}; + rowDEVICERow.ItemArray = columnValuesArray; + this.Rows.Add(rowDEVICERow); + return rowDEVICERow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow FindByIDX(int IDX) { + return ((DEVICERow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + DEVICEDataTable cln = ((DEVICEDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new DEVICEDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnUSE = base.Columns["USE"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnIP = base.Columns["IP"]; + this.columnCHCOUNT = base.Columns["CHCOUNT"]; + this.columnKACOMMAND = base.Columns["KACOMMAND"]; + this.columnCHCOMMAND = base.Columns["CHCOMMAND"]; + this.columnSNCOMMAND = base.Columns["SNCOMMAND"]; + this.columnPORT = base.Columns["PORT"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnUSE = new global::System.Data.DataColumn("USE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUSE); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnIP = new global::System.Data.DataColumn("IP", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIP); + this.columnCHCOUNT = new global::System.Data.DataColumn("CHCOUNT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCHCOUNT); + this.columnKACOMMAND = new global::System.Data.DataColumn("KACOMMAND", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnKACOMMAND); + this.columnCHCOMMAND = new global::System.Data.DataColumn("CHCOMMAND", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCHCOMMAND); + this.columnSNCOMMAND = new global::System.Data.DataColumn("SNCOMMAND", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSNCOMMAND); + this.columnPORT = new global::System.Data.DataColumn("PORT", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPORT); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnUSE.DefaultValue = ((int)(0)); + this.columnTITLE.DefaultValue = ((string)("")); + this.columnIP.DefaultValue = ((string)("")); + this.columnCHCOUNT.DefaultValue = ((string)("")); + this.columnKACOMMAND.DefaultValue = ((string)("")); + this.columnCHCOMMAND.DefaultValue = ((string)("")); + this.columnSNCOMMAND.DefaultValue = ((string)("")); + this.columnPORT.DefaultValue = ((int)(34150)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow NewDEVICERow() { + return ((DEVICERow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new DEVICERow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(DEVICERow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.DEVICERowChanged != null)) { + this.DEVICERowChanged(this, new DEVICERowChangeEvent(((DEVICERow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.DEVICERowChanging != null)) { + this.DEVICERowChanging(this, new DEVICERowChangeEvent(((DEVICERow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.DEVICERowDeleted != null)) { + this.DEVICERowDeleted(this, new DEVICERowChangeEvent(((DEVICERow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.DEVICERowDeleting != null)) { + this.DEVICERowDeleting(this, new DEVICERowChangeEvent(((DEVICERow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveDEVICERow(DEVICERow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "DEVICEDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class GRPDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnUSE; + + private global::System.Data.DataColumn columnWINDOW; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnMATRIX; + + private global::System.Data.DataColumn columnPOS; + + private global::System.Data.DataColumn columnSPAN; + + private global::System.Data.DataColumn columnFONT; + + private global::System.Data.DataColumn columnALAMH; + + private global::System.Data.DataColumn columnALAML; + + private global::System.Data.DataColumn columnKADEVICE; + + private global::System.Data.DataColumn columnALAMTYPE; + + private global::System.Data.DataColumn columnAUTOH; + + private global::System.Data.DataColumn columnAUTOL; + + private global::System.Data.DataColumn columnNBOFF; + + private global::System.Data.DataColumn columnNBSEQ; + + private global::System.Data.DataColumn columnNBHH; + + private global::System.Data.DataColumn columnNBH; + + private global::System.Data.DataColumn columnNBLL; + + private global::System.Data.DataColumn columnNBL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPDataTable() { + this.TableName = "GRP"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal GRPDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected GRPDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn USEColumn { + get { + return this.columnUSE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn WINDOWColumn { + get { + return this.columnWINDOW; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MATRIXColumn { + get { + return this.columnMATRIX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn POSColumn { + get { + return this.columnPOS; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SPANColumn { + get { + return this.columnSPAN; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn FONTColumn { + get { + return this.columnFONT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMHColumn { + get { + return this.columnALAMH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMLColumn { + get { + return this.columnALAML; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn KADEVICEColumn { + get { + return this.columnKADEVICE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMTYPEColumn { + get { + return this.columnALAMTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AUTOHColumn { + get { + return this.columnAUTOH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AUTOLColumn { + get { + return this.columnAUTOL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBOFFColumn { + get { + return this.columnNBOFF; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBSEQColumn { + get { + return this.columnNBSEQ; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBHHColumn { + get { + return this.columnNBHH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBHColumn { + get { + return this.columnNBH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBLLColumn { + get { + return this.columnNBLL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NBLColumn { + get { + return this.columnNBL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow this[int index] { + get { + return ((GRPRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event GRPRowChangeEventHandler GRPRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event GRPRowChangeEventHandler GRPRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event GRPRowChangeEventHandler GRPRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event GRPRowChangeEventHandler GRPRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddGRPRow(GRPRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow AddGRPRow( + int USE, + int WINDOW, + string TITLE, + string MATRIX, + string POS, + string SPAN, + string FONT, + float ALAMH, + float ALAML, + string KADEVICE, + string ALAMTYPE, + float AUTOH, + float AUTOL, + float NBOFF, + int NBSEQ, + float NBHH, + float NBH, + float NBLL, + float NBL) { + GRPRow rowGRPRow = ((GRPRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + USE, + WINDOW, + TITLE, + MATRIX, + POS, + SPAN, + FONT, + ALAMH, + ALAML, + KADEVICE, + ALAMTYPE, + AUTOH, + AUTOL, + NBOFF, + NBSEQ, + NBHH, + NBH, + NBLL, + NBL}; + rowGRPRow.ItemArray = columnValuesArray; + this.Rows.Add(rowGRPRow); + return rowGRPRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow FindByIDX(int IDX) { + return ((GRPRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + GRPDataTable cln = ((GRPDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new GRPDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnUSE = base.Columns["USE"]; + this.columnWINDOW = base.Columns["WINDOW"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnMATRIX = base.Columns["MATRIX"]; + this.columnPOS = base.Columns["POS"]; + this.columnSPAN = base.Columns["SPAN"]; + this.columnFONT = base.Columns["FONT"]; + this.columnALAMH = base.Columns["ALAMH"]; + this.columnALAML = base.Columns["ALAML"]; + this.columnKADEVICE = base.Columns["KADEVICE"]; + this.columnALAMTYPE = base.Columns["ALAMTYPE"]; + this.columnAUTOH = base.Columns["AUTOH"]; + this.columnAUTOL = base.Columns["AUTOL"]; + this.columnNBOFF = base.Columns["NBOFF"]; + this.columnNBSEQ = base.Columns["NBSEQ"]; + this.columnNBHH = base.Columns["NBHH"]; + this.columnNBH = base.Columns["NBH"]; + this.columnNBLL = base.Columns["NBLL"]; + this.columnNBL = base.Columns["NBL"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnUSE = new global::System.Data.DataColumn("USE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUSE); + this.columnWINDOW = new global::System.Data.DataColumn("WINDOW", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnWINDOW); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnMATRIX = new global::System.Data.DataColumn("MATRIX", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMATRIX); + this.columnPOS = new global::System.Data.DataColumn("POS", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPOS); + this.columnSPAN = new global::System.Data.DataColumn("SPAN", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSPAN); + this.columnFONT = new global::System.Data.DataColumn("FONT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnFONT); + this.columnALAMH = new global::System.Data.DataColumn("ALAMH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMH); + this.columnALAML = new global::System.Data.DataColumn("ALAML", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAML); + this.columnKADEVICE = new global::System.Data.DataColumn("KADEVICE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnKADEVICE); + this.columnALAMTYPE = new global::System.Data.DataColumn("ALAMTYPE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMTYPE); + this.columnAUTOH = new global::System.Data.DataColumn("AUTOH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAUTOH); + this.columnAUTOL = new global::System.Data.DataColumn("AUTOL", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAUTOL); + this.columnNBOFF = new global::System.Data.DataColumn("NBOFF", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBOFF); + this.columnNBSEQ = new global::System.Data.DataColumn("NBSEQ", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBSEQ); + this.columnNBHH = new global::System.Data.DataColumn("NBHH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBHH); + this.columnNBH = new global::System.Data.DataColumn("NBH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBH); + this.columnNBLL = new global::System.Data.DataColumn("NBLL", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBLL); + this.columnNBL = new global::System.Data.DataColumn("NBL", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNBL); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnUSE.Caption = "ENABLE"; + this.columnUSE.DefaultValue = ((int)(0)); + this.columnWINDOW.DefaultValue = ((int)(0)); + this.columnTITLE.DefaultValue = ((string)("")); + this.columnMATRIX.DefaultValue = ((string)("")); + this.columnPOS.DefaultValue = ((string)("")); + this.columnSPAN.DefaultValue = ((string)("")); + this.columnFONT.DefaultValue = ((string)("")); + this.columnALAMH.DefaultValue = ((float)(0F)); + this.columnALAML.DefaultValue = ((float)(0F)); + this.columnKADEVICE.DefaultValue = ((string)("")); + this.columnALAMTYPE.DefaultValue = ((string)("")); + this.columnAUTOH.DefaultValue = ((float)(0F)); + this.columnAUTOL.DefaultValue = ((float)(0F)); + this.columnNBOFF.DefaultValue = ((float)(0F)); + this.columnNBSEQ.DefaultValue = ((int)(0)); + this.columnNBHH.DefaultValue = ((float)(0F)); + this.columnNBH.DefaultValue = ((float)(0F)); + this.columnNBLL.DefaultValue = ((float)(0F)); + this.columnNBL.DefaultValue = ((float)(0F)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow NewGRPRow() { + return ((GRPRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new GRPRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(GRPRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.GRPRowChanged != null)) { + this.GRPRowChanged(this, new GRPRowChangeEvent(((GRPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.GRPRowChanging != null)) { + this.GRPRowChanging(this, new GRPRowChangeEvent(((GRPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.GRPRowDeleted != null)) { + this.GRPRowDeleted(this, new GRPRowChangeEvent(((GRPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.GRPRowDeleting != null)) { + this.GRPRowDeleting(this, new GRPRowChangeEvent(((GRPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveGRPRow(GRPRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "GRPDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class NORMALDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnALAMH; + + private global::System.Data.DataColumn columnALAML; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALDataTable() { + this.TableName = "NORMAL"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal NORMALDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected NORMALDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMHColumn { + get { + return this.columnALAMH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMLColumn { + get { + return this.columnALAML; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow this[int index] { + get { + return ((NORMALRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event NORMALRowChangeEventHandler NORMALRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event NORMALRowChangeEventHandler NORMALRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event NORMALRowChangeEventHandler NORMALRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event NORMALRowChangeEventHandler NORMALRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddNORMALRow(NORMALRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow AddNORMALRow(float ALAMH, float ALAML) { + NORMALRow rowNORMALRow = ((NORMALRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + ALAMH, + ALAML}; + rowNORMALRow.ItemArray = columnValuesArray; + this.Rows.Add(rowNORMALRow); + return rowNORMALRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow FindByIDX(int IDX) { + return ((NORMALRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + NORMALDataTable cln = ((NORMALDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new NORMALDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnALAMH = base.Columns["ALAMH"]; + this.columnALAML = base.Columns["ALAML"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnALAMH = new global::System.Data.DataColumn("ALAMH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMH); + this.columnALAML = new global::System.Data.DataColumn("ALAML", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAML); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnALAMH.DefaultValue = ((float)(0F)); + this.columnALAML.DefaultValue = ((float)(0F)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow NewNORMALRow() { + return ((NORMALRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new NORMALRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(NORMALRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.NORMALRowChanged != null)) { + this.NORMALRowChanged(this, new NORMALRowChangeEvent(((NORMALRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.NORMALRowChanging != null)) { + this.NORMALRowChanging(this, new NORMALRowChangeEvent(((NORMALRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.NORMALRowDeleted != null)) { + this.NORMALRowDeleted(this, new NORMALRowChangeEvent(((NORMALRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.NORMALRowDeleting != null)) { + this.NORMALRowDeleting(this, new NORMALRowChangeEvent(((NORMALRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveNORMALRow(NORMALRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "NORMALDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class VIEWGROUPDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnGNAME; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnVAL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPDataTable() { + this.TableName = "VIEWGROUP"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal VIEWGROUPDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected VIEWGROUPDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GNAMEColumn { + get { + return this.columnGNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VALColumn { + get { + return this.columnVAL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow this[int index] { + get { + return ((VIEWGROUPRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRowChangeEventHandler VIEWGROUPRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRowChangeEventHandler VIEWGROUPRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRowChangeEventHandler VIEWGROUPRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRowChangeEventHandler VIEWGROUPRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddVIEWGROUPRow(VIEWGROUPRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow AddVIEWGROUPRow(string GNAME, string TITLE, string VAL) { + VIEWGROUPRow rowVIEWGROUPRow = ((VIEWGROUPRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + GNAME, + TITLE, + VAL}; + rowVIEWGROUPRow.ItemArray = columnValuesArray; + this.Rows.Add(rowVIEWGROUPRow); + return rowVIEWGROUPRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow FindByIDX(int IDX) { + return ((VIEWGROUPRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + VIEWGROUPDataTable cln = ((VIEWGROUPDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new VIEWGROUPDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnGNAME = base.Columns["GNAME"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnVAL = base.Columns["VAL"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnGNAME = new global::System.Data.DataColumn("GNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGNAME); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnVAL = new global::System.Data.DataColumn("VAL", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVAL); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnGNAME.Caption = "SANGHO"; + this.columnGNAME.DefaultValue = ((string)("")); + this.columnTITLE.Caption = "TEL"; + this.columnTITLE.DefaultValue = ((string)("")); + this.columnVAL.DefaultValue = ((string)("")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow NewVIEWGROUPRow() { + return ((VIEWGROUPRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new VIEWGROUPRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(VIEWGROUPRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.VIEWGROUPRowChanged != null)) { + this.VIEWGROUPRowChanged(this, new VIEWGROUPRowChangeEvent(((VIEWGROUPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.VIEWGROUPRowChanging != null)) { + this.VIEWGROUPRowChanging(this, new VIEWGROUPRowChangeEvent(((VIEWGROUPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.VIEWGROUPRowDeleted != null)) { + this.VIEWGROUPRowDeleted(this, new VIEWGROUPRowChangeEvent(((VIEWGROUPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.VIEWGROUPRowDeleting != null)) { + this.VIEWGROUPRowDeleting(this, new VIEWGROUPRowChangeEvent(((VIEWGROUPRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveVIEWGROUPRow(VIEWGROUPRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "VIEWGROUPDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class WINDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnUSE; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnMATRIX; + + private global::System.Data.DataColumn columnALAMH; + + private global::System.Data.DataColumn columnALAML; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINDataTable() { + this.TableName = "WIN"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal WINDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected WINDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn USEColumn { + get { + return this.columnUSE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MATRIXColumn { + get { + return this.columnMATRIX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMHColumn { + get { + return this.columnALAMH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ALAMLColumn { + get { + return this.columnALAML; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow this[int index] { + get { + return ((WINRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event WINRowChangeEventHandler WINRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event WINRowChangeEventHandler WINRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event WINRowChangeEventHandler WINRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event WINRowChangeEventHandler WINRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddWINRow(WINRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow AddWINRow(int USE, string TITLE, string MATRIX, float ALAMH, float ALAML) { + WINRow rowWINRow = ((WINRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + USE, + TITLE, + MATRIX, + ALAMH, + ALAML}; + rowWINRow.ItemArray = columnValuesArray; + this.Rows.Add(rowWINRow); + return rowWINRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow FindByIDX(int IDX) { + return ((WINRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + WINDataTable cln = ((WINDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new WINDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnUSE = base.Columns["USE"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnMATRIX = base.Columns["MATRIX"]; + this.columnALAMH = base.Columns["ALAMH"]; + this.columnALAML = base.Columns["ALAML"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnUSE = new global::System.Data.DataColumn("USE", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUSE); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnMATRIX = new global::System.Data.DataColumn("MATRIX", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMATRIX); + this.columnALAMH = new global::System.Data.DataColumn("ALAMH", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAMH); + this.columnALAML = new global::System.Data.DataColumn("ALAML", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnALAML); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnUSE.DefaultValue = ((int)(0)); + this.columnTITLE.DefaultValue = ((string)("")); + this.columnMATRIX.Caption = "MACHINE"; + this.columnMATRIX.DefaultValue = ((string)("")); + this.columnALAMH.DefaultValue = ((float)(0F)); + this.columnALAML.DefaultValue = ((float)(0F)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow NewWINRow() { + return ((WINRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new WINRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(WINRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.WINRowChanged != null)) { + this.WINRowChanged(this, new WINRowChangeEvent(((WINRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.WINRowChanging != null)) { + this.WINRowChanging(this, new WINRowChangeEvent(((WINRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.WINRowDeleted != null)) { + this.WINRowDeleted(this, new WINRowChangeEvent(((WINRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.WINRowDeleting != null)) { + this.WINRowDeleting(this, new WINRowChangeEvent(((WINRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveWINRow(WINRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "WINDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ALARMDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnATIME; + + private global::System.Data.DataColumn columnCH; + + private global::System.Data.DataColumn columnRTYPE; + + private global::System.Data.DataColumn columnVOLT; + + private global::System.Data.DataColumn columnATYPE; + + private global::System.Data.DataColumn columnMAXVOLT; + + private global::System.Data.DataColumn columnMINVOLT; + + private global::System.Data.DataColumn columnAM; + + private global::System.Data.DataColumn columnAM2; + + private global::System.Data.DataColumn columnTIME; + + private global::System.Data.DataColumn columnRTYPESTR; + + private global::System.Data.DataColumn columnATYPESTR; + + private global::System.Data.DataColumn columnCHNAME; + + private global::System.Data.DataColumn columnREMARK; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMDataTable() { + this.TableName = "ALARM"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ALARMDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected ALARMDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ATIMEColumn { + get { + return this.columnATIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CHColumn { + get { + return this.columnCH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RTYPEColumn { + get { + return this.columnRTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VOLTColumn { + get { + return this.columnVOLT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ATYPEColumn { + get { + return this.columnATYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MAXVOLTColumn { + get { + return this.columnMAXVOLT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MINVOLTColumn { + get { + return this.columnMINVOLT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AMColumn { + get { + return this.columnAM; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AM2Column { + get { + return this.columnAM2; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TIMEColumn { + get { + return this.columnTIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RTYPESTRColumn { + get { + return this.columnRTYPESTR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ATYPESTRColumn { + get { + return this.columnATYPESTR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CHNAMEColumn { + get { + return this.columnCHNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn REMARKColumn { + get { + return this.columnREMARK; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow this[int index] { + get { + return ((ALARMRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ALARMRowChangeEventHandler ALARMRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ALARMRowChangeEventHandler ALARMRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ALARMRowChangeEventHandler ALARMRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ALARMRowChangeEventHandler ALARMRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddALARMRow(ALARMRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow AddALARMRow(string ATIME, short CH, short RTYPE, float VOLT, short ATYPE, float MAXVOLT, float MINVOLT, string AM, string AM2, string TIME, string RTYPESTR, string ATYPESTR, string CHNAME, string REMARK) { + ALARMRow rowALARMRow = ((ALARMRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + ATIME, + CH, + RTYPE, + VOLT, + ATYPE, + MAXVOLT, + MINVOLT, + AM, + AM2, + TIME, + RTYPESTR, + ATYPESTR, + CHNAME, + REMARK}; + rowALARMRow.ItemArray = columnValuesArray; + this.Rows.Add(rowALARMRow); + return rowALARMRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow FindByATIMECHRTYPE(string ATIME, short CH, short RTYPE) { + return ((ALARMRow)(this.Rows.Find(new object[] { + ATIME, + CH, + RTYPE}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + ALARMDataTable cln = ((ALARMDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new ALARMDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnATIME = base.Columns["ATIME"]; + this.columnCH = base.Columns["CH"]; + this.columnRTYPE = base.Columns["RTYPE"]; + this.columnVOLT = base.Columns["VOLT"]; + this.columnATYPE = base.Columns["ATYPE"]; + this.columnMAXVOLT = base.Columns["MAXVOLT"]; + this.columnMINVOLT = base.Columns["MINVOLT"]; + this.columnAM = base.Columns["AM"]; + this.columnAM2 = base.Columns["AM2"]; + this.columnTIME = base.Columns["TIME"]; + this.columnRTYPESTR = base.Columns["RTYPESTR"]; + this.columnATYPESTR = base.Columns["ATYPESTR"]; + this.columnCHNAME = base.Columns["CHNAME"]; + this.columnREMARK = base.Columns["REMARK"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnATIME = new global::System.Data.DataColumn("ATIME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnATIME); + this.columnCH = new global::System.Data.DataColumn("CH", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCH); + this.columnRTYPE = new global::System.Data.DataColumn("RTYPE", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRTYPE); + this.columnVOLT = new global::System.Data.DataColumn("VOLT", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVOLT); + this.columnATYPE = new global::System.Data.DataColumn("ATYPE", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnATYPE); + this.columnMAXVOLT = new global::System.Data.DataColumn("MAXVOLT", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMAXVOLT); + this.columnMINVOLT = new global::System.Data.DataColumn("MINVOLT", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMINVOLT); + this.columnAM = new global::System.Data.DataColumn("AM", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAM); + this.columnAM2 = new global::System.Data.DataColumn("AM2", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAM2); + this.columnTIME = new global::System.Data.DataColumn("TIME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTIME); + this.columnRTYPESTR = new global::System.Data.DataColumn("RTYPESTR", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRTYPESTR); + this.columnATYPESTR = new global::System.Data.DataColumn("ATYPESTR", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnATYPESTR); + this.columnCHNAME = new global::System.Data.DataColumn("CHNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCHNAME); + this.columnREMARK = new global::System.Data.DataColumn("REMARK", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnREMARK); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnATIME, + this.columnCH, + this.columnRTYPE}, true)); + this.columnATIME.AllowDBNull = false; + this.columnATIME.DefaultValue = ((string)("")); + this.columnCH.AllowDBNull = false; + this.columnCH.DefaultValue = ((short)(0)); + this.columnRTYPE.AllowDBNull = false; + this.columnRTYPE.DefaultValue = ((short)(0)); + this.columnVOLT.DefaultValue = ((float)(0F)); + this.columnATYPE.DefaultValue = ((short)(0)); + this.columnMAXVOLT.DefaultValue = ((float)(0F)); + this.columnMINVOLT.DefaultValue = ((float)(0F)); + this.columnAM.DefaultValue = ((string)("")); + this.columnAM2.DefaultValue = ((string)("")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow NewALARMRow() { + return ((ALARMRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new ALARMRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(ALARMRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ALARMRowChanged != null)) { + this.ALARMRowChanged(this, new ALARMRowChangeEvent(((ALARMRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ALARMRowChanging != null)) { + this.ALARMRowChanging(this, new ALARMRowChangeEvent(((ALARMRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ALARMRowDeleted != null)) { + this.ALARMRowDeleted(this, new ALARMRowChangeEvent(((ALARMRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ALARMRowDeleting != null)) { + this.ALARMRowDeleting(this, new ALARMRowChangeEvent(((ALARMRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveALARMRow(ALARMRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ALARMDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class VIEWGROUPRDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnGNAME; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnVAL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRDataTable() { + this.TableName = "VIEWGROUPR"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal VIEWGROUPRDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected VIEWGROUPRDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GNAMEColumn { + get { + return this.columnGNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VALColumn { + get { + return this.columnVAL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow this[int index] { + get { + return ((VIEWGROUPRRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRRowChangeEventHandler VIEWGROUPRRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRRowChangeEventHandler VIEWGROUPRRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRRowChangeEventHandler VIEWGROUPRRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event VIEWGROUPRRowChangeEventHandler VIEWGROUPRRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddVIEWGROUPRRow(VIEWGROUPRRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow AddVIEWGROUPRRow(string GNAME, string TITLE, string VAL) { + VIEWGROUPRRow rowVIEWGROUPRRow = ((VIEWGROUPRRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + GNAME, + TITLE, + VAL}; + rowVIEWGROUPRRow.ItemArray = columnValuesArray; + this.Rows.Add(rowVIEWGROUPRRow); + return rowVIEWGROUPRRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow FindByIDX(int IDX) { + return ((VIEWGROUPRRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + VIEWGROUPRDataTable cln = ((VIEWGROUPRDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new VIEWGROUPRDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnGNAME = base.Columns["GNAME"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnVAL = base.Columns["VAL"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnGNAME = new global::System.Data.DataColumn("GNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGNAME); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnVAL = new global::System.Data.DataColumn("VAL", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVAL); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AutoIncrement = true; + this.columnIDX.AutoIncrementSeed = 1; + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + this.columnGNAME.Caption = "SANGHO"; + this.columnGNAME.DefaultValue = ((string)("")); + this.columnTITLE.Caption = "TEL"; + this.columnTITLE.DefaultValue = ((string)("")); + this.columnVAL.DefaultValue = ((string)("")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow NewVIEWGROUPRRow() { + return ((VIEWGROUPRRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new VIEWGROUPRRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(VIEWGROUPRRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.VIEWGROUPRRowChanged != null)) { + this.VIEWGROUPRRowChanged(this, new VIEWGROUPRRowChangeEvent(((VIEWGROUPRRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.VIEWGROUPRRowChanging != null)) { + this.VIEWGROUPRRowChanging(this, new VIEWGROUPRRowChangeEvent(((VIEWGROUPRRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.VIEWGROUPRRowDeleted != null)) { + this.VIEWGROUPRRowDeleted(this, new VIEWGROUPRRowChangeEvent(((VIEWGROUPRRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.VIEWGROUPRRowDeleting != null)) { + this.VIEWGROUPRRowDeleting(this, new VIEWGROUPRRowChangeEvent(((VIEWGROUPRRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveVIEWGROUPRRow(VIEWGROUPRRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "VIEWGROUPRDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class TRENDVIEWCHLISTDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIDX; + + private global::System.Data.DataColumn columnSHOW; + + private global::System.Data.DataColumn columnTITLE; + + private global::System.Data.DataColumn columnCOLOR; + + private global::System.Data.DataColumn columnch; + + private global::System.Data.DataColumn columndev; + + private global::System.Data.DataColumn columnunit; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTDataTable() { + this.TableName = "TRENDVIEWCHLIST"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal TRENDVIEWCHLISTDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected TRENDVIEWCHLISTDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDXColumn { + get { + return this.columnIDX; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SHOWColumn { + get { + return this.columnSHOW; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn COLORColumn { + get { + return this.columnCOLOR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn chColumn { + get { + return this.columnch; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn devColumn { + get { + return this.columndev; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn unitColumn { + get { + return this.columnunit; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow this[int index] { + get { + return ((TRENDVIEWCHLISTRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event TRENDVIEWCHLISTRowChangeEventHandler TRENDVIEWCHLISTRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event TRENDVIEWCHLISTRowChangeEventHandler TRENDVIEWCHLISTRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event TRENDVIEWCHLISTRowChangeEventHandler TRENDVIEWCHLISTRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event TRENDVIEWCHLISTRowChangeEventHandler TRENDVIEWCHLISTRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddTRENDVIEWCHLISTRow(TRENDVIEWCHLISTRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow AddTRENDVIEWCHLISTRow(int IDX, bool SHOW, string TITLE, int COLOR, int ch, int dev, int unit) { + TRENDVIEWCHLISTRow rowTRENDVIEWCHLISTRow = ((TRENDVIEWCHLISTRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + IDX, + SHOW, + TITLE, + COLOR, + ch, + dev, + unit}; + rowTRENDVIEWCHLISTRow.ItemArray = columnValuesArray; + this.Rows.Add(rowTRENDVIEWCHLISTRow); + return rowTRENDVIEWCHLISTRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow FindByIDX(int IDX) { + return ((TRENDVIEWCHLISTRow)(this.Rows.Find(new object[] { + IDX}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + TRENDVIEWCHLISTDataTable cln = ((TRENDVIEWCHLISTDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new TRENDVIEWCHLISTDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIDX = base.Columns["IDX"]; + this.columnSHOW = base.Columns["SHOW"]; + this.columnTITLE = base.Columns["TITLE"]; + this.columnCOLOR = base.Columns["COLOR"]; + this.columnch = base.Columns["ch"]; + this.columndev = base.Columns["dev"]; + this.columnunit = base.Columns["unit"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIDX = new global::System.Data.DataColumn("IDX", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIDX); + this.columnSHOW = new global::System.Data.DataColumn("SHOW", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSHOW); + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.columnCOLOR = new global::System.Data.DataColumn("COLOR", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCOLOR); + this.columnch = new global::System.Data.DataColumn("ch", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnch); + this.columndev = new global::System.Data.DataColumn("dev", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columndev); + this.columnunit = new global::System.Data.DataColumn("unit", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnunit); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIDX}, true)); + this.columnIDX.AllowDBNull = false; + this.columnIDX.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow NewTRENDVIEWCHLISTRow() { + return ((TRENDVIEWCHLISTRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new TRENDVIEWCHLISTRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(TRENDVIEWCHLISTRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.TRENDVIEWCHLISTRowChanged != null)) { + this.TRENDVIEWCHLISTRowChanged(this, new TRENDVIEWCHLISTRowChangeEvent(((TRENDVIEWCHLISTRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.TRENDVIEWCHLISTRowChanging != null)) { + this.TRENDVIEWCHLISTRowChanging(this, new TRENDVIEWCHLISTRowChangeEvent(((TRENDVIEWCHLISTRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.TRENDVIEWCHLISTRowDeleted != null)) { + this.TRENDVIEWCHLISTRowDeleted(this, new TRENDVIEWCHLISTRowChangeEvent(((TRENDVIEWCHLISTRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.TRENDVIEWCHLISTRowDeleting != null)) { + this.TRENDVIEWCHLISTRowDeleting(this, new TRENDVIEWCHLISTRowChangeEvent(((TRENDVIEWCHLISTRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveTRENDVIEWCHLISTRow(TRENDVIEWCHLISTRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DocumentElement ds = new DocumentElement(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "TRENDVIEWCHLISTDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class CHANNELRow : global::System.Data.DataRow { + + private CHANNELDataTable tableCHANNEL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal CHANNELRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableCHANNEL = ((CHANNELDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableCHANNEL.IDXColumn])); + } + set { + this[this.tableCHANNEL.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int ENABLE { + get { + if (this.IsENABLENull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.ENABLEColumn])); + } + } + set { + this[this.tableCHANNEL.ENABLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int USE { + get { + if (this.IsUSENull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.USEColumn])); + } + } + set { + this[this.tableCHANNEL.USEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableCHANNEL.TITLEColumn])); + } + } + set { + this[this.tableCHANNEL.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int GIDX { + get { + if (this.IsGIDXNull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.GIDXColumn])); + } + } + set { + this[this.tableCHANNEL.GIDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MACHINE { + get { + if (this.IsMACHINENull()) { + return ""; + } + else { + return ((string)(this[this.tableCHANNEL.MACHINEColumn])); + } + } + set { + this[this.tableCHANNEL.MACHINEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int ALAMTYPE { + get { + if (this.IsALAMTYPENull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.ALAMTYPEColumn])); + } + } + set { + this[this.tableCHANNEL.ALAMTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAMH { + get { + if (this.IsALAMHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.ALAMHColumn])); + } + } + set { + this[this.tableCHANNEL.ALAMHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAML { + get { + if (this.IsALAMLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.ALAMLColumn])); + } + } + set { + this[this.tableCHANNEL.ALAMLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int COLOR { + get { + if (this.IsCOLORNull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.COLORColumn])); + } + } + set { + this[this.tableCHANNEL.COLORColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float AUTOH { + get { + if (this.IsAUTOHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.AUTOHColumn])); + } + } + set { + this[this.tableCHANNEL.AUTOHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float AUTOL { + get { + if (this.IsAUTOLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.AUTOLColumn])); + } + } + set { + this[this.tableCHANNEL.AUTOLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string UNIT { + get { + if (this.IsUNITNull()) { + return ""; + } + else { + return ((string)(this[this.tableCHANNEL.UNITColumn])); + } + } + set { + this[this.tableCHANNEL.UNITColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int DECPOS { + get { + if (this.IsDECPOSNull()) { + return 0; + } + else { + return ((int)(this[this.tableCHANNEL.DECPOSColumn])); + } + } + set { + this[this.tableCHANNEL.DECPOSColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string GRPNAME { + get { + if (this.IsGRPNAMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableCHANNEL.GRPNAMEColumn])); + } + } + set { + this[this.tableCHANNEL.GRPNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX_M { + get { + if (this.IsIDX_MNull()) { + return -1; + } + else { + return ((int)(this[this.tableCHANNEL.IDX_MColumn])); + } + } + set { + this[this.tableCHANNEL.IDX_MColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX_U { + get { + if (this.IsIDX_UNull()) { + return -1; + } + else { + return ((int)(this[this.tableCHANNEL.IDX_UColumn])); + } + } + set { + this[this.tableCHANNEL.IDX_UColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX_C { + get { + if (this.IsIDX_CNull()) { + return -1; + } + else { + return ((int)(this[this.tableCHANNEL.IDX_CColumn])); + } + } + set { + this[this.tableCHANNEL.IDX_CColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float VOFFSET { + get { + if (this.IsVOFFSETNull()) { + return 0F; + } + else { + return ((float)(this[this.tableCHANNEL.VOFFSETColumn])); + } + } + set { + this[this.tableCHANNEL.VOFFSETColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsENABLENull() { + return this.IsNull(this.tableCHANNEL.ENABLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetENABLENull() { + this[this.tableCHANNEL.ENABLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUSENull() { + return this.IsNull(this.tableCHANNEL.USEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUSENull() { + this[this.tableCHANNEL.USEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableCHANNEL.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableCHANNEL.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGIDXNull() { + return this.IsNull(this.tableCHANNEL.GIDXColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGIDXNull() { + this[this.tableCHANNEL.GIDXColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMACHINENull() { + return this.IsNull(this.tableCHANNEL.MACHINEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMACHINENull() { + this[this.tableCHANNEL.MACHINEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMTYPENull() { + return this.IsNull(this.tableCHANNEL.ALAMTYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMTYPENull() { + this[this.tableCHANNEL.ALAMTYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMHNull() { + return this.IsNull(this.tableCHANNEL.ALAMHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMHNull() { + this[this.tableCHANNEL.ALAMHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMLNull() { + return this.IsNull(this.tableCHANNEL.ALAMLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMLNull() { + this[this.tableCHANNEL.ALAMLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCOLORNull() { + return this.IsNull(this.tableCHANNEL.COLORColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCOLORNull() { + this[this.tableCHANNEL.COLORColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAUTOHNull() { + return this.IsNull(this.tableCHANNEL.AUTOHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAUTOHNull() { + this[this.tableCHANNEL.AUTOHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAUTOLNull() { + return this.IsNull(this.tableCHANNEL.AUTOLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAUTOLNull() { + this[this.tableCHANNEL.AUTOLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUNITNull() { + return this.IsNull(this.tableCHANNEL.UNITColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUNITNull() { + this[this.tableCHANNEL.UNITColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDECPOSNull() { + return this.IsNull(this.tableCHANNEL.DECPOSColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDECPOSNull() { + this[this.tableCHANNEL.DECPOSColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGRPNAMENull() { + return this.IsNull(this.tableCHANNEL.GRPNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGRPNAMENull() { + this[this.tableCHANNEL.GRPNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIDX_MNull() { + return this.IsNull(this.tableCHANNEL.IDX_MColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIDX_MNull() { + this[this.tableCHANNEL.IDX_MColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIDX_UNull() { + return this.IsNull(this.tableCHANNEL.IDX_UColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIDX_UNull() { + this[this.tableCHANNEL.IDX_UColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIDX_CNull() { + return this.IsNull(this.tableCHANNEL.IDX_CColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIDX_CNull() { + this[this.tableCHANNEL.IDX_CColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVOFFSETNull() { + return this.IsNull(this.tableCHANNEL.VOFFSETColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVOFFSETNull() { + this[this.tableCHANNEL.VOFFSETColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class DEVICERow : global::System.Data.DataRow { + + private DEVICEDataTable tableDEVICE; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal DEVICERow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableDEVICE = ((DEVICEDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableDEVICE.IDXColumn])); + } + set { + this[this.tableDEVICE.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int USE { + get { + if (this.IsUSENull()) { + return 0; + } + else { + return ((int)(this[this.tableDEVICE.USEColumn])); + } + } + set { + this[this.tableDEVICE.USEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.TITLEColumn])); + } + } + set { + this[this.tableDEVICE.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string IP { + get { + if (this.IsIPNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.IPColumn])); + } + } + set { + this[this.tableDEVICE.IPColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CHCOUNT { + get { + if (this.IsCHCOUNTNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.CHCOUNTColumn])); + } + } + set { + this[this.tableDEVICE.CHCOUNTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string KACOMMAND { + get { + if (this.IsKACOMMANDNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.KACOMMANDColumn])); + } + } + set { + this[this.tableDEVICE.KACOMMANDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CHCOMMAND { + get { + if (this.IsCHCOMMANDNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.CHCOMMANDColumn])); + } + } + set { + this[this.tableDEVICE.CHCOMMANDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SNCOMMAND { + get { + if (this.IsSNCOMMANDNull()) { + return ""; + } + else { + return ((string)(this[this.tableDEVICE.SNCOMMANDColumn])); + } + } + set { + this[this.tableDEVICE.SNCOMMANDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int PORT { + get { + if (this.IsPORTNull()) { + return 34150; + } + else { + return ((int)(this[this.tableDEVICE.PORTColumn])); + } + } + set { + this[this.tableDEVICE.PORTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUSENull() { + return this.IsNull(this.tableDEVICE.USEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUSENull() { + this[this.tableDEVICE.USEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableDEVICE.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableDEVICE.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIPNull() { + return this.IsNull(this.tableDEVICE.IPColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIPNull() { + this[this.tableDEVICE.IPColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCHCOUNTNull() { + return this.IsNull(this.tableDEVICE.CHCOUNTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCHCOUNTNull() { + this[this.tableDEVICE.CHCOUNTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsKACOMMANDNull() { + return this.IsNull(this.tableDEVICE.KACOMMANDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetKACOMMANDNull() { + this[this.tableDEVICE.KACOMMANDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCHCOMMANDNull() { + return this.IsNull(this.tableDEVICE.CHCOMMANDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCHCOMMANDNull() { + this[this.tableDEVICE.CHCOMMANDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSNCOMMANDNull() { + return this.IsNull(this.tableDEVICE.SNCOMMANDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSNCOMMANDNull() { + this[this.tableDEVICE.SNCOMMANDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPORTNull() { + return this.IsNull(this.tableDEVICE.PORTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPORTNull() { + this[this.tableDEVICE.PORTColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class GRPRow : global::System.Data.DataRow { + + private GRPDataTable tableGRP; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal GRPRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableGRP = ((GRPDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableGRP.IDXColumn])); + } + set { + this[this.tableGRP.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int USE { + get { + if (this.IsUSENull()) { + return 0; + } + else { + return ((int)(this[this.tableGRP.USEColumn])); + } + } + set { + this[this.tableGRP.USEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int WINDOW { + get { + if (this.IsWINDOWNull()) { + return 0; + } + else { + return ((int)(this[this.tableGRP.WINDOWColumn])); + } + } + set { + this[this.tableGRP.WINDOWColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.TITLEColumn])); + } + } + set { + this[this.tableGRP.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MATRIX { + get { + if (this.IsMATRIXNull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.MATRIXColumn])); + } + } + set { + this[this.tableGRP.MATRIXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string POS { + get { + if (this.IsPOSNull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.POSColumn])); + } + } + set { + this[this.tableGRP.POSColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SPAN { + get { + if (this.IsSPANNull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.SPANColumn])); + } + } + set { + this[this.tableGRP.SPANColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string FONT { + get { + if (this.IsFONTNull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.FONTColumn])); + } + } + set { + this[this.tableGRP.FONTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAMH { + get { + if (this.IsALAMHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.ALAMHColumn])); + } + } + set { + this[this.tableGRP.ALAMHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAML { + get { + if (this.IsALAMLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.ALAMLColumn])); + } + } + set { + this[this.tableGRP.ALAMLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string KADEVICE { + get { + if (this.IsKADEVICENull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.KADEVICEColumn])); + } + } + set { + this[this.tableGRP.KADEVICEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ALAMTYPE { + get { + if (this.IsALAMTYPENull()) { + return ""; + } + else { + return ((string)(this[this.tableGRP.ALAMTYPEColumn])); + } + } + set { + this[this.tableGRP.ALAMTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float AUTOH { + get { + if (this.IsAUTOHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.AUTOHColumn])); + } + } + set { + this[this.tableGRP.AUTOHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float AUTOL { + get { + if (this.IsAUTOLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.AUTOLColumn])); + } + } + set { + this[this.tableGRP.AUTOLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBOFF { + get { + if (this.IsNBOFFNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBOFFColumn])); + } + } + set { + this[this.tableGRP.NBOFFColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int NBSEQ { + get { + if (this.IsNBSEQNull()) { + return 0; + } + else { + return ((int)(this[this.tableGRP.NBSEQColumn])); + } + } + set { + this[this.tableGRP.NBSEQColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBHH { + get { + if (this.IsNBHHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBHHColumn])); + } + } + set { + this[this.tableGRP.NBHHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBH { + get { + if (this.IsNBHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBHColumn])); + } + } + set { + this[this.tableGRP.NBHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBLL { + get { + if (this.IsNBLLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBLLColumn])); + } + } + set { + this[this.tableGRP.NBLLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float NBL { + get { + if (this.IsNBLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableGRP.NBLColumn])); + } + } + set { + this[this.tableGRP.NBLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUSENull() { + return this.IsNull(this.tableGRP.USEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUSENull() { + this[this.tableGRP.USEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsWINDOWNull() { + return this.IsNull(this.tableGRP.WINDOWColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetWINDOWNull() { + this[this.tableGRP.WINDOWColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableGRP.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableGRP.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMATRIXNull() { + return this.IsNull(this.tableGRP.MATRIXColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMATRIXNull() { + this[this.tableGRP.MATRIXColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPOSNull() { + return this.IsNull(this.tableGRP.POSColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPOSNull() { + this[this.tableGRP.POSColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSPANNull() { + return this.IsNull(this.tableGRP.SPANColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSPANNull() { + this[this.tableGRP.SPANColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsFONTNull() { + return this.IsNull(this.tableGRP.FONTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetFONTNull() { + this[this.tableGRP.FONTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMHNull() { + return this.IsNull(this.tableGRP.ALAMHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMHNull() { + this[this.tableGRP.ALAMHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMLNull() { + return this.IsNull(this.tableGRP.ALAMLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMLNull() { + this[this.tableGRP.ALAMLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsKADEVICENull() { + return this.IsNull(this.tableGRP.KADEVICEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetKADEVICENull() { + this[this.tableGRP.KADEVICEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMTYPENull() { + return this.IsNull(this.tableGRP.ALAMTYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMTYPENull() { + this[this.tableGRP.ALAMTYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAUTOHNull() { + return this.IsNull(this.tableGRP.AUTOHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAUTOHNull() { + this[this.tableGRP.AUTOHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAUTOLNull() { + return this.IsNull(this.tableGRP.AUTOLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAUTOLNull() { + this[this.tableGRP.AUTOLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBOFFNull() { + return this.IsNull(this.tableGRP.NBOFFColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBOFFNull() { + this[this.tableGRP.NBOFFColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBSEQNull() { + return this.IsNull(this.tableGRP.NBSEQColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBSEQNull() { + this[this.tableGRP.NBSEQColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBHHNull() { + return this.IsNull(this.tableGRP.NBHHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBHHNull() { + this[this.tableGRP.NBHHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBHNull() { + return this.IsNull(this.tableGRP.NBHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBHNull() { + this[this.tableGRP.NBHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBLLNull() { + return this.IsNull(this.tableGRP.NBLLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBLLNull() { + this[this.tableGRP.NBLLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNBLNull() { + return this.IsNull(this.tableGRP.NBLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNBLNull() { + this[this.tableGRP.NBLColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class NORMALRow : global::System.Data.DataRow { + + private NORMALDataTable tableNORMAL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal NORMALRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableNORMAL = ((NORMALDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableNORMAL.IDXColumn])); + } + set { + this[this.tableNORMAL.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAMH { + get { + if (this.IsALAMHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableNORMAL.ALAMHColumn])); + } + } + set { + this[this.tableNORMAL.ALAMHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAML { + get { + if (this.IsALAMLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableNORMAL.ALAMLColumn])); + } + } + set { + this[this.tableNORMAL.ALAMLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMHNull() { + return this.IsNull(this.tableNORMAL.ALAMHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMHNull() { + this[this.tableNORMAL.ALAMHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMLNull() { + return this.IsNull(this.tableNORMAL.ALAMLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMLNull() { + this[this.tableNORMAL.ALAMLColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class VIEWGROUPRow : global::System.Data.DataRow { + + private VIEWGROUPDataTable tableVIEWGROUP; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal VIEWGROUPRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableVIEWGROUP = ((VIEWGROUPDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableVIEWGROUP.IDXColumn])); + } + set { + this[this.tableVIEWGROUP.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string GNAME { + get { + if (this.IsGNAMENull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUP.GNAMEColumn])); + } + } + set { + this[this.tableVIEWGROUP.GNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUP.TITLEColumn])); + } + } + set { + this[this.tableVIEWGROUP.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VAL { + get { + if (this.IsVALNull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUP.VALColumn])); + } + } + set { + this[this.tableVIEWGROUP.VALColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGNAMENull() { + return this.IsNull(this.tableVIEWGROUP.GNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGNAMENull() { + this[this.tableVIEWGROUP.GNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableVIEWGROUP.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableVIEWGROUP.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVALNull() { + return this.IsNull(this.tableVIEWGROUP.VALColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVALNull() { + this[this.tableVIEWGROUP.VALColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class WINRow : global::System.Data.DataRow { + + private WINDataTable tableWIN; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal WINRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableWIN = ((WINDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableWIN.IDXColumn])); + } + set { + this[this.tableWIN.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int USE { + get { + if (this.IsUSENull()) { + return 0; + } + else { + return ((int)(this[this.tableWIN.USEColumn])); + } + } + set { + this[this.tableWIN.USEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableWIN.TITLEColumn])); + } + } + set { + this[this.tableWIN.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MATRIX { + get { + if (this.IsMATRIXNull()) { + return ""; + } + else { + return ((string)(this[this.tableWIN.MATRIXColumn])); + } + } + set { + this[this.tableWIN.MATRIXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAMH { + get { + if (this.IsALAMHNull()) { + return 0F; + } + else { + return ((float)(this[this.tableWIN.ALAMHColumn])); + } + } + set { + this[this.tableWIN.ALAMHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float ALAML { + get { + if (this.IsALAMLNull()) { + return 0F; + } + else { + return ((float)(this[this.tableWIN.ALAMLColumn])); + } + } + set { + this[this.tableWIN.ALAMLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsUSENull() { + return this.IsNull(this.tableWIN.USEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetUSENull() { + this[this.tableWIN.USEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableWIN.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableWIN.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMATRIXNull() { + return this.IsNull(this.tableWIN.MATRIXColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMATRIXNull() { + this[this.tableWIN.MATRIXColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMHNull() { + return this.IsNull(this.tableWIN.ALAMHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMHNull() { + this[this.tableWIN.ALAMHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsALAMLNull() { + return this.IsNull(this.tableWIN.ALAMLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetALAMLNull() { + this[this.tableWIN.ALAMLColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class ALARMRow : global::System.Data.DataRow { + + private ALARMDataTable tableALARM; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ALARMRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableALARM = ((ALARMDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ATIME { + get { + return ((string)(this[this.tableALARM.ATIMEColumn])); + } + set { + this[this.tableALARM.ATIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short CH { + get { + return ((short)(this[this.tableALARM.CHColumn])); + } + set { + this[this.tableALARM.CHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short RTYPE { + get { + return ((short)(this[this.tableALARM.RTYPEColumn])); + } + set { + this[this.tableALARM.RTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float VOLT { + get { + if (this.IsVOLTNull()) { + return 0F; + } + else { + return ((float)(this[this.tableALARM.VOLTColumn])); + } + } + set { + this[this.tableALARM.VOLTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short ATYPE { + get { + if (this.IsATYPENull()) { + return 0; + } + else { + return ((short)(this[this.tableALARM.ATYPEColumn])); + } + } + set { + this[this.tableALARM.ATYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float MAXVOLT { + get { + if (this.IsMAXVOLTNull()) { + return 0F; + } + else { + return ((float)(this[this.tableALARM.MAXVOLTColumn])); + } + } + set { + this[this.tableALARM.MAXVOLTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public float MINVOLT { + get { + if (this.IsMINVOLTNull()) { + return 0F; + } + else { + return ((float)(this[this.tableALARM.MINVOLTColumn])); + } + } + set { + this[this.tableALARM.MINVOLTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string AM { + get { + if (this.IsAMNull()) { + return ""; + } + else { + return ((string)(this[this.tableALARM.AMColumn])); + } + } + set { + this[this.tableALARM.AMColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string AM2 { + get { + if (this.IsAM2Null()) { + return ""; + } + else { + return ((string)(this[this.tableALARM.AM2Column])); + } + } + set { + this[this.tableALARM.AM2Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TIME { + get { + if (this.IsTIMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.TIMEColumn])); + } + } + set { + this[this.tableALARM.TIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string RTYPESTR { + get { + if (this.IsRTYPESTRNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.RTYPESTRColumn])); + } + } + set { + this[this.tableALARM.RTYPESTRColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ATYPESTR { + get { + if (this.IsATYPESTRNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.ATYPESTRColumn])); + } + } + set { + this[this.tableALARM.ATYPESTRColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CHNAME { + get { + if (this.IsCHNAMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.CHNAMEColumn])); + } + } + set { + this[this.tableALARM.CHNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string REMARK { + get { + if (this.IsREMARKNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableALARM.REMARKColumn])); + } + } + set { + this[this.tableALARM.REMARKColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVOLTNull() { + return this.IsNull(this.tableALARM.VOLTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVOLTNull() { + this[this.tableALARM.VOLTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsATYPENull() { + return this.IsNull(this.tableALARM.ATYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetATYPENull() { + this[this.tableALARM.ATYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMAXVOLTNull() { + return this.IsNull(this.tableALARM.MAXVOLTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMAXVOLTNull() { + this[this.tableALARM.MAXVOLTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMINVOLTNull() { + return this.IsNull(this.tableALARM.MINVOLTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMINVOLTNull() { + this[this.tableALARM.MINVOLTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAMNull() { + return this.IsNull(this.tableALARM.AMColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAMNull() { + this[this.tableALARM.AMColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAM2Null() { + return this.IsNull(this.tableALARM.AM2Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAM2Null() { + this[this.tableALARM.AM2Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTIMENull() { + return this.IsNull(this.tableALARM.TIMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTIMENull() { + this[this.tableALARM.TIMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRTYPESTRNull() { + return this.IsNull(this.tableALARM.RTYPESTRColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRTYPESTRNull() { + this[this.tableALARM.RTYPESTRColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsATYPESTRNull() { + return this.IsNull(this.tableALARM.ATYPESTRColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetATYPESTRNull() { + this[this.tableALARM.ATYPESTRColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCHNAMENull() { + return this.IsNull(this.tableALARM.CHNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCHNAMENull() { + this[this.tableALARM.CHNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsREMARKNull() { + return this.IsNull(this.tableALARM.REMARKColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetREMARKNull() { + this[this.tableALARM.REMARKColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class VIEWGROUPRRow : global::System.Data.DataRow { + + private VIEWGROUPRDataTable tableVIEWGROUPR; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal VIEWGROUPRRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableVIEWGROUPR = ((VIEWGROUPRDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableVIEWGROUPR.IDXColumn])); + } + set { + this[this.tableVIEWGROUPR.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string GNAME { + get { + if (this.IsGNAMENull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUPR.GNAMEColumn])); + } + } + set { + this[this.tableVIEWGROUPR.GNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUPR.TITLEColumn])); + } + } + set { + this[this.tableVIEWGROUPR.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VAL { + get { + if (this.IsVALNull()) { + return ""; + } + else { + return ((string)(this[this.tableVIEWGROUPR.VALColumn])); + } + } + set { + this[this.tableVIEWGROUPR.VALColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGNAMENull() { + return this.IsNull(this.tableVIEWGROUPR.GNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGNAMENull() { + this[this.tableVIEWGROUPR.GNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableVIEWGROUPR.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableVIEWGROUPR.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVALNull() { + return this.IsNull(this.tableVIEWGROUPR.VALColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVALNull() { + this[this.tableVIEWGROUPR.VALColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class TRENDVIEWCHLISTRow : global::System.Data.DataRow { + + private TRENDVIEWCHLISTDataTable tableTRENDVIEWCHLIST; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal TRENDVIEWCHLISTRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableTRENDVIEWCHLIST = ((TRENDVIEWCHLISTDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int IDX { + get { + return ((int)(this[this.tableTRENDVIEWCHLIST.IDXColumn])); + } + set { + this[this.tableTRENDVIEWCHLIST.IDXColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool SHOW { + get { + if (this.IsSHOWNull()) { + return false; + } + else { + return ((bool)(this[this.tableTRENDVIEWCHLIST.SHOWColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.SHOWColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + if (this.IsTITLENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableTRENDVIEWCHLIST.TITLEColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.TITLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int COLOR { + get { + if (this.IsCOLORNull()) { + return 0; + } + else { + return ((int)(this[this.tableTRENDVIEWCHLIST.COLORColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.COLORColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int ch { + get { + if (this.IschNull()) { + return -1; + } + else { + return ((int)(this[this.tableTRENDVIEWCHLIST.chColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.chColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int dev { + get { + if (this.IsdevNull()) { + return -1; + } + else { + return ((int)(this[this.tableTRENDVIEWCHLIST.devColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.devColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int unit { + get { + if (this.IsunitNull()) { + return -1; + } + else { + return ((int)(this[this.tableTRENDVIEWCHLIST.unitColumn])); + } + } + set { + this[this.tableTRENDVIEWCHLIST.unitColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSHOWNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.SHOWColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSHOWNull() { + this[this.tableTRENDVIEWCHLIST.SHOWColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTITLENull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.TITLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTITLENull() { + this[this.tableTRENDVIEWCHLIST.TITLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCOLORNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.COLORColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCOLORNull() { + this[this.tableTRENDVIEWCHLIST.COLORColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IschNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.chColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetchNull() { + this[this.tableTRENDVIEWCHLIST.chColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsdevNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.devColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetdevNull() { + this[this.tableTRENDVIEWCHLIST.devColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsunitNull() { + return this.IsNull(this.tableTRENDVIEWCHLIST.unitColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetunitNull() { + this[this.tableTRENDVIEWCHLIST.unitColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class CHANNELRowChangeEvent : global::System.EventArgs { + + private CHANNELRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRowChangeEvent(CHANNELRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public CHANNELRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class DEVICERowChangeEvent : global::System.EventArgs { + + private DEVICERow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERowChangeEvent(DEVICERow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DEVICERow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class GRPRowChangeEvent : global::System.EventArgs { + + private GRPRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRowChangeEvent(GRPRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public GRPRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class NORMALRowChangeEvent : global::System.EventArgs { + + private NORMALRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRowChangeEvent(NORMALRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public NORMALRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class VIEWGROUPRowChangeEvent : global::System.EventArgs { + + private VIEWGROUPRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRowChangeEvent(VIEWGROUPRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class WINRowChangeEvent : global::System.EventArgs { + + private WINRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRowChangeEvent(WINRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public WINRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class ALARMRowChangeEvent : global::System.EventArgs { + + private ALARMRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRowChangeEvent(ALARMRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ALARMRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class VIEWGROUPRRowChangeEvent : global::System.EventArgs { + + private VIEWGROUPRRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRowChangeEvent(VIEWGROUPRRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public VIEWGROUPRRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class TRENDVIEWCHLISTRowChangeEvent : global::System.EventArgs { + + private TRENDVIEWCHLISTRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRowChangeEvent(TRENDVIEWCHLISTRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public TRENDVIEWCHLISTRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Viewer/TrendViewer/DocumentElement.cs b/Viewer/TrendViewer/DocumentElement.cs new file mode 100644 index 0000000..28c8e1f --- /dev/null +++ b/Viewer/TrendViewer/DocumentElement.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + +namespace vmsnet +{ + public partial class DocumentElement + { + } + +} diff --git a/Viewer/TrendViewer/DocumentElement.xsc b/Viewer/TrendViewer/DocumentElement.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Viewer/TrendViewer/DocumentElement.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Viewer/TrendViewer/DocumentElement.xsd b/Viewer/TrendViewer/DocumentElement.xsd new file mode 100644 index 0000000..bbef828 --- /dev/null +++ b/Viewer/TrendViewer/DocumentElement.xsd @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Viewer/TrendViewer/DocumentElement.xss b/Viewer/TrendViewer/DocumentElement.xss new file mode 100644 index 0000000..1a54c51 --- /dev/null +++ b/Viewer/TrendViewer/DocumentElement.xss @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Viewer/TrendViewer/Frm_GraphSetup.Designer.cs b/Viewer/TrendViewer/Frm_GraphSetup.Designer.cs new file mode 100644 index 0000000..1433c00 --- /dev/null +++ b/Viewer/TrendViewer/Frm_GraphSetup.Designer.cs @@ -0,0 +1,219 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + +namespace vmsnet +{ + partial class Frm_GraphSetup : System.Windows.Forms.Form + { + + //Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다. + [System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing) + { + try + { + if (disposing && components != null) + { + components.Dispose(); + } + } + finally + { + base.Dispose(disposing); + } + } + + //Windows Form 디자이너에 필요합니다. + private System.ComponentModel.Container components = null; + + //참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다. + //수정하려면 Windows Form 디자이너를 사용하십시오. + //코드 편집기를 사용하여 수정하지 마십시오. + [System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent() + { + this.GroupBox1 = new System.Windows.Forms.GroupBox(); + this.dte = new System.Windows.Forms.DateTimePicker(); + this.dts = new System.Windows.Forms.DateTimePicker(); + this.label11 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.bt_cancel = new System.Windows.Forms.Button(); + this.bt_ok = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.button3 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.GroupBox1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // GroupBox1 + // + this.GroupBox1.Controls.Add(this.dte); + this.GroupBox1.Controls.Add(this.dts); + this.GroupBox1.Controls.Add(this.label11); + this.GroupBox1.Controls.Add(this.label10); + this.GroupBox1.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.GroupBox1.Location = new System.Drawing.Point(14, 15); + this.GroupBox1.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); + this.GroupBox1.Name = "GroupBox1"; + this.GroupBox1.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6); + this.GroupBox1.Size = new System.Drawing.Size(747, 155); + this.GroupBox1.TabIndex = 0; + this.GroupBox1.TabStop = false; + this.GroupBox1.Text = "조회기간"; + // + // dte + // + this.dte.CustomFormat = "yyyy년 MM월 dd일 HH시 mm분 ss초"; + this.dte.Font = new System.Drawing.Font("맑은 고딕", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.dte.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dte.Location = new System.Drawing.Point(103, 93); + this.dte.Name = "dte"; + this.dte.Size = new System.Drawing.Size(629, 50); + this.dte.TabIndex = 30; + // + // dts + // + this.dts.CustomFormat = "yyyy년 MM월 dd일 HH시 mm분 ss초"; + this.dts.Font = new System.Drawing.Font("맑은 고딕", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.dts.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dts.Location = new System.Drawing.Point(103, 37); + this.dts.Name = "dts"; + this.dts.Size = new System.Drawing.Size(629, 50); + this.dts.TabIndex = 29; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(31, 106); + this.label11.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(50, 25); + this.label11.TabIndex = 25; + this.label11.Text = "종료"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(31, 49); + this.label10.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(50, 25); + this.label10.TabIndex = 12; + this.label10.Text = "시작"; + // + // bt_cancel + // + this.bt_cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.bt_cancel.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt_cancel.Location = new System.Drawing.Point(632, 8); + this.bt_cancel.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); + this.bt_cancel.Name = "bt_cancel"; + this.bt_cancel.Size = new System.Drawing.Size(137, 79); + this.bt_cancel.TabIndex = 2; + this.bt_cancel.Text = "취소"; + this.bt_cancel.UseVisualStyleBackColor = true; + this.bt_cancel.Click += new System.EventHandler(this.Button1_Click); + // + // bt_ok + // + this.bt_ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.bt_ok.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt_ok.Location = new System.Drawing.Point(486, 8); + this.bt_ok.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); + this.bt_ok.Name = "bt_ok"; + this.bt_ok.Size = new System.Drawing.Size(137, 79); + this.bt_ok.TabIndex = 1; + this.bt_ok.Text = "확인"; + this.bt_ok.UseVisualStyleBackColor = true; + this.bt_ok.Click += new System.EventHandler(this.Button2_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.button3); + this.panel1.Controls.Add(this.button2); + this.panel1.Controls.Add(this.button1); + this.panel1.Controls.Add(this.bt_ok); + this.panel1.Controls.Add(this.bt_cancel); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 181); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(777, 92); + this.panel1.TabIndex = 3; + // + // button3 + // + this.button3.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button3.Location = new System.Drawing.Point(296, 7); + this.button3.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(137, 79); + this.button3.TabIndex = 5; + this.button3.Text = "이번달"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button2 + // + this.button2.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button2.Location = new System.Drawing.Point(149, 6); + this.button2.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(137, 79); + this.button2.TabIndex = 4; + this.button2.Text = "-7일"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click_1); + // + // button1 + // + this.button1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(5, 6); + this.button1.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(137, 79); + this.button1.TabIndex = 3; + this.button1.Text = "최근 1달"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // Frm_GraphSetup + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(777, 273); + this.Controls.Add(this.panel1); + this.Controls.Add(this.GroupBox1); + this.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.KeyPreview = true; + this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Frm_GraphSetup"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "데이터 조회 환경"; + this.Load += new System.EventHandler(this.Frm_GraphSetup_Load); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Frm_GraphSetup_KeyDown); + this.GroupBox1.ResumeLayout(false); + this.GroupBox1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + internal System.Windows.Forms.Button bt_cancel; + internal System.Windows.Forms.Button bt_ok; + internal System.Windows.Forms.GroupBox GroupBox1; + private Panel panel1; + internal Button button1; + internal Label label11; + internal Button button2; + internal Button button3; + private DateTimePicker dts; + internal Label label10; + private DateTimePicker dte; + } + +} diff --git a/Viewer/TrendViewer/Frm_GraphSetup.cs b/Viewer/TrendViewer/Frm_GraphSetup.cs new file mode 100644 index 0000000..214f29d --- /dev/null +++ b/Viewer/TrendViewer/Frm_GraphSetup.cs @@ -0,0 +1,83 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; +using AR; +using System.Linq; + +namespace vmsnet +{ + public partial class Frm_GraphSetup + { + + public Frm_GraphSetup() + { + + // 이 호출은 디자이너에 필요합니다. + InitializeComponent(); + } + public void Button1_Click(object sender, EventArgs e) + { + this.Close(); + } + public void Frm_GraphSetup_Load(object sender, EventArgs e) + { + dts.Value = PUB.TREND.graph_time_start; + dte.Value = PUB.TREND.graph_time_end; + } + + public void Button2_Click(object sender, EventArgs e) + { + PUB.TREND.graph_time_start = dts.Value; + PUB.TREND.graph_time_end = dte.Value; + PUB.CONFIG.Save(); + DialogResult = System.Windows.Forms.DialogResult.OK; + } + + + public void Frm_GraphSetup_KeyDown(object sender, KeyEventArgs e) + { + switch (e.KeyCode) + { + case Keys.Escape: + bt_cancel.PerformClick(); + break; + case Keys.Enter: + bt_ok.PerformClick(); + break; + } + } + + + private void button1_Click_1(object sender, EventArgs e) + { + var dates = PUB.DB.GetAvailableDates(); + if (dates.Any() == false) + { + UTIL.MsgE("가능한 날짜가 없습니다"); + return; + } + var lastmon = dates.Last(); + dte.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")); + dts.Value = dte.Value.AddMonths(-1).AddSeconds(1); + } + + + + + private void button2_Click_1(object sender, EventArgs e) + { + dte.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")); + dts.Value = dte.Value.AddDays(-7).AddSeconds(1); + } + + private void button3_Click(object sender, EventArgs e) + { + dts.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01 00:00:00")); + dte.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")); + } + } +} diff --git a/Viewer/TrendViewer/Frm_GraphSetup.resx b/Viewer/TrendViewer/Frm_GraphSetup.resx new file mode 100644 index 0000000..d58980a --- /dev/null +++ b/Viewer/TrendViewer/Frm_GraphSetup.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Viewer/TrendViewer/Frm_trend.Designer.cs b/Viewer/TrendViewer/Frm_trend.Designer.cs new file mode 100644 index 0000000..d60bc4a --- /dev/null +++ b/Viewer/TrendViewer/Frm_trend.Designer.cs @@ -0,0 +1,895 @@ +using System.Collections.Generic; +using System; +using System.Drawing; +using System.Diagnostics; +using System.Data; +using System.Collections; +using System.Windows.Forms; + +namespace vmsnet +{ + partial class Frm_trend : System.Windows.Forms.Form + { + + //Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다. + [System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing) + { + try + { + if (disposing && components != null) + { + components.Dispose(); + } + } + finally + { + base.Dispose(disposing); + } + } + + //참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다. + //수정하려면 Windows Form 디자이너를 사용하십시오. + //코드 편집기를 사용하여 수정하지 마십시오. + [System.Diagnostics.DebuggerStepThrough()] + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Frm_trend)); + this.TabControl1 = new System.Windows.Forms.TabControl(); + this.TabPage1 = new System.Windows.Forms.TabPage(); + this.dv_chlist = new System.Windows.Forms.DataGridView(); + this.useDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.cnameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.c1DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.c2DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ccDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.idxDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tidxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bs_Channel = new System.Windows.Forms.BindingSource(this.components); + this.dS1 = new vmsnet.DS1(); + this.TabPage2 = new System.Windows.Forms.TabPage(); + this.PropertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.ToolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.bt_cursor2 = new System.Windows.Forms.Button(); + this.bt_cursor1 = new System.Windows.Forms.Button(); + this.bt_clear = new System.Windows.Forms.Button(); + this.cm_grpmenu = new System.Windows.Forms.ContextMenuStrip(this.components); + this.ToolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); + this.bs_grp = new System.Windows.Forms.BindingSource(this.components); + this.Panel1 = new System.Windows.Forms.Panel(); + this.dv_grp = new System.Windows.Forms.DataGridView(); + this.cnameDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.valueDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.idxDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.gnameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rnameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.label1 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.panel7 = new System.Windows.Forms.Panel(); + this.bt_delgroup = new System.Windows.Forms.LinkLabel(); + this.LinkLabel5 = new System.Windows.Forms.LinkLabel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.bt_run = new System.Windows.Forms.Button(); + this.Button2 = new System.Windows.Forms.Button(); + this.Button1 = new System.Windows.Forms.Button(); + this.bt_print = new System.Windows.Forms.Button(); + this.panel6 = new System.Windows.Forms.Panel(); + this.cmb_group = new System.Windows.Forms.ComboBox(); + this.Label4 = new System.Windows.Forms.Label(); + this.ContextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.ToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.ToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + this.PrintDocument1 = new System.Drawing.Printing.PrintDocument(); + this.PrintPreviewDialog1 = new System.Windows.Forms.PrintPreviewDialog(); + this.ToolStrip1 = new System.Windows.Forms.ToolStrip(); + this.lb_datatcnt = new System.Windows.Forms.ToolStripLabel(); + this.lb_Area = new System.Windows.Forms.ToolStripLabel(); + this.lb_selgroup = new System.Windows.Forms.ToolStripLabel(); + this.lb_filesearchtime = new System.Windows.Forms.ToolStripLabel(); + this.lb_querytime = new System.Windows.Forms.ToolStripLabel(); + this.ToolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.lb_charttime = new System.Windows.Forms.ToolStripLabel(); + this.lb_totaltime = new System.Windows.Forms.ToolStripLabel(); + this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); + this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel(); + this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel(); + this.btConfig = new System.Windows.Forms.ToolStripButton(); + this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.Panel2 = new System.Windows.Forms.Panel(); + this.panel8 = new System.Windows.Forms.Panel(); + this.Panel4 = new System.Windows.Forms.Panel(); + this.TabControl1.SuspendLayout(); + this.TabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dv_chlist)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs_Channel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dS1)).BeginInit(); + this.TabPage2.SuspendLayout(); + this.cm_grpmenu.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bs_grp)).BeginInit(); + this.Panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dv_grp)).BeginInit(); + this.panel7.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.panel6.SuspendLayout(); + this.ContextMenuStrip2.SuspendLayout(); + this.ToolStrip1.SuspendLayout(); + this.TableLayoutPanel1.SuspendLayout(); + this.Panel2.SuspendLayout(); + this.Panel4.SuspendLayout(); + this.SuspendLayout(); + // + // TabControl1 + // + this.TabControl1.Controls.Add(this.TabPage1); + this.TabControl1.Controls.Add(this.TabPage2); + this.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.TabControl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.TabControl1.Location = new System.Drawing.Point(987, 3); + this.TabControl1.Name = "TabControl1"; + this.TabControl1.SelectedIndex = 0; + this.TabControl1.Size = new System.Drawing.Size(194, 762); + this.TabControl1.TabIndex = 5; + // + // TabPage1 + // + this.TabPage1.Controls.Add(this.dv_chlist); + this.TabPage1.Location = new System.Drawing.Point(4, 34); + this.TabPage1.Name = "TabPage1"; + this.TabPage1.Padding = new System.Windows.Forms.Padding(3); + this.TabPage1.Size = new System.Drawing.Size(186, 724); + this.TabPage1.TabIndex = 0; + this.TabPage1.Text = "셀"; + this.TabPage1.UseVisualStyleBackColor = true; + // + // dv_chlist + // + this.dv_chlist.AllowUserToAddRows = false; + this.dv_chlist.AllowUserToDeleteRows = false; + this.dv_chlist.AllowUserToResizeColumns = false; + this.dv_chlist.AllowUserToResizeRows = false; + this.dv_chlist.AutoGenerateColumns = false; + this.dv_chlist.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dv_chlist.BackgroundColor = System.Drawing.Color.White; + this.dv_chlist.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dv_chlist.ColumnHeadersHeight = 34; + this.dv_chlist.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.dv_chlist.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.useDataGridViewCheckBoxColumn, + this.cnameDataGridViewTextBoxColumn1, + this.c1DataGridViewTextBoxColumn, + this.c2DataGridViewTextBoxColumn, + this.ccDataGridViewTextBoxColumn, + this.idxDataGridViewTextBoxColumn1, + this.tidxDataGridViewTextBoxColumn}); + this.dv_chlist.DataSource = this.bs_Channel; + this.dv_chlist.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv_chlist.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.dv_chlist.Location = new System.Drawing.Point(3, 3); + this.dv_chlist.Name = "dv_chlist"; + this.dv_chlist.RowHeadersVisible = false; + this.dv_chlist.RowHeadersWidth = 62; + this.dv_chlist.RowTemplate.Height = 23; + this.dv_chlist.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dv_chlist.Size = new System.Drawing.Size(180, 718); + this.dv_chlist.TabIndex = 6; + this.dv_chlist.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dv_chlist_CellContentClick); + this.dv_chlist.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.DataGridView1_CellFormatting); + this.dv_chlist.MouseLeave += new System.EventHandler(this.dv_chlist_MouseLeave); + this.dv_chlist.MouseMove += new System.Windows.Forms.MouseEventHandler(this.dv_chlist_MouseMove); + // + // useDataGridViewCheckBoxColumn + // + this.useDataGridViewCheckBoxColumn.DataPropertyName = "use"; + this.useDataGridViewCheckBoxColumn.HeaderText = "√"; + this.useDataGridViewCheckBoxColumn.MinimumWidth = 10; + this.useDataGridViewCheckBoxColumn.Name = "useDataGridViewCheckBoxColumn"; + this.useDataGridViewCheckBoxColumn.ReadOnly = true; + this.useDataGridViewCheckBoxColumn.Width = 29; + // + // cnameDataGridViewTextBoxColumn1 + // + this.cnameDataGridViewTextBoxColumn1.DataPropertyName = "cname"; + this.cnameDataGridViewTextBoxColumn1.HeaderText = "채널"; + this.cnameDataGridViewTextBoxColumn1.MinimumWidth = 8; + this.cnameDataGridViewTextBoxColumn1.Name = "cnameDataGridViewTextBoxColumn1"; + this.cnameDataGridViewTextBoxColumn1.Width = 78; + // + // c1DataGridViewTextBoxColumn + // + this.c1DataGridViewTextBoxColumn.DataPropertyName = "c1"; + this.c1DataGridViewTextBoxColumn.HeaderText = "C1"; + this.c1DataGridViewTextBoxColumn.MinimumWidth = 8; + this.c1DataGridViewTextBoxColumn.Name = "c1DataGridViewTextBoxColumn"; + this.c1DataGridViewTextBoxColumn.Width = 74; + // + // c2DataGridViewTextBoxColumn + // + this.c2DataGridViewTextBoxColumn.DataPropertyName = "c2"; + this.c2DataGridViewTextBoxColumn.HeaderText = "C2"; + this.c2DataGridViewTextBoxColumn.MinimumWidth = 8; + this.c2DataGridViewTextBoxColumn.Name = "c2DataGridViewTextBoxColumn"; + this.c2DataGridViewTextBoxColumn.Width = 74; + // + // ccDataGridViewTextBoxColumn + // + this.ccDataGridViewTextBoxColumn.DataPropertyName = "cc"; + this.ccDataGridViewTextBoxColumn.HeaderText = "cc"; + this.ccDataGridViewTextBoxColumn.MinimumWidth = 8; + this.ccDataGridViewTextBoxColumn.Name = "ccDataGridViewTextBoxColumn"; + this.ccDataGridViewTextBoxColumn.Visible = false; + this.ccDataGridViewTextBoxColumn.Width = 68; + // + // idxDataGridViewTextBoxColumn1 + // + this.idxDataGridViewTextBoxColumn1.DataPropertyName = "idx"; + this.idxDataGridViewTextBoxColumn1.HeaderText = "idx"; + this.idxDataGridViewTextBoxColumn1.MinimumWidth = 8; + this.idxDataGridViewTextBoxColumn1.Name = "idxDataGridViewTextBoxColumn1"; + this.idxDataGridViewTextBoxColumn1.Visible = false; + this.idxDataGridViewTextBoxColumn1.Width = 73; + // + // tidxDataGridViewTextBoxColumn + // + this.tidxDataGridViewTextBoxColumn.DataPropertyName = "tidx"; + this.tidxDataGridViewTextBoxColumn.HeaderText = "tidx"; + this.tidxDataGridViewTextBoxColumn.MinimumWidth = 8; + this.tidxDataGridViewTextBoxColumn.Name = "tidxDataGridViewTextBoxColumn"; + this.tidxDataGridViewTextBoxColumn.Visible = false; + this.tidxDataGridViewTextBoxColumn.Width = 78; + // + // bs_Channel + // + this.bs_Channel.DataMember = "channel"; + this.bs_Channel.DataSource = this.dS1; + // + // dS1 + // + this.dS1.DataSetName = "DS1"; + this.dS1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // TabPage2 + // + this.TabPage2.Controls.Add(this.PropertyGrid1); + this.TabPage2.Location = new System.Drawing.Point(4, 34); + this.TabPage2.Name = "TabPage2"; + this.TabPage2.Padding = new System.Windows.Forms.Padding(3); + this.TabPage2.Size = new System.Drawing.Size(186, 724); + this.TabPage2.TabIndex = 1; + this.TabPage2.Text = "기타"; + this.TabPage2.UseVisualStyleBackColor = true; + // + // PropertyGrid1 + // + this.PropertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.PropertyGrid1.Location = new System.Drawing.Point(3, 3); + this.PropertyGrid1.Name = "PropertyGrid1"; + this.PropertyGrid1.Size = new System.Drawing.Size(180, 718); + this.PropertyGrid1.TabIndex = 0; + // + // bt_cursor2 + // + this.bt_cursor2.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.bt_cursor2.Location = new System.Drawing.Point(75, 4); + this.bt_cursor2.Name = "bt_cursor2"; + this.bt_cursor2.Size = new System.Drawing.Size(66, 48); + this.bt_cursor2.TabIndex = 12; + this.bt_cursor2.Tag = "1"; + this.bt_cursor2.Text = "C2\r\n[F11]"; + this.ToolTip1.SetToolTip(this.bt_cursor2, "커서를 설정합니다."); + this.bt_cursor2.UseVisualStyleBackColor = true; + this.bt_cursor2.Click += new System.EventHandler(this.bt_cursor_Click); + // + // bt_cursor1 + // + this.bt_cursor1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.bt_cursor1.Location = new System.Drawing.Point(8, 4); + this.bt_cursor1.Name = "bt_cursor1"; + this.bt_cursor1.Size = new System.Drawing.Size(66, 48); + this.bt_cursor1.TabIndex = 11; + this.bt_cursor1.Tag = "0"; + this.bt_cursor1.Text = "C1\r\n[F10]"; + this.ToolTip1.SetToolTip(this.bt_cursor1, "커서를 설정합니다."); + this.bt_cursor1.UseVisualStyleBackColor = true; + this.bt_cursor1.Click += new System.EventHandler(this.bt_cursor_Click); + // + // bt_clear + // + this.bt_clear.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.bt_clear.Location = new System.Drawing.Point(142, 4); + this.bt_clear.Name = "bt_clear"; + this.bt_clear.Size = new System.Drawing.Size(96, 48); + this.bt_clear.TabIndex = 14; + this.bt_clear.Text = "C1, C2\r\nHide"; + this.ToolTip1.SetToolTip(this.bt_clear, "커서를 설정합니다."); + this.bt_clear.UseVisualStyleBackColor = true; + this.bt_clear.Click += new System.EventHandler(this.bt_Hide_Click); + // + // cm_grpmenu + // + this.cm_grpmenu.ImageScalingSize = new System.Drawing.Size(24, 24); + this.cm_grpmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.ToolStripMenuItem3}); + this.cm_grpmenu.Name = "ContextMenuStrip1"; + this.cm_grpmenu.Size = new System.Drawing.Size(248, 36); + // + // ToolStripMenuItem3 + // + this.ToolStripMenuItem3.Name = "ToolStripMenuItem3"; + this.ToolStripMenuItem3.Size = new System.Drawing.Size(247, 32); + this.ToolStripMenuItem3.Text = "Channel Index(TEST)"; + this.ToolStripMenuItem3.Click += new System.EventHandler(this.ToolStripMenuItem3_Click); + // + // bs_grp + // + this.bs_grp.DataMember = "group"; + this.bs_grp.DataSource = this.dS1; + // + // Panel1 + // + this.Panel1.BackColor = System.Drawing.Color.WhiteSmoke; + this.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Panel1.Controls.Add(this.dv_grp); + this.Panel1.Controls.Add(this.label1); + this.Panel1.Controls.Add(this.textBox1); + this.Panel1.Controls.Add(this.panel7); + this.Panel1.Controls.Add(this.tableLayoutPanel2); + this.Panel1.Controls.Add(this.panel6); + this.Panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.Panel1.Location = new System.Drawing.Point(3, 3); + this.Panel1.Name = "Panel1"; + this.Panel1.Size = new System.Drawing.Size(215, 762); + this.Panel1.TabIndex = 7; + // + // dv_grp + // + this.dv_grp.AllowUserToAddRows = false; + this.dv_grp.AllowUserToDeleteRows = false; + this.dv_grp.AllowUserToResizeColumns = false; + this.dv_grp.AllowUserToResizeRows = false; + this.dv_grp.AutoGenerateColumns = false; + this.dv_grp.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dv_grp.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dv_grp.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dv_grp.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv_grp.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.cnameDataGridViewTextBoxColumn2, + this.valueDataGridViewTextBoxColumn1, + this.idxDataGridViewTextBoxColumn2, + this.gnameDataGridViewTextBoxColumn1, + this.rnameDataGridViewTextBoxColumn1}); + this.dv_grp.ContextMenuStrip = this.cm_grpmenu; + this.dv_grp.DataSource = this.bs_grp; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 9); + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv_grp.DefaultCellStyle = dataGridViewCellStyle1; + this.dv_grp.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv_grp.Location = new System.Drawing.Point(0, 33); + this.dv_grp.Name = "dv_grp"; + this.dv_grp.ReadOnly = true; + this.dv_grp.RowHeadersVisible = false; + this.dv_grp.RowHeadersWidth = 62; + this.dv_grp.RowTemplate.Height = 23; + this.dv_grp.Size = new System.Drawing.Size(213, 533); + this.dv_grp.TabIndex = 0; + this.dv_grp.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridView2_CellDoubleClick); + // + // cnameDataGridViewTextBoxColumn2 + // + this.cnameDataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.cnameDataGridViewTextBoxColumn2.DataPropertyName = "cname"; + this.cnameDataGridViewTextBoxColumn2.HeaderText = "Group List"; + this.cnameDataGridViewTextBoxColumn2.MinimumWidth = 8; + this.cnameDataGridViewTextBoxColumn2.Name = "cnameDataGridViewTextBoxColumn2"; + this.cnameDataGridViewTextBoxColumn2.ReadOnly = true; + // + // valueDataGridViewTextBoxColumn1 + // + this.valueDataGridViewTextBoxColumn1.DataPropertyName = "value"; + this.valueDataGridViewTextBoxColumn1.HeaderText = "value"; + this.valueDataGridViewTextBoxColumn1.MinimumWidth = 8; + this.valueDataGridViewTextBoxColumn1.Name = "valueDataGridViewTextBoxColumn1"; + this.valueDataGridViewTextBoxColumn1.ReadOnly = true; + this.valueDataGridViewTextBoxColumn1.Visible = false; + this.valueDataGridViewTextBoxColumn1.Width = 60; + // + // idxDataGridViewTextBoxColumn2 + // + this.idxDataGridViewTextBoxColumn2.DataPropertyName = "idx"; + this.idxDataGridViewTextBoxColumn2.HeaderText = "idx"; + this.idxDataGridViewTextBoxColumn2.MinimumWidth = 8; + this.idxDataGridViewTextBoxColumn2.Name = "idxDataGridViewTextBoxColumn2"; + this.idxDataGridViewTextBoxColumn2.ReadOnly = true; + this.idxDataGridViewTextBoxColumn2.Visible = false; + this.idxDataGridViewTextBoxColumn2.Width = 47; + // + // gnameDataGridViewTextBoxColumn1 + // + this.gnameDataGridViewTextBoxColumn1.DataPropertyName = "gname"; + this.gnameDataGridViewTextBoxColumn1.HeaderText = "gname"; + this.gnameDataGridViewTextBoxColumn1.MinimumWidth = 8; + this.gnameDataGridViewTextBoxColumn1.Name = "gnameDataGridViewTextBoxColumn1"; + this.gnameDataGridViewTextBoxColumn1.ReadOnly = true; + this.gnameDataGridViewTextBoxColumn1.Visible = false; + this.gnameDataGridViewTextBoxColumn1.Width = 69; + // + // rnameDataGridViewTextBoxColumn1 + // + this.rnameDataGridViewTextBoxColumn1.DataPropertyName = "rname"; + this.rnameDataGridViewTextBoxColumn1.HeaderText = "rname"; + this.rnameDataGridViewTextBoxColumn1.MinimumWidth = 8; + this.rnameDataGridViewTextBoxColumn1.Name = "rnameDataGridViewTextBoxColumn1"; + this.rnameDataGridViewTextBoxColumn1.ReadOnly = true; + this.rnameDataGridViewTextBoxColumn1.Visible = false; + this.rnameDataGridViewTextBoxColumn1.Width = 66; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.label1.Location = new System.Drawing.Point(0, 566); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(213, 30); + this.label1.TabIndex = 23; + this.label1.Text = "Channel List"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // textBox1 + // + this.textBox1.BackColor = System.Drawing.Color.Silver; + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs_grp, "value", true)); + this.textBox1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.textBox1.Location = new System.Drawing.Point(0, 596); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.Size = new System.Drawing.Size(213, 46); + this.textBox1.TabIndex = 22; + this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // panel7 + // + this.panel7.Controls.Add(this.bt_delgroup); + this.panel7.Controls.Add(this.LinkLabel5); + this.panel7.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel7.Location = new System.Drawing.Point(0, 642); + this.panel7.Name = "panel7"; + this.panel7.Padding = new System.Windows.Forms.Padding(5, 8, 0, 0); + this.panel7.Size = new System.Drawing.Size(213, 31); + this.panel7.TabIndex = 21; + // + // bt_delgroup + // + this.bt_delgroup.AutoSize = true; + this.bt_delgroup.Dock = System.Windows.Forms.DockStyle.Left; + this.bt_delgroup.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt_delgroup.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.bt_delgroup.Location = new System.Drawing.Point(93, 8); + this.bt_delgroup.Name = "bt_delgroup"; + this.bt_delgroup.Size = new System.Drawing.Size(88, 22); + this.bt_delgroup.TabIndex = 11; + this.bt_delgroup.TabStop = true; + this.bt_delgroup.Text = "선택그룹삭제"; + this.bt_delgroup.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkLabel4_LinkClicked); + // + // LinkLabel5 + // + this.LinkLabel5.AutoSize = true; + this.LinkLabel5.Dock = System.Windows.Forms.DockStyle.Left; + this.LinkLabel5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.LinkLabel5.Location = new System.Drawing.Point(5, 8); + this.LinkLabel5.Name = "LinkLabel5"; + this.LinkLabel5.Size = new System.Drawing.Size(88, 22); + this.LinkLabel5.TabIndex = 10; + this.LinkLabel5.TabStop = true; + this.LinkLabel5.Text = "신규그룹생성"; + this.LinkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkLabel5_LinkClicked); + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Controls.Add(this.bt_run, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.Button2, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.Button1, 1, 1); + this.tableLayoutPanel2.Controls.Add(this.bt_print, 0, 1); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 673); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 2; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(213, 87); + this.tableLayoutPanel2.TabIndex = 20; + // + // bt_run + // + this.bt_run.Dock = System.Windows.Forms.DockStyle.Fill; + this.bt_run.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt_run.Location = new System.Drawing.Point(3, 3); + this.bt_run.Name = "bt_run"; + this.bt_run.Size = new System.Drawing.Size(100, 37); + this.bt_run.TabIndex = 7; + this.bt_run.Text = "조회"; + this.bt_run.UseVisualStyleBackColor = true; + this.bt_run.Click += new System.EventHandler(this.bt_run_Click); + // + // Button2 + // + this.Button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.Button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Button2.Location = new System.Drawing.Point(109, 3); + this.Button2.Name = "Button2"; + this.Button2.Size = new System.Drawing.Size(101, 37); + this.Button2.TabIndex = 18; + this.Button2.Text = "조회범위설정"; + this.Button2.UseVisualStyleBackColor = true; + this.Button2.Click += new System.EventHandler(this.Button2_Click_2); + // + // Button1 + // + this.Button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.Button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Button1.Location = new System.Drawing.Point(109, 46); + this.Button1.Name = "Button1"; + this.Button1.Size = new System.Drawing.Size(101, 38); + this.Button1.TabIndex = 17; + this.Button1.Text = "저장(PNG)"; + this.Button1.UseVisualStyleBackColor = true; + this.Button1.Click += new System.EventHandler(this.Button1_Click_1); + // + // bt_print + // + this.bt_print.Dock = System.Windows.Forms.DockStyle.Fill; + this.bt_print.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt_print.Location = new System.Drawing.Point(3, 46); + this.bt_print.Name = "bt_print"; + this.bt_print.Size = new System.Drawing.Size(100, 38); + this.bt_print.TabIndex = 14; + this.bt_print.Text = "인쇄"; + this.bt_print.UseVisualStyleBackColor = true; + this.bt_print.Click += new System.EventHandler(this.Button1_Click); + // + // panel6 + // + this.panel6.Controls.Add(this.cmb_group); + this.panel6.Controls.Add(this.Label4); + this.panel6.Dock = System.Windows.Forms.DockStyle.Top; + this.panel6.Location = new System.Drawing.Point(0, 0); + this.panel6.Name = "panel6"; + this.panel6.Padding = new System.Windows.Forms.Padding(0, 5, 0, 5); + this.panel6.Size = new System.Drawing.Size(213, 33); + this.panel6.TabIndex = 19; + // + // cmb_group + // + this.cmb_group.Dock = System.Windows.Forms.DockStyle.Fill; + this.cmb_group.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmb_group.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.cmb_group.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(0))))); + this.cmb_group.FormattingEnabled = true; + this.cmb_group.Location = new System.Drawing.Point(43, 5); + this.cmb_group.Name = "cmb_group"; + this.cmb_group.Size = new System.Drawing.Size(170, 30); + this.cmb_group.TabIndex = 16; + this.cmb_group.SelectedIndexChanged += new System.EventHandler(this.cmb_group_SelectedIndexChanged); + // + // Label4 + // + this.Label4.Dock = System.Windows.Forms.DockStyle.Left; + this.Label4.Location = new System.Drawing.Point(0, 5); + this.Label4.Name = "Label4"; + this.Label4.Size = new System.Drawing.Size(43, 23); + this.Label4.TabIndex = 15; + this.Label4.Text = "대분류"; + this.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // ContextMenuStrip2 + // + this.ContextMenuStrip2.ImageScalingSize = new System.Drawing.Size(24, 24); + this.ContextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.ToolStripMenuItem1, + this.ToolStripMenuItem2}); + this.ContextMenuStrip2.Name = "ContextMenuStrip1"; + this.ContextMenuStrip2.Size = new System.Drawing.Size(157, 68); + // + // ToolStripMenuItem1 + // + this.ToolStripMenuItem1.Name = "ToolStripMenuItem1"; + this.ToolStripMenuItem1.Size = new System.Drawing.Size(156, 32); + this.ToolStripMenuItem1.Text = "신규생성"; + this.ToolStripMenuItem1.Click += new System.EventHandler(this.ToolStripMenuItem1_Click); + // + // ToolStripMenuItem2 + // + this.ToolStripMenuItem2.Name = "ToolStripMenuItem2"; + this.ToolStripMenuItem2.Size = new System.Drawing.Size(156, 32); + this.ToolStripMenuItem2.Text = "선택삭제"; + this.ToolStripMenuItem2.Click += new System.EventHandler(this.ToolStripMenuItem2_Click); + // + // PrintDocument1 + // + this.PrintDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.PrintDocument1_PrintPage); + // + // PrintPreviewDialog1 + // + this.PrintPreviewDialog1.AutoScrollMargin = new System.Drawing.Size(0, 0); + this.PrintPreviewDialog1.AutoScrollMinSize = new System.Drawing.Size(0, 0); + this.PrintPreviewDialog1.ClientSize = new System.Drawing.Size(400, 300); + this.PrintPreviewDialog1.Document = this.PrintDocument1; + this.PrintPreviewDialog1.Enabled = true; + this.PrintPreviewDialog1.Icon = ((System.Drawing.Icon)(resources.GetObject("PrintPreviewDialog1.Icon"))); + this.PrintPreviewDialog1.Name = "PrintPreviewDialog1"; + this.PrintPreviewDialog1.UseAntiAlias = true; + this.PrintPreviewDialog1.Visible = false; + // + // ToolStrip1 + // + this.ToolStrip1.BackColor = System.Drawing.Color.White; + this.ToolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.ToolStrip1.ImageScalingSize = new System.Drawing.Size(24, 24); + this.ToolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.lb_datatcnt, + this.lb_Area, + this.lb_selgroup, + this.lb_filesearchtime, + this.lb_querytime, + this.ToolStripButton1, + this.lb_charttime, + this.lb_totaltime, + this.toolStripLabel1, + this.toolStripLabel2, + this.toolStripLabel3, + this.btConfig}); + this.ToolStrip1.Location = new System.Drawing.Point(0, 768); + this.ToolStrip1.Name = "ToolStrip1"; + this.ToolStrip1.Size = new System.Drawing.Size(1184, 33); + this.ToolStrip1.TabIndex = 7; + this.ToolStrip1.Text = "ToolStrip1"; + // + // lb_datatcnt + // + this.lb_datatcnt.Name = "lb_datatcnt"; + this.lb_datatcnt.Size = new System.Drawing.Size(121, 28); + this.lb_datatcnt.Text = ""; + // + // lb_Area + // + this.lb_Area.Name = "lb_Area"; + this.lb_Area.Size = new System.Drawing.Size(72, 28); + this.lb_Area.Text = ""; + // + // lb_selgroup + // + this.lb_selgroup.Name = "lb_selgroup"; + this.lb_selgroup.Size = new System.Drawing.Size(89, 28); + this.lb_selgroup.Text = ""; + // + // lb_filesearchtime + // + this.lb_filesearchtime.Name = "lb_filesearchtime"; + this.lb_filesearchtime.Size = new System.Drawing.Size(114, 28); + this.lb_filesearchtime.Text = ""; + // + // lb_querytime + // + this.lb_querytime.Name = "lb_querytime"; + this.lb_querytime.Size = new System.Drawing.Size(120, 28); + this.lb_querytime.Text = ""; + // + // ToolStripButton1 + // + this.ToolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.ToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("ToolStripButton1.Image"))); + this.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.ToolStripButton1.Name = "ToolStripButton1"; + this.ToolStripButton1.Size = new System.Drawing.Size(34, 28); + this.ToolStripButton1.Text = "ToolStripButton1"; + this.ToolStripButton1.Click += new System.EventHandler(this.ToolStripButton1_Click_1); + // + // lb_charttime + // + this.lb_charttime.Name = "lb_charttime"; + this.lb_charttime.Size = new System.Drawing.Size(94, 28); + this.lb_charttime.Text = ""; + // + // lb_totaltime + // + this.lb_totaltime.Name = "lb_totaltime"; + this.lb_totaltime.Size = new System.Drawing.Size(74, 28); + this.lb_totaltime.Text = ""; + // + // toolStripLabel1 + // + this.toolStripLabel1.Name = "toolStripLabel1"; + this.toolStripLabel1.Size = new System.Drawing.Size(117, 28); + this.toolStripLabel1.Text = ""; + // + // toolStripLabel2 + // + this.toolStripLabel2.Name = "toolStripLabel2"; + this.toolStripLabel2.Size = new System.Drawing.Size(111, 28); + this.toolStripLabel2.Text = "

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%0A1f(hoiI#yu$+xuL6P< zo_Z1y!*nk1Gl+#ZrH+S55Shv&Hhtptgw3s1CRzpM)!1ARM7>5{5=-0);uFWm=sFLV zZZz{)EsOZ57}O^Db|m%FE=7Slrz?4QEbIC7NEI~lN7bVw+&Gym+WE7oKUVmI`HJe5 z+)F{;>C|AKn~zsQtA#_Hn^y99Odk)nG$hS_ul^w4ClslA@}Jt&63?uxV2DCKlHb9x zQfv=N+Z7Iu`&Ns+x|(ATASzEB)4s9+wfxr8#f{sdn3kF!xq%VOJ@A(Iyt(YO&!Xo8 z;WoWsc6I%80z3yXjkuc?Azl{xiWRty@a?W5!E{M zhGU`SRYe(v(#}tAb*hv0iIkKzk+`;qLj;?>J0pm0i_6US` z6z9!5dStX?8tWL}OJCeCXrT=zy1*eW3{&2WARdfA3?9_F-o!q{ihv?6iv>JuMQceT zI*8${xU1aUU_;5E(99&wKo7E29`>=nH?mh=)2wHj#%LQa=*ql2uqjs3U!Xh(fl!IF+4v9p31j`*n4uJ=o0BET1Z!1nvHDJ3Y4Vfs^S-cx!Rx2Sw>qXiR1pZd(8q5c@Y+-ULQK~0 zFC1S_h<}~jisERf4E^yA|5Ur47`T-gY8vhxD|zir&08G)8fU5w&{i2Hli=fVpH7XN zBO-HxUBs#lICp1*5bJz|Wd0!-NLMftOE2aeT<|0c%p?!(k`y;NK17F&>|0^?^Fv`> ze1@pJXQ;}$lY3>C8iWooFpeb!u{poVX4(7=&RDICB5-Z)NbCOmu)H_M^RW$$L_HS3 z1j{bXuM`jbezLcK9@vlm{WOp{(o6|-XZO^Ezl(7B>&I-QSV=3e924h{du9$_{?mc{ z{rFP29ua|V)H=2$tTzZOl~JE97LXkq1lacskyk(?-GgZ?(El>Dxm5w~;ME9nn0N_H zr_f@cKL%pUnHi#NI_Yvu=v5p&F?cy=eiJ$r(lCR#8XS5c_~L1`Na#DjlHxz-%HLC_ zE(6BpH0yuv>!EX6qNF}>EO-M5k!P#n{jtBm>nubdrKa9G&R_x)IQmKEPyEmU z#_*l1VDkxT6z8Bd_?{{_m&G@K1FH%eNcbcH(;)~zV&%W*=Kssh@m&C$!+Xptgt^-j z#tz{o4c(a$Uu&M6#&5XRFZ&JM;>GD^I{GU%Nd*@lFF{7bBQX0PL{HzTPT_DjL42@k zAyHx~jXVwy@8RNNsnPVsUYm>0KN$Y>+tA)wbzFytO5@H%L8cKdfh8>BTG#Phubm5g zi{PFDn9EZjIQ~$8?MDqzA_v^vfcgvEotM7Y)9rlY8DL&pwWVjxH4{IW^aHu{Bqi@6A#P7pBtseS@C}oJGzy@WZX;SR1fH2coc;YiXLr= zd)(oRH8x6G?b1be9&65Fml*^jS)cHuAna%fcHxbtL=Q$-mV=*})`zn1M&L1MR!+@iQRRvT2Nmk$0 zOmLTewJ+hKN+%h;`*bgh!8L}aD_o3LaHd~)Gv6^6TUeNf=f*d^GzsRI0`R8|D}OEV4v4-@!7phfaH$!kzI0lMXEm|bb8 z;9DOM#)-(?T~aCRcrWb$Rp&@bY;j+y`ggiTZP-l8ZeDC2J`j^YP=oSb{<3}?l%|LB zthu^e6>;B!eX4<0pTJS|%fCOkZUz+i*WH0g&UDU1%BI=fjv5yhVMFbxR6Kx6ro?L` zR9WbOrYf&d_3KGKBQjdaA2#8rKD2gPE{dFc0~%Ec{E-rf?-bK5MK+Qj|ihF_=P`Z&V_`y8}GZMA4x7Cn(E7u7RQ ziM!Wbs$_-ai$WjWJxLg96bE{??!tWMOoEvKH49^lIu2;r4d(5vV&0f&gRuml3E)FWW`vwpaCrp1SUVIiI;8x!VuHK1Jl&`Rb(kKUR1Q*d9V7g! zNW2#%mF|cp2lh(TzVmQ(Qer>}kMshQ{Rr4+I*FAiI(e`R#f$K@vQb|@Ny_th804gP zyRQnrN5SOaSiIDLlY(e3Z`qL{`Jn@Fm`sBFI>7gNmoIi^SVe`iRqfz{&@KUA@xnZ{ zuOb?qLQWwfKh=iaPt4%mkJYLt3o$HU%Y;JC^z33ZH$9#u*uv8?ydx~jWMA0oyO7yW z>gpNw2fB=Xu3@g1FaA?@sgmuh=Xm#KeTx(S5m2H{08|M7d%5(EWArKV>f3KFGxULl z(38E9iI>uOUmkdYbGmvl=jJBEG;HU%ZR$F`mF}+E(o!0CJ_xH+Um@MfxjuBYZ~bwK zGBJ8hQ=YlFp!Bh)MRv{2C-$Q^Blmq=ZtwBXQoDO~Ex93>D|k`#o$XzWbeHRysWYtw zXNHa(s6YJ^Mra;g*N$cqpGdnFgh`4&DWEa{C9#U%3H)pARQO{^J0a{t#lWzNw*v1I z)7tM1WBcNGm>KAys_7p_^bjBOHkAyHOgnep7)`q9*{6Ic-WUS54O;pS6!7CZ$8^jH z^uJWrOzJRCx_LVv=weKQa3Bn&RdB}Mg8Vya*5wW-MR)LDJl@U&KqC96sNb%^#1(9g z_WqVRaX_s-x};QYnrL}cZO1O7JuK^q?qNOwBV%DUPi8gZ~LJ4?Wgcre%3zf}_r0K%(0 z>d==`hug|9XD5YZG4=qo>jTAAz}MM)+#;Ray-@*8ID-&JgU zJba<#`R8f_Y(dY*%BZcdl4cz*N>So1FHYeaeKNSIhwrzNmKDEmh9$}g7}#R-ZDAYnn=%zfFuBHcd1GOEDX~2>8I%(r32C$(WweV%s7akr1 zKVfwcDh$1g`>Tffx7Pfh8|R`_CEf~bq-39%4@V`#d|MTqs_nl^}0IwzwNu&vHKcfn~JsR<; zCS99n8^hO>c>VJIbF9pc>);Iz?id2AlXsrw>bEuGUyI%g)+Q)Zg0MMdDL+2RiZr#l z{Eoz9C2R>w$i3HCa^$jlq+KP|{PTe+9JoxD9qZp)>NMJBs1`tpDVy)QSyp~oav+Mv zTfx>Mt7r--cIzMe6mM2QP{7~X+m`b}7GvcZx>~WTbVcbc^W*Wmcd3?vU*zKr(=+PB zZb*RpS4k|BWj1-I-NTSTH}`MrPab;6Qsomo#M^KC|1ih3wW7qcbk>{~EU0Yiw%W$0 zUz6Q=SyiO7GB`Mbsed?GJb!OiOgEnO>e?%O4Uv8(~1LWaPg_HgW!7 zhNoH=O_E$u+>DlI_akCwPivASgcas4a(=2wTG)GM-my#!ttYlf>CLS_{SF~#+SWu6 zJJ!%~r*nsTY$%S|jsJFBy{dy+tk5KJ@8@GD$u-mQCOZh^8Vb@uJRc6wve6?if{hgDuKeg8}H=---!1;m;#icQ`j^pBx7*ccYW{W(BtPT1NrkF>b0Rm!$A6hdqfq8gf@D7k{Ey zoWSYnx*4hz4J*Bsly4l6-JN-c_`L7DhmXdWDGf<0w#-wj?3b-nqTCYMP+ggfm7}*A zG4ON^)T|$hPG%Y6U4~qvR?M+lnN)uCuD^W*MA;aB;jK7mkag9&H`f@PfdBlPT}w3Kqfv24_WnWP(|Fg6aHQXuOjz@E~?pUeiHf+BONvH9?(cr9Q!H%yNc z_$yBT|1BitaQ4y4`{4@-sv7-Gl6v4qh+d^g8dL&&^AE$7NlJ{08S#L&8(MTsGVLw% zFH-u2E^0)HuELvkHGt^KPcgJoxe*b^nDK0{BluKWiP@CMFG@(PTjbOq2G-CbwQbd+ z5|x&H3WDO@f+gjfQTAlvuU8wsD+QbmL2P5RKRZ?rXxs5&%R=-pSU{m{Xt_#Q%6qL+m-lCOY~dML%M^+deoGc zCc0FOXvL^H<)!C36EAj9xJbhnhv<%x2TwCnrPu*qxLVl!nU!FPs>4l!p|8-Fnhs~d z+u+}A3jFlSp#zZ4+Kq4ZOzVyY!>=^Pm@-I}C6u~OkneCIzGQ+K3nS!j<2@u&ARSSk zt}?~7T}34!hIc7CP^7kg($OA2druAxm^}&9H1#~#7WOLcvR~*(-J%cV*|gi1o_vER z_|Mu=E*HK;_E zq{OdPt+B%@`_H&5z7mJvUd~N#8VP^#^*qhMd8~_D(kj1ZXhIPNoprskrA4_fRTDN! z&^vED0?dIbxcB<3{q5a0Yxz1$n!vTNLtHNu%YOP)A=smVOMYO7`X+>s(yj~APtz0Q zlG$YUgidk7`k4tSBd^>q39*W8e;9f_9(!+HKfL(z`<|!ezVjUz@^<;k26?KPW{vQm zNp?Nv!B*M0y#dS5Lj>w;w_6q`AciK=Qa0i~6PZ3mDu`pFm4j&wv^$-=4*P+q3b~k@ zdKN}9#(0{(d!z@=wTTChP1IG0?%!X_l(_kRijr(tVTLy%!gYgWfOZzVXOJK#r&(K& z0TzbCk4;6^j03u{xakd5&=T%}AYUf5rXEH&;FZ^Feo$=z~1#}PkpqivPxF_tHC;S4{Dwv=H z$^=iAl5-!r4(uV$=aF!{YsBDdh2$gMN=sLQ`IKD40G)Wm1q?d=uQAepPRM^>_W!==!0N=enwyoN>prp)H(bBr})TVy!9}mcHs=_8 zb(DehC8b5C-ZdDJ@j^0$*caXE=Ef#UeRgVl1sq*b$)PQA=oDcj&qI?#>R+T z%6YVSmnsd*$aK=1@My78jAi|!nr9Bzrim==;xE944B9X!3Ubh=qD#JnTvJd0MV8Cqu-Z+gR-t-w1vtXfxgoO;3V=mjNh%t&>DVgRly zaz2w1y>&3w(AtJ1InhZr$7NFp`_eMYe4Rhn){Q@G$M^CU_<%P* z32Yzf4M`)~tcH@5&u6rrhABIB1@9lw#z=`=6)v<79f_44+bOzCiQL`O&tI!La&dwj zwF(L0@Rn7$JK9pKKN3-s1e*(fl$4hW?`=p#>7Pa>)VLs6Xr=!!;DgJFr5ZqA6DTKx zg%B`));d);saZ3`Dpjx?6y{c)r8Z!Lsb!`qfa3xnGx49p{_oNMuN%^IHx&G?|EUB{ z5%g&{o@UsMR{o7^$F+yN?=2h#!L@#Yv9@S!1Be9QLPdVBj9lTl8p6H)bj_pX zN9$Af^{rpXCGJVwCGq#KU%0po)^p?>v$O8rQq9=bS$I3&W(WDTVtc&Pg*1I&aey~Z z=@Xyz79D^X*%TC5hKk4a3?1}__KwO{8g-B^cPWGe<<)vwy&J9SM`lm^2uBj@-=PU( zfPY>+;)_eg0K@X~SYFrQ_DN~IOVq%T&#B`NPnwy^Xg$a4o+{_4+%8(t){trX{PUS{ zo^i4KG@qw&`VUkpkMAYE)Aa$4b&vBAZ{A$v4;;2Vso(f%prq&W5pA~O2KPnn=Ha_C zdY`s1mtJ1DS@7`>i*`jH&wjC)*{F40UC~7P+duW({;I!8$^U(S z?|Kwjs6|FSAG?ecioHB0TwCGn2%<|DZ~g(BrWW3uV}W5BXXY{B4{SEg^SSc}wVm(b zKGm$>YS2z1Ij$6c)$DPR;6TRhFJZ_RF)ReXzs}Yb;;HHytLR+>6JyQ~^3%pZq@Z3( zYL=G_LQ*s5pUuDByOqvW_}lxE%a<>s>bEyc%N*y7hKv{w-_n^vw|`^TO_UH6yQp@c zWQjRS4e29IdRpL0V3JrB&OzQKOGHoJ)vNhw!a8>R6>Bm$?^71rEVbxMwAn~Tdii^s z0P$k5ykY@tvSFVTk^7{M!4uTf3&CII{dtzq(8YDm5bP_#_;DuMW(%M$EdWVKhb!sv z-^ygh6D*N*jxl%J@d8RJSuT2^a|BlGEL1bl8av^1*YE=>N@t$xsY_M(pjfv5hqO0= zhjM@W$4Sv*Nhr%$iZYg#u?#~(Wj*$tBVn2;427)8lB_W*yP;6oDhv^or7TmJQpgBR zOr|8sn!W!ub-w30-|z2vp8xhbub1;0=DxexuQh-ul-O|KI+XMnA>u_~Q2{ z*Br!W(pj?>Gzz>BNr+IWwnU(JO;^NrTf_Dxxc2}3KY#_oi)GBicD)t0yjLc)n>*Dz z(7VKpaEQ8`+O@;}xO@1=W0z&7QsPW}rDVh#VhJ|j>e5_<7&I71T91%Ksqfw-?k+#Z~ajhoc&C%l9B4iyR{p%2O6a0V_tN(;@(yWMPrB6ydo zH-EfyGzS|bG)O2YrvI_^#pfEQh9^AA?$@48kvH-o8eVxC+^*hy+h(btnu3MjcjNa_1pli}nix@a@@AB4psQ|Em#g3a+c7OB7Pms!05}6%E zwn}wOs&1z4qI<4^!JIc$S1KM@NJmN;n1-+x9F18c-U&X?0L2Q0CHu9<5PwL zCA?v}!}0pPBL|kqrz{FfjATnNu`Ps9B;>!_RxNIg>U_M7ixvEX6^(@8Saa^mTl;N@ z&?3=y@)KjkBYbt_JpmZKSHbM2qRG@M>eLXpN?>fxat8s$cC5_B33hNC^9tluuZ&H) zJe8Ql8LPMg>a`y;jjLEZ!{uJfx<|W;R8Fj9xYS$fYs36$Oyy(i*FFSC6KvXX+pL@) z#jZ-(8;BmJ6Q;3Pb&8*wgh9=PcD2q$2S zr#iEm9Umxa$1+W5Uznv-lEm#iqN_)vg9;sul)u)HtZj7>d6|HJk8Ke zM5`Jw@DYj$!UTW!$7OJw3+xnENOK}3(Zt6TFIXeVS{m*qV?=^kUAIHvphy!q`7Pmk zL8DQn)|0^pI{#(;@^$YX5(bXebh3%h@&ZEKW`{ENE@|hLbG&YEv*y0~yEk8(p;#3Q z@ig$6BWTmsX}Xg{&^5l+cv9!EU%fj> zSlvN)0}v<0Np_)bz3`A;m5<|j_|qt#Q1>L6o&&lHvQ zQ6?pW5Hg-o2i1>oa@9+9Jot<}%bHgi!Z**{QnnvNmdYaJ0Z((;ErVU0Y+E7$SY%G| zYEf)jKYIU;nLD9lQI?7M<%FGADB(+|ixi8p$xF5re+bsG zKs02vP`X&$1QvGg?^-61N*7ttHX|4{zNW@Me21wbV!<@f-V^J4nc4c%I~HofLnUAQ z1(I-F{v_4g&c(c;`@l}yWJu48_#j?oB;~l!a;TemR{2F9%vI6DU!^4v6wh08lWDlC zPkvt(-y6d9nLwq)7U8?R>9YBQkcxJEI4bLV)_Swb(I8d@gR;%ORI)cApTo}xUj0dt zF@2_oq<1t&FOI6&Z}U1UGr7XyHX6$QV+=LA1rW_U-@Y>%T;ObJ&5K-__7byec$_#8 zL0C0-s{e6qfalsf{R7PM){G;cw*SCv&N-$aBHTyoOR0Yu8BZ>3k4}`@njgsFmP|*} z62Pr7*#}h8s3u0W%lE_abI@&uUkvVa=wG4O%#{HR-0;F{ay|t;$$c3?WQkaO|FaH{{sSJ$(GN zaf5Blk!zz$2Hf9=^!G-!Ub~T0RBzKdknCF~FYjw2b|+=74Js?j@o-e!4a=Ww#G#X4 zj6gX?-IjT9aqN%vs)*KDN!O&$^;>_f!{3WFIi|w-Xnp(a9rpy`iAGgYC1p>qZ7mQo zd16p`W=Mw^SSQJ5hrN3QSTMZ&&V0-TeCNhX!UX*f%;8XM;dR5kMumq@B}Ys1wwda- zKT?c;UH6f=wNmRTZRCNEjGiyO;?*u|3*LYe=y}y`!e<4}T6%VVXu(VBzKpo&`PSZV zQ0=SarSI3a5PJvp&{c0R;b=I!{c5{eAkAx16tLDJuc-Jo) z)Lya;DsZ}D>sdhUP4pl*X@xL-PN8N9#nTn#iWD|Im?_0OAqK*DPYNVnG(O2aP^aow zSL46UqlL|WWQt(|%~>KFs|&oVoDdXtPOI{0Is}k|f*+M(!wMg9SQ+1;ez`RVWQ`x; ztg=LI;|9^LUL0VMLInb8Y9 zr-P))c=}{oNm+poONa7P)^~A#cO^R# zRxH%MQP7h|n{SA%^O#k52$^$G@jmB!jKp;pwoKX&Y7)0s8hbgHSEH?7!PrAONhm32 zDlN31N98TD`6hq=7-?gyAZ12GCh>fL&>rw}Rt0m}8k;CeIbjfSpJ?wq5d76T9Qag3 z0#hTN#T@_1mIO~Naf7EHtE`$lQt$g0hsxDvV_sFNzlHB6>rS*{+2r@~Pc7mdw@Xxy z2q$iv5XtQaLc1(RzEOdyW#QIyES0s{*c#m%K;uq2e(LXFPy@MMMiCMdm#MdeFIE!FL6o{ax#+Vylz)u1%Gf}=9dnR%hOW& zeNKD`!lyOy+V>>Sx}b`z%LnyEoiuU-(0 z44fc>Ag6@}6S8nv)Mt<(J_o9ux5wV(`GecvBJlXYCF%XmaO{cFH(BjtC%}XVJP9V~ zXm!!E#3Jph)6|3)YOcPwrw4ajH~kD<2Sk#$M*`8YYH6%Dcx(zrvY$xf9Z-W74%Bu) z@5+pD3%oQ!FEE8fVwABjy8MU)fz6AXB3_00l}?!03igE2zU!)p`}WF))4l;`d-~R) ze33E@dxRSBGb41L&CyX#-%w+)ciZM9$N$2YJl^1YJNPUka=|@? zX(w))f~O>NGFkP$?=ajNhmA?+hH%O41i!CARI|FdZ!oSPZ}d)+NBJBBTx*YbFSd6Q z#&d_2Vuw*JKH21EzIS4b756fKT$+^z&R%Gvc#1QPZU_d5eo(e4>;OH?@hdPQa)7}c zYn<)~LCU>`3xZV0?-T{!?!U(@iX7WnhzyOl;ETs@W)16c#9L6^tg_yjHmrf}IjBVdmWrnJj zxEH~GOp*4j;QzZ7KQS~q$GPHBC_=`zH)0>7$%J2ImTPQ_kIT#e^6q--l*pJZG<;#&V+Q%`#u zyI!#Bi!s+*_S0hid4IIpy5~pAa^za@*)cC;#fSIQv>&H@RKqS;#^;*dlJ1+he%Mk+ zD%WFQy#d8xl%j6>}-Th64p5Psa41~XQ zojEl6>bUK#;Tr~P3k^q76YrfE{PqH$`mr}j@!ehj@WNrfXWDOlKn%=4l}}mOZogJA z@kTYzdeqvvVN1)SQd@83i*Z{Q85bt1V;u@~5uV7Bd^WC15sB+Yd;MkLWPV+qW-f$q zwf{;dk$ehl_`tiM!?B9NUkJ^d$qw^8+ro{$(`))12O_)C9xn+AeTT15e^}K^! z{4S3MhYsHH8D-3#Gn$fpnY#vC4?|bvubG+e$-fcOhbDHtOt^aQzt-XN z@4~`2xfw9oyW<}1T~%VPn^Fd&l6Gcx-L?Ahv{ruDs^KP+shP(zEdkMr%ME66NEPX2 zl3DBOi?0ZoA@Yl{H_iOXYjekjEDo(XB4$nRSSj?0RebxnB;LFJWLM%TinIu1TJE20 zrbAcG$Et4qvLV~N)l|a*0l?@-Ml$JFp0^Fn<5e*L;Aj4RJly^HF7pqHGCW7@9`k9Q zPvc8O7c8kQ^zc2ouf46_`^7t(5`Z`H&B^XKLTj14d{Z$4XT#(WO7X3KUtf)1)L+a` zdRtHKP!70*8Zsl;Z0G!hnn*-0>Jy6G%<7NPk&lSQXmtGr{JcG7p4mR;9$s(+Q+2n| zHi&AsufAF!E4N_+dfN&I!Mp&rJ7PKbHq;u~LXOp%ByNR%e%V{ne4Ea6ix(boCQx-8 za3DLU2hoJ`^!6Ko@r0+?uI@_rMflV>F4pAvZe|xWkyL$ce7kc8swUFjY~bMqC(vtJ zFQ{oj<2m3i@6`ip$KpFGStw|-i!7`mFPMN;`W~0EtFMaj2aHdp<{VTQDZlRz%P@u| z6ZorE`L8eY-($;v^U9V3&U^)GoHXBkGIMZAN`1WTd4SqU&zKYZy}!dHg+@Cqz=?lN z$p0f=;SeUNP}|s{S;Nd0%X(_o3g~QnraW{8>~|%M&n!WMZ=kB(Vq?<4!|&9lSUHwE z+P|L!R0Az-VW-5OT(r?wN|O(`P?QffGC2s^TbHBRCYY`6YIax7-QKPMgl~tw3s~FW z(Vg#31%BH*x{db|Xj3sMjJwfgw`ySESGCM^hgpfU7azBIj-09{zIC{?N0ic1zH8Xb z^QZ(66=|stfgE%##@@bN^tkTfSc2(OX>q6IM{c%rdq+;Y6ffdid!S7Ak9nK0@(i)6 zlbrGjEnker$lpCJE=nvu?Xr}chDMjDYKH8Y=M{}BJ!r8O?{gLzR}zW_ zB|oE99RdUwrk^Gj-8`M}lTDjIBT@E9rYtfdxLdb_6J{K;M%jYd;g;Shs!#A%ngEw= zp{&>bKD-)BeU+qh;#h*X%2HKOBLJ7 zBUxhcwaZdfUzvHW{jp@(umP(-boAB7l=01DWnRg9ifUSk%=&8o4*A1=OV+?FV2&R4 z-wFMaa>u$AhQ}`_23FhIQV9H^j%6}3DM0k|D^5Q zes?y#H)@0=CgZ&MN0(ikz^PJzDYJ}HyyfUeER~GuJG^mQG4!yLAm8bG7ulcz$8Q&3lh!#uAl9b47HkE7N>i-ce|jF3u_lX za@msldwouQ!K8By9N}LE1B^w!-x)k{aLCA8p2~l#BIW2|2-lV4su#AUZwuMAL+uvw zn%87a1UJ-d__zCAlPFl>kD=S2Y!`S>0;^sUn!j3^jNhA=Y@}s`;cmD&p>~}*kTw02 z&4!@Ot($Cw;p{zdq~?OkaCZF3d3(1-?$4qZANDC0JiN0NIkrw7T9@T`Q`0VBvgMLr z3v?5mY2TH4LFWsAz>V^|1iTv^$zM1vg_GhaXvg+kL-5OnPwN@;a`*z@4bL7?U3Vcp zhp#NM{SG#n9QNLk`$Z{=(dm?L4DIR_gJtYnB~!DO>6W#F9YOYoagF=lb2Rb&@Q^$> zupItXruQ(#`>ewx+l{k8RtQKbZh9Se=+72H?rxo1O$kf67Hk@)8ecwp^Gw_L&2G^j z(t+AaL6}{S8tNNTd+V>(f7L)P@zTm&wzR@G^lw|>U$4kwO+Ru@&YP*OKYg|qw66Z6 zX*!`YFa_!q&6D%(J3Z)AR;wvrS_@Y~w#{U&29Ew@gVxWetjxMQbbxG{CO~=2?d8Ed zf!&V(wKA^F9VSXy<;|wpYuF*}k=|)w#di0YGiX4ewSg%6+ZFxbL5YT0_iJigcHiMa z@9;Plt@5}UTQWFomq^6?WGfj|`*2Qmt@3eo&QM~eHD%4MZuMN}&X;#`S0K$T-U_+x zaMgAwk_%cg3ZLSp9me0fC40I@;lk$HVd7( z*zXI#5Wz2Y`#M|&Gh*5-Q%*dJo`D;&p~Kf!TJ9m&_9rQQHR*CzHrHmwl0@#9e)dGa zv5U^Kx=0$)j%w~}efXTheG_^fb5@%!&VpfE@bp1}rUiWGM@<|~l@du!`%~3-XWona z`^q?bQL|I0_fLZy-)KFwN#HT78?t0|Z4aVd6@C%D!TSxy;J_>nBv_*zR604c=2S$; zqtKui;Sgm~0x2K5TjHSxO79;_IGk1rl_Bu38enT+CXAqnG9&R_%G`fswkqR*%~4k454fFDmb|x|@m415yDuB-m+V@^ zck#OV_1y*Yn=Ui=Kn#rR4i5m|^aLo_u&$f+#)1F4|Ec=h|FQ&z$vMGC`PTsy_gneY zbVhRf5yC)e8YctomVp8pjlaOT|8dsj5s<-A6Mhz(4KSZQh48a|?Iu(}na&oNd@860 z-}m1+1}LH6c@`Sz$$wrCc-_k*0Sr{MZye6!f`KD{VF?S*D8Om?;WHp}+`aei%q9~J zJNDCDjZS|B`mVQivTF0oKY(wlXSjqfVr(nlJ)igIH}J?A@I0eb6qm*|W**ap%m3I)?GhW0nxTnTNm#00j)h_=|Ym_37NweEgv>5FxxQR>y$-CiN{<7LTsX<;N()k7=UO>Ntkc> zm){RrL_C&UmpLche{Cr@<$c96u1%W`k0Xq_G<1feCi)MaL!uHdC%2gs2`=ivd9~Oq z`NULux%$z3fgxs#rqvhuS0kpeNIB!t*X>8anrYwo+R@xb{u#=}g33Wb#lBG<7{qR` zvJG9G?v*+}D9Dyh_XXe3XFu6$(l$?b34v7B?nj8AlNruuj9~g{_6dN(`Rwr3AtS>> zLSWzDIyT7w1rDK(f^u7BR}b+xdU|EMz%i22iy_>kNhQd>Y0PN()oT8rL^fOiso$$d zntKn}hdr9f|H5TLtB@_&dd9p{(Sm=3D7Ia{^{g}P*AQniCaqcqh_}#Xu&~>;s;B^WmH*6AYDWtla0NRAewWS8MCx$iEo0)e`7S7A~Yxd zD2ES0lV=ztxbBm>XdFND!_XJJGKj6>!Xtq|3yAyK{ zUy`P+yymy~qufmt`V=8CZ2N8!y_d(XF&YWx3F2sx(+Lx4I@AOWfqqpk&+O^8({pzu-2DAnGO8D(xEQ zUg6K9E=!f3gL`tUi`2zqP(Ey;>|nLE{osHYBTBkR-5cOQWoDm{shN$0Vmda%%LH5P zqwMY`7}(JY)(f0VkAOE3WtPnnEILQ`@0U;Oz{&KZeIDBrdgQxnelRz|!U>##rt z|Iyn$$Q+!2-m*VdH17hlT;`KMNhC8#7W5y|!J}?0s9mC-oTjMr%}_Gjt-gaJm3`DB zDMwe($~bgShW1yza}>$gke5b^Mw+Sh7zlO0!=UTnMfsVLV`Z0*%HLzAFRQ^{T74$> zR$n!cvugE2mJ7L9gggd*=_!qpzUHUD%bq(^81*yH$3rH>_5EY zCZ6V)NILdGIao8E5iN<};@|1BUL-v#dBm~@2 zv$*}dO9?=cts9Sj9xe?s9zDWF;|U5iC&IHK_Q zBc5+}3~cA_H_=~p|70uE$UWGrO42$~Hu=T;oy^4C4cbMI;=y-Y3ujUv*M9o^y-jGt z>Z+ex@tF*bGdw%|Z$5eT_@acQzTVmSD^#8Iz!9!9scv(NAMOPTkA(l{xAV{JBOSCp z`^S1|dlOClWI52QBz~-;(7dmIvN4Li*6W^8HP^nJytd|$cJl1*aI4=lD(%(dA8-Bx zpo{^4@~M9Ul#g7>x+e2U{AKzTtenZO+@fgT=z6OW+>^;mEJ{xXxZeUk?%a6hEH(Df zLuA^D#hP$gPE?+@Uj6d>bT5o5;KF1pWERawl{Vego%hxsl|nx0L@q?chd&8-;iKN( zuDaQ4-G22rlbVKl_gKC6l&VyP1Xs%l*ICx4UCpNU`r^A+-XhpN-8Y&=4^_ljLmE?d z+$Pj;=kfM8h2Jiwv7fvRNo@<roGdUOOKH-WXk33P4 zjolRF_@29b3rFkqQV6}%tvRE|7I=0IUYuTvQl+Erpb9?9`Y(bRHcCeU2HCtMtdVNb z3FH}0Lf3;yQYhnX4X7KCX+?xWzXVDoh8qO=zRN))r2o)FRsbm9h#O;jxuGA@%j#N$ zzyq_9m`!%-SH!6A-m3*K$1d%}n!Y65pCH}nZGCstQ-Mq+=68Jb&4Y2$1PKyChx*t= z)^+fc4&e0hW`I~&Q-9*U%Rc~TLsW5VT&jA^Y&G0q99S{U0u)z{YT!GjNR6&Rn5tR# zd70mZORosr2VIil4jA2-usGunzjp$Fy`#v}KCJhbhTaz=70my$VU$E1$P`)%w!V-C z4Z(ZfUVoQ64irum7!bMjs2Yi}r22HGNJ#Ex_sGBCO8?CwO{Xg~qSm{qnORAdh3W8i z`$oHcUqFx@3KpEi0Nfndhr!T}b=!VF`TzW1t35QOs!BLnarY|-AK^Z5y z(0+~1e@$Kk-}*wfT)AM7-8fB_KzkEJwF;eU{bLhI3{h0oCXzlxZE?x>CJB4=sLJ)Q zhZbMaZ{2Q24+JZ2iZ^}xc}?K*GR&50#lK?`V~ZOx8vTihi;F=%P(ghgXW1_j@=M?DU!>#fBzpKiz2Ll#vt~DM^Di@VO?ipkaKSka9a^}V8*2&(0u6P^fQ(eAcQaSCrLO(FmULyK3++O_Yu2pr{ifw$w zwnKArMYe<*Z?N&u1|g55X74wSMRIN6lOIA6OT}L~NHyDOQfQ z@W(wbE4=Gmt9f3yXONEG`(?i-!&8n}G(c9?h}|6p%4L&D`{Kg0$$BHm!eq+pOtKiy zMCJWx_K^a21LJV@F(<~GB!9QtXG-Mgg83XmZ1^??XSzs9ahNUp zvaRkhyr~?y9mXtx9Ifsdi&q~?;UFQmj=7(Q;=~%X z8(NA8;Y$yxjfDF%394P}RB*K_cN75=hc0DoVzfC0J-^W5TS-kGWnT;pqFRKGD&DRg z2E*$t*NEC0jKON|5LX!O5mGOIBF$@1QnwpW$ajxfr^xUp?*VP-OKF{g6ySAtQZ~tk z(MEFW-AwgiyJicZY3_4vP|tqXZSO%SV`E);k-{KJNKWL z`IOML!LjmB2iP5LF7$tE)@Z$PBm4Y&r2RVI$hx|wWUL6s?|ws1z~zXsZ8+n zrqV@-PTb#Wwndljz3u%>>T|MgeW}n8sGL!w0^V{?>#SupYlmo46wr1DOHzLDpE0)_ zkGxoike}TcLwIv2C`d@6SzviQDeZN5ux-VQ_Se!}LB5t>*|p2FrWEvEE*KfUQ>Pvw z7Yg;ZTmA@y=vjA8uXelRnu~E8$+RFkbnbER&P>;$L6F-#LI4;f@PEnq+ zMx+z>pAF%8zQ`l_NTS~J%dp0xD^=OKvd?C-WYXMSofY+^;5Ff$KiQ0)^t@22KwdC@ zT+uT!H@f&$sTuMYHGcRf+mkm?Uinrm@a~#unx-_s$lf&iLB!(tyPs_3hpNqfvV~@T zjIi6gYw)>!n)wRp%9@e(|Jk0|_0RUqWoN@y{UwT*$+*MZc%x(IMg;Bay(a^u&V5h> zen2(Mg4HBZc!YHqD!mKtoeGxhPn0!2HT5EOIfrmH^@&vu-;6WI^2D`+Ds9ged=qlg&T-nt(8qxdxogkdL+ci3;W zF=>~st~A(NG+XDhgjsfVs-!;0rC-5(F@pjm8$Ny1UcqZs#Nz?Sk2mF7-}U>+c8Lx4 z6F1Jh3C%fiH=xk>CtKvZ1>;1($~5@(mjiMQh)ablz!!Y7m$W}%bASi_gUM@4G8;f6c`(*!U;1~t4dYLKbOuXW6YgJ;>t)0MD4HhykEcru1#x1^$}y05$3SB$ zYfK5qUG0p`MFUkSAh_WLZ1pP#S?KHkqvP@)*S8O3fk?t#at&~JuHN%K4WPecspp%d z&t7-lg;Ksm-s9DyP`+rdGPnwN{>0s^v&jNw?XA6ufz;#*=~{IQxeDh4My6dK3~a@Z zKwt1KK=29Pp64R?B?W!0dYw|jXm9ERgkQK7#}d4eeygaB1_nXeZu*SRB2~%CKANLu z-NxHAt}FC_AP%2N`QQkyC4GHjWQf@oOw^uzdGkAMUBPTkE;jtya-O_4BinrW0w8l@ zPD;)_PFZ};a_NrBvQ2rV%KQQIo^}w^OhC|tF(Nk70=i9&1T0E6tbCqwO()FXo&2yR z(XZ2P5PjfochVgxYawD97h2umMM+Rskop%tPyAE)Le)EJo%@@u8x_k0tq6wTh*h%w$rF95Ga@+yrQa!lXyTW5ue3XT~g~DCrVkvoMPKZ z<{Yj&7~gvOWP(Qz!Dlo#6z{4F5cD>^4IJ-DW3iIvVYPdr0TJT$M=P#3pnax@P(sfG z5xF}+GcqJ0nggjOG+I6KR{AvdI@xboTOS1OrP=GvV_E#_iF34w7i5 z^O5Ikj>oRgY2qEXuI18XT(+P_MZ zecU5vI_})}KASvW!X-Y$9l*|kb{5DQn*UC<9;EPpv;keB7Qs4wv6Q}yP#eb5*0W%z z=97Jb9J5yKu5?E)OxcFvbWh<;cBMdbb@X!%qNi1yfcLmF&AP-<=GgV_^R2gaZe4A~ zCF^`tcEkBMT9#aAxQqUHaya5HhBYFOa z`qw~$-&_Z#L>b$^-{0E=>=FQ^ODVUQAd37lx2&4TbhZQ((?matl0=)%!p4HmXXfuG z?3Xsx;Q$eGiztc#PT=i_LA>N36c$nCDwCN`LDb9)R7dMo=x4gfu>$k&2=QzF;_|Oo zzkVrd1Z|Lk^S~2u8=O1FJQoPu3 z3|C?*K6h}XSN>(gx9^T0PW>J@;v!my$sNffs%eCI*h zdc+6RnZ{Q=*Xi;RPpl)_v4B@~PFT9T_BC!D712)No;Er1FXYX?ZX=&>$fnwtec{j5 zFeXn!*Jvk7Cql#19@M3#eYABo9ae zF08%^)5|0IM7Qh~t;km8F;8=Atndt+!^--uTL)<0-Rl&daN5nF`0hFF;c|_LGEG+t zwe}u@?1n5HabvV4S)A9-sal%zsBKh<8yQ@Ag+T?67Tv?Wzs6`sf;zK_x^irJ^opDq znn7tadQhP@G&mh+$vMhjnHCYs)r4OQHYf@4*)p;J+V;-=9_`_qS39Dz{~aY*|Y3K%2%4}lwA->}aE|AYa{s3*?9RQJDwy=sHU9wWMBlY6^( zOqFJFQCUfk0Me-nd$Ye*^~Qm`p)jJBMs7xksIgIqQ23kn=7=(f2n2DdT%*nV;7s+w z)$Lr1u1~^Est$s>!-tadD=!#3+IAt|Jy5mm?qOkc<(8%4(!xM)Ru(cgN`-PDIsDlj zp(6zC7=Q38TY{%2>a^sOrKDT^dzMG1o3N`L#ovp+zbMWW%g7X7xAR@>UmQDVf(>Z4 zT)SD!LvATo6Ec6G490c8pS$0WAGQZIo?=29a&6-!)UXV2Gs_9#>Z8#h%;?2Qqlwt`Ri~0b!3J{ z(yw2$)WM)$aQ=NI|602L`zx$*FSFx){c)@#%ta0=z$A`!RpkHuU?MgdU(|xOpqJYo z_KlpO|F(nq1rfGI5!I;a{V2g!kdz5=C?r$Ul-lK$absgp4g4LW{+nwO{Q&u`g4?b6 zP0m()yHU@0d%&~KSk2X0cW}Ji{5qDJe23HN1E*d5G}e-&lst>DL-uC{z-}?(v}ovu zM)t*rz9g~C6jXG77>y*}u{cJ&d6(_P^HSNq=HbsrR%!2L0=n46&xs9Y-Sq!n%YZV8 zIPe&^O;_rD+-GXyG$M4pO?#wj;-L$j!o6O+p4{Fv&1flJed0&Gdg0ZND#p4JOT><6 zA>|c26yOckf7b*;kC?)7lNUwEcNeCMClP+kw#b6cJz00;NE-`i*m~^S+u-`#`=Jk` zSK^hjF&2Q;g<61A^#9vzTE>)_`l8q0{O_)?|DF#ES z6V+y5diIZst!~xw%w-eQFT{dTWlfR(m*g5Ch78J<${oTU8xLJ&%koQ7NMEpOSktHA&jA>eYKTYfo<3%2|?Nyry^*T|$SAJ*V(7zJ(;5ivUUTl;rLciG;X&EZeKAxrRXG41vo?qUfKtLToMJ0 z2P{FAg+METVDW2yiZLg2TyQT51nX-}79Okyx|Gn6z*FR?&M@#e)+3%mP2*9RM4IZ zmJQryCV((OHlPIhp<#_`C+AbIi*H*SOI=rz>_r)_zx-qM*7|o-z__QZ>iNksD}Gc- zE`oZ87(#{eF?uuH8dlgMU++X9Po>wDOl4hFQ%@cqu1VVO8z4p8`-MVjX0KPjU-RIH zU%Yqslekbmz8x3bOkbAG*m_eotz#Eb=33t!>%O?e(-$`4tBpM0?Rus79{s&!rrY(4 z+MO21j1C&+xHM+1aC~CKwBMfDcY9uTN74NAmYsnIzBZ=-3lDn=68DUox&EqF8 zmyS)9(Vqr*&c{gH7hB8MN(uV|?owz!G!{;+IBe^XoF0n%)mPZKbY&d_bCr8Hr+3E% z7o89Lr;6Q<4`Gb@H{=!=&!Gg$&XNl5sx(*JxMFl zGPZr6%;Eh_{9Gzk;lvT;)vAgi+e*B)tmAh0GWZ_$ee*7GkhVdl7q}V?r7~c=PYCHh zXjJl{@o7XUrW%JhRMn7ab?J=JT)7~x(!Swv5T1bjDv_0exN>bNouch=(m68%!Ex&f zlGFQM#HCZuf0Ecy`I9ZiI>}Nu32Pnm94Qy)7~(Jup<8jG4Yug_0%1el4{Eu732lP& z)O4pYyLzyiZB!NNyrXA!a)+KjuB6C~sG|!q4wS!A9bgcp2GPhw5N^{%?`JI|R?e1- z@$GE1K5H@%m0xrc(cEo~wxla0D-oA|7Xt{s{f}9~Znczq0jhK`NwnT+`9ESL;GDF1 z@3mQIGCCZB6;XAC9jc$Cp>|MIG5H1rJMqMQzk3HAEDDcv;Rk4GI2X=~RO3OA3V>X{ zv=08cSpY$m9l&*&nZ;R*!GBCZi?o0}b-9CP5|`0}Xo- zC_e1vh!nVC=Ksw0KnP;BNrZkqOsu=`&p-b2)uS=->FawcRjEnmI8l+pC;WE+-+6+x zqsaD9R?2(WR~0_!;1ZBVt8fPdw)V*>y`bUSY;5dBc}0&8bz4_bNtuW$j||CJ!dc5k zi+!X~f!%(mK&*vYyUDWx9AqXlzcW%(12N<|r+~Gaj7(j#h9;uevfX;R!ovcyo7G?J zTPSGV3X3cCuaZ~*3-#zr!ac1Y1HU!>d2?M!8yppz+Ybe4`CIQ8X)p&l)a`?~AePQ& z;Z8066JBHr2PEDYZh@=fN+r4_V(w+d6$Dxu(ZOQ!Sk_fKidYc`R>?}du4Y=oxwJ=y zoEVR6GlGSwrD@d{l#Z?#^C@~JYrOrkB!c{=u8@s$pz`!vgHZfO&9UAfu<_Yzw;^xV zzNJW=-PT0Jr0Ou066 zzFm#d)B^@T`c63S!E&|4Yh*flPq|<(j{R8eKHhoirTiyno{CA_{M0W#;xa6k0wEi5 z7Sk)bb@Jg#NX(Wg=b+N(QzUku*;1eAM*DYXujIFe53T~=7*kWHr*k<{5cl>mZ}djR z2M9f2F>6_UFcdU622E4q>4FV;zL>F3IuAe@zcBuJh?=u!uV_!0k@Yq3b?m~~Shpyq zI@ek$W4G6PTDzG%iz`?2uUz(b%RM$Cv_MI%L76ql zUbyw<79p;dLp(#?Svw3%1gS9(1Mi&tU}f)VFKm}m6TGlA>T`2vb5AWn==2#jJ6BH~ z8El_NqqE^L(Ina_!ToX>JiG@Cj035O$oonYmPA`s5wgw$_2CJVKjAS)*3DC)-=&!o z*cHmSl#>GA$tJE^$MJNe3N=lG+k6M)+5N0^o0TXE4}k*O;X8#l`#7G$hbS7);+ZfR z2=00^Ks-XiI`n_0Cf`>obv_MJvi+dE0S!reWC=`Cl!H3WSmT6`_5|9T>_H@wn#ghq z58@|@_lWl+x8^OwgN_v?pmdk3u}jQB@mfM9xN5s+SM^Tiq|qgc;?Re4tPyH$tUkiY zTBlTN@WOaPtCYc0o$#Qb+iQiLq@iNSIW(QEVyk`OOT@u)_#1Jp>$0|6t z>;V5t1cZrZj^v6qGg=Q!FLH41gjT?t?teAKx7^f<%`8_q<)th+1J#28^XB3wNXjCa z>rylY@#q=p-vQ+5yW`Al&B4lXR>`e9r3hZSEZE+*-t%{}4>(;oCw^+^zK&GS`)p{~ z-z-#>{PAj4BLV`HtJf8e`_3{GPvbvs(j6>z_tPwoXt?r|O_(yFo)$g&{B2`Ik6=U_ zb{@8y*mX?ty3)fh!j7$ZrO8tskgM&g2%o+roeF%>jFd4#jyC?K3_^c`8urt-J4Qgu>EFi?k6^9FB ze2d?Xt>3;mEfC}K57g#+xje~#8w-p+XblvhG-KXWji)HW|+{r#B|+Hw#z@+NC1U-YI)4-R`ZPJ%(d8$U!C$c zBn?!}sP>1!p{@9plluGC{IublOBfkXSxi0kxPw0ZDsx>~ZB^Izu+L7>{y{zBKc89m(DQp^yNO9i}y!GS(A}AX|FAdTt>lxUu z=l76uj!N9D)aLvAQa#HO$ATs1{I_%=a)ENd64)o=>2q-D`}NE|K{oy-4L{m8h2lF! zDvz6(ddeBYAuzW89}`|R5>r(QH2q8y_*ksBHB>DC-y=+E3HHMSwwU_VTFBt_|H_$X zGZZouK(x3t5#U>otPiAh-ckO?**)<^YM{=G_JPY72-Am;QkOJf(^2HZ0ef`K{~_u6 z$QWrsOiGqXf=4&R9!mmGlU$pDAGRYQ+DIOUqK86Ly9<355gLNUT`_)-j%%rbZV&Io13MrPw(GG)HpzK8Klw zXPpTS#x1pkKf(vFVFz80?a;`Z#bu~;6e;JarMgX$l)8!a_y*-&$v@d1sk(fEZvIn2 zO@>ZeLHezYTlvkFsuu4CfpC$q+;P8(J@j3XpySP-;Wanb{e2Xun%{*wgv!@YDm6O{ zy_^CD(dzngbjfD7%XYpc@0-F2LF}ujUdh;l^TBo2p`l^nL|f|B3$NExwc}VTS2`-^ zPDO3sHZ<~R#qvH64}1;enPG=SUg{TqGhKweJ6pa}VV+Ri?(O_Q8f~E%iWizBax^pBY*1o()4e4VDaDNh zmm}_J821JRqSIVC!2#8|5&IO>IBg&Al)^=w94Brlx>ZCtq^s*(iDETNs!dw$KP7?= z^)p>-XOE2#O@*AxGO$zG8TqLRO3}}AX^AKy!NHiM=rF5$6-_dt%2Ye7 zvO4?ne8=Z7-}^O(%?KiF`E&{bO_#V#tgm!Pxhj&tB?$VZ8Ly-6qnf0%4BkJWUa~x+ zHO*+veYAD*2fp37S7kiYvcJfhW5k4(^XHS;Mod(N>CC0;9$*x^gHMWUCFGQvNt4lI zd^;7NSaX$)E7TrYTHLAFs5hM6B-Am9oL zXVFf;XX@)%tj3q_s}CpvtU(Z=RUm7QnxS-wxe-JN58Nt3LAm#?UzJk@K&T_L9fJqY zA^;lzLRx@qqASjKSQt3dzSRe>(&hz0QB#Dh+d~L%#RFLBZhFS%NkC#@4Z(ZR=0_)k z2)l1^2kL}gKR~C)b#dxJ~ABMfTI33Zj24jde@Yft5H%BUC!xd>?X=4>( z^aG$&#L`M zd?E>G&ULnC^-hw69u}8QnbZ^=JY{gtAY69QO)b0ae7DCNTkR-eRwn<8v)|@jF7Xz3 ztuB{IZJ$Lf@%~3NLLhtPx>i3cG^s{WW zu=c6bEl+g572M7>WQH2Q_UcgLiT3xXs2`{o+UYs9J1Q<0f0M6s9ErbC^UO|~PuW)n z+CrM6_!=t771iQ9m8``}xOI$<*gnbwZUAV~WD47ya5goAUBtVGU{rl7`Y2@aQ;@sj z*7u-Z&uJgdTGCv{%t8n7KSu{VsHHuBj}F+u<>JZBuaxQbCXef>&;wEm|;dTVSo^o4#PhjL#)LLrAVj=E!v?Jha5il7zolhxt zE=y%)^4YCFsF&vGKT5+5=CP@hZa>nr8TEY2*CSfZghKw8t+-%R)Qgw;Y$9)}B?&Eb zloX^WtXMzf1?VIU`&)yHZH5{JDZMkn%PKqxWC85a2fdyo&#YrIOIv=j$(CxQQ3u?l z#}(@gm>G92dku9Q`EdWz^nmJfBCI)^`nrVRHs!*fZ1Q9dmVjA)r&`eIdo!Z*i-XIM z9(Tx)@9r@A!pf1qTwCHh__S{cgx4LrSL#*soj+E3kbJ7Ilr?lowdp{Tj5gFpjIOEVyfcrEA@-&suU6Kh1&w_YJlA0{Suyx zC2n|fn)p9JTFux5KmN}5|4sI!L~_Bl7VQWb`@i|?-@k-s53W{lBPe71uc!O_fdBJk zID{dPKak z3>G7Ui#U5RXP6D>cK^C>a5Lamn(bj}+aG65Spwmm_qIS}vf(zl70`U28=xQL;<#9X zna-a@DtGO}vrcL~DY82pE}2D58n5+%z0-3oWgNey$uPS02D|)KITKp9I#WIJ@}ET2 z!TbK$sAA_q-nznT`dXzVBzna=>n2at{ZII-NSO`(?$7m*ev#UTRW0(Tf%mnbg=%(v z9NhiTC%bBTQ5HnM=&GouT@p9R(1pW4*ZQ&YT6^`>*~JVlZI8wf{>RXSf@1R5_8e0w zD@izOVyeeU2$lPY?$XmoLWk`|0*#cOU}W((5!Kn7h=e*_gZ4{a8D;uw z)ow}VFLc`Mg@6PY0xlzI-Xu}MbJDaiQM>H(fSCDH>5YDcF(XvKB`ba)r$O1(N3;Ks zcA&+ovb(oaZh@UIZcs+4PY{A8dyKzA$^XX*+UYH;{M8|;}_%5Q)|1e zQk;`;$P~4in-YrS^yIr~}Z|03;8;Gxd{_;C`-N(p70ZIrVZG7KS= zbDcR8!ZcGD#JD5raK%Wuha%-H8A_BKIY!1*>&Q$LnM}EI=Lp~bYuerKZ@raw$9C6#t4r+8CLjMw2pdWGP5@Tau?oMH?<>*85{ zH%;2Pt>JKz709F}p{p^yqtHb2eDa+VK*3RMXZd?U{t5=&5&~KhO>8wR@IEPoR=h3p zet<=_XCzTQwevFpH+qaHKAjf*tN_$^m{Rmb)ptXM| z)D7k6LjS#AIk**)iREqkz&xWu>6}+!VXNR8Xl$EO&0s96Uk z|8j9?hkmSSeX(3i@b2?AaXmI`s<%l~@s$(bw}| z?us5!O4ZkhesKe0p~^D-(`|j(zr6K8#U*;_);cH`^p8Qo3z3r|y%AA7t`$6*vOFfe z+&c8YWA8{f2SSx%D{8cI+@EwH0)qrF7iYssKv}w~jioyW0}J2W9BK)Pz(p#eiahLy z++SCT%ZctzyCB_{Vsk96!Ahh5SLx6Hu2&_AslNBuS!6HkmBn0NWY|6|8thdTBadTW z`J8mhwy)}Y0eV=eKx|f2fMDc?7d)p)nCp6BX?B<-O$k4sy`@+B&faJTk^6KJ0@rmS=)?rjn8rgo+rKmPo)%f~n1Prd4EUF&O>v zH({WF0)eCh5iDIb=yyA!4(34+O!2FOdYm1f=pWq}LC{Uc&V8pca|%(8D)kzZpuPk05pE2yaS>3I_JGb={dsSAmH+`r|HwYXP1*lEPOP9a6yJ#B zjyuD^-hQE7GnU7Pqx}gmcNW_Ht%j7x#+qhz)~Y?tuktYwCND`O6cMEyI?;glB}irQ zp?x3+4L^X(qf7|-iD0`SXjkc7t4GiaizKx%kx} z+C3N3y9Aa??sFDxpeynCCf^z@f!M5J3xa3qEXrn6eoC>FywwCPfl0f?B4;W3!Vfe#@}d^7Hac~<%x^S>a18kOB8+kgZ!MHKDY zoQd_dVybwfK@S4j{PF7O&V8lH`>HX87R}S?FAF1^wQ((ifxqW(?hT@xAceGTz8|7P z%&z2a$=sY?LVLDGe(+(;hIHWO-FtSUd?oE7oIV!wSdIm8yxO>zGuGb>nzwuTniQ@DwAXGt8-KBN22E4S2=r-;v<(**a>-`mFqk<0PY$SH%2wzcWOT1 zzakPPDuKG&fIpR5M2QS2b}N?fGFuW~N0V>Im4r*xC2yH&FGFbRMyk7CO)BB4@Sdvq zg{Uo0yUf86G$enk`?-6%p=%S6Jk0>UuuNnnL8N2}Wa}LxVlu3VvYlW^d+BmjmB^hC#VL)MA-CxE(~(J6<1nRRZ0!M`3=z;kof6KgQM@Vfk3pA|JfB# z{?;Hhjbd+oBB|YYSzO`9R2H;oBVc;pP7)$#2cO%b6s0x1z~bcFSu(XP1`f_)h>(-@ zd4eSUDsXHn5l0zi0x~ZvHN8f!uG%gNeIX1B(>oRXGgkXe18P1L(pRLu;0rT~@(7r+ z!-3?%SbSN9AG(H?W)){%sn!N&i>1{3t_TUnNphMV`%&hwjbxk)EwT@6r{L)FKsGN;kp-^?>4+7cjtYTE=bc!UzyEySLmk z4P~|VhxprSkzPwvmln^hTcF0GM{4|+rLQl$Plkw};f3X6`37~b5$a&GaW`~s@w(8h zZ#DMy-lQq^E`6lX!)y(fx&*Ih_j=we`rMT;wSIU+v-p@9AKZ=}zH6J_e{*u2Fm(|G1aUu^K=%f(BE3D&%H6l?1}8X zvRZ!CW1Ek;iT_+j-KHn6Vl|$n@P`VX#+$zWA;GxnK5dzenQ2{OYwN2_1$WZ@heVrf zQCkd&m-7Nw@7zXKV{XfO^vEZU;0t2$lJ^8uP4uZ7T#_PTIm@4)c5ccL`U$ez@h>1d zr1}48cysnOLc{ymGV}E0CtgxpP-1jj=_*kYn(x}i8%WIwQ4^$g;+f5F#m=-S2M-Bh z(haO4L8`DvOtW3JU;yQMWQBQ&1_qoT5$<73aTGcf(dd9m*Pvw@WT3{Nb>byH)gu*0 z(a>f!J3|lJjNJsE32k}9&O`#G|I>?2V3yIX_9wjYXUwyWnNLOL4`@5!=^tL>fqTjk z2|{!bCY3!Cxs`@?9npr44m&@D%cw>_p}m|-z7?(T64N7QyYVeGD>99H-Tm{iuDSU} zr#O>Bjy3wN)za(OPv3TeHCPrlye#7Fv2EnA%Y3FkH1au4#6ip{jp3de-g7+x1r&nR z)p=a!Slq7A?wY*A-PDt}ZXES;O|$j;0UAX!Mc-C0G~IqG{o&m;L%lxjbqG;S^egLy z2~S;;KkDneN^x(EZkoFFVZXkW#go&bEz!-9rzuL}@xy~`GM~I;I~c!0Umv8+va2XA z^ig=8h;8cZ=!>=!bfGU;9<3ucAEBiz0*T%sGJ68?m>>u$p{RpyYI+-sL+7eaE z$gk|r6}#0{jT3BD4-Bv~*U=NFMrd#eThc6_lq(Yk@GsPBk6Mj+XL1@N7b?ZndV)W z;4?)I?uK3q`)` zw#xa7tyN=_pJAQ_HHWO-2;c>+&%0qgspy{S}z`dvycUuBUDPbxDg$M?513u=Z z3g=Q9@kj*LHrXddoDas-yG1cIt`^894W9wjmSnTuoC{d4sl8&T;)iO_E8TmO zo^*Oz(q~#=LV;+$v|O5Vm8G#ao9xu7%Cy)>de&fdDPQ>wLC?aywJ2$gv8N2cbcC1bf5K-rHVPsaIo{u_S%qAZRY=#cP0b(oh zF~u<;!@`I`u9-7?V>Z=r=%x$t%E6&K+CnuemCYxQCN55APHKB3R&j5Nts}QJi$nSy ziX_Q@L$&F<;Xc-pb>jP&9Er8lNlH{qe~sK;9_uaTA?V7ID?&RytReL_OJ{H~o8zHh zlGd+y6$@DL2Ku7NK!bK+3(8eq{X{k&8FrYH-rgugRh#+_h069Bbk$eg**HA;>H8s+ zpBbviKA?-6Q~EH&$LJvsCLvMdoH|b4bU;~kI_VsJK?bGaM63&HU(-X74ZRab#g<3= zqUN#FSq?7<_=sRyddItLpagu(CJ&5GgS5c29wZtQRgH;3#A+SHH}y+2ti%F9o=Sxj zRNOy<_d|vfh-jwptBZ(^^V9R&gW7gi(ugaVSb06kH&M`Qr#?hBfo;nES+qUcgNT0y znD+HqLk*aV7sV+{oJW(708a@~mGH4HJQ&a_qmBnGECG_D5m;x-hOxL3aHTYt%3fMd zv4-X8!;CVxs9#7RRicR`spUwNIjU;VQa*1t@2$`QeB~8BoZJrIYK*`k0L?>PPpW|h zst%UPmI^0O9N^T!X7G9>D|*e*(zfy+HfX!+JhITx}Mp;{p*)d)wM?VBSSbXe)gG zzRF6rOH55XRk7Tr@q9G&X~|0m3J>3Y{EfJ-DB5U+m4k4z>)X7Us;RKxrf>I@?s6B5 zD_RK19rirurvBrY{~dghL=3Os^SJ(+3`NJAIg#zm*_Z3u(dDO4y|xf>3Dp0bmoj|* z&iE7Ohe%anzR-><$GN@wwRv`TCME4|!ILf8xxgfXc72cVea-fqDd@3?6bvZVvh7j# z-pKEl;E^R@x-R*?2)rI5+Wn#0BQ|}V3c^)uJPK0Oo6`!>^?wBZe?iytGOG-(qG4f; zcX4gT>xT^qe!UX%2dJLwMBil4<57a#^p>)h&+AroB46{9yT2{++}mo>Txd2Rzj^^s z^}!boyd5zXovP7_@T@K9jf6jE`DHW{l*c*sF3_}a67EEki%TgEIzR=lHGuoJ0|xyns^|e6H6W-}U?Bs;7oFw)5XbUlk>OR9Aj2lN5|QBzpF& zr-z5qQ;J1ekVxCno=DOPp>uAm`oQ|ilc;g^@=iV3Nwhw89!IS}pV`&}0(HFdiAnh1Bgj>udr7SJYn&!puZ1VB6Yi4O<{1ATu}B{LapK42_r4k140V7UwE%ypMGK(fEb*i* z4c8{<)h|gzRGMRo>@Q&2@q*UeYU3P53f3@hNz}94&P=;o`xY?!hxXWuLYqUo2j$8G z10F8`QZ#8Mzm1$td0`~`rGyr9v{&NXSlZn>aUGRYXB_n)q`z`ap7_;>jl%uVAUrDEu3;27S8odgYf2mFw z^IE_s5LZ4bL?CV=<+_P3egQ?CSF@>VRpn{UK0EC<*1f}rA3$qfz_%byyskXri2;^^2) zdJ?_M*HW$(s)u4t$lbkjA#0`-&}_3}%;~8VejNVX^gIQ)qjONjioSym6v~$0hrcU? z3x#!m5m;VxNC1pMCA&ba#+wB(K@S{41Q^C*FXQm^@!SUw*b_Pm7m=rS*au?c36TDE z4IG1BpFU`fDg(&78q@v*+mDZcV@y;?r%G|q60ta**gGNk21amxn?VUsGNDM?RZK;> z(?2D0kyJ8lL>I;YPEu+ff)6G*9<2KbF?Cd|D?bL<5eZ)9|9mRbK-V42qaCP-^b{h# zR2y@u!j{!KM^6+up!X-7#9yZOAa8qy+ab*NS-MY|6Yyc zi*`TA2C?7Yyx#2Z9W`)f`^mVsz2A1G@efj7ZKyC)XoU=8e0I!eGGcDIOkIPQ!Hq$Qx4HLmA%a*(tHp$y(g z9A2|qzczXisLPaM^Q`dS)`v+O>e9=JpRH)8r_bomUf)1zX`Alcry|2`)0-Qx$M5`H z_@|mAn$Cj&6$gyL)yig#*30rcUj6#DOzE1VbGgO|x^;Bp_S5;EDhglkTr||MLOq|0 zGnd$1Q0p-(y=XAD@Hx|Ru6y6U-tC&>zn-qrJKMmS_;FSPeQ-_BStgy+2HC2R$`$Z}Tk_anz|!&Yrg)jM#;EJ>^lpO`wWuNg`A4F?^3x*$ z)*NHEbR@OkSYH3VI^L-9vC-rZXfKLB|4VyuJ@t1uQ`uokTz|X8AXa#oG%?XaL9f$^ z6oB#l5d%O|a6Di(7+p0l;j(}r&#It>L&h&AHQ5b+5bK$EmR>Jwk0#t|N%ZrXzppA) zPFVbHD~l(Ek{JD9VEeOLed#>uJ?QGcHuhIsNhTO-^&dI`x>0iX&#H$iwMGv3Gp{@j zi;A*jC|FBpugJBnA;lJ2)232OUauU6>YYAk;z1G%h!e482Vn3}ws{iRG@U3<2a$k3 zgtNNTz!Z&l?_qV%gdX{kPhrrG`_FE_MAlvvAa&@75Z>aTVQN^o8PEs#6B@8%=*)|C zfbd9%G^gr6c9_WVvp>Oxw6RO{|6%6WSL8&I2TTLLK3W8}>Zb&P1>XFF?CQQ3QL7S* zXOyU)Kg|yf2JCqRtc~{U@0MH)2WTn4!|1hbNWy#< zlLo$1l2?Oh*OfSQ=Sp8(U|!>WgVG|NTB6Eitj~3fHb&C-3xX@j^4%o5Y!C&nHs%I? zJXB#S^p7wK>E^-e7}sNb5`*Em`viAWUz)d)IYv&xA|uX&v`OvS4Xj;&j2K7~q1UWTLI521>F>PN|=Cem8))|$~Rs6&ajvW?A)M0ioo ziH_3d`3fY?*H<-6+EMMbS6?Q(&=c4quoU@2UFsYJ&%ne~W;SspSB%xVoLiRUD*(Lj znO*IOcKU;O!_VyYC-oc{tTsQ60hnaA zLCZgroi~31w#t@#+A(;-H-~`afF*!p0YuWG+QtKIbh$_%s#n9UoH>MY1)PMd5xc%t z{29vG&4mg)B@zZ7dsvh!HJ*XZyl@D?10Vrvn`Y@wV0&(CL(d+{{;y{}fZ1dhx_bV1K^g1#0=pnC z{E4)&nWlyr#X*aoJy=3Z#SG z50@f;tZO+Q+SxRC#yL!i@;Tt1VE?ZXv83>#4$tTD1^U=$<(z|3D{_xt)VxUPt+}D~ zOIHLpUVhi(SLA2I&zr6ePFIx+bZ+PHoLgwC?)Ud!U!3wqY#cW*{Zb|6jnNW$UJ=}}X>GTV}mm*Rth+ab#w=5v3>b z)RMIDo#!d*HqWEJES|y8G$U^-?bA`2mR-q9i|T6@oxJs#0HN+*!yx%)-lbNS4kz=P z^XGaGqF~=Z>Waz_a2J2rsPLsu=3MXIHG1#H1Cxc;SfS(3KbI@kjt?hFFv@f4uK6@T ziyvetma)XgZ9*+5t)wa>ln!vzr%+qmRv^{C4PVv?Ffb<&rTGQdS<+>+f>YbZ1L&1w z8GB_}RLc31ArZk@aaKEDztTmgG#J@|ly4+Bp(d8Gx=@`u*mU;5toal%K}PF0u5GI?0HCeY&E$^ND-QOAXEX= z|Gyqmup`g}1wWE2J^y-c*}GH+8Nt726%erl_5+?!N$4-=gT}@yAd~Jvf?~Z<3biIxvA48TliXw-1~K z!VRULn=hA9PNXi1Cwu)6Sq-;E8Om*Tu`uWxSj;u)E|v-9THk+q5q@C&c0#j#ssk%8 zsqPsVT#OInz*b6v=fbNlOU+_)hHH7Up4OrcKf?tCcnCcQ%0cnHX>`pE;jW>M>A|;n zfY%bPjnkhYj`b&U5VOgjK=_#rd zqS8zvgucijMyw;-i%jIymL(?UGA?E<(K<$F5agsw&~^@Z@OTV{#uyUeDG?Qi;>a1C zdx&bE^?2$pVVYjvgQv#`FGnJa@_76TQBKMNP7g!JvK*d+sgh4-rGv4;p9iKs^1cxaFZf;rG}&?=&*y|W*i_M(}WSTRonoGK%F@#Cx zjr8DPwZ0O~mk~RscaqFA*pHk@xLsG(+oLK%<@HqeeDy*pSx4e7I4H>@T(vPJ0&LSl z(+N^MExi@jsR(XH?);TXNjfmOdWNxbfg796>w2i}kX`lqBo$pPkZo5&8$ju9?b7b4 z!OqZ9HWf<*F!A&anS(&QiK_$kT!cMUxB?zjh}l;%1P-G?=o0WDbubDcVOn;=ZvOLO z1WE8fct(m&n>S=vb3s-F8dF%XHFx)d@tv#Xp}e_-A(X?1xj2_cxA86U(-|nLFrw=1 zoUnc@Is#iU+>b)O*#+PUiP@ZciHM829yju8sQFWu&V)W9DkPXFZYQ2LH>Fn&p}2yV zlLO1+Zw;VOXyqhJQTq z+h(R;8m8JLlrXQ=^?>{GAAzp*ts`)sV)wVD7?2LeH8}ZhIMtu;_==9-#07nU9!WVi#lt+RdDVjEhB_X%HI>+vCIl8o4P+{sO$i@US&TiaEpGt_S6y$Wg?1ZC9QpzNNUqUXzk00gufM z9cCH_VA#`>Qel1YTWn1~0*p9%89$@y&3GFp1S;c5uNyrzkSMEpd&3p`*G@Q9(g=RD z@^8n4y^?a28<2mlMmk_EN7682JEr0L5Ov$3?`4PG1wBQYP5PUkFM*^STy6fu8(M->s7W_=qz@2RX=0dcw-WN&GWczimu2Id5kKj6FN zcdBE5u$J0v8g^Q_U1C$xjD3HMBAg%RgA|5lD%I;`X2N}S+$Iv%^N6)I7zxx>1FC_< zCx&Z1X=n*sdFTHe<$mrXqkMKd|2;oh33|z%Wb%;++ieF<=h%ga&@!_xp^FM8NJ0Z=bL%;{7}d3tsUhUA(!YM2A;%jQMfc=_qp}yphUQ+8G zM=zEA49fIW;juJrCc*Q7bMHc%@bW0Dlm4Ar#sY_OU^XRthfrY{`y$|ZQgtH;h&~z1 zv}LA<6yfu?Mc@v#DS|aY*%m2;(USp{Fw+x-W$jlJRX&_>qbhAQ&?g; z@Eum@*=cLm8POlnzEjM1DKl26wL-_=CqtwBBYUTUpF|8jcOgV?t?}<2SgS z@2F?ijb%2*BgkRkd%Y_fnfo+twdo~61^u`PSgNUDlYYmXE`foyfFxvk-l2n|f*D(B#FE)gYB?ORZ~>c8LpcB!(rHcIKgEqb@(1Gei9!lWHE(s4 z2tl`Wr~)$uy*2Qo#KYH9dGW1m_{_ULL%;5=}BE`(BrY1za9|C}o|@KywMKtrt> zXSAoM#?1*`H5App5>=IjYkhra5jaODPufW#s{KEuy8@Ehm!w$C?)E$Y14~c=^8NvA zh6P$yZ_vbm>O_*?Z%0vkCIhpNDL9CnkT)i`m<;tAMhiB+5ozf-BXs;GSTU~s_@dWP zg9;^_l3qHs^7Z^JIIFYsooBDYfosof=dzn|Eq z7Y=|X_?LER+OuTmBVW=g(<$_&v?^m~`Gp;Wk?NeE;IZSs8GhEfz*o8T=PY222wi$x#NRke2{8ssR5 zSr|4dC>row4U(yFf2_Cs_FEEStD~)T)7#5BSJFBk@KthKwn{dOdia)^r2Q5{i_VRD zG)0*!cDdno(f>Bzu~LPcgO{-zGutoHt~$qMn4XxEr@@!@kZC01&=K zt{>z|#bOW-5y_mzagi{h*}bdBxv^L~z^|}YhMoj3oP_tLS#athAleAkrWtT`MxU|U zE<|^~u7s;+n}mNz;?(=4_s;Vjz~?mQY%t8YU#DqXC)fJLz@D$b&gMuykX%RMDKv6( z&;ivf#QF-^g?={%9?)v+6D5eku^!IA z(ZpLj_z(NP;ZLc{>+?8TgMSLRT|As?P=S+* zE1d-=p-h(sp5dfb&i9Q2-wZCU5RglzaE$Di~#@Q~Gf6dvkQrX53KabXu4zd#)1;Elo z;D&1CewBy-fUyDkxKPZ{#T6JAmcU0cwnA_A*c3)U$J?QfymIm+e3uQ}Fdqn>`0W5{ z3sfXvwswWIB5G))655e~GVkK{I`VNkrXP>2@>4Q<+k?^?9jOumX8V|nmvhdDTQ-*E zI0Hf6fcMamge_kcKt`dzhCi7A9fuHhyZri_^|i){rxUH>r7NEu{u#_~AHonYqP{60 z*oVEFS~rp93uqX8fb&#N1AX`jkhBEf_9HcfslR{)rEwav3D;>)GY3hMnWdqFk11vS z4fr;W&HXj5hR8u!$h|=!G@Kk3T~8a3s3RNyIO#*2Chfku*kwt7CPA;z6dobq_SU)g zAWsmmwiA-C>eWIJ9WZ7MO*7B7{k0Or%u zB#}*|f8HwTLlPG|XvtJCf5niQCA2ged|!^px#dq0Y9`+kTPlU>s(C7KL& zU=M2?v_KZ+jmlR*iyOuf{a#cHL9T`xX34M8Vy>~JHH zQT49PttNROs#PK%U^aOHyG(+|y%;5bB{E-~lO%#jfruL(3ub0OjBMG7AomTZ<-K-7 zlQj=@MXDtf;R}wXIVv`+RQ*UQ>I8gUM}_w&t4m;^i#L+ok2)-vA_7^}_-MbR%O4(C zz=m|qU|R;pHdt(h^R!$$Z=8UFAOzJlROrULT~>hDB_0r|YS z35dq!nQX8b$U29IhyQ#|{#e(AbS-sYMX?748F14tN>l~(4WMK%Fs)on7SZHYOi!|AHcV{==?O zuJ_GtU#>X)u6S{{z8=}}?vHP4kXniESzyWh_;@UH_3^+gq}G+6yJKJI{Or%|S_^-= zooq`P9e|0z;9btmlFhK*S|*NnFmI|Ba=pDmO#Uc$Qf8m)7OY3F;I*n&&s!;zcdDYu z`z3rn-FRVabwQ_DL`g`j^`p}1cWR;c$G4Wee{lD*{W8{yXCto0HYHBsyhfLc-SD76 z;izp6DVMj!o7FTeExA6Iwj+R-7bRyvtWZbUYjz1RcU~+;;amHK(BxUFti@}T;zt?z zo!Xu?PeV~B5*}jD-IMHHl-e95^CiK`pSu^Q6yKV9o3?gXwR^zM_^ykpjx}NCF z23obd{uBS8M{n9OIRj9T4Y`OZ>G)VMnl1C7hPT(U;Z{_^obF81jwZDm249WMFPf%z zAKz)zoO%ruS2f0JJJu3sGmKAEJQwke*INlE4;?OW_J?Pf@wZFJUJo%R`?#InVt4X< z+3~EtrYfEmtk@>{jZ!+pRjT#m#lyD2+v)W<;~7cbuJ27ZKak(+#?6O68ZjSEc$E8e{1 zlUcntFWfx8VsCS_gs;$@r-{F?=8IH$g3#bPBHYZ!C7{#x1Od~2XapQa+#CQu2>T0h zPUN5#*y=j>BVA|1Hm80E=;pb%9lcY7%u5e>#J$9Va?CW{7=s^ns^fC+XRH=N8Y(y43{f~15# z38z03R5OAQDUq(=MO8v0j(h|zSEfaIW^4Cj8cA)DVpMzsvf)|SHS8Q1(Ycf{x3VP> z0*jRyAKn6ncN*%pn%f~V+iF79Uz$8j zV8?PxC@)7(2*95F*X{gtw8K|~Lx})e!JG!WJvoSpf4;W}`ucb(oGm)Dmj!O*;9H*c z39v|T1d>qpGwRq?w6X?(ZD?sL)tG?&KjeTGH^B95?hxc1s14B}V^E>PwTT^O7(MPX zE!vNvWg9#Ucq})XAwwg!FBKuvf@tXtIz+T*SrRy38YC-#-K9wTh`+QlJ*F$Psp821 z$~k%7HZoH1RzC$L&#jPhUp3IUiR;svIv@qz?0+`=r@=(HXvN2Q)L6vj4&cy2`0Pg@ z7~}na;?a7?b;D8XHS1xB*I&M*`drehJ~&h}^nleGUu@nP0LmXd(k_guC0dP^9gE7* zBj%MN&d&&zQG)xTY)3TFRf#Ch>f96TR#$d`xtzqvxaUubM}s_$*8wv}{9pub5A>e< zD89+%xaMDGo)|-(2OwldLwM|m*(1WNHq7RrPGJ~-MzGqRQkmE7>j~JzQ9<)3k6;7> zZBieSQaml@VA?n12u$n`iLKgCOT4~^te>n@-DXzf);CnN?+D1O-nBAFR@UbC`sFP@ z!`tK#0`TS&AQ}I_%ZOGfIs?j`!93mqj1r(B$w0)sqn&2%;r?8#?FP^R4p)!S>TbP1^OnG3Hev!f1CeKtU$PW_xqcLnkiFxVC?o zcfY5+O{qpdnTL*2Z?#1!i-uA~AN>kl0A%`UiE|!IlB)OUWdW@nU?<0-LV1s*qKSBN zW(GLUOfsG=0!;UwOZdg1s5h}{hTpW8T5-u*bCMTWFP}1Em$QV$hxf`G;q$$ERPY0= zPTA2l^i%e8l?41q82j3QGO#@%;5#jOk3e>CClhq@8LolN;HpGUGde7`Hjgn8hbk4Q zD)hG|V??f^L$?}h@O}7a7d-J@0*uO|Hv}}LNmAM%DjUfl4@(T~#t(Wc44_Uf(Pl$i z85}@kvsISB8sRb4qy5Ms6qX|h5wp~_djREqIi&NDoc!Bd`fz*NRNB%0gXth{z?a)M zL*?_S1;sStW@Zzjnk%O+2tj6q2eB6lm-B~c#LtlgUn0MSCYW|A)~>QT#{-|`RurSy z4eqF)Z1B5z)wlr^;{uL$Laj8Nq$!hg1;TlqL@(k3j>-!B4k9ZJXEk`-@D0WqYB0>| zVC8pKfV>C^?!}&|v?y{B*g*V#Nf=G;j3i)Hoh4c&invhw7MK^6%~_qL6;4uGFD(Ee zPZ8`#emxAJ26K9e4Dun0>S=7wIFrebk8hAZFyX0B zG&uaOd#i_MN_WG@%@UxFmc4k28sBB!Y@MiTV7B%el7n4;E+%SD@9Yc4HF<{=GH(>| zzNjY79Td>pcev1>M^xRSSGK3(IJN$)m+eaCDv^F#<3w4=p6U4BE0%G;uBK?6{B*;n z-%~Ak^Q=qjt(Sv^0rpynuPhQMn-qPn-L)vOq!(!{qdq)i$%eG%rGd%P0a2Mxh*O>_ zQzRj5@f*~Bu(&Ru9ZPr%a&j&Y7-z6tB$SFTLAR0aANTBb){IvV@7Vjcjf}pUTT8|v z*Pb3*2w7E?{GRPqB8TWs`Jqb{3cDRnN;;?5I{fvm(c|gCAIwWdR*z|Vx+wZlQpZJw(<`Laurs@Ddu4n5%xRA? z=WeYyuHIf=qib@qcj%8>g?nJ!G33=)`(jd%gUF@^$$3Cj4!Y2SHttQoifyUnqVuyW zc;WzSEN!yn!Q{CzMXO3mo6sA@W1UorU?F*z-k7lAEg4ds+r)B?zDc19+|!KvIO|;583a?15P?b|f)<3i|JiJb3{| z)idliGEWIx;7lYrei{zX`epIO#&1aRq)~7i!k9&xcNK@5)Ko$!U|~4_i{lqB$!9p#tJHOZ)^lG-~fBqXrXOe zfqyugdqh`N`Bm$r0ssJ4f{SDy?GdhkYqK<+^>&daV{beU^`Ba83V)E-6VO#nb@6i9 zGRqeH4If&h*n&x)z117BM}uN4np=y6Knq30 z5ikU{V8`n!+Wi8SH?q68I?(adpZ>l^I1}M<5=5L%HoEc35av6&dNqZjD}Lq>Lj&R# zvuV>Laf+l1s9ou-xm; z7Ui?_(B%4<0hJ-8EP%qtWIE@bA4171T3moZDEP8qHs2|P2NFchyt4Rhz;Io-&4;8c z24^|2QiPTkP;U{q3SVu88!>X+qwZf76}!{CX*=lCw=jaeEDZ(2JC;7GD6p8o{io22UMUQ+MLdfUB3G zFdHYhWA@CTBY`W@Ud=N`ICr^#rp<)fCb~If;pK8P{`fCOc8lob~zNSRGu)c zogkLBoiJmyaoy^Xs4bCYb%|b?4eFHfoj*tcOxfGyYCg|Sr5==Cb~$l`fL)|8OU)VO z7W0zV0*No{$g$R_A#tkcX%xq^+6PH@A8&MFkPlT4b*~wQ{(}Qa+H|XvTSvw56X#Fbm z(H*9=tlYA10ei3F+HYCROJyI!Gyu@W{35=IztT|*atA+>gx7?5nWCA#{Ll~4}Ysd%r(?h>#Br61qhRd}CU0L#l*89!#Jw|;) zmYF>_AD;WdbQ_P(@;H8}Tx9Q6ype23g~5H}g!c-<_u|iWhU`hoG2Ux-T^5fJwRiH{ zf;QWVc6Y4!^<%MQqP!bZg2y+3mS8G1dBG9Y*UAuJ-Mx(<3%X@n#J?r3R5i8tXsF|q ztTLPs&w^=LoW!Yg&~|6?!FsyeKlD)aFOgou5h^9%D$=m_<;5r zWfmdwqQ`Gi>{fBp#jfkmq>B*;x&kKkq?i}b*@Q9CVRhZjn)6A! zn@w(FS{{}x1u1`Q%#d)h=%NlN{g+V3YPLF!^~>8`GAa0`Jx%1eWl)DcmFpm%|15)s+lQdyJKd#RW2CRR&c;^J=Gkz}`C*e}Jc7moftD5%Ht%RaF=gCFhV!qM^_ zZq?;Ag(}684!>`2dhv@iOTR^!+Tx=0e}cx}ZkN{2{tR%!dxKZ%t2oD9CHbcH9~=i; zWN$n5jMGX?P$DKi%nyz18b0?HR;sqg#r_;>8uX7{d1Kidp>Aqau2drOvE8(1hcqQB z(=`6nQCAl8gVCoq59WFScL)%UF)^aGsTa6N3PjhC*3aIR?9iPgxNAX*Q8oAV{Lvc_ z#=dt=)K>%ytD=H zZ<&=-eh~li$s>GVjbidKTY&FTu3YB2%mMV_=h$0`O1@8B02i^s7fpr)RbOF!^3H^G zf4mUP$#IyCRL#|?)z|pri|tG!JeiqsIG_bU%^ZQ{MB5sCL63${gB$*tqcY|eR9G@9 z!nCB~nv?CI$x~|n!1nvaTzU_2D&fu(lGNo!Bh8}2z9bRm&`g(QALZItAcM~&ZzPc$ zRK$SX4c%e+-9KdytD%7dVd3W`GqM37M(ZH1>0w=Qg9fp8scCu^@Ni8fMXqT6P`*S* z6#7JVP<|<8OA~m4*qHZ?B`RJ*(ULtHPHMFSE?z-Y@m88i(SE40H)Xh+ioTCY=oKV! zEu!nN)3h+83z=j3UAhRL}jOBDI(EW7}IS6q?y zi-6-gxMt)f!@!o1W}8cf1kYR^t#1m6fHfPxTW2S_u&J)9qsT!Yg|}4?p(Ulw9*rVu z(0Js2y~}Faevm077Z7vZE{QHebGnt>Dm^8^$c$_#RGTKLB(%?JZOEY<6#r z^xXiSkzV>VGFV=o01PcjmofmEjY8t9Mnp%z{r(5C?Ad6)geJ83%QJXDAUumBpoxnl z|5gmsXQ-A?08{!fJ@VDj<%?#oBbD zIUS@Z+hlH-#85644oPh@3^dqG4cOWFVl{j-E?4{pE3BsiSMWmK3Y+tcbXYwzM=Rt#kVuzQrgpNmKMg zndde$rp(EYbj-bpo&OhaZvqbW{{9b>tsL2+EQ3mAU&b=FBz2-3$xdaTX0i-IC`}-YRF*J+NKkNIrx z&wan&_x)PNf4cwnGSbxKKTy@!Yl^BRW0M z)v$e-A9V&pU5seocxQxES@AG_qL@4~^UfpVQdU=ChPjX`o%1zKYgx;q$mb#n%e&=ux-6 z5k>0j>aJS<50)Rys86i`O8;oim=P_%QCa5ls zruuP~i%ufF)WjhgEjd6ak5O)LZ>{!wV9Ws92M6xCA%*Wc;(>UT!zO6rkGPAwxhr8= zZuSM@E3;jFco56BLHmm66_)uB@jL^^-5KXRkS?L?*;hQqs%-b!8Vj?15n^{pVJ<9W zQTl`J`~R`_gB=P^6HHIZD2OSvEUld&gKqO}Z1%*Go_GS(%AYhC@<=&;gmv2R8j4DnvM{Cj4K^7g%Imi@AO|21?CT%k!HB;*AVl=p|5e z0mc41&Mk5_I&T;BSFg~Gr&1~BtJ#Iw9hVy&({aHzB}Z%^q6Ed>XGx&^Ek;R%i5$0m z=Q~kedp4Hp<%K7qRlLnbP}VKXkyBS-rcV?vZ>=Xi!K7ua8z~!ON~jU{>yg!n_toyf zMMH4aNvA&Vo6ni(c!hU-o%@LK`FlZw8QOfu#zYuO5=2}VrdNM8)JB<_>Joljf0Nr- zRUdG1RjL6bbSx1~R#M3B@Gw?j6Lcd$xRP51EL>^8ho>Y!Ik^HiNOJ`f%kOylM_D2` zPGh*kGL#<9K?Q`URP~QZ1c*$qdQ~_jMRglo>1j9puFzZ3gkkyAjaFbJGQgrvr|>+M z9RR)JTUL&sBO3L^$Na>IyTwkj&<_LreZ&m|P^izrU7G;Z(9p^H`(U%nc@?E;VNl-* z84n#7c*#{uAIU!L)vU<0bnIb}yk=CjXJ9+c8pb(J`;1cgbmSmzRQ!O*DQ zG-Ui^x?8uz3*e()2Ng$Y!4EDX+BtR`K*~MAf4ZF z)f4+*HgxIX6^h9je4XC+O9XIE`F`#7>#J^vTS{hoYm;Pm^H4^yjpw88pl?eZeUOG) zm!Nb$`dorCt(8Vh0Z5o5l^PLd4TVQay%2zVx2m-0i;krLmJ@p zOWq2KKZ!NVnWbWQiCLL7E%Qg@P6stHYA@8K^A|13Nyf*RT=RpX`TYui^kZ9c%fE zqZ+KN-D5iu&tTFkc;5dx+pRHq6NjZE54?{PCWQN-FfkADF#M(YDBI-?g?*Uzmt$RF zdubWeP1aaeK&vMe7Tt_Am)4X@zfeg3-DkCto%mg!tm+F|UanN^0<2-)1q)`iZS46E z;_b?HdmGy?x?WDb{RQNHMotn}_TJo9Yq8F*G1e>QEoYNq#DrA)=mr@ zPgkPsu9vqLJ*^EYLEoP8?i-O;?-T{+R1cEt)E+|#+NFZhl)uU0wTSxq%Z)0f((sl+ z)7@L{=Ry?GeIG@-AUlEXJTUg^uUPh;UZTX3d6NzA1q*_8SYtgx?-k%uPQoTAM#Bm?iyoZD7{VdNO9~fIBjg6F}N%2zo{%VbVOK zxI$<1UbBd{y%S2qQ8L}8GH392U4;AM5Bgi#9XsCR*eUt7Vs=`|(DFHQ*Jl@Bp+iG1 zy#_}gp0tTy$oX^u^^P(0`H=OmLT;^nnAbLL5}fRl`5OI08ii@bTOcp>5c9^a9T#G` zIi)?xfk1pH&0gYd^wfsRB}usUnmyed+S{&+0w;{W#p#qyPonnOpSu%lb5!X}&ci21 zl~wzuPBmGG+O_0hKG{Cr+h}X-dob?D5dZ!qr10;Lr=soa41 zL;?U+*yO3vUxobd0SgB5R%rvo+3%lVQcN)(x)tg|YNpr`6Jj`)spkSpl_#*wE1(tQ zLDtRCB@l%`yj5``-(yH&1;|^vrx~dMXX!~Kk-`n%YZ_8jmJ&4C=Zq>Y+Ym9z1#NJ*Agf` znq-j85~2E{VNk>O>SGXf;ifR<%JpvmHqS|iEe-%x^c!%nKy6Ez?=ks257UlzkD82v{R`l8>i2(s!gr48=nF+kP<`iZb! zZ5ExP>_zo;BkK^Paf2x3h7}R{qzk6#8k4uCdOlS6*4twv7TZAiRs`SCuXX^-z>LO1 z2boni4Yid*nBvjMJbi$P`ISrHj+g@mESd<@_MxpqTffz33kiR+ll~a+2e4{!AQ19m zbVj)Wt-IJf(>05|mS|O5AQp#lT>(v6aN{KtW|(@-{=l0-xR#(L(MmDnAP6=}Bt47T zc`6Ns&T}!o^c4^-$h8w>gA-FZq9uEYI9H#_p}fv^RQ?=Q z@lInnYr~5SX*0skAJ<;gIG22s(K5YUq%^zsVpr*o!BcC#ekL*&?@^@~!E{GcEIa-7 zcV(@)`*?>I_B}ieYk)eJ8|dTlM+hrl%N}qq6EhzQfyXq>VDe?J!G6-yw7mLbmuCgg zj+~)@M<*;y8zUOSUfNZ|DU1Dn+CAGhX2g(n^8KA!q$)$Mddd}Ce|Z1rtlRIERAf&b zlRmMYpXYc!S!X=YyH({Gz8bMa=^c9dV=?LAJ9)f}+lAFOJ@uP6-V1bd+~YGDIb!qD z_(GS{L&-}Va)H8Ru1&2COW9VhrFhF^K*p;ijfzbPpS(YXy*>D_-Y6+v1KEeQN%M$}p$PQvzxS!2d1xR@EHy7FFN!~~cM5uxbsk2LLbDyshKSuIv>a4Acqq&Ufp3Nb39xBj| zeeqcWCoiNbO?r1xw?_MW*Q)ZYGFPFk;*MM{=ML>K+P$mqB0L%pXlXwjm)E(lM|O8s zxa*u1_?#O&yK7xqb!hzstDRb@({>CL?k1wmaNVtj-LKs1R}7@iymADju94)SC)5Ip zg`-GWwYS}|NRG8~ELxX6($MaYTxW;Pd7BqTGN%I*f8|`MDiMlu9xSD9c$UTS(smZKxn}>qhdOaz z_~^EW`ssW){{MG}6V`P|frITy!ge8+Aj(^y#23!Xfl95o?|rwfO3?q>#&u{ZsqL5~ ztG2~7nfLg##bKTx;)Uryt`v}S^1IMd=w^^VU|o|ok}ZeUD{Utk6`3A%A5d+eJbtR0 zf8bPi@^CeIC8e@<%dbL>$pM=@`-Vm5=0}G<^5)0r9=Mvw>=&i5mQ@)vVc@uD#Z4L+ zSz|ph&y0AmaR0aVK4Zcvyz` zWWlQOtO}es&TFfSH96!wpR6EyY&461A7s*uP~nJYaQWcMxUElQYIW+=SWl95YaIP< zU$SbIgg%W}&nnP)K4%XKjs(*XTzCQ#dX5p~6+bY`^QW@6Eu?{#X2iM;EpNA)iuK3> z09nSoLda=u5z!abCXtRTk7^Ugi8EdEr|HH0yfx;k*sefIkZvL!Y7E}%Q`<~sg)4E? zbeK1sj+iV6gXsjzAd?k8r|v^ItdV^&__G)CARNotR@<$*|XE0-uN05 zP$6bG2kTIJX?;$*p?DWoz_G##$|E=~pwmP0)vah-kBnyn9{8XR?FLzum4vp6b`H`) zS$dB4D=PBI-%YuG*aCP~=>_@W6Js4{iiOA+yEz=t`asM1_9gJY?aB?%D^zyW2OZ9M zEg!QJk+2*j0lwt}%#{Wx)RL?4z}HqEkpwxS4t2P(lO~SL8Vb zFe){@Lg&Q24VWo1zD^ol#ZR5LXe#e!mf_-I0xwG{WTo;lEK#F`tl5mipl~-P#8vSs*Ao|0DK9 z-H`?%G&h@*n)5GP8^7EM%<}z7QiG5v5;Zqol<(`7qS-OFUcKc}S^9{n!p!yDOEoX$ z7G55s6iCSLm{cV~Ayj0~A;N8St&aD|bR-WF_wj9y!`t%G!A?H6-E1jQF7^*6zd2%afLZEY(VfT~al{b^7o&X|t3z!MY21>bZ<}gb2p(*1r3||2Kd`W) z8FieRy~WRbnx03&>0?4U6{oM?QMA!uNC`^`d$=aaLEUKMZWfctWEUi1q+9<=xai-* zYmj^rMhK7ebbqI4kF^yVC@J5rxFscCYwZumH9m%Jb>X}`^Re@Uok94gyp1xuWG30u zGIu6VDFwz+!_te8f+{10Xgtrrf5 zA?C5>R>x`1*ni{!iSgpphKpy;kQ41>C%P7L1SvI_>0g$R@_fgcu3alPb~2=jK)+jMy=(?A&_<9)`?eCn~%$t&!q0%ZWnraO?K`= zmP}&|bvR)v#oS=~0j)~)Pf{Slz3EtqTzTkZ^7>0hc9pCBD#X&P`#95ee+x;C5Rv<| zo3N+a=0Z~cmhED~o^B2ut5ZZk3k1#AG}2Q$ZU0;PBYsB|VIbDFf{|pn6lhw2o&l6} zUBgj4)Hd_2XYDCC_cU`CLliVDO(qI^asd>Kzb+Voq`4j&=voS%k}l{M&?q6WEU^IM{5hCNx;`LJA;4x2m*;B?l0QQ59=4C$NF6wMgJI;$nFQv zsQY2{y$oYsG{O}J;4ab5I;G*}Z3YcNb9O7cBTnZ*l1(da*(?K%U$g;Wb2J*r?G`9h z1teO*+<|WA9DzQFGLEMcTY>HDuL5JQiql=-Mfwc+ok4f1{~U`~5)hdKBDnz`Y8ymQlsQvUkp5U!BUntpP=) zK>fR%0q)Ul%Jr<1%0&OIU_EZ~Y^vFJk$(b^tZw{5ST4JHDStmzunrYsK_@&8YP5o0 zY6B74pVb5`aKc05Ttg0JbDkzJsctx~QA|?itvh5OAEBz{Tm!o@~$E zTBj-jxo|Nk;>MQe=H_3HlZ@7~(^!ZP%NdbZz1>_v9m<@Yy!PJSLTR6{D~?P#l= zwR~9?d`8{l=k?cu!$^s_kCwzFhEqmo*H#;{Hg?Gza$5?I@$w3+7h1&hu8w>+X|T(n zj3}El?b@{1``y^>))w`$xvaQc`37RAga9gj zcKL;TxB~Gvofpcl?iTqF%J`qYLo#e)uy- zg77XB#}Z8ee(O7gpp>`%d+iPT*KNsu}t|NL5T>H6Ru-KDhV< zHeq6t6g_!P?a?GzBfn`|4*z^)=kjrIc;nWkhkt&Wd_6e;?Yx2f_04aplc*cTWFJ)k zj%Jq$nz*jj^xT5B2F$$bXh`WTHbHMV-?<6EE-fW}tj}@i(-(Vn34KRT2>!a`3wo;_r&3{6mmYe-5YSzU-~DeQM-MQhy-s!c31UNxID zrXXUjjeM*vj{8neF0fLCPEvQ!Ba0LX5Ab!RH6J247xTBYV$WdIwN5S4nwF653opj* zuYBcR6f}~ufbI5tc56K6MN64^B=o&P$!jM_^NeDsFTSl-nCvw-nZ*i87eTb@IlZew za_p^69#hG6>_O{|toLH##?|VbB75Wlc-W3n)mzRrKJxs4B3gP{)sVJMk2vm8tJ!4X z_HD;risO`3E^a?DCRB1vbdpaNV`#|LF=~37bu$5byBXo0VT9km5-7snii&JM`Rr{a zoHD%vRW;fKS?3&u>;Iu88)&m5q+$PASE&3TwUDY%Qm{d1pc=4B3PtHy4ayY zWN^;}Pq(!H2`o<^%kUhs*}@rIA~2_I=0I#4Zt)t zUy)AKqMsu;csizg1JJ)WxHtnO$;djSk5)m^d3#hr5{=dJiJ>Ubyts>qK1hW>TAGn3(RsS`jt8&$qF7#Cf&k|KmnHBYKp0w%G>LLvImHko@~@&127b7O3+7d z;yLeVE(>Iz@RLv?rD?K2^?V;L-UV6PjH3l`PvizHJecEvP}_M{yO*v>=LbNVg}x|7 zX;RFJWgR4&3wy74bf;EXay9q3Rpjn;c#vIr#9?(-&=(Z@^USVr!sp@1f(o@qbC-un zN2j9;cFv!a{z3lmt=bprZQO0Aep#T}NCa>DcTfvh)S;yw{i4g7t`pyrlUlj2ERr)<|!jJVC0jvHdau2rHY?CqO7p&)kY-@BuI_(A`!Gx6X# z$tGK&Ny1@DClxtF?2Jn>n%~qUZduiPX|VA1SL6QOPhPceJdxu5lNDq&Z#?gw?+M|H1$e@G^=edQ3nuY{{ci@`LbC0ZOyng)cOGUve&1_B4 z>ApP06=^umQ@y-hF{?cLQ31Wz{zC6~ul$G3xeXz%ID)1}%^URs4+{Lqon{Unv z;652t{{-e0TYylR(LKFM(|7Q&4)51(qFTW>gkwAqo`eSIgBE#ydlZ5ejbcR@SFq%%RC=r5D@E+AuCFRWBN573X|2Pw<2QeKuAS)DG3o4;SD)s`5s!1YGL?DHErnth9I#lo>CRF5Bu_p(ft?8k<4n?v5{P7m zP2&a9I5|}x{1vx;#MQCx+*?#j^O#)|ew-^&Y5K)#U-+b_MfLZuNEqoOIA!MJWFX?g z5bAn$Znw^@Uh?a2*{@??ILkFOrpyDk^Qk8I>8!4LFYdLHuJjn^e1E(*xE)VR+x}Rf&U^G;@kD1*A`vF?zl^73Y2jP3!Q$bDJsQhy>h` zkZt?@O~KcY{U~E+zCFnmOSjg)jPtSZLzjbs-^S;4x%FA2sr>#mbLi=zQSu71gU_VP zJt8Xo&WM5VD2Uq}4I97NZYhbc+hL@32Mg4rITw+nF`ON|b29bnImUZwTzJ;%Ss8>g^x;Rz1zIeWFRm`4U^Vby zB39Sm23oUf*XRczsCq^t5}|N&pbxuVj*PNyg(WApY?|#i;DReJE2VX$r<%V zK<$|ztEb%b>)?akQ(=CgALqIIUMQNMoJH>_9`ylqC`knaxxFro+#Wm)X(=UE>Ah$) z(N30~IZt0bt*6mM*0@h=-L;1U?$qMZt7$Kf@t<-B0L-RspkC^*RoJ;9c!T)aBv>zh zZY6?Ol3Kf*Bb0k+}t?ytwTx1CD+3^Vda(gf`D>Bjo3 zJqFs9Rc^gg@RTdOZ8(3vUpGASdynOtfdb3fj{Sc|<4)U+BTt8(f9@4#<)~Cg<=@;M z2TkKTRDMF&j$E7h^>pDyAcTRcj(K}tMm9?-(kaF1%9Sqw^qe|dT-tnDv3^e&gKVkj zV=(=szZIB_0SaT^A`9$+H1hl+If69yu5tvFqTeM$fIRW)yhnpYop#oxnmXNmshlYR z0&@lL4f2M{DC_d8y@gY6VYB*nU$&Ro!epD0lm45InzC9I+)fP$+5uo}2&0Yr`_Y4( z@;eES0^txvxXZ%NTQ0J=rul#rRl5_Qg?Y$&y;4=w(5Z8Fw-`sj{;X+;LIkN z+5w+ad@<$JRV4VP}=d5y$I?R&H&)t3+t2YPJo^KdtHU8613m7wXNYw{fU7J?>E;Y zzJwLpaL#x3JE8u;J*ut@m&JaVY}{ii#TB@O18x%m{Xtn!NnpS)_bD06NZlBUQ*S|!o(u>0Y{XkK(b zu))oTjJ@B-Y!k&YbVpM4nyr$6jZJy2JWluo;IuJ@w4fL^14%=$e!YGj77ZTylUceR z3ou-1ui)^x`y0e~2y09#2svw;RPTi#Ck|ESdcc14tGCn$J9BQStIo4T=O)k3%za|# z^}3=nh0p=vk>nM3yem8LdkIHOEp$sbh$Xag?;4vix_iEI`r>v#G{lMQ1>4*CC>snv z9k*Yjg<*K$p(&a**V84B9Jp^qduA?SSSoD^eSYnm#2YaO05(!Z1zncA5K9zS_nX6f zCu)&KK^D5ko|8bC>~>TcRpgYQ>6ZN{(Jz}c@F7`}Bbvc}oZEYHe5$$?KeDqtjX(A5 zwn=21Uik@JwAzD^EE*NJUj_Pg_vPAg9!83PJca~1KTa^l!AuO~O#o*FqFaY`F+xeB zU?*t|l*Un*5%7EUkZL_acR`uwI?z;mfuU8Eb<7XnD+iQ0Gtu zLxUkTr?HR-GHPz3U~Q3?86ev4Ugy>VM)wF1c_liH&8ErST-6ai(W^o-`j9{tsGfl*L2S_ zGe(UE1?OvMDUu~h{l$v5B&2+-@+x4%u1M$&sd#6g4vdawb6a{*J}MwLUmmwc-UF5bNJCI+wd1F~G^rSh75jS}3X+N1g zkDtBG_zd&tTX@;D9~|aAp14~ZYik4kn0rjZ^|?oCdd~$0w(y$7;h)mr8005 zb|()1;V9r^l_^5q5SJ)c^C7=#-!4_!qLd=0(m(K?>d~50RCz*@W!G#Y>BZy+;rFZ*N|6EZ;fQyyHzt?PU7?hLDsP4&0MC z6j-6=6T0E4A!SVp{4*Hkpkr1`gt6cy7!d!sB(aG-F>e7xU>efVCx~>%|M4lep4@EZ z;-OyDAWUS?OKw5V5fv+wfbIUd*>ArIJa`3Fxj#PqhAFjyCt14$Z3P0`SgMcdH!j9D ziD z6Y~0Rf9PfgZ~GX*E-<&8p@eEG2u6SIkO&(ANKByc3r=m1y-qKTvDodpP3vJRH3q=@ zxZk_>!oT6V_&BJ{gp`~FXFOdnW_tss^OpjrGz6=wBBje;#|s74Hc+g#K)Fs416oGS z%-Q)vN(=Kg%XhieJN+=)5u~pWM{MTV{Z!1r6xjr-USctxD=JaeMb$YJ97HLGVJFI! z39AXtyC@uW@gxnjrYw&#!S96!%I^=SNRkOmDRJD1M{f3o2S&2LV7t^Byh~#Yi!^M3$A-QR82&r66Mo#1*Z-7Mmov|qa4#q1* zOaJ*D>}c0Kn1&!*37wQSryeg*Zp_>JZ(65|wF9ObMlZon*r{*W*ClZ@hG|kRL$LMpbL87FV5Db7Q zpCqhSv-!Sm(7cJvbKqQ26^LU1VhQCoK|qsMK-Es5yd>z_rF%KzJ5fQaBS^s3xB=#q zP^8e*&#pH`t5Pr%`OwRa2aS3?5X|&d4#JK|zea^0!&asTl|=y!NObgcOh*a#`{Ggg zh(eEM90OP3*JNhrfa77#ewjr=JB1_S)D^&aNp;Zocb>L9JdD~zYIYmXYRQ6+E5 z4HrbEmiFFRf=LUP99QdmlbWZA&tsa$T?*YRt@k~1YkDtjRWo(ppgb<(Y|B! z-CsOVhit~gTS}5cfqt{Z5oE|-J*6>0{lP-{SfNS@7mbD%Uz5TSyfm&d;NWTd8Ti5m z?&sIV4VqbQc~7#?hlp0L4BZSuGbY$I_WpYO!7l)5axC8bow?u9F`=8i&N<=gzTVdh zR(H+M`AyDgOb|uYi%!PGV`99_mDO6BTbhzxMo@$$rT9hY-eE@e|Gu~xotV>j2D5*Q zzn<*BLP>^tpcBjHljORgxIjS#PUeQ4-bamxHTTXY69I>D@85sJ!ITdqS)974vZ*uY z%Z8Taq6SQ4Mx3g)#)Rqg{;-B7tH|M@_YiNsdvE^gz>P+H&TM<^_QH_J1kul_3J93+)!8=FdfHGI&N+5IY{ zC+TAABdHjM{K^s6Tq?6hTikV;rO;E}@-6}A<(&_Sf(EPfXOqQkG^R{1*;qNH+Y6+z z6KvEVO#T7G`uDkWX%hfv_o3{cIB(?4J-+|=UzhQZsHuCWSG^Kx1q0j7>&=`!O;%je#zto=zInKX8ZFz(3c2ODun|7CCf5*8KJ+!JK{}BGVF@M7}pH z7*a>$LBL}+M4*Ak-OEFnJ#XnfFtRsbKeXA8jAw0umf;eY_KfjSAoseZ@C)NtA>ZY@ z`!v_c%w^^*Mgk)pi;KcVEeuZ*^dYu&B+{Gp(;y`9SFr$Y>uT1s8VK`36NO-d=J|<& zW1yWw2Ouj?`qk?c9+2Yt4%}X{svj?Ojx@!NxBG|cWEpl~SvL}tQ>U5eW^R3+=TyPf zi|yv&E{pX%3%o0lOUpJ{Nb6T|)Tl(6>ZYlv;=$#2H%k*`R%J7q+H7{g6ysi$*9R+% zC^%iTJ|>$RE_@@l*12Yk(Hlwh4(ufx;qQVPIZ{L)Q~M*x@F=<-MCc}3);|MG$PqK> zU6DRZV!IU+lm;gzb5^c4#pH{i0)@#c50zw3jLP{@2p|A|uxi|I&<1TQ29f7_${JY3 zw$k%PcEd#Ibb1BV*CyoWDpB>tx*b`g*?!n=%k1lSxz1(6L=oKWNV0N%K+6z<>!^*S z1F(CZ-4;v7#qZU%=BIy+>BMvW;rXdT5?U9rU7V7E1gdd1=l)cF3tbL|s;q=Fy`A&i z2}?&XfP$WcLzamYl+tmb*jM5M$%u08ICoILaPl#t1`0vSnYoFNoysZ$qxk?rLCp5u z;ze}^efD{|&)Z_^S9nCVWY5eVfIjruS9N9zboIs##iXZcDBqj-_>~hy_W{Cq^241m zSCm!#TT@T;TT{VQA3!DAV*;FW zDC4YAGvhA(_iEKpaNxc?pj3t!_g_S5)Uyz^gRIUGY_DBY&_i- zyDWDr9oGZ?Y2n$N7uf^#%|Jx;j{|>l%o?JXf}nWe#Q=5th07p1(}iX6Z?(IzomMws z#3UHn7>@!5YHMU6Q58fpNCUyHrkHuwFQi^5EqIBCV`PP((pJ(eVwh4a)e-v!>=+|V zrMFAsKPYo%tM*aDsAE$~TG>J)G3o+Qvlw5AF4vepHiiYaQ}EwTRgG6 zEt!){hj%-yTd5TmUo;lZ!TnzG_ZjK82V07 zJnm)S%RAyNRYsPdJ}(d39{o!7)_}1;rRd~|ouZqrfW)lD11L5s6%|(u^M>TZa^B@! z9o|cCpYm#Q5m_9H`*gIEXQ$VdcYBj-nANGF&(3IuzAaZC3YFH(&();sM7-S+_R~G8B`~b8= z3Z!=nK_6@YCaSbQ_w(Pr@{eQqU-*ov3&r0mQ-Ou3zzT9eA`{kgc&alB5)>u+l3Pep zHW)nNZUC6EI76pG1m(-5yJo}DANT;n2uMsr7I^f@3OKFnf>SCkss`RU9JgSqz+?o& z`!OI47KcC^NQ3nv3raB`9(J#U%NQuoLVb`aH2-b6W0E+LTXgT2%zORO&*RXcCbdPo zDX&q+IZ{WW@ewksmw?6`z|E9s2WrzSMq!)M0~00`#T1yIW1$hoQUZljVpOFe>Fs3% z=NHa%mTETF_XXm}7c0S>x}NB!1iWI`9&tB_GXvNGG-SSPhCYo^0Agpg&DM7?RvbaB zT=U)(17zs_A(V}}H8?}pS0NiI3zN0|C{$Xfs^4`EQ$vJE1px;`9=~d3kHZ5X>tV}! zgl{$j%Uv!<6ZG8auNu@MWG;cyV$Eiu3!#r6)e`MzXzK*O4YSL;Z zutv*pBhax7Ig*DOSvSoH>|h(D8em4?w8O#G@_g|cvaBIKHj^i72vjyRr0q=8O~0!l zNhO^5Y8!q*Ms>G1KaQ+lebc$ZY2;8eNUQ_$wi$iPnNv)d$o{1$uOD_iKhb{R`5k^= z))ZN^5_jZnj2AmAx|gBm#IN>;7XRYdHB)zTJp0_fsHi&I_tH3Q&(*%@ zW^e?FrQlBPjZ0*{z6XM2>_B|t25=!5McgI|>az#OfP8gjoQ!urPexLFss8Iws5`xC zAcUqJ)(_S*e%Dz;C@m7Jan~A>slf^J*eg#lC$lcu9z^JfZc>!$-du?in}xoxoE`_J|ueoq+gJQ8~c5+_Fsk`2K2aA3cYCZevS0S%GUwu2bqT5dSKAlLR z^qX;NzYMu$91>l&kzq)5j!wEq(N-4H9Ym%T?b5eICFh^InEz8pFn$?>Zfd&s=&D^u zvY*MV59L{^wWsmk$bDU~R6;vV_D#M-G4=Q1jmTd2TB|O&*Cb=M$t^^kDnT{>JU4Mb z>7_gW;}G92XJ3Uffg-B+x>;d1(Jyb525-^)@M#N&AIIyRZl+s$Uc|X@UT+7 zS1PF4NpZc{?O3!khrY4sb`bgiz`g&p0O|uVbY|O6gJktA7=ufkIstb7&ujR%T=)B% zp5FwvatnJA8F=ooC0XnL)5hkj-k4$;Auj<~=gQnd8rcqNOsWS;_QjD=ThV#4aet>^ z|L1Q0Pv82#w`Dj`qZ`n^k#z#KZnR|yV4|=Aj#XCmA7-53qj~}|yT*b8wOzP9YyvJK zB>KQ48L;-!mli`&1JGv6fqpd^S_0qNbx>6b2(UTMa=A09C-LOH=}?>B2Lj)xI18FW*+R3}erX~reD{jT2$9cz#hLQ}Qd8n9|H zZI5k}#u#geTI#Rk$V!g-p%a9?k8uOGGtatB1x82^zk&qCc3fRoF-&EegHYWtXELKM z`kQJ)p|Okqcq9*|;6bKhAK968JY3f?^zLbP_KMb>NOF4te$XJNu~DG}!|>?j|`Lza1D_FVB?Y6uP+ zNIiE*X(wTF@J(NKwAQmtRnTl$=7k)l z!u+!z{-J$)0h^D5z*d}RlQ17yY~r`YAL!<57h|%qxU#+}qG|$5yr`ZYOi*r6`#4pw zT~q%_79doD8f28TT0Szg4+NdNkyfUKTA8J>{X{%V1H=sv|9^Fl$g1Xe8fJrpVr`>G0qH+%p7pP z?0|E!ZC|=V>(T_oiPL-WtwH%>4d{lDGS@#s0(3deU*y4a$MS|X&)3#Xo`#nZGx=gDmO(Ea%>m9Q@3BQlR7BG&Q$Wnu5?(ZW*Ex9A#+l zdeVJcN!X^~6aE1^2EM1BA5qHTpL-M*Vf3jE)+-YmFF!{<*l$PHN6y@rdwYu??RU9U zWw))55?WnJ375!-INX=Z2;uzsAKyBL;X3y}44Z*=wgSGUG(`z^A+HetwJp;oj1- zJpa3~trkQr+xbycQ3f+@KBTrHEbQsCZN;}HsNfzMM_R)_d-12(v7D{hI!|ao);l+8 z5VHJsW$#x{x6kP&`8@L@I`-$W{Hgr>aS(+>$VFYygwoCisxioSf3wwqyAJKj z2GJors8_n)SlbFnHC{8c>rQ@?=Hhs0eacy;eLa>IZ?~1OZ+VWjeCJdHSt&N%0_7d( z>;?&oKn05;M*IYE0<ZumnPpssnmWF6(ipj z&(03h>({mz%r*#UGYyeqs2s6T1EaOo4vR!S6wkORqN753r08axm#37Qr&JO&!Z@SUgS;YM(5*a^# zDd9W~>(|b?W0-+5yVq=nUKPcyZ>_d9`AGHBjSH!c){OTcdTBKwXLt{X>f=KA`_T7h z7}Gqw-~LPd8TRRoDRhfBCf!0K#?HnyDOa)gB|*hff8#zW5GlHiZZS&7b&2$wi-(jQ zRUKn@<4rO6{h$M0BZhU`Vfz^Qyu3x_1V++Vy3~Swwh6;^;anPgys$E|DGvK;sHxXn z+}{P)wWeh}f0_uwVCuOK`NN_)h_dj|3S3h4sq=w&Zd8u!tGA&E<3noQcTSsdmBm6G zaom{BP32XU#_mZ{M`IrHF;pD7mi|(W7$mWi*3+4}{#_iJWfYUAmv=RntjfIV>Vc16 z#TtMDK{WtxQTtizF&61KbZL9ZgEZy2XtMEvV|9a$yGe?z z1^e{m=*t4z*k>oXb@+hX>Q&Rtdr$w|YBq3oI z#cZ;Uouh6$D|LmeO>bAO9?nAtN^$zVt_ksUh`f+}PLWWG*eo;*V4MTOc|=dZYTDdM zZX%%Fkr!;XLHOenzRa;C_f(G))7NeCq2Of2#E=Wd+MWR{J7Rc()Nl@MBmOygh z>9&j>0I;o~6!TknWr?87GbJDl(EixE0XtE!N)4R5Ig$M;yrUhTdh2&iUp}8SIZ0kI zFWwfL;ZmefTC^BD@T*W1?m=n&8wuw_-&>8`i$H11Rr^Is%Y452CY6KVv|<~eXo-t8 zj?U=amBD>Lb(b8C#WClCXO-)jSpY_JT1p3rh;z2}X$Tpoc{cfUKP9~6=I)EV!)$WO zG~0s^y88`^o&E9$SE;tgorZe*H=kOMZwR^Uv(0X+>jt&GM;_tt>BZ=WN(7$&Vv2sg zIiStK*VXvJkW=%S(_dQ5HRLA1V0LSj)gh77m!7ZtvM2EB7~RANTzqcYr&KAO0Q+!AJ1&2`Y3MTam^@^9 zlLiszCg&Sn`2Udi=5bA(Yu7M}g7pASP?@!Al}RN80*F{~0JRaph#&>Tq)7!fV2FYP zS`kIT5VSIHwKxS(i3AkI0Z|~a32CihNg5R;B^8k>f&;al=UW@~)Sh$R=l%10pY#0a zuMr44d*8!#U&FfAT4oaN)v!U8(_hfwLA$rRhG^AQJ*L&0tn|8`#e$O^FhBpSP0F?4 zydXOC)^9ga3a$lAR;D+w&DM|5u1ef)Y>vGf&<&Ayt%ERb0lI?iJi*_-=$Hu@6IOUB zXzo_kT%2qNP`SCp6Z=l)z;SE;c=cG%reO;bnHt`esvBB@zqG~*6n!>~SRryI1iC_ z$7|*{rnMnW$D}kL@4=#DDwg4jqZqgRBV#dmo5T0`Wg( zC7vRRx_^b$cFQs=@MqI4jA6Dt+_EanFfQy(gIgz-+jUUvq7(s`g)2!O6YpNC(%&{tB9mYDfYJhXa53-IYV?@gx^G^f3nPq!h z5*>#!5#p6o1ud=~cX*1a;@SX@6bW(tN;RipTnidrI-ES4`FGE&@=rmj0Iki1En?T! zaZd^$?6FhWXjcUa3x6NcYGg9Kk(lKveCbrqyN);+#Os)=s4yZbFWmI^GEsMiqu6HG zH*zb^EU3)QhFdo?b@S_vtnqaOf64X$rmBUgVra$0npgg>Zu?%+dGG2b$B!KncuA-7 z9}!SeDk4@`3#Aw2WlwY@&GO!_E~qz8xtm1ROw^vEbNHn$j>Zh{nEbQy3UqU~*yXV1 zQ{njFs*?XsrlHSLHC(!gA?kNpLrF;mw=+df_Oh zq%hsy$5!J9J)-t;C7{C!!3reSu_Edd3&C8HH6+KfOsJQ4{vln62A>N*W=}d=RLwoq z=Ws&6HS)SCcjb`wHg&Vk8QYus6TuN1l)>%OQ86oNv&&Is?;AP-x~ZX^!f$r+y(eS6^#0q^&n zk@fgCj(qg_y>CUt+Ln$^ZLea?_RXDtv*>Ky=3N;sORsElU2-~3y;W1~Z4eZnx6HQ2 zk*Q9n8!YZ3)f*c3^4n{OB$~Ub&iBh3ejHZjH>G7K0zg1wJtlkqrt;u+ z#*kU5xfP+kvJtyHyVK?z?SJIludnZkpEhaxikwu*6nl~#A3y2v_Lg>rvnhF?H*MMB zHFnFITI}qONne#S)m)P?vb2p^Io(;qLo^FriFL=k>73_PSrqw_oe%_Xl5ctS6sdD8HJmj3cL5bv;sk@!d`gEAxr*)GP z9-V=7bC72b*&19oP;Hgg714Crt(gCWw0e})>mgaGi+LtoC zgAVl#5iQy~IvFOvo;6{|?Rmgq<==$^DtvG9z$6kI`VewEqW3?c{JaO`IFPIjp0u~c zfUS_O9!l^EN+R9%e6lH7wdeAV0Cx#67Cz+7kZ<&~1>@thLF2T@l)c|aPTzaEpBR%>tRCm5a9C9T-J z#a6RBxbS6TS{dZQLy7ogNWVZsvx24=a%Vk6T_aDCg1VVw{Ew#9stQLZ)q9m5QDXIS zOI~Hl%i2@N#Eb~27@oTApjz^onF%?v6+QuL#)X@#eN&IW_%8#BB)AEEHPt)~v~){! ztDMtjxZG~7y2-$nz0BXWNLw?UHk-XOw38gOE^f7L+)&3Fqi;MbVx)I?vYpdX>&NBp zyR>oSMt##UbE`G$R=B#_K!{!JRc1M{(TGT7MJQ(TcdZ5WQ?jz8!vC|h4M!iNtHWyJ z>9sfJOpefOe9$u91oU`3<(gn7f;-MejIK+GZ#A^%e=;1CKMRm8tC|zEiMf>D(n^8K zlD8&_hc6l%%xs26!qv?nDgdhp-I{2UoQ6RKeK@pd_IGF6J>Z$CXW<&doOPy`0 z>b6I7!XAJ`LYfC!hi$Epnf67G^;z5-Yo;AgLgf)jBjGx7hvZPi(vNhfNSlsPsfl}h zpQW7$5E1d7N<;CQ@GQMzS`B*(C$k416T>#eyyq_VuBtb7Nh}aGaTqiaZcik)LXz0(J2aU*@?9R_tYk1lnCb;$t7O# zHNKO@jX2zbE-!TJ4LWO1?HNLTLIAD#PIB*7?=M1!DrbH?aid;I*H5F7$P%j}PPSQd zr!m~W3-Vu6^XeXWInD-@{#bnJ;7WR>YKOniFroT)o_JPKHFlDw9GBCYR_(c0Tg^NA z%0vrnjfVMPv%cMW*{D*6`;w2utC{D30TI6i`zj{d*RJrowH=B^W+b;W&CidtUJ5G& z^(WgkwXCoA0V8qeQpdburph`ZWyBAS0ju+8<;ge4!h$`hPjyC=9eYxoj$N5dZ9%0~ z2vUDa>ExN#4QxU5Cd*c?_5DqeX;_-SggWS!e3N!bFFW9u-S|0+5$aNDMEjQEk>a6h z4Yj^7AWa-O$2WZ=&5T&*+?AI;OIx zpI86vQ&T=&>TT0H-TL0#u(rHKzmIyMS1n2H-T9*aED-&>opyUdAl)H7+@$iH+{NWr zumk-O>GsgC%*Gqlk_3m-ha#%8W=@DWTsY3|s_A9M>uN~0XKQi5 z{fNE_aIF7+7$#G=oE`$`t48Ei4DRDR=9yg=-wdF_+Z;UN4xToMQlxZATnk48&X*it6N_Z6fdI@crDrozeftzoR@~9@_e=(b*I|#2e(u z*ur>{%9wodP857DyrAN|Q0K$MNxdXtQ}wvQepx}e7-UecT?Mj}K6=H}q5vWWcz!^u$m;ErQ@5uPE#T$|V4@|5Hjb(p@SgAZ8375w}p|{KwJ2-%t z(KksHY_4Ujq7D)&bIX|7cCb+^)9iliIZmm*I4?3+GL* zRI}Y2Clv*x&Rgg$wH}?+Ml2{ds+ERB8>rf~7XBybT&Ypfnn33pP(}ltU^8Tccx5uE zKadW*Cch&R`jMtkC;Xd2^x@HDFCWN@45O;0x-bR zHgwFWWVNYrLS2N~deNRK5Y1hzo6IN27^lWBKEXE|kS^(gaIGAK{iJZ2ZA=J{AxV2zeuQ+ZaBa7h4Pj3%M8CrP)co${DU5( zd*k_3m9=vX@|v6-u05o=pI;r@DK5t^uvWT6c$o#IW9&^{31IF<#1h@>>cHBiH(Mlb zt1AJ6FlU;EZPA%qxBM-_egTY`($nQD7jQ|rxrpzd)6DPO7AJqg);jk!&{om$u95SllN5*=`jLl z);bBX+Sv|0ERnQFbhg5QR?iwPb0qDkpo^*>40?;$>h?uBOgYX6PnSwK^UBiHr3VwA zsd7yPE02v1FbanI5H@ok6^0(YPTFcVmATcvM!Ll0NF8xZJ0lnP5LnB-EqIDeR6cyy zVh`+sglP?ogrX2b=R%|sqy3btLTa!^0@nF+E=;ysclp*~Ib&Mm@X2FKY`)y4A6rp* zhsALJgj16+^_*q*mc=thX8=zlN$<#WlE#o3ArDdO7 z5^6SKbgD8N)xQbgsijk=Z+a{41km29YjS7IepT;-G~CWVT-Ku{ofgL9HViwc$qCNp z)J=9a(UjK(Sv0nFwAT>zEEkg?M?}({y4!)Mqd`?12P(Cvv4q~faG`_Y0R$)4pSYVO z8VE?$RAmGWdrapky*f%E4dPa|jy|`chB&P*5JSDgyXwd5=o2769%f(k&zE|4Mb04g zPAlw}a5Fkt-w{51@R9G{_doB&!Q`YZ$B>B?!@s-?Va2LdFq}js+*O5Y9)%Em>wzn+ zIEX)l*bi0J$rKvf`M_(L{jbkE7Wz#~&5pRie0FAnHop4_Id)3=5}t!&+nAAozcN6e zx-rK#XzJYU$SJChX+!PM{oC_lE&TDY~~vTv}uM9aRQB##bNMh17>QSYCbt1^5UWGjZENHX^h()>SeeA0&gb#d+b(mJO(tE9Tr zb?x>*0z^>qG;iH`+oP8{mzPR>zgQR3&y%w}$LX>%hVdFTi|!=m1-?2k9U|m=9jBgE z_^_8EITb&mJAd{Tj#pkqAW?Z+9y;@ofJca%!7&+wj(aY9k`X0pXOdsKw< zlVKy{VRKK;dE?f_3<($Ks;wx>1K@|pwL{Br=C)ta16DF+qtjg>{K zBJk^)Qdm&Or6zi!HsX+GgDYBw`*W%RV0V*wyCd7^eD(Np)SKiTdRE z=~Z1dP8CW*t!HUn2pXbD*9?#o#3eYA9-}f=f0B)=n|Y=~tbf9#mI=1&V_)g7>BK%p zCNL8yH0=V|v2jR*y5RI|$2{fO=Uc0J&oe?@&V*_iVf$=vzm&VARkIJ5h$G{2OdQEE z`9TZaPR@GKcw(PZo19RucIy+&XC|&J^D7^=FO>1=51=bEgAW#7TfI3KS}kINbJgWojmOWm(xD%@%YO5p z_#C3|S&kw*M^Vm$N6t0Gv1f|Uz;U&O#c((~HQjoIMDzK)wRFz)CnE8yl5ksfWtZsM z=Sc6WpRIMq9jw8+A5?~@Dk>)(4prM1{={GQwTb!`|D2fCX}S~{v3ntk&WHt93C-?s zo)O6z|6tucbR`{|IXu%l2ncyXgNh5GZidg9`vMMRVh$p&f~=WL98~&2^A`Zd2+W(G ztoVM6pD$WtlbbJb*d`xg>!}|_AJ&4+;}-3NQ(W4o)nh-K^F{o**;FAUh`Xz#>HaRx zLm+OV!pxh>(9Ne*%@1#TsLEaHmMLa=m^zZKy^6-7M}aW3XCfAfBJmTnx;W?e%SL8c z_?i*PQ6pGzh%d5tIXFjXstvP^b|b$m-%L5?I$1|8WuF~7*$GQy>0IkJ%i9v8{b2z5 z09v!&u`wYIY%Vh`dcZR8m`_v0Xc6pFXT^J?j_^6WsCt6Qv1}d~!qLA)=jNDPB{qh` zBt5$g14D&YRmEwGp}5fE@FeZi#3AS`8+tA-Lc?K9{~Jn?`lff+il$EVRAh8iWDa75 zYW_IIxrP7f-<8nPfL~C`hhVwbs%|26)cDu&)6!B))Z*Hdw z=06~vXSy2I0#6%^yi8u*9IzKeGR~x4jE{nna(5k3r`cNdkecF?6HGJ#z|U&t?bMGP z^@G*wtlf;&H+WM_Lc+!|)&1@j0Eb9sPq0<@7IHv?UQlp#4e1iMfSe7r$+f;B;B4$<%}lgalV^ydBf9o@bu-l&&y_6Q9_d7Vv(ut8%xdO3a6rr` zE3I3z*Fi%3V1Io_?VdXa`J$s}2b{ggW3oeki#a$p4I>-{viP4bzX_&$H8-*3q*#4 z;rRz9082nJXQ1i=1$c%YMM7;goN-X{sCW6tc37zLEteNv?A+lpbX(F6KMbjMq zkdD14XG|YIZpooO!z;8f#m!JK4$VEQPAhoDIXInBqT0jvcp>Zc=-y*7s~!gQSCKJ{%H9ubQh_zlYKMLR?Y3Y8ll+)Myj#+v;nD*f4sv) zcHCC8U9Hb{G}v zHx02uv*tSo{hig}vc`ScLoz~WWxMn50~P3lIw<2E*c0-mgq*-FhSFg0^+ zua-L05Do3FFXd$jU@Rtb_-&JY3V1}sXw2sRE(9FNH zvCz*2-k-RcZa~sp-9Jj3-^vKtQ#_xO= z=}9N)34W^9Hftmx3pYqsX;Y6LJ*Uc9dXj%UNj_;LeCgR|Tu!qfJeviuR?I zbnYc#C2el4^zYx+MXeUoxxa54Sg-7t5l3@X%wzUMJe}p-@)8QYc@c3l?s-=_PkjyG z=WuR0AXv^RN=bB`M!Hd^zQ1n4D(N!fw&l5xRJlJs4h%Nv$-NOnj&)|ngtNIZq*eI1 zEW^39JY?>Y#5@IusbSC0rFB6ImnJA&uMpG`=VA|D?8!D}%(M?BMvF;((_BfkbB<}0 zMmlZDp=b5RX9$i#T!eaDwq++vkXBx+5=E78v#aFcCh96N8{B&?Wk}(cnA_0}nVW#D ztr$+Xcv5^;%SZ@tDgp!gNuic=4Zy=+0}CJNQ%*RNGh3%Mc*NyBLSA!h{O|e`n>&_) zT4%@wd+!A!H`Gfo)k{h^$(Dy37-3(V97T|-NiTlQ@k>1B;;qVhRwnj&u7j)0$r4uA z1%nW?q*t}{yuuIIsjn}&zih5k|6R*dZcjD-rJV8gg z>1v|Nxd1?6r}zj7$*X`2@+ch4kb5}p$<(g5>_@x4oN#+#`6h#i0tcf%kjY@I-i^w} zf9L5qpqw$ORysZ_UF%es##HYgvbl4#0T>PpaRBW!smOLKM$5gANp)o-plac5#M%nM zNPW|&y4kOFKftkD<5&3Dfo`|Uh(MaEM7-KHlo2Fe88q|~3LP^)2Dw9W)MpI$Z_O^; zN}Z)!{Ir{Nos!)*G^Q?kDLQ!PdVl2tqPX(kX}cxH+*6Q~K1UCI+Sm@3%_`ZeN1c%K zYH4@Q_klB~Wmzv$s-daVQ?ok0N)8$!e*G&@!=hG-o^AlDi>i9n7yI$eKe7$)SO42h zAg9Ty+I}Tn@t8$94-x)auiR0K6s8{XAaa+W{lHu`nSspyCyQZ#9FmsDuy>__5$AD5 z)_QLQO^;>^kk=g48QFmCr9QpYAG=%3^28gXJDouU4)aQFw%w^xN-XkOFMP3g`)`lT zi?Zju_vTRjc*VQyh68&(>K_PjoX7bF;*aqckjMh2cxbxzzneF(S9Rz7+5?cKttsCA z0cQ36hravl|KTqRsuEjOp56bZ4-V&@rE{`)*MIF)o&SwL>1gQ)UT62>W%|#~Frq(t zsan`oG+Nr8s(zkzwoGd~zF~O4(8n=XCILXb%EWp zJ(lUGOt17&0lnMK4VY!bF~Z8E`m&d*;@vZjS;wtzL!Kmx;A{ZJ)qCzayo>Ts0*K9k zC@I9ToqD;$G)b8I0B7GgiVm-%B*9ZLjbQD8G)!l(nrA#6VYP2i=dLpmo8=LjZKPRI zYD|lZe_Ra_?)AdMYQ5LRPoWnOG)bh1=G0R=CQ^U}U_O}vvA|~{Hh{{qUaOP*%l<^% z%x#)oX0+`R!td50+Ua98MjK$799Lf2*g52teuabxnrT~koPEtp-((>9RT3=UVW29i z`%cxKP>ZtJ-kT<>OmEaMCNDV_g0tr;!GLsms*vnz)F(8r> z2DWhGqTooUmHHLb#HNwr*wPDvvz#=1Td4E5=_hBjk%Q`O&Bp|Qe<74cP5 z)P?l&VZflR3-T0yR?-Y%2&atNU1rm5#zla}ZLe#@CP}-Cy2Jd1VtRha=9W}-k-5^? zvR(wxef-j-OL~*L&g9IRNQRbHj-Hf4$7XYV{j=}=8)&idX}?hRX?&3{f7ZcKH_*#C zls?F)Rbmu`toh-qW}2_I9jf~NjSo-$iN_J8&7oce{0#3O*5tU`(H`GJ7r{l&;^t(? z4W0Y!D_3nP^J)Q86T49~S?mSB4XFyy93;HDA4A$Lk9ksj$ZY@{y9&MbhcbK)%{r*Q z7p;p8OboKstVwIOw5>#&gyRwOu6EC*GG9hl3&S}`@Ntt9o!vWO6p>V{yQyzV>K&*$ zg+|g-OknD&;0wOr{2y*m7pyp&iDg=bM=pzD6g|r`B4+ZD#;EPLimLV)#FO#mLU&ya zv1X2UW^ZFAT7g#+N7{%6q`8LkwHv%jjz9@0Q&kgOt`hmu?F)Z4V5suKxdeTMzUhEC ztm)V^h7amY!Zm@1_{US8WO{>6%$C+Fcbq06F3ZKU`++b>Y#$eY-i~jq{$`e5QSv00 zHm#J^&r@h;j@!$6Dd3_FfDGQY{C*Yi6QjnE&SJJ;JUCx3SJLXgK`N>_ z=?)%*batc6`6`1f`=aU~UWx4KY7?pjn0LR<3fbHd$0(08%)JYjkE7g9cWdhZ4ye1~ zC(z%t!9Q%l@&Gfgsh&W{wX_$i!Y!SNOb)UH?@Vz%?a>f8QdDR{2)GCG1Kp)o)toq? zWv-^(;*?P_?J58L|Y#HQIgQI;Q3VC%MUsrwlm}M|S3)TGGadGzv+22tw~&SX|S6 z)~iJ3U3p8MjuQ+#+KBQg?t4Gn6#=^>+-Fw z_5g0_;K|NjZ|U)tnU+h@7i*Vh`BUSU9s~NuvZMyi!c+mbQar29>dO`eJ(X*kR2v*f ztRduMXV7`m(7&{!)H)&?(4m0k^)FOG3up5eefP^pT@d!`$saEtKHZUY>8V*|-W+CH z&1Sax=+?$%($NLR6-cyt4@J2T2z#}*S7>X~45^HG^z$a?)yEi)EtdQ@U~$@G?5c48 z%moMF_g;xY=cP#D&?XXsP)R5|mCl~&Gh}X{M_~&w@AK_PNtC!gb9&xg@b~i(CO;@S zU`b92!M&EeCe|{&))QL69P40#5N5if;ug{`hW+I4&njo zjRyVOXJA2KNalD;8_o$*l%O(V1UGA{3fx*81?(NW#Zh;q_lK^9nyfITc^MJq@ktCi zy935NieXk>`Q9b-j=m{m;~TF>EOP@Bwcg#Ts;FMenDnK|#;jKEw$n?CFM%-kRi`di zz`i?NzK1u{^05Uyu<&bA4(=OCIw-#qFD^@P|$8+1HT=dTz@&kqe?oq-C`6|y|W~U zJK8bxJ4+vZeP@iYR5Wz$LtoUWBI2Dh?P`E@E=M)IdJMC*6YZc8Rj*nolC<=QR``2} z8s-#*AbUR972(OX#d7{M7e{aD1GgQV{MqW~qATF|b&{fVG}3{l+bJX{j~8lp-ZGNt|=fTbku*^<{hxuoJqQI-gG3BygPa zbz{-ts|Yu=(IR4^>ev|1+11ou2cbsnYg%$o9ph-9V~B zRJ2D+vy!ge6@H~^`zb^1c)yj#HH5hXEg^ka7HAQCpXD$)o)PK;iOjX_mf-cCc!#^4 zra+s_a3j<|pk5K?y(u+Yz}agXW1|}Y#Pdcc%X2bm)8=YLZcwF(KMnZ7X{TYDn0@GX zef{ZIKi^~-ehjLKd-G~jckyS;tCikwB!J|%`RFC?2CG~c9&t#FsEedcrg>)qYLZ7f*p?)vsj{Zd zW@o;rjxM}0^ic2hLr){VWOb>s`erAqdUB?L!hP%VQ4x2|=&cj=icQ`r&9VOKHnvtT z%RVm&s&H&~h$m+jD%)ouHzT?GwQZdyRRxc3# zP<*^ILBKwg!Qy?@K?i{owg1%j&4P`m`~5O!lXOjs{j6x|yTzIh;UKVSMLMBb!J_eo zMg4CEI61q?+WH*uCna@fW-gkXs=hB6CyH72Lf`y_^Ei4-tX`HcYik%CQ}iN2-P!KK zetPV@2y#Qx`WM%Ni95@1Zg2B3nhKOauZrUf* ze5s#oK9g$N-VClQjT8s`J9GVSUrZ=?0T{(JTTHHGM8SUrD(KMn#L=Wvxj%p;1C?F5 z9ByR-gbU!~ZXd**ZrTXKm%Mi8IuD#MVg_uN?iGM8*|IV75!1>e6i#ztWz9S2_{2T9 z(S*rhYE~enC+pbs?{5Yz>&I|76#Vn%`-g%4PcnaC)5S0V1*v&o0Yy_Iaf}?x5AN5i z=I5p~mkHSM<0nJzpw0be9}wWPEo`_JPwRV#RuH{TVsm@)E|_~|rsZcGqO-r;VDG(T z3p@U&BI&UQ<|<|)QzHtFIEtc1()G?Py?j^G5X&-DtY&652ZqgWXN0i|ZPzUYuy(=g zYW71>uxtBVUs09Tzsyvh^8JYU`LecXt9QS`V91{$+yjdV}-;wD0GarORAiBxBE8% zJF}fJVs9O>!9T=*_Wt?gn0@=UN{{bAb$u*@t*sjW7>h_(Ow;6h}PB36n*Z?bmFM>hqfsTE&SEsu@ zbWD`ak-dHt)YR9A#ZzfPw9b872BDUuTvQY()rpC!r0$|Z^vwY2 zB3E<6h#iCKan;Ur2QGvbe_+)_#uS2nAl5&&l~;j!8kZ%GoW*N$6p7~)Rhyny`4#7? z_DPqBcn>^DVOjPF|=^g=eG z_>yTKPp2bGBVvTvdj|A!l+oYrI~!||n(8g&yWtgi%16FzG6x@V6tVm)dX%AcfexS~ zJ1N8Gb@bm3+^EFTn5`a>h0>wrotS+NK6+J<|LS<@WTy*S2BYw2+l6Vr2zc#Xs;ezU z&Z|?^y%EW;+(rUgH>reoBJgk7i#ZYM$E*h9lh!605ht7bNg60Vphf zB&=Gp)ELBO``bKSHbck8#kP{qO&F-^E~s%hJ!&iZ^JtCmzBH?_Ry5VD8HHt#cGD@{HKx?KQ#@eH(o_Y-B+K^bj@?i> zq|JW&G1U4(z*Z%5*b5pGP{jP>$8Z1g-39&wUpN~94kTSh;yDN7R`d|@e6r$oq=x{~ z0n{0d69od)bkrYCd*590Jy*FJEPw`Rwazcg_}Y zM`-09f)U>n>x8d#X)ok^`l8b&fb~AQsOrtk)Qg<_&(OC@-)i|}8Dn-3SGNN)apa6k zNMN-INc*FuAWkIh|A|%ss6jCi=RxPt*_))NTTw2G8mJD9)otcIq_dZvqp!R`7K2DM z>bXKPumgN6{Fm}j+mA_58cvlJEzo^x*T;<1**z4F8fGDQW;<;d#2Hbb?#d%A?ng+ zhH(mPkMmSD1LcK1 zXlPjKhW_X{($2Enu6jsLwjcK4wPC>^YTyj`H%ai9`_*^B_f zHv=WAw#}U{pl?^Wzb4jJJO#Oig@5>mZteYy)wm6nIhClBsfli5M8`Ul=HZ;HqB%#4 zq}(+RitDtx+;q}DFp}TAR>0E*|5UWF>J%I~W4T9Meg#uKF;Qf5KaE1@{AELemJ;hA z$hOtkq0C#llVzP;|M)V_QyGw%lnXFlSG-&9`Ejo*2WHk}m6JJTWmjZn@f0VLL{tCE z0Od8a3q|#;kz>J!M$Ze64&7&0-ojvQ#zBh0c16hUnYJkP zU*8u;PG2lp6aLeMNgq1{ZsB6qFnv+^waV{UEy$CuShHi14yH(u-B~7zJy_X@W@(wrnPB+N6fX$J_7pzxd#`igIm}}w{AzRK zFhEfclgbcXS0t%%Q|bd7u%n~bqN+>`8sK&5OHGx0AqR3hp?8RliM6rr}uNwLPD%FHy<>(?=G|g-$W5>mLjVH zc0U-BOSsvKoSTW5PY!`w`lng_%jf?G{_Z6G?IH%;0_FW!{xpVbr+uNVbeO)`x+qN? zwh!$|IkuOBBR0OVz|c8S<+{SG9kT`OZTn=s^*srmD)N?{VBNh7KN>s|a0{DeCw1kF zE>~|*W%tW7V!6LtNtXcL`pQ;=ZszMa-jP`pYA7Y|`_Peol2_-M(-cTicSfN|J=lu> z!KOl|6M67h%UD6JDtqPXF?kWu++HiGD5*O)Y@<-E&^PW)5b&%rVxfv+`Ex>2!}40G zX43}uZkzzWELO>m(dJ#Rt-4}Yb%jPg(#aX_jj5yV=5iW;9(RA+V|CH?w$cYA^eO9? zC8F$|x%=_AmmG6@3LaKI#&28f7?WMK)+{+Ax|VcB7uJ#B&Vm3HSu z1PeIV(~I+-h)xJNJHYpjY%NippM*mjt0o-JVGU~MhTl+Q?;*#|41{^vRZb37dVG;M z!Io3Joa`9;Im?e6H}iqeqbD;Tg!XjnetCJXEXhM9vMAGffJr#Z?%8+7E?F;BMRDPr zIIXMESyhgq+%vv6q$fg?X%*lCV2i_VZt^+~*bJ8%r?x(o9n{o-^)Zsp`J%#4X|O>B z#a5@|hihvplJ=%x=l-!EMX46v$+V+$YDXJsY78YlB@Nf)JB=P5g6MCCdS%bA-C` z^<=qcu*hIP4$Wq|0g|{4wytvrwa@=$J3?WNHE!*TQbMg@ITh~xgw=;d>B*RN$nEb3 z*Da4>svlnt@k8l}L9FP3X6>zY?x*8O%SMiw;h~E#hfJvP-JdBuu#i#(C_ZZ`v$1}O zj)$#Pr}o_ZdIq3CtH#|o%C)Kv(#!YUxR-I*TUtNCq;;CbB6ZLFmpu9YN~K|H*yK+c z7{?v_28+cbDg@kCy${vpos+}7ylV09bkO*9!^~)M zV9~f}xBrJTORe?bAOTO7Cz)0C&_Uw1D7nn|H$cE+)Gec9Po^1(pq=EX}AEi?6DNTQ?f%k?C2wK$W?QLsE*$m=?x5Gt)(nnuPV-MEDFD3hWx-; zZ!AfS%En3QsdyuevWcF!qYZQL3ni=OSLzzVLHlNxRc=nz`z{WCo9mV_bqG463q-*+ zI_gdMoWU#o^9$F0HzP>av8w8sT;#n{d{s;dsbF4E)t}+huqJE-zJI3lq zB6o-iqJTXuRo#-y-_2OLa`|&B1e9T2I}V7k=#q)S!33BE?AI%WfrB-_e?LkxbozXF zC<;^6vT&h9eVw7&V{t?_#~4%qY(MY0` zcErgid6CaR#%}NRKnKibbV{??!0rfj2T1l4^I90o`xP^F`8M%=+{g5xZrE4p5Av5~ zM1p>{MZ$d|3cMOfL@qVrxi@tqd|S0jYGl)|Ql>8aX}6f*y#W<94{~Tp-T`7Fsg2R! zH1?cTK!uf-clo7t!^ty0k`6Ox)NYqd`edwKALn{n zL1Xlup8bBqfF*}saB#5j8`)H&yb3zUgnfy#Br$EmvUUtjFVKxkIA5OIKiZ&_&}{Fu ziVmG&8CkH`5Y@)nBe`iiI(8I6bigmm-NLGB&r@`f@C<<`Q~zXift1A>ix7~8MM@W( zS8u?`CKe-m8qg%d;tgJg<*NSV&)E3=^uJpL?_LVw=*kWsv%DJzO{Tq!FOmmzTRLJd z>6P*h9q<}1Y*fO5wR*b~{(M1OFvD|n0^(yN=dq?fyeM~<1Rs5E(0K&=q}%V@epR70 zgie0(@CJTq;Gf?9*FPTo?$}KrU_xlKC^?MrkA*Od`oDa_zxk7YzKQ?YZ;^fDr|`1M zG(ma#nuqd9A+5q0)i8D0)Z9PEfpY;|(AINRnHLP;Yj*~5)*2B>{mQPa$<`27>jOUw zrfbvxeXx%Xp-z>{7{DoJwWz~Uf`7uPSea;^c#w;2XE}1cLjAn)?n>l4U5wm&S`6#% z(zynXEgpd(ptu`la+D=u&@)!fl^ zUI_rJAGI@Rxz=qA*XyMQC^ZsC4(B9}Bwi2c*@c zXI2}`+sCa380O%&AOdswKa;c8;E6yy)zfAR$w9AwLP zGuVro=URz0)rlbIxUDp-BVv53GJA5d3qznmQ4qdfSuu2vXC9HUr^qN}?yWMGAmv}e~iM?OiTn+-6Kkt<;CZeQP+G_U< z=74k=uC%-lI;6G9%3&szYX$5h-}`XdCNv*Z{}$k3zh1s$GtX*+yO`K$ zRJ*0k#So0>YP~OwP?vNSu2#5(N0A#}P-<{++0iKnXw-O2()}3&TX-O;o z_)G(Ufb`S-4Oxe(IaRNt)rI>JNp2Jq|70jcEbEbaMZ435@4rF?FHO0!9AP(tH%P5I8@xaBH*dA(jzc@`v2;>tq6ttsWOtwvV_q0GpmjFI1DeddBjbH6qv~88N_nWMcWV>hGx|RtRLoI-!9&%?=fy=_Uex0dbSyviwnGm7h zr(G#_Zdora3&ckEgFxbuEB1}4bIKJHOBOuhpFY;rc-N6dj?sj|4bM*tp~W<)v| z|A3t@`gHEYq^=152|8zmb(U`FM_Ox$;`Pi+R=Ug4u83 zkpPq`B~ECL&Ghz?b*DvUsxpNQmS_}hOj35W*)jk|pBvW#WRx8(9Qx~fB@L-kU5=IX z?z7jOz#SNSq{xx>dv5HQ=1ZIRk+(F&hnpp;t!1G#z_?6ypicAUxNx2v#0)3498~{t zc?Cm@CG%GdysWAfSS993_L{-^YY;`k_~P= zKGE|>+_7urq@uTQMu0}~_F*{W|C%0r_jgiQLF~(*kslNiKCoH~s7O2_<86>7+lQNC zM2l-t<--uXwW9y4USwmFve!*MaO00Y?nvR0;9Ms+-S$>)Gfa#Xsyn_JDz?}D=D zLbq$~%|>_W9ILq=s^60K03dXrvV(sjgI34~Uy3d+6FL(h<`-2Y%U53FoQkaGt??_` zWyC{EA!V_oE$uGrUn=c<`*_@mp)QU_wW*5$`i`mbA=ZhBl{<>Q601)b+iKR<=Em1? zVf3q>fJ~2QkOXxXZh*28LR6OQ&Z}Q zjdI~eRrZ(W5_Y;|5?Was%b6t(G&dB5oQv~}T`hpz(G(Dyd&ps?y$z{g1;o5ckx9dF zo}ok!c*-*^q=j*;e)7k5e_th4#I&z*CdBUsb4EHyIvTe2QY)7+$%zRQ)Xw>q_x?vuG;DL z;##TJb}K&`sCk~mNg{y$E2mbk@cOCoMC|@&s_bc&ffH3%eBh2rR=!C(4?SpSk%gSP z*zX+=s6^duC92p|BEup3*@fG<2*5=KhB%o2rQuKEMP?l?0)NoP*I4eJ6aF#`7)Of3 z4W$hpf`!wk2ZzXoa{z<&uMQ$LeAajA+;O>qt_S~RME^G$rv1f*R=XRwZKAMvyBP^O zhfYI(<6lYJQUFExprXk!I$BGOnhiNNp_JjuYm^b|B*7B4Cz}2WvK&0Dq=UF9PMQJU zN#*?|QFau2pXR_7dYWJ1T+q=S)#}AC0uAny0k$$3F(%Z4h{P!S3LXLJ^Mof*xD6 zV+3a;Pd28w@H(C2>lPTFsnD@Vi;)KHGYWq<(XhAcy9$GN&36SnZ>cC5Ewxh6&6R#C zvyKip;ZG!OPbxEWv>e83UQ3guTLXPepKv=H;n>$JiIJN-z8Z}rwk}O>NIJx~iG#Ff zm`Bb>6;*`PG(yAp?D$GbEN(OUJu?0Oqj-)9XcVLgQQoqb(Se{crF=15gM1@3Y1+q57dy=2$g!y@mn7JGfnH{PutaVNYSFxHpY$o!ox9o@ z)AMrB+1Wfx4<@6%q8>O=x5cq7NdLhE2CH)B*93dR2Kt&28@ot%UV4{Ycy1k?trJH% znF7Y7Zwm1HU@qVqCQ@)fk4(k1p|$QR;S}9suk>-@dPQelkdMyf7+OVir*amrERrht z=i1FfjT!7D5igp~U0Hjv15~k?#>v)_IYP~;d{eh>7D}A6&S__y)7pMyB}GGMgv%`G z`V?ffVyU@K><4aj0dGyn9Cy%CDZDJwRJp^A+;)$4@&oY7*$F`%fTnn-<3+A$_jCbI zqJGq~cc_DaXY5Lx+ol;@U(L^fv~~^W{f&9T+*{ge`H1@s9Zf9Pb^&3}VBhB{jB0ar z9h>(7;-jk!gr$MDIjqkLTUg4!EJNyptm_W|H=CF@KilaZ62d{9{5e+Dzo+-=5_S!??H=YMbdhkQ~9M-7d#g{Y@I$P(iZc8i9?o^ zQq4{1-tplzlCf{RrRf9}*d*!YM*-?k*mUgJzP^j}NP3pu3NT6^<>=;9tQ7@HEpnlc z2PfvA2G--EUQwpX+>F4EWz7O=Kl0SlYR(s_$Ld@mu;BGG#|$dvO3Rx9-qfN@W&G|4 zO^9(_h~E>Ti!&3duuw7AF+x*M>V0h0pUmROO!oA&K#Au)(;sKk7R;q5rN_>jj;=;D z^$*Ui`nM?jL~aOd-Jg>!^qxNs>$vI%W=t39sxWxfIfMjw!mW?`6ZRJUL!d-G7AY)S zmYdR}lLMEsv`*>2rYV3wuq~q-m^oT!@fweRnpAvYZ!7p3?IZd0-}vL(CB!1hZH0^# zt8X?Mh)yg-gYCf-+Z0=*;oKfl{~?FZ1cjd|h~r0~$a!TCsK(A54zf_?=z?q53u%AM z0d^?sxc?!+$d-?@mjct9ePxS&qPP=Nmj-=<9$g1;_&{WL^kFJ7qNnjBPnsIMnD{XEbcp~Q5eWwcF zp!{1P7KbDOEO_k<&IJknbH&Q(%JmOIF3icTzR9q4`L}_@x$yXce%=u)X~;t(FSfMi z8d{hhtEsf)`-wnAb~GmQ(vN`}>EU0U@7(8s+SGcH>>J0l6GbbJ=7|X||MHc}aX-v| z@wKgnGc(`en>H|J`0yky2lzd!OBu0kPFMJ<&&n9)lkc5V<(ftFhyL;g&CLVSMQ!_E zud3>c&a+)%hDWvi_|UU!M`RG`(`=U(6z6tL?M$LicExJF5A3{$fp)W!aotuqo4)+V>*t^H!6B(5O* zg)&0@NAhRwj8Ily8`uD2dCGRVE!`ClWs{fr4ZJ;Ty@%{@fR?eQhHH6xVg?H^Lfd4y zU1iMXWUyCOd>`_+CoMI^Wv#H)xp(DRM5F(0_i+eKcx9;o8Ma!=x3k5m!fTh$D4o!( zSG7o@Qw7Go==|8AGzEn;j&$!rIL<3w5y1Z0X$v1=y?of2R84tt;r+9|6gk}csTtfm z|Cp%%wcokxy)3@}^;gm+n^G3H7VskbOp++T=n0y-s=^a2Dz<{4kwDs~CY{=IV7Y*k z^sEdb^+}y6FXZxI@Cl^e?Uf%vFNkpUSvpj%YX335|5SXYa4yBiU^-=!&_}h{N;=dZ z3f*^msXqYAA`bU{NY0Qt{%pXa=_|O^2C#_?`C-O8^q2N{GO>qx`@^$uQrC$ za3iny9q@6GW2Vqjx2@1%-}iP7%LE_JrTRI_T7xwYRbG@Pq$lsjda%ERnaipGtp}+V z_7bt~Z#uZJ)~$AQnApxl;V(eq4BM!;Xg1y2$H{gqzR)K-l%h&&=ky4tv(k>gp3jKw zft+f*2-p$BB_G*vtS{JgYZ(*Ovc~W$ecVxoxwGANL&1UuRVUKnd6x*`JkAaQU})H} zoEsnyy2`9_ZejS2lS^V*bN$ZB;cI`uyKP!=NL5W z8i@6~8$1MNMb+z8+n&jfH6$JLQUx?`rV+7>F`2YKYoMH}vnmX1^m1;xc9?NgS{m?>=%fz|EmIZp z6l_z}ENK?LNf%n5H!f*C1P^Y}Dys`XmMFX!rMCap2|~n35KYF^31LxxLE% zJ}&YRj`;>wRnMNiKx9!pyuAT7RkHxH86j?0=KT5`?qRD6Qt@)r45yPuZ~C|!RBd)` zj5UQEkmt*3%Gh4iMW5}%0{v@7@dFo4jL2Pff18WheGDBX2KXL{i)Bm=;ky@#9E;&& zJ}A%__2Do6`nLbY-^p%vMklW;eQ9JjV)x4r{JVN=D|U@PTMdFFFW_ zjUE;_3`y(PCKNV=PR=B>>`TZ!DE~k9-UKena{U{}EG>Vext&09Njr*y&c+NgZZ!-H z+bj&TF@(#^FvBd*>;nUcrFn7-@N@zM#!9m=G0A~MF(pf6&JUbU=ZL|CMM+R*9z(OV z?Y!S-aIJo)-v9sizVH9@e{&g_XP)Ptd%f=ax~}i_y#kfZiXgv&)7Ur!V_Q!>>3O-{ z)zkip!C8Q<3GxR_IpmQ{H&IHSzhIw%@<0er7?Cltd=BC|wIX6y&c5?yeJlnghLttB z{TXRx8aUvooTNRyNPspiZLt4u4iLSrLi9x#7Es?bXj(y^j#P*rhuT`!jggl%pm6_F zb)S+dMm#p?Q_-~=#Qu`FjiB!g{E2AOlQq{T2$-mMb(1>ziWM=W1rgg|<7f2G=!d{4 zNI$GqMFXtz*VpeJ{5oR&zL<}_ms!@mGp%w8`I z2~?W2526dd9bj>qH1~HC#;=ck+RK{F`?#Xud>IqRI@$D^r^jUI?-%rZyM3p$;vIzX zbPWu`7~$)BCE|Uo-bSx7_Pxpm4Xc63i)vlbQ|Z#Ktuu8EUi8lBjcHW{Dn_xxNdw!i z?)XmD$_dU_M4I~|n;dgXKJc_(>0`|caemTT-@S&IiMRt1`V-370(SlLHNO5R8W%ZQ zn4Y>vwjC#xgLN~z$jH-HP#_ao7$+pBByAII+Z8RoS@X(Xj#<0#o^gLicD3=XVeY*M zPFw{(gi#r32)*6e`HCMbqQr^D{{)a`k*zWZF}jxT>7UcyIye=D2J?F-eR@z3To(x+ zyXx@=7zmh?O!m*e92eMDHEQ8AfPr>5Keh+*cvFMAbjG+-Fb?N8tVGaW!*XNQYu^k8 z4wmeDqaXWjlo_ey{ReZjLuWypyqJ2vqNYjvb;SI*sU?_H8JZ)bFu@{MRKpWM+xOrG zylLxrrWs`TTfvwL2H`_ss%tz~KJUv?5Jf+8H;EYL6oX8G))fKkNRt*As^4UMesTUh z(n-=V5`=x)LX=q^Oq60mlR+QDlImpqNx)gBZFwyi39HQwVfTNr6#L~a0IX_nE9=P? zgw^C6MtZvX0cDJu6b4cm1k;pz?qOhZtOZb;>y4lMCBjU(n=f&ilpv=Ijdt&`(H-X5ywV$Q``SCmavbEy6@bU z9bxaf16#wSQHx-IB7Ds&I4PqauYs&v_2@Oyf0p&|b_mjUNdb`je(&`|11SczBQP5q zyT(9|xkK|taB}4d055JcxPaRCoOeQ1#q9W!1kpy;2v>rm@@knqeB)Wz_3sxqYrC!0 zpJ?C{&CP!H<84RR?0=NI!mIa3tV1TPxpk^d)7P^`8#c99)Xh>OZ0w`ceX&!nfCCWZ z-?E1X6fIm}{dX<(^{#7HEpHBNz9-`EIjbbz>Gktje(l<@Zq~xl8?>j0CoD~x`gzr| zRR>QAO^f6+D3JMk>txBbE6 zthoBCI@Yx${03GR>!J5;Ww{v$zE>-TI^#x8oWE$W{gnT;664%v)}O|N_xv+>xa`}3 zufZ;oroSLSLXDVdq~Sk$u(QEda+>3NyJnpqyjO9Nxus12ldR4^iBnwDgyYdq(q055u<{xf&Vl zXgjW9Up&!88U?QhG;Kb774mETp%>pbt_X2{zpjc>j}S|Ns6u zY4nB5?GKJD3CcR!zukM$iy*Jcb+cJY!3Xqr2rzL+m;cZN2Wf~byvO5ea6rhU)YwD zUMWOSO@-0R(&p^SX>TEWddk~JX|Kkdia5W#ooMiG-$6Uj-xBaPTq{ZKn^*gbx5Gm2+%;`O+rc`fcTk-7xiE)}CI6+2xj-#hvw} zCu9-{zw;t|ktMl$7~3q|@00NQ?+)|u>a8-?BO%4XwddE(d3au6-Ms@jhKo7(CeQBD z``hP_YYw_!@h862j}Sq*1In}PrMYl=D~$a0HB@bT(>(% zHU$oek>wHl9auhkvJrx}*7ZVfIueuz$`+0S7KZ5>4dl|^oZcwpZ>21(fv&9UvF6Xx9K}^m_LE+Bdu+aE_1Y{4}TPS2A(E_EI)d7+FtLZNI^6m zUZx{f1`Es$+j4q>i**-}DX@JVw^i3E<1~$|;?F~krw&LL@ITR?XwrPNb_Az!)5904 z#@dv}>xiA%{TnEgvytz3TDI=b{QG8x#q_Zhep=XBVhef3T0%dxHT*Skk3O)!b4O%J z*d$mt*Y(bSvby4#DKaT*73<_8?Ojv!ozo*V)wBM1?h*(*PaGqutuT>7P^Kn=kMluP z(z!Hbt*I;v4}*dk+Sh$K3fg;bz%oG-{8o9yG*)Dh(9wp>zec?K)6MwS;`*({{og7G zeY+oc9099LMj zvKCF-JpG#a$pxl+N59{)-#pOp*$WQqJ9CT|NXw~at#<8+H;}}KSJ^kR>Ca>alyzJ9{$^rL zL14M>@y8I2*}S~KA5*LEnA4Kj9f7m@d($rMIbe@HZW`>EMmw@+bN5G)IG5(sKif?0 z0z;Dv`6;~9!Mr{)Habvo<^7t~UkAkDJ@3~daOxO_82p01&dNUe54*gRA1<%SIz0BV z)%uh7b^gcJ@i1U*4WIDLP#DbaV!lL-Qlk+$B-fgGN_Osz1kxpzfGpOl>iCz}m)rbg% z*ApWwJ28^#cQ<5k(m*`-d`r<*s4=Ty zXvWHy&PUFQY0WDZ1YEko&hT;MZUR@o%GcsUI>f!TEvwgXdu#BC@eOWGi)_rPu@+|V!_8~R$~i9YDl`41IW~* zUyAmZflnGd22`y7#==jmr*uSy$`Ms_z4T1(ktE&P8k z4FFg~s#gum5wa*{COMK`juBoaow!>w7Y~g3ux8zgYmMK2<r1XwQSj^^ABzN1H2+doxq9s~xp!(VV>cM5frn}6QIrRt|{h{1a4wig0o67!23GJn;`oLE@ zB{HvP=rs9r!I=os*yoow>Hg`;Y-wej`QcjAn9_y?eX(~j^jG(G6NNpi`|C>}@LtP# z`%eS(QP)7Ed{<55=|V8GZM_?<4*ISjXG`hP#%q)bhGk#$9IssWF!M9S1T@DrTzz3e zGWb`&8(1eekUj0P4!ci-{=AndE+<}v+!~(NrhE9Nek56IE7V`yQa|!dmlwqT56WMj z_tju$#L&|-QStLR88n1;!i*L(_8Rc-f`06YeeOYYEi8F`z6t%?wo0+c|)Kx}uuA(Kuv(jqG$ly0U4Zr8+bj zqw)xLfS3wp)fF5CJ`5%m07m$k&^zv=?fv|l9t9x zEm|m(vEhgND-V6w%~GAKZP9&xFWm1g^x zPR`r5PBX&5y6Iy1Oex|==k$&JfrMkkR1wEZj+gwE1Ky;}qeESvJqE&{*Z9n*02pZRd?ZQC-orU@AXmR|laeEaWA zn%tnSnApdfJ(Jzu7je!TdAa?{;Rr*m8y0HqIK)#D$1MtIP4I&o%vBz3-S=LJE=2yu9pbN~)6$m6;XT$we31Cc(~ilsv@dD?0UzX_DiWqs9-+HF|H z7y-H`P97`ceCzN(!t?j?Z)ttd5+gUYrG%L6V#DhP1IW3%u1?)d9F{3*hy!C~Ok%bp z&CejZqqBEm_4CA;qh#_{yVa}R)4Z6q7^%tjV^%ES33@)R7`155-Zha>;kF*O@e{#*_F5lAB{1sW}zIPa!=#Hz!Bzlm}ee{xe7j zU1hEQ<2{q~om2ZOJZ$9l^B0^L8JY|%4H%E6;2b|Ty6$zz19H0lq7aebllj$sVz>`O zb|T+ak_4pf)Brb*4ziLAoL1fcWi#= zik7A*e-uanUw!pD0v{H>z_uY0FdaLC)ZYFQjU$tP!faOD`f7JOlHUe+V0na*vh>xS z&$Y&KSiT|T2qWjQ?z*_`!K^RNY$OehCJ^8@>E}ELUew$BqHsol%+d)=<114m=9}`U6?;p5H)ft zZD8V?Ic;06z$kUP^EIFnlALc%_CJYvx*cq4K(jGjPS{yTGaa8Dhon7H2zE$L<8~z! zR4I$G85`>4k)*k5MjKvWDZYMcM>^p$hoqU%14khDbTlA=8f&R@CNAfnDiLhDCO>)y1psBgU3#e+d%yY+_~q5h+KnJ`e=jRNEOT0n@K!VklZynK!C z?drG9?;>=fdy2U{w2fr}oTTlG-oF!hb0p=jw09xc!U%E@ZS+9AAXt=j^2Ra_b=0y) z4&?NFxwP@Sk6tca5!kVF_^PA9bEx_B|=>hw(GVCyDx&1bsct|9+V!Pne0B zR~_YiVAQoHJ!kuqaHf*E(Uc2Y@&ntdb#?v{p!(C0#r0?9=*H;AXcB4=!F}%3IdtP< zV8cr7WFq;jNYm?mt?0Kqs{XSA&`Uor_4kY9I8PN0EwZhxF0owZG=Ap%%yrLPmbK=v z{^e0bL(6jK;X#u4b3at+f%j@)Qi;K?hA3ZjW+Dj!P&JLuX(Mgk)%wWg3`m`vp7*6w z)3gBWm26myG_Ms|QTt({i|RQ;GKtbU=7Z%Ya>J@tSrctITI{)N* zXS3#=+kVDj<@g?*CnomOkHKA9z$q$fJQUs)2^_ZWwZ9>wGoKJu^v16^Foo6V$w z_W}XlWgOp}?^I1Ad!rA~Ti|b4t#bu(f)K~`WFmlO1yTGJ{8F%4p_{Uapzjsp32U(@^lyf;fU$nP)9bA|TV@H-JE^YlD79Y^n z$hX4w^94fk$ivC}4ePP4DKk)X{otpNlY`?Bk+@ z-*4{;gby4O%y>5A8%|TnWs6`()|82Wv31Nk)PD#tB^X>j?72u3e1PLDr)*x?L#?I3 z<}W+oO)kNF^%nP6*1G_Jy-W@)@@GUsU%r3|`+-ZB-*LVgX*1qYf&ZvdTDAk4RsHsQ zedo-A&bh}Iu5Tu+r`sgD@5wc$E~>fk0tb@toy&b;EhFIm$O?MMq|UI zeWdBQKfVv1sJfNlV%d|^w4&z<_}y2v9Q6Mw3}n4Qa$0KF-i=1X(|((du02Jvi)-h* zG|7**G!^uL+QvNtDfzSo#OP<=zUutA{H)PCL$LpKoTUPlet(1F zqjv{RS-u@S88(f636hDNc)C=)D#!)t*E+8Oi}UrxvOjKaAcD;oDia>>M(|Piv2f=r z(3pnA8Gs-Awc9Kl<{r^ceZlOzQ~ zUhKgByD+?!hz$g;1F(-3l^x7|j*bs;LbP=+ND|F^V99@4PB3(5Ux=M_#CT8;0lMspTA#rx#Ru2K;R_iX1^LBq1WWMt_%$Bt+Brd$RCFdQ`Xdz%w7iKPN z{|n+5i`F#3p&ApzvRpdhJmJ#Wyd}QuQb?#DXG1Kl8u1Hf9yAFbkuCfE$N&2-u->B{ z0yy}^`w_Pxo(a|XRJ`Eu&~y&SENmCbJ}F`7Y&kverrK=b!N-F~eXA-XK^#fn0(T~T zh*|d59ynBcULK3_$iOJq0I^*RTtKsQ3X+91sB>P1YaO;!4KklXS;mMV9A)X{aV5vD z4xZ#|7*pWyAJMF&B6(EYK1WxBbh3kY8S9{rxpZjzM3x2Y)0Et)pn!Hw%sKhivAV7y za+=m5Tz*%r_pIPF^aa5Ow3fzeQrg_8*V+&Kb6zvi8+DxVKv!VfsfE>N-{Sw!q%GcV zIA1opD{iXP-^Yr6&>uBwZ23sv!+L+M6sMnOIax@Gxxtcbu@{I@78k!rI{I+JLj* zL@!8g2-}2F*JLyGC&y-&`n<7LN6*LawUWoAPtTs~^|LIOZIvg$0f$5jfSZE!(T$Fp z^Lffi$4mP5uX?9$u0$?`i`5q^k3E0Q$C^4AASuXZmLBV8=tuiQIs$C&QTs$KjqL;k zx9`y(M#0z}GIzJVgM(dJd%u|Hov2O_nJ#X6zQxBVW1m70L7NvMWR)^n-`P9OKaJ~U zjk5Tx z#|2DABY7B-9%r$&8?pk`gC`3jeJ#8R2Utl!+nS~;LYH%u+3!{NJimP-(&SFja_i<#sqr1_ zj=JA*ehB_Pzk>sLI#GyWtRz#$#FNOB7f+M!ulnuShSrV7j4cXD8Iu1zBy9EyPS=6R zY<>A?04l)2`Mdo2U)=>-$6X{pMUQt&R1i8>=?*X+P!@VM&sX6nWUFkY&bwc2N6 zbUl_TyyVz9e6ct82Az}irGMA|A9CPPKsOithbLQnuhL$nl>@o@L{#t90b9R!%JJB{ z9Q#P4$I6M7Qtz~!dL00mGJTJw3<_V%-jAzZpHtJgspH|n7;p5&D$mL9N_*ZP2u}eZ zrv(~%$@v3|E<8;kjderoqbNh`?dYpeH9MZ$%9{bBs2 zBkm?;OVv#B+>*4p7q6X4o@;cb@|e?y7~T9f`l)gtXK2oUG_r{|Go{)^>fj>2UeA{$MfU@um}l#L^y8R}-*^nX0#^|uov|?ZiX*?Y0Krlt%EQjqZ-hso_v~9sn{mz_D}@P4evk85-#l%@ zC%_7H09XA^#b_YEcK}pA9!^*=1hn|tRuA+a{KBO_=Uw=c2a%q;YEtJmAQS04h!7pn zD5x{|M8bBEbGHafZzc|Q-bf(X5S`+y8HNNeL1rbK{-+1ufNQQ{QD}F6} z%fJ8;Fuvm4vUtq)`Y7aZoa2ujvB@`$p^Xm+EXecMV1dCqYf_+jdC0RwiUH?8yaN*j zusivViXd4 z@~ohfA#lTs7I)P>>_!NOw7;_K6Y|6ZEt-Spr6C7+u<@IVRiln)t3A8_5tTMQC?-rsjORc-(H-Lt}WAf5VmotyPLlk}kPPs{A;U~C}LyfG`tv%K62@f4_KR#{POwKvwh_ zzP}7K%Jk~?00KrgWV7ILp-fhQ)W6kw6)H5&$;g7DD}e$FY7!6xuuK-{w!YFX#4y(C z+k#iWMr6lkGVZLgoXsRPUJ6Ugt$tS@7umS!wPtl$Ob3L81I}wd2<7SrV05u;D^tUm zV(w+p>t08;2*id#H7F|FMJa}~AdH(bTbjamtZ6(QAE;hmy}sOp@31hUnnK}MJYwYrM(Ed0BhB0grF^k_ol+7gSXwXTBmHD`?muO{Ub|| z6KDZxEXH=*o_#TASK0irpR(dNw#pqxk{J3JZuUTb3aEsm42zL{w{w9Y--DN)J}E>n za@~2a|E~ya>y4bPWXLs6hRL`gJ`{|j2yzx58}X~(m6O{2KQ8mLGJ>n zCj$;6Qe2P?m&D;kL5eqEft)R;nt?=Ymh{Cxg2-2=Ur^r-`CPOLwxGDqbDI~hb_Z%( zgL^MjBD5ctZL)-@d+3`RsI`N`$c6pzfz*-V@;S07lduOs$H&nx2;HATI>djVG~=z06T&Yk|JX0td+v}4i|iJ}GupW$lW zl)uCMd+Q>?5O25vLyZ8{JCqB~zLWj+fHVzrs7|5VhaDMy7vwn}*-ZGnt;#PzA#oWo zlUVY;c_Vr;uY5}&Lx8&pRF=a8++XRRUjq+wtAaTFO(za7o}AW0{{(r^h1%zu9KBfH zjBzD-BXWYW&K-fblBM3MIj<&rzlm%-m*X$lzx1-MtZAg6FpkqSt$n$^Dn3ob|ra{oLbIHd;fhOSgDEBCXkS3iDo8zObEbq&jf+onh~AaK3|4H@jGYk#=b zSgzf?o%AxT3gt@$BM#2?u^_`qn2!Xxmxf3a$0K*lyXvnvzI~N_q%X9602tpzrNJgm zWu$M|*?xUK?tqax*w`HD+ekx)965Ta-htQvCSNhvJHM499}2u#((~M7V2=HKup`#k z%`E7Mod*kZn{Lb?XaYJGNXsMMHu+iF{hhO(V@wGT${SY2_}Xc&oQLcFj04sW*;U;I zoDuTRS2({#OkOR7?)AjLAYe{W0pTmN1~&kyXI%k@jq~ckb%Dy(l@rUy|0Nz)*vS{G?issuBFw@^3VwrS zqBE?^g1X+JV35d7lWu5PB#9oL3-!afWqJ*aBtIMJJI3v{7T-1*e!u0n_e)vZRw?e* zl8(kq=!dbI|Lhth6ZgQi1E|P~;}rF_{V=X3kB^1)zF2j?(iVk1eBApW%mNfXH&EG2 zTdY}y7+R@MAul->!JhrTare*5q@D z=&F4K(dH}Xk1Gi_e#UTda75TW6*`bRaxb_R893k^d6oQzlQ>z2Ze>oe@x0(L z$p=__fRjHrUYgVM`M`V6(LU}#7Kp()ErQfQ^%xv`AEqb`GAlw$O;-u3F)|<=subCzHQ${xNtFgfDsXO}l==R1&$QoH7FIYF(TwS1Im z`w^_`d=9ycez_4*VY8#R+cT0<0^8d3dpgIAhPtI%1-fmucS>7nu#C1lLMXxzTwf81 zgPpUFN6&}?sx-_4TnTA7sjXRsRlS`4cJ1IR@Ku$!ljk;;HXGkbdRM^#9IGqs8OSIu z?efpsn?H>dW0HgD7ATNN2>kFrNWL5gBeQt0b4UAMoX3Dd+6J7ONw;=f&iFDq`~iSX2SU?wh`Tk`T^5=!Lko{e({#Dbj{ zfDO}W+cWN13{o<)ff(riDSvUnPl?FQE%*4xXx5E|IrsK+cE?gj-I3)2s@qIITCP(Sb#NGWbE z`n{lK>X#`<;B{4p>b+#YQnxv)&7&=7iBub3l=}9h1&Pyx!=yoB=s66Ec zfSJSUJwBQL;hT?>Ss)Nztl3Re-Qe6&;Wr-=tQ{v9^6v%UlO zk4ri4KXb`+ zu;Y(h(=OqxvKFF<34ZyveQ>jXIwc`4nQNFj z_Y_0|2308=(il62+E9eg5rNNU@aRnBKwC( zm_ES+i`aC4bDFg2(8h=T!U$PBfC;Huj)Pmdoc4#_W|A&mcxl6TgTSTH-hvK)q1HPv z4X3iU%lZ!XC#0V+zIA0uFgadeUa%SwjEXs{_BsdP1Lz#pBHEtBg*PsExIcm6+5LBr zRW2HoiVn>aj=ko)`h6j+JfLY^4J=*fVr}Osd>0txUVtO28v&O3Pv${M-IG&~%Do!m z>?3xN*53yC`!)Fb{~)JW9i)%QWFzBN$71(p!_NGxR-(FKDjaF7Ilx6VX|_b8OMX@H zC%H6jfZV*VQ%3x~3yM0YJZ`XkeD9P3_6Hlf0;MtBoYSO$R29C99P-mf#SiCB|M?1# zu)U-SljJxirNdw02cvIp?`E;1UNu6c?!O58ymsx5It78o-4G1m*f1dx)fJBKIq}Is z|5M)}@_Yu;xlEeW>0gKB=%6n=6>IZO@w8VpXbu1ZrC5x@L(gYT?!2o7Cx13UJ7(D` z;d&{|c-XvuwZV7<1RHBE0|GH=Ml8yjvm3kjD(&A_58lYSeye_DQ+|KK0W@zt#vxS31*hPbeY=D-u))XE5KG<3N9v(^K)(#z!A7g%^M6 zxL8=gC}|_0kau8keXrI)DRq!b!z9I}i<{pR1ovz!J^SHkSh@v^v`-EO{4wP#qk_o| zlJgaC)RWFuP%*(qwKn2ofkX~J&@(xRQnh)hU!Gh-|Ho0-%KA4f+yQ=@ofn}2kVbSM z@Vo<39AURMYcF7?VxlK6Fp>zdj+x2<%%szRXJh8au%Z`*BWR-F*3^=L7UcG+7JAP_ zEGK%tgBjSwv91L$J5aj>%Cvevc}!oY)G24G?vL{P1j~4;ITOpbwx+yigNP<##$HQQrn5y5=4vvu=Br3ggPISQrzfB-r zI~1r23kb~7qgl&CL7j*Pzf49$Fvk*BxYM)Ycy9!O>(%Y8bCKb!>cQBB?78K{8JDB; zBZh7r$^8t>-wn9rFD|@B5Mn^AA1Xx!u9I+)_c75QtF)&jA4l_0H#k!-`p25ZUV-C z{l`zoI5Eqa;J`$5CI~p2w2l@m1+~OWCK+Gg(hZWv5hjVJs@JzisY%Q8u$G9x@2o&M zyMM*ielX|2eYW8_hORqmZ0x>|y)5g-c${6W*WQ4r@1wLr54YYiPhvuRl#_a4;Ev8e zF`7%7aY4%!sU?YDaZ)FN^uy7jE#!)&tpctkWFgM_9KYaX&wAK%x4vT}EAuYk!~$D2 z_u*1T9Q^y&p9&8Oy$cV3_Mw&7cNt90cdnuv?|e&o5P;Oazc0EpD15iy@fzsd^@QeU zzMqZ;8qP9%S`n>yLt{57V^_nB#I_&|00@Mlrk@QVqF-r=Q$tXI&Pd-r(q9njgpRop z{u29QeaB9YY;Npb#d`leL-^Nu@9IIn_Eu!*&kOv?QoGZOeG-xFRrJ3v`vT`~N%I|@ z{gdZ@|LlK%hk)aD=-8Yiy@M`fsGkn5q?_lbP8hw&K)dnY=mYoDpC0p7dlmDXmlk&A zpU;}$Z+BZ(|`LF{m@>llrtz8oA7wPdP@6xZHN)% zGRId_cqX{6cZx_}0Eza&Sf%N#Rn*U7#LOdGaMMK&UO|Cx2<)cXRP1I&H`bH|`4~QK zmQEN&wAT1udbS(wQQi0q{fW1v6>!oRV17YbfRwdafl>tJ4R#>KI9%%ak&T<%|Key1 zM^>v37~1aXhh8kjjb8-sEaR8o>3~xP%{{i!JIwCN66C)m8808jVE*!x!!`T;v;Py_ zQ+ZHeJf^GgP5zK%4QL|MR3V!jOiGw5_?3Qa4|b_K&F zMzhp{VA>7^I9ooTeK7V~BTnLnpoCF-FfDGK!g}7jn=}Ggl6(e&WPf=I=_b}5Y6ri;DsV#H54t759}o?k95TE&zN6~oG;YY~2pzzo(Pg6Y zO}a~wji6PCsUlu1aoH-e^nn$@gLNw(>PMQlV}s#KT-tHcZKa^W^O4bc-i3QB1xK4e zG(4d1xU2ejC7H5rwMI1dQ<8gy#OC#Ufmr-q(SKfq@V$Of-2Nf7FY>x9A=fBuLsg^X zk3v5$3qevmc6`&>@aqNMUdC^#!S4^;(eJ;x z&pIxavG0E9N<^3RnICrk03m*&@CDlueV{MCq+!m{)*%$sI=A;?B&I;ycWe4dsD*Sz zUm*s1(Z=sdQT@V$o4#wu&yM@1C4b1k`sH2trW7muaf^G-QE?cPwqt(5U(g@8~GeeaTyqR`Lf8J@9o|DmVJ+#$pEZ9s9pUqr~8#3&jgE#$b?dI+N*EOIFAIMImcUR zrUU1`*?JzVZsmJduj&7Guwzf4cHaf^Qmno+`zzwkw&7b_=#T1CKA!V0`Sn%*(K_!{bOpsMw4D- zog8(wJ5%-*e$ShT-tKCz4}H*u7IxHWruJS0i?3;h?TC)-o``=$TK)rWp?>Cdid9je8^T1U4%@z%Io&$#T%X8(9E##1dm z*jF{`#>WeB>vGyt5w)kE_-GptuNVL(qu6rx%`ekY*v@~2F=}g$vW8Y({o{`m6$#czv>l zdKAKp?6sdg>icNQ*cZr!5}IjEq29nvWIKWM2`!#Ip&vb;OQ%0s`7_apdw-Xc|DWiB zC;k=8NFRCkn6TkL4~4CokpA(gZR5kp|C4diZg*2Gx?H20Vzj99bhL#gyDslvJ^#88 z7Mo$Pxos|k%|4T{kQ&BLNEME}5Gv+@uqylh!wbrb2&(!GhjMk;IF23>RteM8#rL&YwAysJS=?un{Vy8}8 zERt!9&00?GtVfoOSyH&D&|GuX^gn|`1shFbSjNXq0%Wd`T|<~A_jdCl{)kKpIOVs z;I}2tT>YZVME>=!!@H%kuD8qM@htQ(7TTP76dH%aA&a5Y7vPQst|F^jUAVyNnmt^| zjdBuo$U|tfyNx#MOtM_H#+L71I%^jBMK}Kpw<}kB^Ly<1P9pRzxmt>j&{=d=w+nqp zqueYU&o0T;F4Eha7PWg>Xw)d=pe>=?x_aw7$Xne;H=zqP@aFf1TFNEdcU~onCaX#q z$sSllsI7TRXB95U)#=swgnQPq3#FxBcuOyAef5jy4qe!CXeDh4W%%|xiy6LpXX&BZ z-BFR@yKd{H8-;|baNG4?>pjeoo89+|)9;tM91kU@TF|_IH*fQ>DDv*?c|5mBh^d#W zcB>QBZrw6WD#ijDZ2_GoqtO;Isf!q#7%B%-YYF9N_ue)vq0el&Mt#vwOQF)qQsSuD z*9*9H(@!4fId!POPaprKO5AqmFO^|)%4{}b+3*TVC5U{N+o^WjoHKb+=5QrK1zf-F zCnd-X`4){;Z6sVb#&39%{pt)OXO3O%1T9*TUAJ^rrp{%{cWQOF&+}W;_4;rv@)&d7 zhGldnD^xFX1g~GZRjZ#rWY8J&4DMw#cHFI}u3!6ik6mA3X&Fh$x1PIx@!vfcT9V5s z91|su%ausY*=d=1+yri35|_y1DY@K4O1y;Yk|!Gqa+5j5>ST^5HBp!^jii61cdZ{4I$)XLccXF;_x9j6V`?0wpGnn`q{nHS{!sn=A`m=ISXLZYn;^lO!c@ z-8$A~!B0iOUuzCJ1Hx z1c@xE(4$E%1Rkl7t-tx-la!L+(TWneR29BKm28k_@-uCr&qD>?yz%yje&g>HHX16) z5k3At}z3nH}jxDnPc#Yt3fq%?`2Iu2x$e z=@y5BRpfR$VhSi~Of*arE-#6kVu@^ShEtj(l9>zm1xy1qqqvAeBho?z7OR!{^f-^w zVrIHES#*!Gm@88<-1!E(S(7cdaNLPS@+6bKATK*F-R{m{w#ZBR24Qr($mw?>szl<%+*5+buGqbNns z^Ta9BSO%x4FrAi~UYHqgaw#*YoB~^+G&L$QK8CgQxs-7-7#q%mx7-s_6+x- zInJgOCa2ozY@uABmxq)4sy%~`Vhl-2Ay<@cN{`o46U> z8oJGv&ZVTr39`9qgoaL$X}CpPnV1?X(9KHHC3u8+Nm`9ulWa*qz85K1tG619>JW&FbKM1r$y5Q)kReCYom2|hcMN-qM=Y}2T^^y> zVb%*(f=nrc8tTt@YJn$y_Cr+az?0GRdvWuz7A}6{#F;0bxBAYPOy-9Hx z15cp}uV%JV~^^3=TtIY*EH(-Ex{DgRV%3PZydC)3XZrO1D-nH!vkeZj3lRDN&Rz_BgbONrZsO zP;uBw0Zo`^=GmQQfi_g2(vmMur_y9xx0pv0r`uS?R0=J_q@`xLNFbglBX(AN-dtEL=)AWuHxIBMy(=Lpu(x(3vEoEjV(;dm!+pNWG0P? zYLCyBFq}MLx-&B_rNAIDI4ummPHIvy(}k8Knj^bA+A7<;f%WwEC*h6SvcudpYlyOYur3XBdzIzL6mmkZKl zd|ooaEmYa03ce@Ro={Y1;u@_^rkfULVrD1UQ{_s7JcZ8}Bqj@ad}<0mja%s9hx$+` zFLD+s^W{{AC{N{JcnX!4qNG$?W)|0)EfM95ZRji=-;*cCf{e?Qv*H9Ynckj=73-v8 z>$aE@O%Ru&1WX%cs6ZkuEQ1A{2pU@=wqcW#D-s;Sg!H6Bql(Y9Wk|B6N-AH@^(YBl zLSA+PBT=7B9hTS*UaDEcD{zw&iZIyoGmTPgbDmU%Q>IT)>-d?%#6-w2ms-QmFU0Op zz_Y1MI=a}Rl)IU^Nyc=(q}Y&4w@LXGHQIbDmjH0D$pjSr^ctm zv(3qA#yqBzm*wK>&3YCym7k|_rD}>3)O40spfW1urfh7+yn+Ho5!1z$m@PI&Zd{RD zE9Dp2Z22B8H%2mCpim%E8pVP%eqoB;NF+J5awl7%bQ>L(m~@B0%2)7<-9|&E1}7<6 za=J~e5b~%TmyRw^7b{~JvUIx3km%xPsd#zpP=P{Yp*o>Z!DEQ*g*K|%YGR})EnJt3 z@1Q3*39Y#>)8SC(3iId&T@uH|w};kmx`L5qO(`N&&fJ1rR)Jc{q6-~LPN+aucA7$- zDJ|lHuOH&tG)N$!qN!f9kc~pVBfMZUI zx2Cd_@|lE`PNfK~p#s?j8jOjuz>*?k+Kol~bW2Qj8A}~Q*IJEKwl2kJElkPK$5B%B%nY?!&nFCoDOHX+(J7b)hZnC4cC*P)d`D|Rq8CggdtT(*jXux zL|TzWuGYk1kcTnkjkJXtXgnGUPRV-#xzESl8m zPNF1f>3o@#kZ}22JI5B2EG~*qcQfn-)_irmdwALyEj*7UnW5w;Qg{mVyE>C@;!F7) zi9FLCV@bkp&ZCP3>_U~D#!=Gqgo1Rj)|f2hX0SZW1a&^{Om`=zrm^(AM0u#m*;%QX zSq7dxF)c=AQkd0@Jd;9^mte@S=NF3#Q=CG3qAkO1QYD$T=#qUbWx30@{UoyM}}a(L>@e2X+j6|am}#?dg3O<0B!w=!8Q z%1)N1QdLC0LYHlp%h^IxdcLtBF+(JD8+64n+U((dS(naqW$Q&2vyGaUUXa8xr17;$ z@s3QoIIEDQi|5GFEaH51A~PX{Nz+L+iJ9?o=vr~@(XSJG@8lC*UFjNbe%KH$yQ2< zVwS_4MG=dI79vxZEfP~aT$vzMP^6}svx>3=+9bUq&q_0@LIq}}dt#F81e5BFk4Y^o z;uX4_EWM8ArYK`vI@I~o) z3Bxs1m~8}KkR{ERW=fNF0v@@aQe<`_PmpXa&Prg)X+*l#Mx(@uv>9w?oS02XE6(5~ z#yH{)Y^ujVO_ZCHSptej;-L(yw*`6e#cYB?&0sn6Q;KD*LNhHnO_#*tNuXw!#gY`Z z)=AK<_83D(k;cX`vTRyUh9!wAjWh8R3kW^iq0-??@+s!5;c1iWiBU7-V;F`kYpRr= z_CMHr4=AaMZDDv6lq8BEqKF6z2sYC3bU=cgbIvV-opVm-oJl=7=Li#Fh8Y<0khA2B zpn?br3JM6KD2kZitC`m4ytFv`7i8?IQ+rpPT~)hw?ts=IBZnCjZJgy* zQ9Uk#AgBt{WnNBBVG*d%Cn_Whu`I$-u6=O#PG`~fFmC6ty7EuJH6pEY%ZdIK> z#I$=&SUVRR@Ypa;ma>21u*|^qCzZ!ogz3XNRZ1bAjoPSmKpq=p#l@&3EI(|6_$ZA? zaAE}Y(yWDZ^|i4h~~ZIB5^>_Zd4x?>We z%@|Z#^)#ME?srRMGzI7(u!N0fnk_7}K@!wLBm@O`R23r_m^PZzMmDf8$+Ilx*=P<0 zRzNUCG5CnZ7?weR57L>ozA;pB8j#MMGDwDinfgUKlMaah8v{Nf!3T*z5e_3!9Lo`B zBHW;lr0kzzfDi{4BU=);g>_VyhvJUt5E({G$Fa$D3E!bpa(x^eE$DaCje3@oXRupM zY?jFk@hyRPl!Ae6h*lNV#6&iCEGapJu_6mL&I+&;7QQ1)Av)EZco312G!Z991imcY zN)v~%9vRnaz`#661|;cNfaZeKVSz>A2?HUCh_|XyvPUhAd;4by6l{H%3$e_+01liU zhfAj6K`H>p3t%AwKo!6Q6l9OV$YYs^fHjf=daQ=WcC)!oYLriqIow!C0n@Mq(Qh>L z5%~lacuAc)>LT0x6r+xZanS@GqfMo^8#G3yf+%)LcziC~9;9e6csxdq$nh9iOo0K? zxL$`3$mwDu3ueg3$yat-bp4aEnsj(CQKpE+rE+k~TU~L3l%^E}Ho#@U{t!v+iCb76 zJF3w8*qVTgK{oIW`mhQJzOud4SwNyR>6LM>aL<5i_br`*!vGOSQt0orp2H-l8xm7|0A1SQZm78(ol5{Z!FGLkOO3J zViaB)57;?vZ~%i>k;SmtqKlGUDyobt6}e%7H913r!-7%Ma5}*FOdhNSk6}SHs?P;U zV|a;K6;abBp( zdJK9GAZ7BUVPVj#b@WlBk8(&qmHm_hB=4hKF!~44`f2FwCyoZu|4w)VAgJ~? zvi8xhZ-L?x!*BEhi(o`BrWh_{1&o;D@JXl!n+l6i*@!X894IywNkB1%!!90;B4-(W zMmtyI5?g_Krza`gVuOk0_lYftn{3DPLP7=^p;<66#wU!ZxB+R@=Mt-cLdCQ&anx{f zl}T)k#K>@|_*Su&WJCqTklG;9N=QTkn@_+Z9vMMJ1IG##Tjg9yBrfAcr7<8UyFDr- zBH|mkUc2RvitjDFnlEI}G@EOS=8yr+{glZNyz_imf7`uV1GkAS6DO<~q;w?(68RBq~ zx}FYCc8RHGhlW7V+nIp?jmy*-qJ3R8GNU&jlbYQYR#58~(|KM2#txW|9P0+EFUk*L z=}b>h20Z_l ziGF)Xh+&fL2C>lu7J?;@IaL${xF$?2tVM}6$G~mP^}<+G?gC$;9)ejWpmik?dN3p# z4$(mXPQs*`qqML>4uF8lCj-I=9R^|vj!z0$$RtI)4+y5ku>l8{)!$t~!4tVaMe1FfkL!Ju@IxbFIC7hvrROLO<;o*eJw7MSxOQ`V+yz6pQJT#puyR;Y zJ%xZLJ1DjwxaVvv*KgLjKnx#X;P@Dlo=T^<&3sjmAc;wsVW*#=qsRj|J{j`L;W$5P zCrMRKr!k_X2}KyS!9WsANfH}di&d#GYQ2r=BJ%qeB^+}R*cLHC6vWwBVX>NzVFm04 z0WBbPs&opiQW;h=h>(SVkpmtk=ZXWsQmnE_BPI!*@4@hC1};&LRXGA7aVU9Gptu^= zMs#$K3H;N;#CX`lK|$tR(5O@6BLcEp#ZgNA6dr*Oi%kZFSMM{3ffa+r6DmD;*lDAA zV4c(E(*?Y;q>Rnc2@p`YKjw8pbS5b%C80dG#V2r~Dh5nqnIuY`iKAz@l^Q0A=~XDB zae*!2EIT?Hwai3U|u&R&3#G=hZPnATb@})iNw4zJdcG_;Ei!$rO|N7 zI*ZjKA)9z4fh6X(5_Eb4&S(^4q_EBGQ=npzU1ARRtrd)AMwChavV=-t1#wVVB8*bJ zK88_1Gy{Gi(t9=H5YDFHQ}iAehU%t>6}UdR%Zc|YM0~!V5KwX5YNsE^CxDxeYG!DR z_@wFH=}`%!451e$!peZmp<$vtW{~NHH6{Z&WY&uPLZ64FHj`X9jGoH!XjNPRBLW*# zbc_lwqOpk#ztyOgfe@mA*V(_yK&iv=Ag|0D#wsK*!61vtXkxorprgV()Piw_T$p5= zi=&&HdJhrm?eU!4RT|s zK=cs1#f&5lJkAR7F*qO5hw-YobbmjNIL-3V~WiF|x(77*}VvQ++xV_6qz?H!!Hk!1ciNSojJOi=o6hIT1V` zgRtC6HZBk`n1Nj4M;J_;0}=_sPM0I8fb$}VSdDWS^oWoYvCP(M6 z1R*g)gWxePW{|>B^UOMtHK3FPg;4_047m*EK+F(xxHzVu4(~K!%#e=cj?#Q_R@8(E ztCB_xx)_3~TAdZ}&!_?)7RXePRH-D8LIkcM%I1bdE`u;;0E5^m91W8eahT;C8v%|w zXw(oQC)o-509Bx*+wC}Mk~#3y2D=ooID-)bkr9FV*gRtK@xo@G%NO?&Vj`B4BfzlK zbUU6wWS~-u8KaMITy|%K5`kjjum&TDhQv&z(FZ5*WrEqk35F3V8TfZ4QZLvpJT9!a znV3PmErt!b<#Mgr3@p0=wvD5}%GvlZF-TD3A~C*=;O7~D>`0~S%~rZa;!PScj4=V? zQNvgzQKJ`8P+tJ$kW3Luz(#O;WkD=eDNX?_n69gcN3Z}|v8kt3g6)UMu zjUwpvMz9`)kbGrueYv$t8%AKT@YDzo&w`{9H%`m;(TFmv$`(>#fQ6cc_(XA*E*6l& z0od(w16z!f$PUV42ueliG%b)cpr}6S@o^!1gUFzhxU33Hz=$e{OdASELoNzl%5yRx zU@2w$y#c0MMboKiauy~=S2{ghoeFRA`=yGAl|v_TJ#4RC1=wi+SvKh$N+&g}bnt}~ zmw+BtvI9|*QHLYAnOJ&&87AsEK{pHQP&t4rNE7yp5g|BdQo4e|CMk_fnB$h|89@z2 zX?G{L4M_tG5dIj?LyV~~3|7=k@Dl?ZnT9~YGJ$-+KoFV6Mt2ZJDx1z@qab#wRM^Mb zTrfhxQ@K1d(7ee!1s22kUAAExm@&JY;^V1BF^mmM=YtXSHnuxvS5UlgP(o&?@L(k! zKvZ&Y`!;M}XIp?v!xABEJlKaE7|n?x5?k8;%8-o}bo=!IAzq0=xONVU#-&3bOa-q; za3siK^C%-Ezb0hl;ROg6gm46&KOa!O$hq3@CtN|I)lh?VUN31to& zMHeR0qI$2D!zD^^7$vNvqdc>R0OBtK8Wfes#WttPV)I}PUY*^i55yx1rpp9bVi3VW zjS(d%JE{1%JOZE28)5osLI=dr@+CqFo{j-GCIp-8utMiisr5WuoT!1se7xHjVa8nn zHHJ=dQ`A_8SLE_C`0g-*a1lJ0*#F8gt&l*8fT$rTB)7XFQ6r#%jH~eT`3gHt?)3=- zOetV4Se*v|g-tG(h^^AaRBl_0W7G%zI94GDuqbq!f=(qlp(f=WPTBiKo+~55fPb( z4_Qc*C>u}rIQ3#7j;axGwF);*1-ngb0ncW%B+V=)u^?m#iiLKz&B#&6DF!i@;D$qH zvDRm2>ev>Aii8IQbc0A3wt{S@@flJxWWpP%JORNG<7lD`5fDDZ%xFC5=%=B`9wA4u zCW=%aRZ>hOvl|x?z!D}GYviIfnaHmUO9gIM+@nKOTCc>*rm@XdU~`~SQ7WCs3X`H* ziY6R267_(^_aoHlg8`k~DT(m~7B>hoa!7-cFx5hp2V4XrjbI9EG$u8|B)P;kAan-Y zB%MCsaEBa{n3s#8!bY`3=*D@Oq!5{sJShe?!9ZXK@pP>nqs8bD)a}wsgMP6pLclX= zKAp->M+j~}TZYo1W60zhz6l580!lx|2V%G&zrX+)$*94|0Dt;t$TkExe4)pH$M7kv z0L%ygBNorW7HB0nI|0!mc&*e(aJjv1yHa6i;#5)&$xV|+u_S|=1i77v-A|Spl)w!Y zz$V$3gC(NTIX1k(WaOBYK|KwGx`mY_ij^c0tNmgv4RNx_5n;#`MuDzD;gM`{SQ7}v z)P4_7N))+lZp6kmT4Z4?E2*b|g^EW>I%Y`d=UD6^dnhUcHzkiq3MqL}J&o>Gc%uS6 z$s^YQNm(uQbD^Np$f8h{VWr#>af|dWm7Ws9OW1f%(zyWPO-^-$;$T{hG#4x}V(?;D z+!3Q%H6{v%=B86otBJ2i!o+~iP6n<4zTT!{YeFMa}z zxI?I&jk5=_1Zxz}RM0Rg7_uw$M3%yb!!oTgm|z8WH@F7XbR5qFbO9tJqy{4r509u< zaw1HWsAFJ+{6L_8QSe}si%kNbA4dlv1O$=LLo=IcY853$F^8~XUX&$@JBa=$L8KHQ z77Yks0k?ozA$AyyW;$S;^ZBaxRA_gM2#n?oSltgg>`-&6>SBcrf zv$@@DstrU}1*KjiR=|w|1`-td3@FAWX4=9Mz(CD@htP>4agyD~O@<4K>_J*ULN%PTr~!vFF+ewv$T6hmxTk z0WQ`AqkNzhJ7{D{1Xz_~D9y-}D)17HfeDVj70ahlIpP?H>M`5dg71I+X|&MKoSEMWChwKL>E~ zdYwiYgvZ&no{&@}2n3Z5Q-GqCBQd^1Ep(X;PTgXRu}i9960A}g+o;E&9Ir@hbbA9*Bh^EYb0i=* zupeP0WQxedVLjQRmD$BUW?yfEfXa`!nZaO?qgJb#cCLZMkwyd&Dw_mC7grno1wUD|CjWzAV=Oh9EXt++w=ZU@i)Wb;d;!Y1nPn#aT`uh+qU7 zzbqQ?=;&4h2u2NfXaPKkiXyTVMhhf!fYVOr%S1_pHdY+VqwC!sH4(@O5ySu%Pp?3& zKEwii%A_EN0ImZb2Jbc~BtkZd!!Q*(wp}KUAxwl3Rf!pDJ5|o01${1el4Gm<)R+T< z2QkbFj>n2BMKZIF$&`U;Y`Rw97rOEO09}f8d2JXIhsrmy90YBg>@%@rNI>BY#$aYd zNVkZQkP*X3hEK~8ZP+ceF^xerL(hzvSu}5y9`F-F!mz@}$+M}s#-7-F1(Y|+S^;((9m zkVp+KAI!vy_+pTzMF8iN=Z#}Qn1heN(;I+sLM<}0WNwm6C+DLguLEONdu$qhKSIdP z@cKD&JOSj|5D4lph>4NlNlb}>HZcq?EvE`$-%QN>)uZ&$>`M1NcwHcRM`*TVW)0x+98ypR;;#j%`71XZg;F%OQf zaGD50FHVk+1=u*3kjiFpEM$fpaIUBlSY1sdFQljP%@Pg{_{yY78tT!oDo*FgDH=b+ z;}=TVd>M$~;HgX&feu2oWOqnmq~akABrzIX1`@)hD&2G;*9TNTwu{DdahXg%%VET8 zqnM-?K#~#hDA(ojz$TAd@ATl~ZmPfx;=rhCq904A+ErRVhGi0ywMIVV2}s3$z-eM4 zi-#RjlR^rj)e+DIV0r){Vw0K_;D$8jb+2N5aGm{3y;$OuzzznmgmU~&s)K_!Iu#5IRRx%j9u<2*aJVA?D@g*i z6-11a@ie0~#G(4r9 z60_TGjY}dbJ_trvS%4z$NQ{p}t6#$~fH6a<*7n4xMvSbXWk{sr_r4*?_pj28wT9MPO z1~~J8w+kpK&f&_`45JyB1q9{&^m%wBV6GRdVlpGArs7D#V=Ssxr#q5wZ8JQN8 z`j~ugkcFqXNJ=J?CD)RuQlHB!v;eo2KL+tI76;cSq~K_Qs7fM`k!dg@0gOM+2C}{l zMq<>ED8@9&fd-`Oe`SmwMVSf;QHhDcLIK5YcVP`$)XG(2h5U#q$b;w@o5)GDf=D)r z)Xt!51PqCpY8QHA1ic2!jdGYo`#45KK1V@F~7N&;7^6Hctt(U`6 z`FZl7)q#lp1Q197bOo#$FmbLv2I+zKh7`BZJ8K&&#R-b>M=2;IR{8RZmZ7^f1l1wp!zq8Av=#4rKI^FtOc!4ec%c@Dgu61Mdt zw28o1rtne~_C6~&Y^RW2 z5|WEYjR|aAmJQFx&DY{0fPGPM<>C56p?A7Z4s;~Jw> zC>68$LWWZ-L!~+=pC@n#6*7s%p$E1lZ2t_gH23U3()^M+e1FdJ`&ZIk`w~3=F*owx zne-|a|M%IeUN82qGGD_Hh4qiT=D$ps4fmyFVt>!b1l?cyYeeiANNE1=5@`P(5jzI5 zng7U=?#ng?R1%A4@_pfm(FfEY)*R3`NVIdO(!NoIuF$2idX~+wVC3 z^!y*-S=Nvoaes6#J^#7b_JF9rG}|9`z8$(j8H{9g?N?t_1_CP_4Zdj1EB-xuv~7UgeprGMM3JZBiBTqA$; zppSHYNzzJC|K$&4$@J#m)AawPB5ZGRpmxp;j*f3Yoa ztp9mi{0a1*CaHa777su@XWu-v50>Xb4J^0T`{Xd+k z|M}KSlJ{?p~EbM>N z+`swfUmTQw^9TUle+K!NX!;*={fAut5(WOH&i~n6{~_1EM1g;)^M7{Nzl~f&|ELcL zbnMwL#zFPJ2ba@F@R`g7GKG}G7qL?w8ksUU5umde?1x8yvW1}tC|#i!ij1ZSgHELk zN*SB-NXoPn$Y>4+=rWn8uTEiK-~M`qfA{0=Sx~nS{CV%yzkdFAo&WsHPzxyP2O56? z{~~5E2~Y+x06t^lkwD+)X7KqbP}TwmKCewlS@J0OO!%A6_>`26Eq(0_0v(s~5c}4yrz-4Ep+`l$6S<-^K;#Q^u-iC}&L2T1}wPA*lam znJ`ree81Bs#K1uR);|#|4Bjavh3OA~+7O_E8YrL$Dkdh_+*#Oe)CpTPH-XQZTn z0P_jS!8aOGQg+x=QmS!YTcm$V0|yKNBuGB}ub+SMJ7{_s{5NUf^N*Y#!}k}-|R zV9jGkIThUHynXzS1wV*Jil?(UG!Pg+2+G7+gn$)wY8ToPFv#Y&~~zy61ygJKi>VzvKz}k=sB=r z{mR9wDpsejaj(^{UVK>LvO#hXT+ZS zd%xUwe*d8Z8xM9Isydu;#B)@CjCFj*iDynebn@mqXHM-p-TiLmd&v97GyJpo51u)f za_;JfC(id?X#6PsW79?MrRkrH_~g4!&t2YrrS-Ga&$U;H*B-xi{ra9S7TpNmOuy*lqPU#BZPY_Qsuk-!*?9zRUk%{112T9sIHGC*#l4e!lrj_pkHr54*qN zf#Jaeuu-lL=ze7Sqq&22556{Z;IOA38#jFXE7@wrdOefs>R@fTh=JK^-iV=wN1Y1gDJlh;pK{c_LLu4zkNX~(oqZ+Ugm zj5=%;t_HaGqCOnNpWk6FYjV^?z;xr=yB z{1!o*utU@(?vbpKZjf!0zpXf=JgGXP{y_7g_JZ!B{u9HMH?GaQ@#d}h-z@n4t$W5_ z%qf-u)`zSQY`@rla@=!%@4Dl@?fJ@k(|6tfdEnFF#nAci*~p3LzS!3I8h9zvgjS~J zrJ?Em3`?diA!fPeBO>Tc`@xaC3FS*)ruJh>9on7m?yOuRAuj(mS zk-0Ly%D>va=B>4cb*f(JdeH{{M$RVoX4V$=R?arwcEJwGPQ@S0*mvXoo1cIA{Z|9O9(jAhH`BkR-eG~XI@KX?4h7f2JPPkiacXJ2|^(!fbSPX21j zm6y*=Jw9#EE1NJYrnkLXGot{Th6~^=1U*qqqC;ddhBA@*G;P?-l$m#5yEW^|>r>T&mYR(MzVR`^#0mIs%GmWDeb z?a`Ll!gw8Ag_NQNso801>9GudrZZv8GGxnhc)4@(pnOch#KJK}j}<>${6opD(#vJ% z%1>16tK3?(rg~{jb8U59QGKETZVW7REiyOFZ`QY{TNQ1xcIjg25?P0$Q@vE*wV>O! z%(oow$zD;uvU$~t)!Ww`UwdiYo%KUDOxQ@>B;V}WQn0mi+urS;?tEz1#NEudt$Pag z_Ut>k|C@uO577?KKazd4>)6rbw@!|Dhj2=DI`VGqd%f?!bLQp;kDeRbhScy<4bb=X#1DIOu%iE0uHB9LFC zJV||s`VH;!%=cc~KWpRct~rf!i(gNt`xz#tn#E_&;^4S1@y76n@gE582(ODi5}%SB zkZzT&k}p=&fqj6gy_yADxsIua3{&2CX5Nr_KfQT#{znUrzqQl2($r)wvcOiGO$Dls z;GE-K!(8{=pL^c*?(+5c>jT+APe>DfJu)piGWv7uv-k;k6Vi(2r~1+~>2oqBXAaN& zE^#4iZ}zgBvfNOfHvhGP35Aao-Y9yfczsD@X?mHdoLli~<;co=RTr!G*Ywm@)xq^| zHEFym>1nNR%V`fTUa&;kF}D-9^u?~x-GjS-U3O>rjh@RZF04GW z>eT9EYYwg5ziw~up7nb+?A>@^)8Wl0w!F9X!nP~hZ|%6ZYvArD-=44sxA*mZiv6|& z=)sCZU59raIeYY*_1bmv7x_2NeTli1`09h(_-`t|{rWrc_dP!hyl41v#ZPyCnfYt# z{p}CH21tOvpKr)Kk*PX9H*;ymzTVQz+6-r7W@c-KDE&(2o(!{zo_Rl`nq^F6W`vx!d0QBJ+uy@0cl> z^*QkKOA?>uT>7aaeR9L#%e?e)wfG~t^vPA|nv?0mit%-4)AP%Qr%KX4D4DfjLk6X& zh<+^N?ZQ{b4a|I}@X33-)5a`W`$=}%nARhQdegu+I<97?z0uH78%|qM+l4-!{#e!3 z`E}{>3hC>c(jSz)I<_=pf60*_hNN;=M=zdFWi3Y!K9~At=l+%Nrq;LHYDT2qXg0v- z)81&@{$^p?J9Xl@ThkTQCC|=EKUjYI`#iK~+nXQj(Y6h|{oUyL)g>#^(A&#rS6xmO zbxPvBsc*M!n^%%HyQyN%duclwW6z99yHLshj*4OrhCUjOKDYa|eJ1qfE#V$9YUw3c zUP6zo494C~Wp$5uV|D7=OK@`@OM9*Di815S2354*c^*0a?&0&_ARCSv_wtb~d&`#3 zMQ(35R$N2%8&1X^ML%AB@Qp`P=PxgqZB9Ma`QFp~R7J&;-@byBUdsLOSHyPay*+B= zt>a%U(;&6`FIS90?(eLQ3eo({gAC5p$JTu`>wGG@eDdg4^l*90ty@K-GB9T|3RBY8 z?K)BLNV>LbV?HjOSUxr{H=P$bmHSJ2sllDwlzx47d2U-q$ulMSXyT!pM+#OK4L*~S z-%*ghvn+3G{=}sjx%cu0l%C49YOn}XS5Hp&lRSOYI)x)_xJaS@Y&WhGNpeeKR zs~;ORI(t#+wa?ADk8L!aJe%|U+5ww4W-EGbv_F!ywQEMfnJmfTgT7z0hP3QZzmT}H zh)69;+-anad?9N`Dg85SPRZNnPpr&t-j=RGwFEU@ip1x1Fvmt%(Cucwhl-f-Fz&6NW!`9V{be` zTv?_(m>9fFLlGy2cFY^GI^ikdUY2B^I=B7U`K+s_Bpdc;jXG>>ffA8DPvuDxBe$WR zGntn*oKVin+_siSKApK^>4*`pWPVrt)yK1{jcJXC+?8k=bDgHVH*LhCLuF&rp3G?| z*__6Aw-#roty4sc3eySX@}ieB9(s~cayIkg1y0qg`Ns}EQo+c}UHeK|POg7pZ^L!P zcV7GLVd~uSg5}45Zu&O$jV(0`xv3L7?$&Qf9a4U=_N~+@$mnWzDr|CAT2p@%gv!sS z)nLu#P-##{T(dFD zytQCHud(cv{PtJ7OH1=xhCpT9yz7UTHC}5h-*BaVcHPPL?wXx7q>}Abp~_pa0Tub> z4;EyWy<4W>t}C^b{5<_)$?=jCgV&V4kay`&TI2L3`RfnX<+lFRmRd8cX=QP4<-3hN zkuS?Xtov?$MH#-Po%2=6fvWw}Un_aJYS-XdB@^?i4lZbDTDi2hxAyyG`c_YMMyH@C zw^Gnv7I~;#+49nxTS{9Nz09GPkQ#o#tS+u?cx}*yVo{##fURN5rZ3kWsZFfA*iuwI zc-7;DJr!q`EegM0_IYQ;o1;o`i$}576>n&L4>PlPWYgh6B}GknWA|6r@7n{f8&o@f z`_kqkRo$DOF8HbNDqQCNC(X!?r2MLOX<$ksAa=q_3 zvesU6^uW31sa2ZYc?FV+m$t4C-Y+9>=$SX5q-@wTwM){5zI>ndulQ> zySA_Iyqr_J{FTLq?B@E>twXa;WxuuP*Q`0-3ym`qH+AN^y@`|b?3x{k3onyuhGj(u zI;sa`FWOevakF&qvN7$Bl85RhwTv$EWw{rPDV*l{rs2(km$k*UU+3Fi-%Pt>d}6@4J3&>!?9%9yIH#Xo&?2B^5;X_w_AhRhm_`q*DCr4_A{) zXp?`eikEyi;Ma=k?A|T)OVn+SuA!}8G!v`uH}x!>o2hB+sxNU5tUFgbL;Yb*TJ_wy zimHstFDLsdcUNf!yjQ+3yMA-W;={`yUJA9UmyWKU(e&hEcSd&OldaFXXmy&V7u7FT z-)vktXJ6%)4Ra?yRQYoKumNkz4rixtI<{EbyR*~V^6BdFRh~sH%MYd>ZD?P5+F4(F zbBRJ#U!7>nnIoY_@aL6YckRZ0b1JlD*kjd34e2-g)WM8|JP$ z?tG}WeEBD;G1aej51;*Y<;c!`ldKiE#-;&CX<4>@W3YYAq3Ip7T3+2Vrjow!#`Xni zOY3iMn(HX6eZ6<2a(&e&Yq&sccz5}-NiURt*XS8wEqy*)w0iuS`^aa_(^gzWHWiQP zzKHb3i#x|4S1sK3MpP#Ku_cUNo%zC|yQyUprY&kr3#O#hy_b1(<;gWuvvZmpJ)dPQ zEXwFQpZFy9bH}KJ*}SZ+DKSN=Y|c!)M2jqXBq4fX@xuD7F)1mv<%yIPmsZa%nX#yN z`Te4@!ktTR6^@PJm*Db$HhtE*BY%RVt*I-ooO)*A^gQ7UGa6Uqb5c@j0sv~{Dp$?5 zg+0qDRf`IaFU3{lMrDf~WjjqHTYf2(i?1)bUP7hP8(qaq#vg6?pkzI;L&1rZ9{S3o z%^MoeFKb-5H~&s&ZNr#IwEdmhw~gW!Vf9)uW6|uYsg&IfTPoe-qYY108dHWG4Kv_b*HE`Mi!FTQ7%?wnI%{ztz*+yKtUp&BBTXPz|ABX#MBor`9j1)ulXF zxj!*-+2s{m*9>S_(w*M3C2wy>sB2&N^|qBA%(tdBliQ^t`oeLouaWQ8CtA{zf;j6EO4!7}oK3lN8>1_9M;iruUmR=#Rt$%6B z&F7ETNo%L15GyJYFLrNTF?#R(`mV11J67bLU9xF&Fl1`I+xyc3b5s7BZNlcp=&BdU zsdXQBo_)T%ZbwmOZp%d?D^L6KH z)P=vf_-g8)F}Ih5Qg@}KR838!w03RXl+{_z*swRTGu^cIk;HKKofV~-t@zgWmmduPqq{IA^Vo{qd*`te<8 z9*O}o~X&#s>3Criz` z^rb6GUS;bS-!0bS>e@yXPaiX{ZCo+1v{uYXq%@z|%vt0tHT4=Bx>8eDb=8qvk1n57 z^NjXZ=k2ODS)VSRTM6Ojv??lJ88fGqTn_B8<@*8DYnyg2`Ksi@b*I~^(Vtd5(Olsy zSyr*|o)+meG@NCnw^!E(u=iS8>pRE1++wd-2B79AQko8LBClvK39MsvFGU+yW_ONq zVwVkE{D^jP$NQ}fEL!{E7Cv@=^X=xB$Bb@XR?!5Yh5{(T#t$}>mb|$3{WTX*?aBcw zRye-sMwa0J2pDu8?xZqZbUg}*vc^S*|e_Z^{DF!+X{W^FaX5_P?Y^8iK|(gcHPOm7u>tG zGE-m_Z184WmJMIinz4WOsuc?|KA-mHGFv9$iM-|e60DSz())>&$`kvl3zubacMUFh zIXHhyYu-n1U05H@y(3+`x-C~fThU|4eRkSQ-GW@n6Kj@9bH4&mdjM3{-sP3<#Pyvo zl`jZC(lkpoT2J9Teoecg@`n9eK3eKVv2DBIg- zmepqdvi+6LQ-P;9_AD+~uw<>j^^&A$MNP|~S?S#~n^#WV((%b6-v~+Pqa}|5sAmDx zl(*$;zt23rZSl$)|J{u*EIYQKY|WLW=OpnJLpsOK@^|f6@?h%v4rNo`2u}yAjl|M;Rdjc!w%}M|}@Ap$bT5`CleZ<-& zTS|BU>SiJ(cf+YR_)heLqk1^UwtBxGenb1@uCs7DXZ_Y1_&hXd<6uNL;cjmnSv}}x z?}w?tA5!!qfHJ+)mheTJj$~xoZGnBI8LKoWcb?5)ae`YS8PiA~u0Nh3n{apS{fxH3 z_O&-Mucf3EKMkM+C-VvpME!@;^656_-n`tOGz)j^%$>-YyIGjiO4`+1m6J7b*qXYW zdxNj8nVNGSKw$wC=R{h?)6oToJY~9x11L6tq8)Fn&x`5~!nK2J&%Yh0x~*|-YpCRNCT<*EF^RN)t-AcuM8m2H z6{$mxuVm!611KGUdj8n^trMfN1D#D{ZBuubH&$wLwyvpP$f0h))(J^h*1TCKm{`5? zncCNfl2$yIe-%JE5-Bm@WBW!Lex*EEZ_e9`6(!d$Jn_4!yQqTCe~>B>>c}qa!ySh_d$`SbM`}*;%vlTg|tdJ9=!Ky}gr{U4jZ% zX*vlnT9;pFpbz6NTU*fgUWJL2Z}U?*Nb&g}Qk#*bdw)&6i=6IBPt&2}ssd^I(Bk;^ z^w(0Ko_9BWUuw_Xvl(#Oyyu?IJe~f;?RiLL?$;mALBP!L%Kcj{mf z)C@0EApXj(@b~D;?n@E+UD=f zi+|9xwd8BKs*w}gg&69l>+I;5YT9d2baTa-(H2x&`qUTMQQ>;Uy9=XdR=>D?TFkS2 zY6ld5wlkx6XZ(Eoi@`>?yLl9-4ef5U&8$Zsu3P<-2CrV=#QIXg~wz2*E;;y)~8o;XT(20 zPR!|mU)%U?&J4J*^?vqgU*Ou<+h}ifAT_h zd-l$wKV(nK`eDPzSqHMjEtj&8#PR%>vY3g8cYW5h#Otc@S-8Y_%2!!AiRmNZoC%4p zi@8~XvK2=piBC%|u9qhYim}c1guHNH?)wQsL8&J{F(W@q`B>uhymIojL|N|TCue2# z=7vAImUyMH;ZSGhfx0v6dNN}*GZ)>+Z|fe?DVE&!pA2($6g2*(gk3x40r}bo$zs^q!Zz9DPX`Sdw!@C~!lpXr&9cqx7SQoqBPK6mlU z(zJAYODS*G~9(PP)sRuyhLy{AkbtKPY>G;A1xYzbb!2tvnw-!uA`2=dg~byX$!lFwSmwxG+j>5po%3~*|E>3ObdB?QKWE>lyE0=?_NltzL*zLr`Jy8~7KAoF zyNQyIUn^O>F7JsI4W-fC3Eg93-8r@;KfE<2``tD!Po1r6j=q|jO=7qh?a*}K4=ZR_gf9?H7a@#Culv$nMc23KUQ z&O36rDu4B{*&9yeMfRU-$L8{Pp~W|Hgj*a@D7$=p%KS6gkFMUx6=c=)oSoi~HNSPr zU_lm?*R*#~{my9a8hveXY*_Q~>YP|Z!R^Y`adPNh#i00|Hy$!_)b7)4lOSdY-0|N84*lmdW}Gp>lFP8%;oCxNup<3D5;ZcoiBzyV+s&AqbT~q0f!YQq} zAUt2y=%2QXmsWc<%FK)!7BOM-UXpn&SjaFrea6>z2`GWr5 z_rUx7;Le292JXLY&QZRcmyL(KHgo9u`;Ou4m5kfn2W9y&o9VK|DuPb$}~ z#fZwg)X%WV$xoFxaI4l1SIPuBz-Hnh}f)M zOin6$sk%lkO8EgF;uQc_0wNKR32cMe-(xKpfnV>bJvSgJF!z7hI0 z3t53>W0bdqTy|)y(iw)5TEQV8?EAvMj(-ZU9U2MG$STs2@L| z_7?`0&QN^ke@~*w$M8OcL!>xfsE1k_&+7qv7e&#U+Ao`6dVzh4QmJ(mA~g3^4Y(dv zi2_*?pm3Ej68mL=lGkA;Bn{$Q9&;pM$x6Uu;aZxh?St`D&3IF*?zQ#2ph**A8o~af z+^v69TqGxJ)3*PX3e;=ELd3sR&I_Bw1B!nDR|G{gdD|-EwpN?*r4HJ-pZ`=nQ2PtJ zL>X2^DH@Xfwv=v%NGBTKg&q)B8XXqy6wg-Q0vzMF)3~iN!;Ah(W1?MD1pD)sWEJ z;bZLM`Hx(rIUaL3ez&0!TfI6>H-ZDYM(KgLm-a}?LY-dY-=rZuP&(B;AsHEqt6?N0 z3}X!Io)cq&K^5}Xn<;Dqkzp*MAklJvFV_yQf4i* z+Y-R|mE&%VVDRGbx*A4wkUiVR@SX?O&Sf02M*;aXKvidhTC!4JRP$NHq>*hj!7s>7 zb2Ps@d#53T*RuJf_AvKeV3qnj7dLN)W*#rZ{#J>l0c;QIFKHgjv^A?$25OV_fPxBf zF!5y8ER&uu`MlXj^HaPx&`a$gUOD%e+E-*h`<35eS7G&wtaqfZs`;i5lpogFhSlIy z;|*-%HD?$JCWkuogk}SkN(J zjO9ZnM3-R7id~`ZHYisWD$Ryza}$--@&y0@k7QS~>o#@=Ngh|#wofB}w0Jhp0&O4{F#+qVtH)zU`@FS&#kM*_s^?={?d_u2)z02Uq){CAj>E)WOi+u3C@YaP zbQ3kn|JF_?9$Oz`dq$e)BefhSRXC^E%%l!`4edDx)#aYKEFZS0{U9?4-Px>UlobD{ zZ=zpIhSrRuQ=|4+|Dk93tTgx1%bX*vkqrCtDV~R2C3L%sl36d?&I%5o{%xw|=ND(x zb@3v1T&Z^9mPf6%yysl=zF->S?05FIjOCoLw@XO_D2Ka}RSH&0o1+4T%4obL;}vz+ zK9k(t5nmN0WBgI)MrT*kYr%cHvd6H>6`cd7Z_JaerG_oYON}Ag%S9_| z*Q?u-&e&ASN0FuG48=k3D5H~dhVwMzd(j#IfYU<*C`LM$)UlcQEtjjeAj=!-tnr0M zYT8TgD?PMoM@TTGaYfc{#^UJ z!WGqfTS$qwtP`4$>nz4g^`}?t))$)|Igiyp7TH(ivG3CWJj~ul$Rzx|p-;%R%Ip0b zQQlcgyH21^#S7XjXl{tIc_t=i@s37s%)rF-=5bhiu97p!uH5#HA^PD5hsF~wRkrs< z5Lz=ocD4}uy z^`iS_YC5E}zPQgVTWP3}c@3>J(Bc_&bed}7-Fhb7%dUWSrQQ8Rpu>+E_{4Xuc+#_o zdnwbWozA%$r)pl$@eMv(Z)RWid|#WzadDbcH;$cTSIg~c-R_Bsd|chYY*}FitJ{7y zc*edqi#RYYvME6{KUiAVD%5yhtw|NFbBeDSU!tamg3=k9Q!AsLt0U#7iMvAT<= zHf5k&?<)6f{?;f`>*)d9QW4&ABF!%gVBVJ$BI)cMBL zo)Ox*&H&tepy8$NW^ib&kFMEss7j})aWYk@xYzBXE-m?z7ulH+5X!$_LhZbh~ zrxwq~#?8F?Jq@A3Gpc{qPW3!s%h&ljy|XRg&9JKi8h{8n8G!f+)*tRi2Ir;kqaqE7 z$YBO*X_Te^F6!jUO+6myV%M=2%b^2=>3O+(f%xl* zu%S5ojVOH|moRzdj;=;Rs%va#03pxOseL6W#;z9G72>!v{W@5C&_cVG7dx_+HZ?I} z(1~h`BKL+-!7CFxW2snIa=U`s;;3znqoM7}elHVYN1yU%g2@MvTua`ZJ<~a5iAx49 zvDs0%J)_tTE8{yHSa)69+7_@`W1O3fOo&~%+f~+)moodA(EDK$TJEpij-scD4*ds& zby3^9?h4MXOl-R)Xm!2Ya!%+!hTgQ8IcQgIb`^SLiS{8lWuHMU%l$I!u9PH>?z=4i z9JRgkwe01}g4PT2QS)at*UOy7JZ!kf{MW7)*wviFEGrruyZ5=NC-=)xz9BYoV&5cP zX;fC{5^c^(d@DeUpTDK4M(Hs&y#5R;_>UrdK0LO;9~`+itLA6!kHP&_K8dq?3#>Dv z$~w@NjFsY+RMW-zxW<2!QDeDvFIbg!HJ=6`+&X0LSO;D=a<4_1H(@ZOF)MLJ&#C&r zD0chR+A}K$n>%fr=JzxPD9gqktBYZ2{;0?97#Py!oU8q)f_H;7oIC1N^$Of`bcbLu zz8g~oFCtK}HEA5;cAPbQB`E-}nQbO};GaI6isDkr&j8VUitE6442k^6b`o1cKEb<< z+d@7K^TP*{AEsszW|6;zjU&9FIL}&0Od;>TAAoqvzi`Tca^MyB=b5gZ3p*_OHC>8@^CNGApt{z{N3X+r8-}`?;U{aThMS0| zRss`?nriF?rlVKu0(baf)~lzk*?_sHI6SQv!xC<}l>m7$AUd)i=GdLpDTL2z3($`s z{2L<}2xLx;p%Q@-Shpr+qE$xpYAI%ke#z8d=)Hn-H=z*lLAS$?p!7YnI%;6N0Y}|Q zxUtKV&PE(>X|1S5{;cm$>_AVbCI)>(vn_p7E79%((2bK2*E2^BM?;q%ec1j2=CSXC z_BVX#&>Gq>Vtdbz@)t;EJ2`P8O41x>KQ{7b&9W&UQC7kHE3>Fm;Qjj_QKunJw0@*6 zK%UjQQ&*$T)6mpZ^zHK3R37GYVgU6lZhVk|mVqBPHJ$z*A8|=UP9jnFb(4`KLdzMl zmPAtjBJU$fsmbIIq`|U_lwi`A?QRq?IVey@btWUGtfy@zGcN*&7r2Rg$B`U38=BXX z0@=|jItk8#l7EqgnR`mB$+MVV2~K1TL$^vve#KZac`M}top~NY;3!=7ln{2y<~CLl zzDWF)lZjEH3Q{w%N^rXbN1DV(Y@0yB@H_(ANO!nylW=4)>&Mv-c!cTM@Ed%y!KuL) z|4O@FUQ38n>4>F-I>r3rEaD>RldW@!O7T7aTg2xgs?z}ymiysM56;+dVW!`iZra7y{u--9?y!Ejnm6mx~A+p+JuFAjF%RsfSqPo_D(*V4HW@ zYNugu^{kc%aZB4?;OIDG(}aRU_@%W2agXq(DxlvF{C;!7#0>;r&f8Nvv2MrL?TW`H z9rUcp!(w;;BR+}k>py@!hFjdVvS1;uvy~W^f?wMB-j9r5Z-q{Hi|^pxXoOwe z&)LI-=T;=3h@RN-@t*-hFvekH4!j6USdp2GUp z)yT?b1z7T!Jxm1uI@5=70mWquF;a4q7(n`mn4^qny4Cw%2Ad8Ur(=fFoes1yk4jf` z1~6xf#irv7lJE-;&HxBV$PM&H{+gWCbRf@p(`9-*cZRnQ9mk=Jn@Ru5TDCuhu}5Ff zevL6%^V5i?6I5pIa{3rW62g_%Df7)*c#en7I~k)Jqt0? zwu>HR(-_idE#_j*Oj?Lx6MR1Pi8eDUiQ2C^5FJgeQuHprO6^q47#mIf#ag>JnjY64 z+#!Vc@pKTcEgy@)JWF&5gF~w zt{bh>XkNXmbb2bQBcGK(b!fIik(7b@gp6wxb#>FmNffLNw(Kq?*T@*tPpM(v8ktGM z9o*l-pk5p)(!QiF-nE~pq$qn!SuO1hk5a|2a#*I7TVC_@7y!AT@GsQY+7}% zk9eC%U42P-Qn*gmFR0`{B@gmf@Omru@Z7nrDQCFrI7in3IXced#fhAL_G5<(_I0|Z zXN+izCa&s$;G`-c$x;bI(}(p^?lI~c^ASC@ zYqj86^Azg~KD=Hd-p89-GnufPbKPn#8^gYABJQYU{nTHIK(pd?>lW=}`K!&NE;E|1fTb(#ox1-erefe;n;Daw%p2@2U|)RT})(gWy^ZZ$FvhGmaN z5yVXmC-i3AQtbupS{#jYRXqiF8}(2*86R8lLLQDkyzQK{m5>-RSE44IavLjM{oi~g z?>a?U|3;Ta57(U6OrV`$KU3bMl^|cqAJOI)jFBy%zS}lRqNCmoE)vtJR~BH!zo;MV z(G7wIsQaW{BZyKTP(A0nvyLc^@+Kob%T9Br=DSK~aMo`P6>He)HTy&qw(I;KqTB3J z0Du#2S56u~C0unz`BGlPJSjgXy$}B^y(J0Ei;>J0^=zSt>V)JqD}*9J`+TYJoZx}| z&D@^`s0~s>O-EFdl`9QN%!%?T+B@*Y(s^o5E>@hWERR1Syen^CtrHxU9i8tfcrTUP z-(a`X05x>gje0-j4uz#=E+bw>uzrV?OX#K_Imbl@4axCqgfY6v)k_4kwJO*10w2X$ z`x}wko;`S{s^}P2>`?@?I?-EX;~Hb2M6z2L01IH;GeGhcTV^0^8t z0KoWZR|3`SL4#tm{GYxox~H_g^8++QT-CZayIFXx$$svGAirUA&HsPRoKlWM0L*sN@ZrTr>5%(newuXTxtbDFsfqyltUULa= z-}}S{&;WX;Y7TWj|GAY+%_U4UX{eJc-1V<0|D?re36yiu;p$S#^_7LHag?XCQq(x= zczYi@(g3>nsuEs2f3l^B8;y4{ayZH53A*cSRw_+{WIfoZR28!-{q87!v%F`GQ?0W% z3BX)N186BWlI%8bqnRY#fQvO$iT9MDv|mK&JI|}>!g(8hD2amAejvpp{`r|Fl&<_J zdvDnDHkzx}PJIhkYZ}xNuv-0Hbz13h?Mh|x&XuYGxp)InVU$JrO_DE_O_`}s%oN*W z2l^Siim}eGmU3N8%dBUyv-HvC$)%whfdQ3bR?X6_U;kVFLv!4>R|eLwXBNmq#K-Jv zi#_LX#?sZI<(Q3o8WS)I-G$n3CHJ6K(`{Eypa<;o4$K)~lPF+LL>gD;lP(UnzI43-g^KC0j5v9b}WlT)Ps| z03uUI5ClL;Yav4CKyw;L!&c_uYxlvoB#5ep5#;}D3aEdDd7n40MvVm}c-xrRf5V@eKjK77StdR1;p8yOecX9_yAIO; z!lAawlpHd$DV_WqLaIAJ9?lh3SCFf>HCR*0jp2CHQSyvPV)v z|CZ;RGSb<`Fg6x^u(pL&o%5n<8}r+?>6VR5dN{z?%Ut92k6|^_cXFh$k2&4mE_+r) zU~K*-VUmIxwuvW$-D>s=dvn&?3I+77eDhX5KTK@c&wJ^m(g*NMMd&X3;J1# zptZ?C0_N?i7xi9PwA-ONf2?Bc!a5I}{lD>FZ&1Dsyd(XBLwl?wbJ3=bGE#0z zU`shEC3;1}0TOUkf9++G#%-{sk5n}lQL~0z^H(+Z?`0|AW4htY&cY+@YZ>p7Pc(-x zN;e*_*Dz+TLe$jK-@4US7cyp#?XRNJAO2Na`}T@LV6|Nc!M(z)wsri@eP{j7>iVO|Z+m~K#=^FDwke_t$G5^|+GK~uLaEorCAG~G z=YU^TW^tbz-R3F&XPk$nhIQeuvi4ROAH$qFo%Q_%M_P_+^*cryI@E_Y+^_kpVgy{U z-BA(TC{{m3!?*-9j`i-Zs_c1I^9XvaLsFGkAZuA`IlY6^;A(2x&{~sigaw#v@rL_u zr52J(JPvQdu&4Z0YkG{WvCwlJ-c6|mtmggoIXjB$88t69$g10_4+f~LQtJmdjQO}q zKh9=6%(g#!Y4!`zadvXqFkoua zGn{>`$p0^^=3p3cS4s1TePmDf8tfzdjJwjenD8Zx*EO2xyxh|Eo)|I<(sqaF2&iee zNcQ`y)capCZj{jWc+tP6J=s-B-w@Z>bAfg$thA$zrde)k70_g}I$Hf{r$%|yeWe}x zt1$a62%Jjtc8}v7OWQZFiQ6BC?r!AV2uo^5a*~!?T4FhIvtBiKaAc$8wL9rk|Ei?D z-{j>b@x$)YlWE=k36hk!vaUw)qOkRCAW`n}#%2!@d-l?%bRl!pyXxok#J|daZ=&vE zN#szW=AX3oKB{_RTv6v)r8q3IRi-$wyuT?#Ic|1-qp#G%A-1ZQF8Hfvj9j$km#iH; zWto@O)qC0aI3HOu0F9oQ;h*rt}{wxs3f8cvut&2FrhN_RL6SwGOP{ZZHZ;B-*);VFo#kl>EJ zC|Br!-iVHa`!ZTFKtxUD3#E^hGwiG;BA*36YFCs@gqN!#w?07h%j*OFK}Jf?OfEq_;7>U>t9-EI((vud zvKB%83*ff~Z+RS;UHydU0(G%GF7|?1je%R|!k=p21cV_nH8Uq&N4oMl&&HO!56>E& zR&la_RQ)7ia_2!=F6c^&j<6C^S%0J`4f?ejyafi|XgTKJ4A&ZElgbcyUg4R+vfW4W zhiDZA`^a?#l{bcpq$bd|-h4b5e53trVFR?h=}r6@SbKe<|2)_W>+4CA;9q!4PGsUA z0)+!)LNRzt&3?jT$P1|hu^fiN?;f!fhbr;7$~D5Pstcao35}gn53SNO1(&L?F3~(0H^2 zvx4@pw;l7C#;uxbIX9zs`R+c|sl@^Cozx!B8iU)CF6f4qqmG+{2`DFb^b z3z?&t(WOPLP=2;JqTb4{^R?&!>1k96hA+OCyBS+5@{M_gTPQI5fN%)DV7wB4img1j z7?EW=&{>G|F<&*ELB2QK;gzFCv>%c2XstRhXA1_UXpeEl2FZlpd$2$$Vf-T8Z8q(I zH(c66=_o}MG@LS?MtatK4pQ8Z$Axm?rYT)GKuqxcAQM-%mT^CR`%Ak0`e)AF6tEdH}kVsBPE*2a-2Zj zOuy6*CS@q@)j5$8n& zlELfSNh~x^s`)_7HPpx(iMcvA3YrK}8!PcdwK8I-fOuB!78ygDAVn`JCry>wKdC@o z&&cjY6D$pJ_9)q0>m}Pw(AzGP1%w7Oufj&SWI(5!Av$aKu4^T(Qy*FUlDI;(aC97r z%n0o{MR4k}Ri_gswH=Xu#s6;VARQn$*6GV{5dx}ir_3YZEko<(5^78j7gGt9x*en4 zh_@N@d$REjyBAhnz&8x&q^Wpu_Xuewp4s-SJQUy9q)is#U)Qf+t0l~opVs9$ z{2=Bs99ypm_f*_4eG|}t!@{3@3K)jp$7_O)FRkFdgXxl9atjfQ!=G{&BH12Y+)t&S@McSXS zvOblg`OY-0HFaw;E!1>9IGB3Z*tg&-wLumAN7X%G z`VP!f*D~^Z0$I6qQu_-;1g)vrmPevZtADfQDz&4Qu;w&1y$Zj;LY=G{_eWXk)ov9D z(o0G&peOaU91pq#IVBqnsmvBjI-#HAri#sQRNxiyG(`7YuB00A+1~TB3A@cNl`2H0 zbhi8$avOD~Y$+-b{9V$Do|$z>oR0psd8cR-=6c{VVH;N9@>2}JGVOg>MR7N~C}t27 zB-3PtL^8!ga)j6b28h#%*E0VRO(wa-N`#|Gd8;UbB9h#NA|#PO_8Ml|SHjPg4Y0gL zKc!C09@1wqg}E9uK{SoAE91N13L`z{4F4iyLck-wKmD}Jbb)=&>rcCkUQ(9WM+6Yx z7fmC673B(^0mlnI^Y>=>^80w*G4pvN+*<(|ygA&&Ii0*C-1I-nutQ?gBnczMW9=F5 zU?D|usB*PnrtEEcF7L85W)qluN&L?LBzL)Z+nhLVt7yz0rLPsgu`&c)QKs3SfES!L z^i>e}xw^G!Z9EUn#OTZ1`Km1cTuz$u z@3?g!&6&$HPmPY^2#s+oAG7xumd_qx-;);nQMx_i@!hF>mXO%~4xh@u)e>5sz}wLv zOOtOTC1!i zJX?2CevcTnB11l(2%k1qxstf#kCL1KqMDeiAlH6(NhtpQvz`3~djT1&Z_6E|FM8mCF~2 z`$aiZg_3=I`Jb{xM|3X6FBF6Nto|#Mq2y~XcIqy6s>$0Q768yIKAww=$hj2 z)C#d#0Q{?VYW1~yDT~xQsy9Lb%F$M3u05w`dY7<3a?5Zj!b`kee`^^~6r!6qb&IG~ z@b?KI8l_#^c8GjX^|ARDM6NJ2H0Cm7skQQLy^^fzr0}z%BeqY=+=U%RkE!#8-vq&b z%3|`HW|RkGBI-U@{8K)w#tn!|zi-2Ver*<7ra%yDx=pL01B-Hv4`7+&)6E^Qg@2WE z!+Tg6`cCZ?cx+i))f0qII^DVyIeW9esRj9KO_|{!>f|DCLoC{DJk5wg2mDbCO}z$J zj*hJ1;i}6P*_60PX>ZII@M~i`jVXBB8i2kG|I6cr?i69xc(cBY(C}9Q>Ne04QL^eV z8lW`Knn3MOOE8J3jM(`G7iz_7p>8=f&!b9z@9mNxB4#g{2xWTRu)HxZK~HM$=?TI)e-V6k69`=+0*g&l~Xtlf7Q(DnYN3FgH~6|U@^rs#{}M)r1vp| zY)aIqb@f4WR1#gm!XrwknmYce0>ByjM^VpL?QY6OkSzoCFN^(*^|h-~zU$hm>NYuO zCfj@iuPc98NDK9fYnqAUAIQW1R~DwXXMY*B;!|fx#rSMm>!V6hf=knGki$A|{e5t@ z@7mfI5TMIoofZNb#jkFL{jDJ;v-=!$N5zSbWv~U=X)X1zZ`-~#roeBngVp6CcKe3a z#33tP9@I1-V@Cb51*88yZ7`F%NSLP;`EA#*uGtRFvDo}=w)z*?gX@;nyu|tXPOCbK zW4XMpdWK7J$Tfc>{C$d|TRRs}a>}2zk}0#Zu#F$cx3>k=smKS{9^t+Dg=G%N{rFSDwg()O#v6Zgr_{lii89WHm@%`}mu~W#e3KnADPt(W%-> z#)iKtr}e7Yp{%RP*BG9;s*a;i-EysZthOdXWqGOT^L}AcYA`Ot#v`)9(R@uZqxi4# zYo*l9DeG+zy#321qm8YQ$)Da102u5U?7u2uFhVe#^d|3&6Xz z!O}LFH!bi-lboyYG&h8C_f37=(8965soPS3 z{EjvHccE_Kc20VXL17;q=an5N<@d`gZjrL9?*UJe@+4khJ&BByLsLo3h0d_wq&x8$ z2q@WcREw>NSaZbhzX`H?j9X`9w})m20IFJ6~h~zGrcR=as-}S`UUHr92$z4)7hwC#@XatPikH#Q%@F^H1 zYEM=r7LL9fjltz$9);4NzxE=+K={UrMD`OmK=-50 z64jZ}=!e9Y8|}T5@={SB!_jP(E#mc1!@9dFPR#~RfH?!7X*jg z&Y)#1Md27zHn7nUx^2MyOnI1LP08 zF6&5Jj+iYOh`NuQA$DH64)L!jbxaxN4zr=3QE9B5S^EPtzG|^T0Zy@up~gWBhR48I z=nL())O@&~IyGt?!d)5SwHtm%;W=h0Hl9i9J6UnJU0b^jxV8C-{4hvf|CNFPpRE~N ziG?n*7VNBnK}^As_3#}12d_BTbIpCnkJu_^Mqg@0;o#z$U6sds2jrf>Umah`N5Csv z)>WK^5bEFWoC-Z$Qx@q0YpQGB5S}Te&F2t-5M)4nEdId|c zUD!xIpxA`H%6*YoiX(IW4Lgea&hhq$!#!o68nuw(LOa;J9aW)OWte~-t-|rnqvZ+> zrWWHVYbvV3?3Y~GuD}+FgTv-x?+U*y+>6x-`vE^GJ83OVFeJ{lQojT>$2`J)j;b-v zM(?+;5GyG>g}$M_pKudHQ+9<4FfSC#7A9ekvQvP&6fRBMcmlD%IaG&47Bgi5}Ik{xMNX`>KH&TXf+)%v3ZmH$f*bXpE;Y zFnl$`3LnWm$N(Z8x6EN=qQY12W027yuE&^Abm@Pi9%0ZXq+iEemY33bSRp-!9**;d zInzhu_T}uO-NEmS520PfKU_VA_JOe7HJEN7`243RVb)UGT-p*@AoVtF5p52&fi@aC zgNmo#$-YS~rXGl+QA??9K{zUfs+xC#dXM@y;;@8MI{9SjVhWjemO74-$o&m|Nb%+_ z$htyt4Q&zF{f!&l1?8);&DH&}0C`Pki=4i4^@mjK&Tq0LfCX&NsQ$g>^b0yf! zPvj}0ud!FjbA?@j^T~?^x91)u{VVwY?XpMoWKy%KOq@aD7%IqXNohJikQXUP{V+3# zMAvV~6Kr9h&Mr81baKrH! zDUqo=xXPUf)_$A2kZ?%$^G^+pWFoc0DheeQwnB(Mh#rmCEAJ2<)>aq*}UN-PYsm@C$6)8CH#paTC*ta5l`NA@*kYBkp)m1PInzeDQU?(*`+DiH!8U z%Oj)QW)up@$kzW9xnCI|%tObr=L@!BreIw7n=yw?ii{HdYBhrf&bFUyJ7O<9b3&)rX1UHqJLpAw$j#POrVuJ>a%QFi*AWMe2P z&Vw8qW$Yg%_vdZpoMKMpCUeq|KR7`4!J&VGrgNWUHIjXl8mr7HGiRL zStX5W@FHem-KK&_Mq#x_Vme)G)vZgVPqdV*Fw!K()zjg$O~R9Z6qlqk7tJD6XmlkR zplH>DGF`pRza$)tiwwaj%s;R9)o- z`E|5?DWxn4M<@tiYj|ZH1onOZJ|NnU!fN9^At&T>&liXImE!!;)R}`jmgpIPp zn}LFD((>S${0$PFr-j!oIWqAGZvi*%Pg#sE=@s)CG)A()G^Q*}q}9JkcNBcqo{D|W zS8C?1k@7@ppl1;GnQGR=e(p5xy1yz@T3pXU&laDl%_==9np1T&O)e<2u8d{zzL-U2qN8i;|fkyr-i+T?KqiTI65p1)Z0^ZLLGEu?nlLier5cP&pIvVtXe~mUC zc4>a8_AGpy<3i0e_}|%fJkVN=NC&+(Z$NtFnGGM2kCQxf=TWWe8JhR#a{p*`7y8%y zHJUN#e;s!y4`a9eX&3I0Wg1}tXq9o8P>_3Ck0Y28N!oP6t*Do3I&s0ui>e6XcGoYe zGGc%uO1_V@^{=w;TcN)J@(c+2V6K~PH6644m}UmuH>z9}MEkn3Sn-B-%e7DOiFVCV zBK=7-|4~?uafpAn^1B|%56Mw#{dwr^Vd@Fow#fU+Mci>K=gJ2;U9M8OnLFFDQG#K5 z{Z-Qqx8+wWX*!GSP|hq(x|EYJr1F+*jsz>B#0h?fWG6%)T{*H6QLW=q@p5MPABE{L zY|_7|+@c$+V`kr0w`)!&Ae9B`Ns(^y66F=YBI&=%3$FfBk$kP=Wzl@*-#Y~Z)L*Ig zu5{3fZNzM$dZ{HlVZP#&DSF)n*&*XxzopVG`nRs*B&QWIj@N`cm@$9Kf{bkoEl?JY zZq6xE>0)?Q2u4S{rt{G1iG8Au%fptj-cdwgj23slwk95+6{qkc3lIr(Re z56%=*X(Qm?1oJI{`1M}5O}FqMXRT!w?vwpXME<0rziL^7j0(yRsqLU9Cey2~Q@uAm zuzFD)g9A+GC?CDdMi}M2v%dGhKD;*K46txrVVo5IX)!r?U>!)~Fg zSGazOFy6UN-^jPe^0J%%rxw>u)lADvsrFKR+F`N=Dy`8UOnHioHBtJH@}4EnbOrL= z&J10f$UX}oTlzm$`L?#o{2(v2s@BxFLvPU;zC>R$R_jyO1nTGL&Mx_(t<*emZq_!5 zEC45|fHwY5ZxrISw*fS6R^?ZTMf8Or|dASqYy%(y8%jrPCHbrb~O@fc}z0!0B-mqY1(-`>i3E53`aQmGl zyGOJ)?7y<|n|q7V*LE)HnunRY`DfcXOhJTWa|>q3x4Cg4)@i|?H6B-)`*bo3f zx|cfpuPX2UM7ogjtfQ5*ck@VV4yi4CuqlXS@|D!9N!1JH*4a1YPIz9&Bilzw$^QTK zVZLA24d%O)qwRF2c5_Y3V&;l)W5YYfeqU(aW(IS?lGC3y`K;Mr}BPw z{t(Vg>1z`U$eVS|?)=^1!uoss@xD2=0lfYN-qm;b3n!LT$8&gg75IPZdS{v8BeM72pWfI%qij~*tM-c(p@qH1SHN{8 z`MgEo#bvLN6_Br$6*&X2LD2b_qlit=X+CF>Ua;E}9Wg85GxshmUQ&6!ZA+;D#5PFE z_d+ZLtgeu;8#X)vhO$mC=L6@m=8d0;$Y4b7f@keh_tam? zRVas5umWFsA3dO`TG|ixEgdbslpawYELyN(Ud01}ZP}v=3cqXIe#9g8x&eDy!B$jv zDks%!QC8-CG7QlI3SrtiptZ$!)B$OgW%CsK*2Bw(WgW}%%jZZ>j3Xg4*wgwY8Pt|3 zbz`y%8%PRM?ys5=YF+`xHXaBmdScS2ww3zmrBPSPj%$}LeOY>6y=YuCau@4)|HSl5 zeXX^WtiG;D#pvAV);h{iepjPM<=LVIwWCwrOY&`$sBNWhE$&MpCCBu6<6KaqS*Ln} zAusb{tM#z$g#q#@@P^`Nlyb!9GHhipDzf6$&Sz*kXj|lNOf3ZK<$%qE{%~AHoB((3 zIso#iXsIHC&jLj<05lPtNCv|8Kz>&oL@b0^cTPd#5UbXGMcI&sC28oXDBS3Kcm(=* zXFx?C@}u=Mkb=4^A%Yj8cM(5B+Uz^x2{3^4itJ(HDAzQgRaSia7+$-!i*jXxFw9>x1>6XJ~ zVle%AvuDA}`d9i>MZapE@mM9-ZH<`JGOM|;D8Hi8P_Uf_oT)t@1_60!W_uj3Y*xw~ z28fmPD@|<$o4VZfF-0kDS=^^3i<-8fyGn1>Z7MumUR_n2@VzqL(jWQ)7;pOSvAsf| zVLRAAPf0&qSBssMdr(8bb`%V8f^gZzC{zP}X6e5LZ}Ar^$`ZyBjKF~qA+Z#^*X<-J z9CGo$CjcV97Kg%@i`ALvlu8ME6lMvi0x86NhAhp0jXepyyloM#1`Y~7h%ZGPbz6qN zhD`cTVaL?0LCirUsvMB+NC@*GY6=R4C`Wxom*%}h|AR^18iP5CT@ySV%f`N1V8$wN z|9=LY=u&kE`ib~OA%@Q(ZD*t-+({z%T%;RmFn1Sf3F+CE2(%m7WzA~zW%8Q&AJACx z=>N*1RNFuhFSbb@0?lNH)5pWmtO4jHIFsd`(~D3sW$`QIeQO$lVE3@7_pVVCg>*OJ+H|14g4f;%O7O{ z18Mph(g@HoZ7g*r__aC`{1)n@T$=S7<|hx@dEQ8w=%Hz1;viU_EPARtJG2vXABof~X-cXz=OOE*XYg zaVEK@E;L=C;k+~k?I1&1$)RR>_df{$h*cV z4zeYjbB(lDWz2P<7_**mAyiKki@Tl{R{VoEl^&58z#}od0$O>u7}xEN@KYJ`af<(` zc{1xT`=0Zh?y#XY8ZR-Y zNT)3>ovKWIZB_l`qLJa%LS9|BP>8r;0cGm#}qW#;h0YEOCK>(p{zx)?~<5 zGCZo4bQz;n(*Q4JnyICQ5ln$f8h4-hRk_yhC@WCuH%rVss+iEyO`%De)zVvZt0p(v zHacI&gEi3K)*mR~GjMfYadC`?+6R8+jDNHRv%(pI>WP^{1BR;iQKVtCz^;=tOIl9{ z3;K*cwaqsF8eP%+DYl=n^*eKV4j}b2^ouC+Siefwb zRt`-;MtMg2C=i&)MY|Pmusf!iseWTq#wqqCO`akIv4$TZA4F{-yq5c6IzUv}SsWyL zr%Xeb9#tpf5$hJk%I=Zstgk83i2B*DzP(D-K-m;x0nbS~NE*Puk;ap60hy9dlpk65 zB)e#qk=G>~Xg@qRNxspQ);-c^w0DLQs&XW=n9n&s#79`Ixb0#V+Z!Mg2eVgX8Hueq z^CR8FQ#fKzUvV&Jl{G?qfdep5%5+h&sG9vtw90i&!D# zi~Kxp3u{F)tn-Dxh0hI?0wtWH&S8fNuB$F#O$41Pw~B)Tpt3kaD+p7xhW`@yD$G6d z1n%-1*46@!Y`{RtH}F5{Y*=jm=>{`Q3SV2dt-_k0U7MSJoA0Ha9**GK*Z3~{!h2K` zVfB(9tZJE{T=`BNSD4RuKid=0>v`K+LFH^7u^Ez{#!GJ8xbzY)M7Lp~g!@#NZgq<1 zsha3fvh6(Kzy>Cb2ku{u4&d4LE-m}Y-QBez?J8HSm?kf>aYD zfFPmaI{-nxS>FJj3q#kDA;U#GYo+ihNqe=2kl`WDS_<0H`C@G`#=$JRwjJ{~4!}Fb z=hi)kuONHZu1EGkH)`9_!lF4fgV=mb)v>8*~OY?<;r|ZMZ9b*ey5x#BL{tyeUrJ&C&<3bBF!3PQIcB*Ew)toxwZx$p`5Ed3wosR ztT~y-lm}Li#LtnTH5-G#(z}}A`CifijoPeQ@=1o9piGtCEq8D`6ot(jKmd7JlV|Q1 zS&@zx*CCZQ1O;A}jMX1^+Ais=yK1HuKauHu9Fab;mMe6X^yO_m!`Ye}@l28!6&5=4Cjz0lM`TT|lGIE4;R(>ByGW=6EvS1?w1 zJ*hjuG`G83e}l2cXn75mooJv4*P1%H^-zaKEAGQ$a)X5DlzP72oR<(Wv-TVh=|!&% z;_>Xd>Zb7`j1Fl=`4hhsLU3b+v>d`~xGG&%bh|!P@-sEE_N1ggT&7h>ioF7B_DaI+ z7+RPFWprQdDQY!n;aBT&sy(Z|)L+r`7ZuhesUN3o((Y5+g`3qdRE$OEs=HNrcJ%5; zDpTW0%6p=TeGd5ehU!L(stxrHx+O(3YuOFPDd?I@bsLuMuBO#qT13+H)S24N(HyJk zGoGusAo?4R(nk;8)sJ;fs{+;W+s6ubXfL;cQfAb+v}{;P(QIhGuqa%8q}g-UKk5^; zfySPSNuuM162c+FB^B$-XAU|8?Xuo4cLT#?SM^muv_T(xC&N%K&w6d)8q1&kyWn&6 zzFrf4B8mmuGG^^FrN8Ir zC*`z33+A)@IfhNx)tmHD6 z8z^XZ{}l47Qf$vd3MUiQb%GidL+`ji{Ssu;o=VfY)VJNG9kQzJm_sYl-)u9B`(%Qe z)=OZ$FL}^iz%I?W+ZoATv+PlO4EuH9=GK)QPnWD#KTeQUZJRO2TfZyyg0Ra#LF#*a zMa3oLE_+c`2EBbul)8-9`bji5u&5!HQ|lPn+!~0PB*|oBdv2lW$x>komWu>pSMAyfiU#Z4yUb1v# zDfX=A?4i}T4ttAXDvoCwKJW?8($^u9bH_lHtX(}qjL5t<>OuS!S2D7Kv?Ju%P!SpL zac^KZ`L(^pU^aP`sjR<}qTf>?j}z#lZQ~^@$shg2n3t(pAz^6ZOo#q3UWRA}hM9{! zcJ_Z^;_c0s1DIZ>2Yby}5A?OM?B6;p{$OH(Dl*y zi|rlzTKV>-f4bfY^fM?a@c*ctEBa)9nO?&)W%jW<2I$gbA#wdCQk(~^H$<9Z@6_uj zRZd>kxj>?CFUgw!qvRtOs}nM9hk`Y~Vn>%tHOP?Q-rwqT9)O+&>XUYVdTi98le5}a zN%hZhiT(dkkdY9bAk%7)qjQZN>EGE<6yo3ORzK*0><*}JxA*A!s(m~e(?*i6)bE=W z{Y!1}s46JiIPe>K0We7yiUmg_oN$rHA?=T3z^`?j_QXwC`emVqyFT2Zs0LauSaW%x@jc3C!Z1^4j6R>U3d ztI1aw?!1mQdy81okKM_oXQlKS(~3uuuk5?PBN8^^VO5P}YW{JUjd)!&1AbCm>i!WX z6WdJgW=KW&)%gXCT14l!;uqT4n$zX8s`slc@KpXPr`5K2+1JSNQ5h8 z9oF0BIpqWHv~ec?9O2Wj7_NdcTSJgT@W+Zh=nhm6-4DyaKp`T0JdU5eiSU6S45yKn zk&;|0NG9Y=V}F4$_1NHDhzeiZEQH-4PLqcrev(+!?WjNG%T-G;@2DPGEx7G8^inbY z7oF$ajrXU2H=ZT%W5EYPK-ZY6#w(CqR-m*6*2FqS0U@@t^FY5*XV|whYcQi6XxJ+3 zQ_i{hKQP^#2l|!$LLQ=j1wbg~>%ibSVt~XC!V`Ote#5ql9s-{u9*71rT2Yrp%+TkU zNurGTSQJg8+?HAnijD+c)MChd;v9ANdZscu}Vq$3FH#RKxhK0 zR6geP7O_fx)98kvLDbj_D*N6{s}HW+-FR9w7qqP5C(*2`v)&zG1ASOaOt*#KuKBcN zAL2>%1E)Ip;_4cs(}EQuO;2~}uHGvBMgUdUH(?pjx}$=S4#u_at1O3XZ>~y1!FDvF zmxRGL>cX5NV5aqqeH*cEJe|uQQaivGiNb74qpyFds?z0IJ9Bra3}t${)}Z;jokg z3?#}n_#+dA0nY(4&tUcAwmvH2)cydkglMY=2yfxjc|oK&BpN$Fu0i*gJ)vB{?oED5 zn}XjNyp;BZ2%deBc7k|&oMIerlVkdEE}9rzEdChR2ET_`gpm_HNJmTGlBASH$+O8P zsI;JV$`Fk=8%pt@HI7r9hpncl$@F&B0rV+`fGx!$naSt~+-v6dlDz~RYaq#<7MOQIzVt_}jx&6LAoi2Cb{WJG8k0sBdG*R*H{e&hx(co%IUNph2T(WK3jAHsvs=M-PtcjQ zXAN4lJl3<)4PsArex*5O8~Xuh5#%>V2C>aI<_5to$8>YwA%Q+oyd&s}8FvM_Xz)12 zFxTeOA5`rW&0w^{V#!_1d_-r}FV=L_r95ZWIn1kNci7FiOWwVl6hiC_6<3b`I!K49cl-ioZp3 zh15vh$j6db(DoC(DE;&`pyyOALz$C9<1jO#k@OtqPp?|~9u|7WB*tszM0=?l30U4* zUM{hnZ%?o!t>l*gx08qXoNNH4hu;yUk0|hWF1kZK%0D!{pT3aaW2g<48aF84%1yyP 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�c}g=-?ml0Z8ylL?VP;Yo&k30 zqQm&KKr{Nobasc=acux&Ezl_RLJQPkw~Xm{ZWD1&Gxl4FzdM-wcUdc>+Yv3rLqRJMh?IHf}BmXn8KTP~H${K_*3pviSm&1H#+0XZu-TYvPk?s6c+04(^)cMu2 zn%^$V`NNtrf4R)&?_%IP4i8Y_Z^IWdjWL^^!<|If+C_hW5$M5YGgR`rpqD!6C-xh} zKH*Wo9PH1-{vu+qrL4hNVIzwbjxw!qV{m2Sv4V^L$~a&^TS;eHNdsC*!L3{XTi^)i zoabWn3Kjo3OkjAD_2h9r%;fY=sN;1pdCnrwiR3wAF7_9)2W2U15LOTaui*)i>sbe| zVJhObJvcGR@St=1LpV1*5`jT&3ms|;g}H@9wycF~`Ti{DKEvO90zc6R@Bvm}YxWTJ zKz^rltRT<1W3)lsk6a=JV%L)-oW{{#HWLGH7kUcpF$ZgIxHurN;>UjcIDjA5L@){9 zB6F|+XxInI)IkzDxSQ`z!K0k_A?N?V-{Au+!rlnw+`+MivM!*kQ?H=i2HS_=2B2tlBYqsEJZ_>qZpM$}?o7t;<5VQ1aYLdMT46TtH^7ZdRxfbQ zJMcB<;{(jcX5V7^!ZO<7D#oGpw81UJ|Kye1VsgBW=Wt-pbPSs(;8r*dXW$N?cy-Q_ z8$q_{B92T(+*lNiANNN=7F45+(6}yA78myce|Z11=qCT*JbZwW)r`yQ=!=`E1Ijsp z(?YQ8iOY`1(SHn^hON8cJlqct!b9*dTmp($m(2)FD3hnCn_s!2h2Y2Yu>>r6=m(83 z0^@KL_~RGfgRg*RZf@hcNL3Y4&MA~}1a^IHqyF#2zG3qs7`7gRCxI*wDoh4LFL8Vs zUWM1-4S36fH70hf3vuSgEq?qt9zCQOor3oHA&u;#JwRD}_zZl^>#x;Do-1)Jo8}Tr zegm-U@&NU3j~=QQPrcVw32o=X%CS0)pZz4$n|P8iA|)vo8jXS>7Srw+=X6n z8NJ|L-hD|eO|HK%j>q6A7(Os+QlFDe+~{J@P!^Xd3szlXCj>k33=J8iR!I7lq~Ac= zt)$&eiT9KC2x-qH%_XF{20g-v`uEW?ZoJ~jwRn6Do%jH?xgU%Beu44cu>TntUF`)h zhJlNe#ohFiJBa&lLyI}Zx|kD6!bUc!7L$Gz={L{|TG0i%Nxz@;XOZ?iddD(KVLf`s zPFlwy)R0qX5%+2{CApEB-9W1z$L@w-@TD2~w`N#lh6JX5D!+dDrE~La)4LIP({x1?BmOL_Z}tn zB}^)uSC4`;$l~trxOik3XshL`0U8u#@?7^_9 z)dHJl&9m*)T-yQ7v7N2ic8fL3ZoNkAc58@V6q;#&hX(8~so(w`&2acay$%!q#aq6U z8qBQ>?T7rh&BFVQ-o(E6w9*B5n(qqxXUPd!&O`vD}%Wl z!m$vhBe0RztAdC-@o9k%b1ZzB=Ysy=>Z)08{u*|V&>+8ZJ>Zd{eh>CPc(VV&vqn8$ z)79nGrB1JzYWJS2Ht!W`@!qQGKG&(q=TldPK{}^@o^X!9wY_$gzsV%TlErAVc z4s2IbP@fuuW~)AEsp^6@sV4XuRRy0?W$^u~2!2K7A)l!%glA==!;~8Yp%+IpEs0@@ z1)I3sFXuRq&qkt{W8zC6zVrr9QFoAoI)dHNa{|;78mZ<`o_!FOp~kR$HH4R`KD<`7 z;Vr6(=us6~Ol8C(l}C)LEONg}B2TC&@;((tzNCW4e*mi@p)g{S2jiGdaf#oPfCdGN zV3hX*eBO&cU6f5bWz!O2r|FR{Xga>=Ibo`cj#W)`s;XmhR25UK%GfHE$2O@fwo9e4 zLn@A2pu)IyDu~;wyttc{8+TsWanHjiz^X`t*h%h7WJ;LCtv)XCt6&}s0YAv14*VgM z6WcA+5NEC0I44!dd!g$Dqvu4cJTXaSiJ2-%EKqS$g^H3IRG8GR{G+7qLWQaEDo9ILep;UL(n^(^UaRc%R%NC4DT4+2>FFz#nz2*K88<2^ z<1Qs+JOh7KLi$fiOq-Y_bwYQfGwp^A8MMVr+5s5)OB*!uc@4f);8SV3xr#FERgmeb z{7hdoolxau#VR{1MOoSGf5b zoR1Wp{UfkbHj8JNqYK@NO&%AZwb}GT7=$h`^p`p)=lf!g1v$)lb8VHK>x8D`g{Bjv z^!zAvltiWEXDGR#KuHA^N-Stpd_kAu3P%)ExKvSvTNGJ%SmA|d6;}A9LJL1sXu%H( zLw^a+o8&lY@5*H?%0q{OK4^mmsDfh1%_r_EAoeSos??%sXgcmnD)v`GNf=s6oZ?DS z63m)0q=v_lbPg9!>r3NAaOz_K$6D0^J~rGHUC>GujKVbyN&go28A zW%_N$2hYlwgAtQA_1{!s6Zp5mv#hA;&*#LB-RO@0)fZ)1hL z8=K_S*ej35F}XLcm22aExo`v1sqqo`gPa<^m2*A%0~(Ag?8nBMa$Oai_8W=+n$6|QFFSd+Iiaa|%A+k%?rjlrYfF@CTb5i{$mHB!C#UvKIkt~# zTKg(FwC|C9`w7{$KOoz-x8O_JwK8*UVOEb8vxEFC$IdM12A21T;#3LbU^@ld3_W59 zMBgF)>Es@CkCmKe*voN-3wX<6MleLnenyJy5EX4_RLW*Xi>A()DXSSvWI-ThKI5p& zX51^Y-k0H@GVfs~-_0{9U?Vmb!c1s~dZ>W>2HGIDI*9+fvERoYh?%Sb7{>l68o-zdjfKhA0tavgPcjk!5e)VW zYK!P>izIr1UtjzvkRK|lX8x^c*y^Xq+M$Nmg?;pcLE7Lf;_or+W0x(vIhNSJ@z-jW)lOv zB^?_-woT)LgC9HbV^aQ-*{yB=i}do&$2K`CX8 z%P^fp4k-PcByDxLjM@-^>0Q3j! zHY}wbuA&acX@i{Rhg}!)X?Fw9;V^6(wr+>Ba5tQXd*K4y4-ddY@W>SO5X$7TBf5bH zljTt0g7>Q`pj|veg+6mF+yk%k-M@hq1?0J66Z!*9CU!q#(Dk%G?AqUg{X0n4uz4Rm z2$$e-chF!p~KI*2oPLpUTuK2(CS z7NiSi!faRo%g`m(5HD^dqTWFiw;!$GF#5*{^n$aj&3KSF@Md_<)AJ+b`66$}l+ z&_4_y3ed-52^`@zs4?u1|Zz{o}ZEXb3CK4jg&`;^6dXff{+W4_6{gIB4O7m2r@!;fF# z$5X_)PY`ckCf8icyTRp`$$Tt@a~6 z{hku<67AsAho9(!fjF@~aBD2wBi#Zk1FBWN*)X`hGCgbva+4$wyT;m02Q z*hM?ti67hXV;g>Kp?z#d3E0TLaR&DFq_CD;tf3@VQ>(_)bys5dm;3{JubYu~IA@w1 z5|8rP^_0am^pU;jQoGS&cF+<+hJ@nao+tff3wQ!lG%A1mlDs1KCJ zTApOHgICwndv3$C2WT~~Qd0k9m)XRB@kd*RJ%;(a;byp&_j|0kq~X(6#*B^VQsZbb zYZZu{Nc>Mk>&V1LKDA$pjcSyaMr^cUqZb=I2ZC3lcry!+hbg%s>SK^rG{9KVkC5BX zh|-TAS9y)0{Q)QP?~Hxe!RrmvxXjygdABxcrMWHna>5?_FQ}9GCiDjr`h!`PW}6pk zmU+2GrqpV93Tq%NSOZ}(pni)v>a$#`UdxT@vD&XLtK;glIkAo<>d%N`z{#g^>TNnJxmAYUN4!ms65DoHNz#oUbGLTnwNc z1Tn=4ru<ML#LwkR#)dZk7%%0*mOQpBI&J0*v6Rfd!>o?V2!{n1Q&V`&F46i3-}Y~_;Q z$mg~AQjISa5mQteVXxvyS9Bd;6-0$7KPpCfQOU}U&QeZvp|YYYl^N5h^q4NC#SAMY zX0eiDHYqXoI>pDHR&4B}ii!OL$8QxI!!Fh6Nls#KH+Ff1B72XRV}qf;H1WO`D*3() ze~O?W)>e73PRfb%Qg(chvf?9^5uc#+gmk4P{7Cs`{a z$q`-09bLy?DJfw}PKi}gN{SLwbCi(E{)bfdKcu!PI&DBvY4a74wq9Xr2NaTai-OZ0 zR#4h+6_mRZun~Z1z6+XP=U9_Ji`t z`i*?EzLFpMi-A9DbFL+A<9RsqGtlCo9qOSHiXj)$GMR5?ao;i93{A&Y(P%MIJhLV; zF90niTw!_f3e8JXNPeDz*((*8->8869{Cl_mQTSdc^B-FXTb@%7hIHE{u^@7|3V&U zFrK-S?8C-tY|O#NjOjbbLq`;D!m}b(%0lz@^3j6GjjzObeNqv zv;}O8z}K(_z1|94#X-)EF6b&=a^x4DrZq;%p)pDJjXZ~4#L9w2UFIEyGIj6=9bGUR z2&6i$p|PEYC&=uF@Esj+;tI>LF#?^HjE5X6pb#>7pNQ?KI^zFE>^GDDR_;M}5QBA_ z$$Eyhrt~>5sB*#Y8lIy7h@*F}kzU|oW#y%mVeLori$(oH=F|gagGzJzf^s~Ka*j()9F!0Wy zv(2G0=a7Lpy|4hb!ZFT!fb-vjZ}?k$7$IW9P7nE<4%L)(0Y`pFPH}C-|DD9YB;k%- z$01_iS!e)rL`Q}N=IAO@X-xJEE{=$cu87S(H1H5Eez8DjTV4(%w0soS!(q<3mvi6b z;`9~Z!(yHyz$qP+aU=OH<(NfTCy?jxKJ1fUH|#pjMSod{2CxL%%V9N8#afFW>+ysA zLE4BPoA6@`eryfpLYx43Kv`@hv8~HsKi}WMp!fpk{)@lChYj3C$6gyvr;1}9Wt}`g z8ysN|)EM@$>%gB{uVM`b*I*f!Ttcov;rM!u4YajqEH&?w|nA9D$3RLz_7L?Ug+_ZKI4y zxR_0z<0TNzlDFR zd=p~;${tO?%-)+!A zsF%;f2&S`nW-6WV%Q3*K7<+MOIT`3Hg`{6a z`i(@c?W||%CFMcnsZr9OkIJ!(rm&Xk+CqfAm#Vu#PoTv-MvQlf#_}+pK18V*x{I;? z<1R4PU)%!!DFdp8GWkR%@?(e2;zB-rDYtO!Bw{0*^ouFkYSQL6Nr*2mp@Te36!{>L zSG9J`~>upE6wRO zj?b~~;7Q8jQOe?B1!5x_8!41q4r!NA!d0Z*K-xTyleqsD^%K<^>oDdqTr9=%I?~@k zNnA(QKE?mW?wA*d<3EA_JO^VBuXn)@*!&deCD@*n1G&q99Xra(85=&NAF31R4>v1~ z)|N}!C8S+N+6|=LLXNvoW*avbWTESU{*vowKK1{B`7{|83 zdSKMPA~PCY?*cG-V9!{RXGP0$z=j(({23<0u@R5o>F6Ci2NOTG;KwF(vW@sL&bp=b zl*d}?Wi{<|75}fmi)DDal#*IZNiL@4EW+YK>|SLNum6O-Ux6_ModT|Gl$UWSFe3$i zjgz>4BYTv_(Z|-I39Y4VtfGys#E<3pu@pa+;KyS8SV(y+K);+vza8V7Iplg2?`Kg% z!?coN+U5{#bBMM%h;0L-m;c%V{lRK-sK0J1mj+&MGUsxLA8QypR!|npXrGIz6YdmZ zBL*AEXdOHQf9lhRlOM+wK;n)rU1u>9J%B%tnXt;9fzeb zm-pPN(lGuE+L~+7(oO?YoHWDSOFdK2A1or(X_=r7%QUrF<*3!FSS?nSYM$Dlrm1ae zwC+>A^=#EyFISBXt;Xg$RodLH3Y$k%Zu5@HY`;*M9ooasoOh-DxfAbsa$CoXd~+Q3 zV9Lj5J@~`6c6B*es>=@j!4Cbw&R5O$p_*n@dTLs*J z%XeF>T(^zNb~~s{w_BCr_OR02-cg$SS4u~RF~~rNxdnSXu3u{cDFZIEGocGw0+`?N zc^$sg;!BOYrK;Q=RN>*KG7n#sdWNdlGg?KSNh;*oxdmPY%JV8$u6Kj7(PFZ^2bJNo zKxsbfmEvj(@ze1JaZgkgJS-ylN7wOJdPtbkLSmE}nyi%2EG35)DKWHK31Q8O3!9;surWo4p=yThQFz#Kg@#>F zNZ70JIj?zQSm-3zVP^w27erAH(S$+J0Nl=3X(V$jz9Y02+h3FsZmG0z2Xq}*bR8ch zMFuM|GD-=NiHeKLP;69zVxlS(71gB3=pKbf&sJ#kN`*x4Qc(0U1w`K`|LB*2Cv>wv zDiDHLn{xm=Yq2>uhPD_>JAhg!2Sao_Sc))P%9K+$pGii(R< zWL&Bu;&T-q&;Ez_28G0TDTwC>2P7<)U&0RgCLEP_!g+ZnyeQB3f5;2{#V2l(J=ido z$s22dx)abppbAPLpU<*@WiLvEI6jL>v{4jVOhl5K!jpUzmK>tc2!S>2l2P)3p2ra>(B( zyZl44&A&r7`A^Cw?*rN9eJ?w782cPze{77U6aHeO2@DOW2y!3|5&`K?VL8~(BmONQ z{wT7PYl*#_OPu9Y;t2uhD-oJjnjnYLEZL*Q*p=4HwzON;rE_Fex>lB@2Q;PRHkp+? zCi9Z_;cHDnhp{Z;UPdNkBQ`pjde=i4UsI~9WQG=_>S0&`yWu2_?O}Kim^q@w7%a}EPhz7r zpHtv}H6T7ia=fBJg<#vS4Eq(>ujVk@3T@)+_$Fqhg1C9x}AJIVkJstb4*vGDY zFZxSA`pY2pNm8RGE-)5oD>gK0{Fvv2HsVev^J4-;oh(Y?HI->BwprK*OBjsz!fDQX zmh(SjV8jRL!d4@vRo2lTIi@tx25>#F1N-FH3A=Vf=r5z#9fJix^)g*VQ-Kwf$4bg$ zHGZt6Jl5gIIBjDC1Mr44pe)8Iz;XU~d<&Dr6P$CIbN|N08Xs13KM8yFlyfo13{GYF zqk?hUll(ei*LEIj5Dc5kVKuCS4X_zVlBpUKAhXGd=x#eE0{C$NKMn>!EaU(gyk;hl z!2ZKwvfp)3EXlg6Uf&HBEI5$=9Jhi9HI_p z(+1|V28Hr-*s1RJ0HWbPD`Dh zfl4EL1VayRWIe|zcmnB&coYnqw*#(U2|_M#eDG%; z;rJ*#4o||b;5m2^UZK6djvsG%K@1e~990_Gn>3_1529V*@EdQ!zm>m=YtjaE$Q_IU zlrc-PWqyJ*j6B{AhRuiIF?b4|1;fS_I~;!vZ@_Qhx9}eP5&i-n&5sb)W1`HD|jiG-m zB7$5&)Uuv?_gm2m_7cqKKR#Ub z#qh%sjQubn5Ra`a>=YBZSEFQ1C;bl6pMkzIMEY~k3Ko+7aor*`Yt)1Tp96uR_(k=>HM1L_a)Ss7l=BarIwx~@_h_H9>I?X z@#7*9=Y7O|=ZOXHCN?~WLUR^B&JZ)-PRxD_QQt|r)NxAZ80B;mb$9e>7>wWiUFP(dms&a+0#R8Fl6; z(eDujkbVT|C*XSqgH|4CmymW9szE(zwvc8gY4$Ui&LZ6f+Q2Zop4PG!kBsMrtRhz{ zsmT@Sc`LDNumYCBN7#D_j6vWG+zi*leoY~Lo`{J$vz->Z6-8nTJ%@X!lynB|F^}|1 zNS~);q9m>$=3b5;OR1N|#O;gFDHd?1v0uj6yEBK**a$rSi;6=NVeYhrLVXRw~a#m_Sr}K>}7Qb&yvGV1f?E_ofIr)VW)r+D5ExN zNP9YCTNmC8Q9}z@Z?=xsyB80SQ(E_-y}k^eu?B4N`A8KU&tdlv1N~-4CI~PFgABMc z_^g}nx~$FAImL!NO~aNOc6_lCf~_d*Bv1ossx#%N)>Ncwvr1K&HK@|8UFGHjDl?y_ z67$t6Hs7s6^P5y)evk6apI6?Lzbnt;2jy9!NWiVw+~-W)yD;H#WfBI48q&sR%}&fb z@uktu0=30X4OUL7v+_{Q)BsgY4O69cj4G^?RBoNAQX8JgXj7(Qn>rQRQZlxE%Cj9) zuI(yi+wD@O-A&4{V@HJDbMQB%+5ZTr5~wrBu(#cfNs9-QHBa&nEap}t@9X%yn(w*6 zswxL7RoXkK+}=f{_TDOS2vV^_qzWC_5#f-g{Asz$n^vM6#~NijwkXqahSD9!l>eF|I`AOU6OFc2|jw+@4do+uu2&(L)qmgPnEQoX4clxM|r2^-#(C5uSOi+?nx)QzkMF`ZHIMkUK?@mQ~k0{c6slvV4bLM?S!QOW% z$om-udjFN7P+(2eM_>)Pwr1?%!s;|A0QD+kU zJeA-Vpm@J9#rel7hMh~%{yB;YC{aW}ox%g!6&f(4;DE&n4A`Q8fWz_&xKlm>PXo`( z4)~Gx%o+R{yRoqho5La0Lnwg|lQBb)DdKf5pJhTC-=}b1VxUR!K{hBoj*1E5iIBm* ziVO}>L~xYCLlPAhlBtl8A_b$)1ckOLAap=}p$p{`x=CK4hvX4@R_>us$}N<&lA%Ay zBZN5vY$g3g*qa$nJw(tBpcL{Ui_g*^37_IQCx&BGn3W>J9TXPsqRD%>GF@vmtSP1e4?7=71bxtsQGe_+921c>*O4DMov*r$SLvz_+BokGOiKqY9!tH z*z1d=FGkV+qiKH}b08g(`J9C?iiU9Bhel6PFzQTTjFSRl-Q^eSC*RmmRF)Wd$EC|9LWpa;ilq*jZc8;Gbr}*`9j6Wy`9%pAC_Za*UzLP^N^CwtK+HvBMAg?4Bc_ewuJ(;IM;H+zMqFh));+#?lTaWSO5M3)C5N)EQI$0F7%gY@>tU1oy#fWb|{GxPq}$t(Wv0 zQ>h2Y2V+%GGM`bsir{rHw*9c}na!&7JnqUCn906qs;p6GEK8kaUg|EhQaZUIZQFzlP2lN^S+ZsA>4GpY@jMeZ5wN=p0>rq$-*KzJSc#*&R4DbPF zlD8IYR6!vaD}xaI6w5Izmo`v9L`s%iO0i!-R8F!}Yl%!7EGRr1uxD_0WN>3ZZ}9;J z6hrnj9y`>+AGJ(}L0AF%>3nB6_gVM{e}@mygN+6#gZzBz0rw46D1tl(mSDde``Dd^ zUE2m!0g`00fTChX0a`Jz*>Zt*pkp~vsqS3#{OIW6K!ak((3PKon$gQ~5#R5GTNsd^ z$fL)tbqQXvWcf$XvrW; zd5qx4D1PuHTa5)k6i}gKBsSK@=W}2a7lmV-cL{0k<0~suG|YSoTa{2melsZR*lOB9 z9etn)``C5B?o_g28o=fd%mR{QBFW$e3t=(!vc#G}pL$t=AFDl4Jc1ye*ObL-GO}tW ztYV^gJ?C8D-1nI<{%~c5N>Y@+y(f@|Ak6jBRkA}@PVA$FW+hG^%g?(@hTnmTb2Dp(jIffr6@Z%P5h(sl! zfuE!-PLS{k9KQJk=RAqp@K4TXmoH_VMV{lxa}ee1KA-YmhJC}Xkw3$xVecSNj09AZ z>d0}9C*fAO9nQd=a5vm*&T0zU>O=VPFc96JPpsn3-GE9YK04g zppay+TBL!`DBxEp$QN<=rI+9{ehr*DSjjlJ0aa)x?awG%BdsR3o_znCH{s4c158>~W$0r^fV}P>wJDuw9tNH8*kcm%>y&_kY2otZZz#fcM z89opO36KpXPy@}-MHJspv^2ugGse(6785tGWW~k?G=rT)4+qfkf%<&?e2SbDSj}KRUF;=S>ez-yaL}4q16!M6V%SgYD^qYyGJIQ7r=@09D zI?j7UfWO0!xAEf*8tt!Xq%Wh+JWr)PL&ZErocRQ)8TyA|`wZL)#?FwdKKw{|{6F{> zK1U_`l=$wi#JV37&wNNs^#|hqx4Gl}IuX(viKD% zWuD@$x3N3r5^?T>#C7*m9`{l&cN1-$BicJl1bBvs@OEO%Tkzu~1ITfr^ka0~8?kr; zXJ1dL9HOSK!?v+9V>cLD#5VW_o1cQwjEtsiH1GT29`3&1i57DQvF;fK(mW$6*+kOL zMAgVA?NZXNChe`am8%qL}n~Iwoy(K5ca_evF|C%;wcBJQ<<1hse=PYHWa7 z?MLGq!0uK0dHoEwj3MAC7{lRaFfIivU@>K}5dC33?Q<@5G8g?}jQ%vd->PHw_T*rN$Iy!l5Mn?FKx6NKf2ICI`E?%Kia65R#b*&)Q9PO+QeTq;B`GE zS4&^5p%qnA+f@u`RrK;I>>E^rp}`m%LpND*DV@qC5(X`qB21Z_Ds)m7?UV&;m+{@u zAAGREuTj!Q8|kz4j2(5fk6PMC4gIB>S3IKvouijtJW9)DRRlF#L<=sYl^0U-1*|tK zz;@x!oWSNThSOE{ObK8Bx}cTMrdu;r!=DDTso1h7b!Y5&V8@?4gkUEMI|*1$#a1>o zQpCSX(r(0~E=p&JwM~opW)o`7b$EK3QoGDZ^B4FISP=m?U~jVnb6lcfUBD--#+Z|M-9XlfIE-B3JJ%!nSrEqkZ2r!-wvjUs5+$jStZ%v-eu{oAN zfg5v7zRTvEEGLt)rcG6*gS|2woR!AYTT&eYlqQx&$l6B}&mQiHdZ|P=srN!qH+v`DLSE*FFWh z%~OEedil9sBOkZhKT;Sd6YYHQ9WbXlK4rXq$TrE%Q*JX`UoB z%u9s2`E{Xg_FQO~(Ni&%yakG31M-%bGuG)!J%Eug82WLp7j%cNU;>>v->I9bFtE@R z`WEeko`t^XU};P|rJHDP*<0vX4k5-ePH1 z6q*BcgvJ1U;wi?&RV;|F^cAWDhl!R98k@76L1o}d3e^z;Ad<}SgdT970o5~j1C0HV zw~VxB(d`{i`brFFAfE{@i5{Hq1}1zq;=F!ezFa!Cy1hT(%?EX;squnGM5?hs_-Yz^=Xeka4stR(G4q&eXtA8Y_- z(3$g0Qe$=x@`o@68m1!Jj8qk^m?_h2v=(s{8nLld^08E+u@s<^kTSi5Sd19E2-bra zgmY~soWbBv0Ubv1+a>v$NBWZn@+T-UpuU{zK{8!A8gtHIF!F~Ye*|N|QH;UIFb=b7 ziQ(GNnD9WEs7(SiVoKvS1zSwPa8por%6OOyYrviF_dy!h)^g8R@U|%qvyAj-a`|`| z0R#D4i2+$~G~sW<;m9XT+Q`+kVr9exW@StkG$hS2o+^!+ItgHlS?zexbilD_NR&Y9 zTrx3tG*BLMSMZ$^?4|)o=GrRmc>?G#gAogPn+juL81e=T!v}gA`?iCP7UdTHLPkzho==496i>d z$9jBYV@EKfBi0v4&<>?HtOYN=Kg`3ah>pqw?s>yQg8meF9FM$_SWiSyRz?C|X zUv1>JSwQ?{39>LJU88sL7h8@SfUGrj`q()|IJM-#(}s=+dTd1xFB*1F3!p%GlaKH~ zX%A-}kfB^d-Eg_W^}o<@WbDt^R@iw6M;2rXlUdY3@~e$pHRP(SL5?DG6F30L&^3D3 z@g!SK@ep5*{t(!l4pD1j8=Ay9+S5Vn488b_E%s7)!FF`mcQB(Qna*Q9v4!V!V$oqH zHb5?u|AhHM>LAsbpJ0UAdeXE9MWzRMgCCFtL#TIgiM<@jR#TiHf+J>bic!SiBMIn{ zqANtQDGXrXK*1(Zc*<@iF-M`4Yri0N@>Yz))&mz)2IRTZTE_p_SIvpE6uC zbRz!Iml+%s`V|VdaXSOcL{_>~6U%ri`eAQ#Wb19C{*z}FCBKSI;~*6jnFUY+C*d^I z0>#-hK)S%O5w5}w_yF$1LwF2dVUMrd5%(~Mk?f+nh`}`u^#wv6k%33I=~;{af-*Zq zS(&2D%FqW>=mkSyEGWN-&Vj{@;;o4l*bpnQV+83${KK8GyD#yHT|^p`ol0Yfe`L~& zuRxtUsPzl#Nz|7_B;M`Hna)vJo$((X-lEH!CYrNCL(!uh7!q&k%1EFuGKLeEuwslp zjdAiE(qF`EkQJoAhA7Jhe$jUjx2Z7K(c=nZnoEqr&ohEOgAr>n*lEU@|A~Jnu@7bL zMKnZ$qQh(W34VYd;TdDACyehtXI%9e^^Ce|7}uR< z1X#&RAeZz zfHtJxj(9{z(l;gjo}@jHv`3P*GHRPb+OtS|K4~wZYOExETjB+zU5w z0VNjk0C|dAmq8{ZfYJmU5GvTJ4YtxI-40aM&d`mtdz11&#^}Sz#~4a~BI!<}37dn| zMT~H*v4Slzi7lk>gSUn-`i{jq1vGh=X>MQA#4B^1-mM6+<#-8sO0`p(8Kp|ndLZLn z^W=>!JQ;He2+jRa+7$S~3#P1+Mkdm1%_H-uu3cPm5e#9FRijU`rL z3+3IqD;V!C$D@}cS3#M3rBH#qREU6`Kr=xecm#nxwy-1qumS&EPnp;ff3OuM)JO}` z?@jsx@Pc8aKbrI>klr*NsdMp;rC4Mw9_xs=Y-1F@kF$wrSb`_tgWurYS~%sXl)Ykm zCGT6o0oKD>SOqJv#WHNMlrmXDnJmFK7UQD}nTN3eJ@|E<^oNoD7}A}Hm(Jk-1;hrd zn=CU0>rJKvC(*!9q=B74Cz_GI z8tE(XhjxF&AB>P;h73z;X&+<^LKwc+#JaWfl7kUl#yQj&eB1xh5ZC)Vykt?N$hx1=Soq&2iezCti^l&+7hHr+fPEwf=VSn>Dh zw)AuPj*TdZakLOaTk|H$R;-3-sUrrq&=&(*8j1cb&4{gZC$7?0^l3F%^lCL)^lUXr z^iZ86ELE2a3)KyxtLj!^uDVBIR~xdKb|{oi|cy^diPGP*`Y; z6kRnY3UiIw!c=paFwxu~j5W6kBh9_SP%~Z_Xcmc%8kdB=#@9k$^9`Sg*CN9nc`G{5 z^`^Tq8OFeH{vHJVb?NK#eJ}Lssoh-kBo@kef*#! zLk9iH5I=aF{$50rzHxZrNTMDE0eT8BB zp~P3Lgud$Mi0^)y8%eH~$_uP+SrJByC2T+-{viU?vc zy8JM$!wxd-3>FD(gLOj7z)ffx>=GIV(V~q(zEJCU4xYek(MF$V25GNG);uH1p)-C6 zL!ck@6dVIR?vzdLkkCfb{*2^~`{p>3)I9fg)@7olZlAvDeU5?>i6+L( z*5ka6Iq`?CszS>`LugoN3w4VQqK$=-P_r;2uEN_vEeDAfmSaS7%jrVJatY342Rw-^ z!$~v)Y6vPkhF4^gu|Mf9Lhe*^>Oi7BB+!rUy%21{6ZTWV(x945qC?NuI2%Gf-F=*iWAi z>-pXnqHw+vuK$$#&|wn4qmceM7z+K7*AsU#=V-*=dP9(pTqXX~dMq)3@yMPCQ(zj* zfLZ9l?k!?2ddx?UMU;uM6m&68tOU9ijfR;tf~&!Uhf)OB72t#)a?fwv%L>5an(e*^GDSvmgLO%J`n93XgvOs6;olJ_A z&M5Z-u1+`UU2I|l$Bim<#9HzY#y?!pLwN|enE-|AN@iS0#F-1X1ab|2=}^bR@&`ID ztTC{{7qD~RarhxcXNaA3u(1ZWv{*#i%U~5K@)TK{zyY>^E4af}@CIMl-kf*=dhBk? z*j=BvL03Lwi(MofL_#|}iF+L7x-#M!Pnf5I4%m6nWan_)`v_qaYR%AQ_GUMa@9)-OeE; z=%FmNz?C+Z1Qq|QOAHddH_S8MazS}^_=UxbhBcRBl z7@OiPSsb$=501kLD1{0*4J6$(N28JB4a((~F2`=fL2$e)imHdW5Bq;e)@}|gBWR-v-rwXc}9va{R;N}d>S&0Mp;2}JQXYic{t78oL zalapbPbV(2fgMCB#K-CECUTBm?f;2^yb&tIAX*cDP*%t&b1;-0IxIlxfh%)Cl#$7F zzMscPX$igam5d(O5jWUGFWH$qxbhNrmw_?|LWuz= zyHY4~AQT;bgO~8)4_-2+d5s>wv+m(HVL}9@Co%?+{wPL^6N!IJCpIycQNm)KIi#ZIYk)hwMWfl{kR1E5&Q%{s4-}s3}c6 z#vY$Crn%3!>K@~W`;297Fs{4ADB>J?)MJkt8p?NXOIb+z%SnF?Zed4!VhbZ|FI;6O zMR<^rRSMQ970EO%H#xN znF2;Ex#*FJ9%+oHQfRc37y%|Q>WrhojA0ZUMI#c49*1%4cRPeeVUcV~=PWM%eUoe@ z?%@gUpu{0QMV{hHifmeqCihF>n1C%}h(EA481zWnnCf9c&iYVQ29xec>^P2eCli;L zLE7`k`4Xy=GTOHzf3Czm{Lv%~t0dEmDN&+_O)|G2S6Kt{pE!i#&WejGRa&VAhe2ru zc0&+j?m))60hCDqW6VH&!yi3-(8CM=*ve>6*`d=7A92A)obeGS^l(Iv&G_jiu6VaQ z=TXM;xp?nIn%kFn&%5;>)*M%WQk|8mr!+SqK{R ziUw+HlWe7V+z7U?7FJ=4mH4MMWn#@(*P8ePYub5?SdeyaVjTlWdnoCS#w#X}?sQ@W z^BMhH6DP2vl$1S0cB5Skae^W|=q|jW1bJrvK@xJ5{40+fN1(~#ZpOc`5ax?!q}v)a zNxL2Bk-ib0XiEAPq~DwL2ax_S(i}sKU=k%W3vCt)D{?Uo{~U{T$M7H-jm1Y1pBqIh zFbeq!qd_Tu#r{hEZ9sWU&WBk*i$>aXcd*5~_=6Vd>wrEoIwQjj8N87aJ;qQjqwtTB zoEgDg!?Cs!B^pA>4JLd09t?n$Q}sF{zQrmJe%`VOG~;2s&r34iG57u zZ!6A^RiTd~nv;HO($@rbW1zl{z&D0bSBBDd3?Zs8m}tWw{#7*TkCy$&MPIz358l|D z8qtf|)060I588?z#7mVKa6ORU6Lz$~2CeCm@Mu}6PWKEZz!?4>p++B%@0eCD1~+Sk zj5f&7A`k7L1F{T}#rg-)6*)bT)1QBbk@h&WnvR7QQCe&H))`HCBLtprN-JYZYide) zDA8~;@I}rh9x2Kkm^oV59hg2YhVwTsWo14G{Tp=ZqsChxTD2CvTWE-0&Dx5dDmtQv zioWQsVuUPHWLeUR^+DcXVXnfCj4D%vsmgrOMP-#RR&f+YD!dVb7RHda+mHvHA@OSi zq)|p-CGP=uN3;Nc_Tz?f6+nppwLy#6zyBp2%VOX z;WhA^JL#`M-u!lSmvyiKu+f6(4=isG-Ju)bn}eBF3t}s(!c;?Dn5b)sF6ug>GjDe` zVh5K_8fL;!qlYli7(i@ggwWHRC_1o{ZhOs@LPwK*Z#1`ywwkPe&}99CMm2m2KLfwH zllDsF%xRAw($yFV1ECLe=Ug{1Lmv~aF>c43D70G&BVsX~+VVyUEp}vRt1I-|vi_kh z>mRgP|DfHU*vbgvER%$`_B^4by-H}ZK1oB{PpE502sQ0=(OSDosA@lipM+{#+HKNa zhP;_{gRS%!hCzSm2@I!&8FbRJg6-I+pNcbQPr-6&Lby+teCFwsKym}uUOVzzUu@X(M6A4gmv|s3!RR<71V(ELnn2i(W$La@6=wj;iA?ADO8Ot zh^_P^#xh(qGnzyO=EGWWqtmz-l1UI9I(4YvFxuyd!9g0{J@sBPogobG= zVm-W_)Lc_E>xyG5&f5)TEli+041_T-16F_|?BtqwC}%+Rkc_?p#{S5g%59@fDF^5U z-T2!CT{`ofA$sU>#N~uG=UJx5+@5Blb+?wxt)YSIP6O7H3a(US)+q_rDT&_Qpf8LB zo;baifIS3qT`bp^Vr+Ei@f-KE?!b)UH|AqWkLU+V49J{wU65sjOnqq2XKl`F@x8hQ zV{o$BqGt=z-I2aF;U4TRp_yXGFfc`*kTom zube{%&6e-Cb6o7D3rk2Df(8C$uPy*3ga4;uq;e^2)xMA~Ft~o-dsf-8qQ|@DjapWW?U$O5}SP6UGxIhTUFi_+ihNBPz6tPH#G{}NHC`ONRP0%Mk(Vf4^Y#~O? zbLR(b$|Jjk^(|kBp7@pVB7BgdYNO?5dtxD$#6fVlX9#`bLkuL2>y%j$ z|2_Wj6Jv>&{I2_2D048BUZ>LY?G4IYkTEcsQPM2FUqD=9nfMt;eL?^I2MqWfBhPOb zjXq^u^#z6X8HMwJSs!$p1~5~Gr#AZz5Mltviqu9$>`Y0yLqKImU zAACix{@q(y71_%AkDZ{zAf6-h3-|;S6W)i9;jU06?x6)8$b&Jawj}L-n12}KJGCQ#g{4k|!#@nnbwr5YS078AkvE`l-%$2Sfz zmI+0Vz335)f9&D`5+tm!=VY3SnWVn}Z&*(Av5q`ClE-b7ObF4C1e%r-nzM(TeK-F? zi9xJ}l~9c=#od$P5QKnICH=q$TX++HPc^Eu9j888i|VvDJaxu;Mj>}SVkJv@M2DbZsBdW=U8EA$wP9%J}-G*^to z0wb{ea7t+yr8*Rk8iH>QA^J9$+CCWB3QDW97a5BEmHaOQn(ijK6FH6p9%-c63{;6M zXh2)gL54muj7Xn1QliHY%0-Dj@NP`B8BY{oCZ4;5Rz=xU)tztmLNeM`!ZUa`3r=bM z6dO3gDiyjT&E9p1l-S28J`dykU>F1gX}1_XfhIDvp*?cge}Q;RAKKF1)R$gJ?1?tY z%#iL_%#sqbpk%vI%3bkvb852kK4>#qBc=5KO{@E&P0N>}O$&Z=NB%-& zOwq;<+u?hl4BNW#w<&Z6L-gs$d>B3AFdf*VMORae_=>t{ufdLx8mxcNVEuyzZ>7-a zBHC(L5^L!vG&M&E4b90yU30!r(_AZBYr2Y7n!%!_W`by;Q6ida+!W0;eh|&n`OO{q z^N=$Uxx;lBXFzu_2V>54f{xHZn{hue7#(fi#@SX)Xt!-6w6!#ZmX?;#YO5nO+v*c* z=?q;(8|~i2TZR&E882FC&k-$&#WZJqk_x-{3igQ+ZA<7l--Z{!GXwdvk!M9WXQ(dq z04%_izm33v@AN>IIFL@eR-#?I*2H+)5aUr7n(c@`w9^#oI_*Ro)+wnmH>S0Ysc6MI zrIzgn5pNkwyk#bXg%v;x&_0MxBYh{G5(aP|!q33GJ<^|!Og8!ygY+l|=*s6VV90rW z&~2|G+7kn6r=u#gb<~6wXo7nCHpF=}g=&YkqLm(VAoMzl=6YR3Gd=oj`u$-POaod! zeV#yifj|ei13Gm0h=hMZFUJ1Jn1bAq`qamclmnRYS&9D`fF8QE*Tn|yTM=tg6>ULN zm-!bR*n>h(O|3#4XG&&j5!s&8_sQkEiA~Cg)xl_0D)-$v-s5qY|x&1aSd3U$6yCE4cP1ahGV^j6_U9wy3zWe{aDgfbb5 zEr#MyL%B)W1*8gn#O?N+;N}5&`&VLp$B<0=aw$WWZId~;jvnS!WOf7@jxEQ`B^jqHgpdBxGs+CYp4t_xR<@OdXqISv&3xX=+Oze z${Zjqmyf&f3_y4f$=Z$Q=htJ{6hMf$TJO zwlFQ7&3BzIlKwLmV$0`^=;5G2=ZG?Kz@Z#S+mHaAlQMW0NicD^4lDD1XPS^|kAsh|?$^97zN#S!kmt1=g)9WfA7Vj$S! zI6`vBOcse`WHG_~hA^K-J(zg8qUHcxC!^#us(${x!HsDDrEQ)f*MG?K7oPe>88g?J5H%8wpQ}&1r%3PUL!b0 z14Y-AH$~P7I0>gfkyQ^AYm>aI9B;ur_!OSNx9|df(jv%U%t8wa{~HSWD}+5pz(Ym( z|Nfs!^A;^zwN`7RuBp|wolbjQJ^hY`os2qnF)=mk+RdVSkDk5y^zGMw;Gn@nhYcSw zYV??~R^um3nmlFd^cgc}&zU=K!NNt0mo8gwy>iv+wKnT)H`r~o-|XPH#o5Kx-D9hl z_ck9t|LuW0f_Cl>-m`aK=>7xY5eE++i98w|6C0n9n3R%wEG;85DZQ_|d)l4?cPL>F19gfBEFAr(b{b?RU?A z`0=NoU;gsy^>1(9%D?*Gf6qP7pnvoK|5o{{G*e1kRdIO@d|q2|`VM%#f#UYYir<^# z_?C+2_f}kg0KPv&asH8t_m9KYm{2Bo@%g3sRvF< zMR21gcq&!Fm%0$3REAwjZ3v+{gempmkWwL{s1b2Wl}J|VL^_osTd5TVREuJzUX&{p zql%hQt5l5!rEXlJa$Hqv$1SCL+@*eetW=QCs3Bh{RpgmcN4}?$yijV%uSzxf{jGGe z^BADif#yveu>VmTRQ`Yd{(szFLPe!nv*yiP;4`gMRa>`K!*A3zG&FIYw%Xe5@SgU% z_>Z1G9%NvM58*_35pIMZ;Yf-nHM!C|U-}=;)Z|OJ(yZA^Q%Xy^V&&?!>(<+C+U(@) z>fyP~Z~Km&!6BgsA`V4H#l$5fr5sDAxl~%q;uAPUlTZ8)mw4wBO-`YB1#W>~;23xY zu7PiS@g?5z)l>ZA>u>Oo@4o;3IZpE9ix)rPCog~b<=0J>kp-Qe=L-ZA*YQ!X)=i#>AACA@uXW`eUZnh%6zZ0CE31L za*qYvPEFi>KPL9TXa5wb=#Wl7Dr=;^Jb@0?GY80qMU!7$TxtFN6drKbDch)LOTHzFbA!9V3s9dgj26dh`34*31T!pSeMSX+O4 z!^Z8i>l;IEG&&^I*KWx#D|bDaSL9xIEYI^oY}U4`htjs+4oTj9_n#s&|FABWr|E1rF{*6ouIHiR@@-W*?9=ahTA!lf*|#H~91xX0Nexn7q-Gkve^ zO51V!pVFj524#^yQcs?oVEXp#jQ+n|T`=kS2g_DG`E<402lv+RJ$uDIw&aXsR#v5R zablUvsiVbiwFe43&jsiBTnfkxxcX0#S=b>H9STP1$x{PZ=V0fe~QfNs_3983rBR2 zrzdpz<>HKf-`|}#;mb#hmw)_~wad8&w!6!2Y>Ldh;E)nu=ah4}%DHG?g=^WaQjbdi zVy_ynLcjWdip=iXQf8sUi4nSQYbO}LxH6;9(+6{{K6|=w`K@Qx&NUBhgO1dad{LyTy z``<5EcIn#{PUWAi3&{FlV_4j^%~1z0IwkFGa83`Zcg^;#@yPc)?N#Vn>3iazB6HCp z7adLw*LiVqe5c3vrgy*l)hw&4FXk_;{eHPa!DAbr4^}UHVfS zkEqW!ZV$Wf5WM?C=lub<-46QP*m`8^HSZ|bE55Ogm$%3NQ{-{;7P735+7B0oYCQOO zO#3U(ru3|PIn%04&Yhq0%d)j`-`hBZf3?YD_hTpDfKOcmw|(NVbL+?6!EX0_L$=)A z9_sKxP}o037MZtrUDLbOquc#duYNg7ukOX-Qc0$h# zIb}qgoIUxFTrxNK?Ybq~UvFON^^40|_n)`gI=}GV;Pj*4#?3zjY})iZXtUk-yB+>1 zFY7z0+824mHuX-nI(rB#K=+R`{nrFfpW%RZ@F-! zt6VeAQQA-3B%LR3kRDTQrPs7|(s#Oz+&*KC+%aRd+%@x`B9qKo%7i`|GI4kZnKj;6 z7ESLZ%NCB7Cs)n=t<28$yAo%w&-1p1+)eY1xf&OcapCZ;qWZAC71ew9*PPmUu%SF4 zsShye|30gyMOKQuO0qt9s1WF{`H4{{o((9uKZaql6Yq2SQ*O`JhLhm zjFy!v=e|C*Vg0u!oxDFQbPv6gwJrW~l7CJ^)Q-}cgS)Fw?GI@v+Y^4dc<0fZ$9E)u zkhwke*59Q`heV#6$-{JIE;^K;LnS(#wx0L8dj0xusvNg{TIv>dE8i>eQkqYGef;){ zs-rX3>K`RGtSt*5L(hx!%sUY%XH;p+x_-%qNyMBFHIKX$Ib^F(##w%U`&0xp)M1YgUG z54&^h=#hJ|2jf4EJdkwv@6x105_UL-4h86N5*_O1jegs(eBLh?*4ll2X`|nRGfoGu zRk@}&lz5b$F5FgImKSiLAanP%^pt&f;^PnAi;Ri?IQ&S`-M@=Wp)3>~($JxBoRK_* z4rk_#`t8E9c|SL{*+a=X)V7E8uE;+V0y&lEdzX zCB@v|7oT+Z@6x10GCE`oZ7++^p>kS}x98@L`n7TCydSTxwtI4Wz5l&y_J=PtIAxrw zbScR{;a+nr-}8KImd}+#=>a$Qr3QbvEBW9@yHevn{JZ?ALnb<$K!?*)d%U?YXVlME zm(2a{&MLdd_tyE}y1D64-8sj!6O6etO5LiI7|7v2Vjw$-f%vC}e&Bm7^3LByrkb{t ziXF0s>d2CDon+0_?ynl>jQsJ|;{6 z*|3`!$ac!aJ7dp{t?A)6|1M2Br1VyoIp|O}w$tzRQ@j6sWzLB2K3X*A%SX#M-2Hs5 zZ^IqC@RCcLlhTO?#hh|3i70ie+*`D@R*8Z55CieZ+12Qp9eVliB9CE*RCLH2(oR;4 zHGI`D)$;j`*~6cHx?tAlPnWL0`go1c=@0Gp=U?6&mvq)K^KiBEabh5)JIg#y`JM2p z_AK(NcRe0-c1yvYbAK0^h7QNj;rI}3Sv9ufPZy_jdv-I;ZFF2-zopH|EUE^A?z0#xDyTYr?z1+8AOKD)0L&@&yzl%&aZ6VXp;lz-( zztxS^|MuDxv(FyR9DMidxwEdlShTL{tJNO4pRC`NaN9oO;8mxXJr|vm0~_4Zed;~3 zJ!-x4T&jJKJ5&W0Z>rpN;_o6e&>^c=8+mfD=8N-VbRXZHZ2ZBO(}y(vFlW};Uly(@ z`ev0&%IE9-Bk$Yq*>`74c+hp%NZ%_Sv7U`y39c8nB|Dw>PqlB@k#2W(cgEjEW|_2* z1wC88sTrjH^xA0c4?mk=eCgZiLu!7VJ)``$1=blqtg?@Oy1`@r=bQa^K5*XUch5b< z>qD>o?st5`op1Rcbi5IGWYhIsM>kyC6ZLnIIVR0zX^&RVFAPw<_h67lzD+`<2~l|DU$3 z_x#a)liT;+4qLwSb8`GPz3)yDi!3v0_SF?#mCIjtZc+VW zfKHJdYj#Xd=yz038yP0&P1+?_&h(WV=X<=}vc&m~`*O$MyshnD`K{XcYrtx|Uw5uq z|4Z=NbuU9~Y+mkP_jh@5wyn5&PhFgT(OI=f4%9s+M|O#n<9de3DT4y#+>zeW+R9bh zO?H${(>6)>8FtcZ)_UnXdz}oJVc)YP)W*FBa?b}HE;_qCs=Ur8zOvdYwWexoPJO9s!I=|o$LrpgCVz)*OEPt#2!(+Z-cj9)$UpW+)n*S-xzFEVo(y zbLnQsr^W6853;-?ZY6C`zH~Gw@9cp+<^Ly&9^F{tmvSxFJN;Vvwww!T+w#u6FMsL~ zH@Kb5K!@X#yUB8NIJI<&tX#YNrwV(gCuOcXKF;$zd_B$g*oD}DqT0i|sw#6EwCYnK0X zdgGQSr<{ZC6?sHn%i5OFkmO%d9krvj;>f;pr3Vi+9uJGYma{MAW@6B>TQNJbE=LDt zUwU8u)FA;KvPUy30v#%650W)Yru<&Fdc})6JLfNJoOXUx<{ot=-z)2Ex^H=P%Ff!d zxR7%Nk>QuK4n|%}J&<@aW>4y^Bf*(h4hLs7zAu03kT|HF%t40}=ukCl5VK3C{C0NL ziWdzVoWD5Zxa)4EYxL#ft+{9N{mLrRchnRn2A|7{+25EFdFXoFp}1Q|4y4`=-4yegV-E}TCVP9ihY{WHYCf^J{l6rezM8?&9;aQj87a5N~C^{sgLmoPmp+n8A zfp5+&n*8$8$`#*VS?BWj%BJ934NkEQRqi*BXU0gW%#g!E+zPY*9<(GZmtd?_Mr|J8k|kvDdyrrg{SpK*0ZZ06}W6L&YSs-_Oh(@bWSx> zU3y=dbcn|endoo=9jYgq{CsIMaEk zCtb^fOFT|*FZ8bWD)2k!mbdewQ||st#7r)3$xAx_zQ{!EkkCU-W)IYoWg~T8*H7&7 z{OXLpPnenU`O^hUZ+^AHsqWKtfkn5OnQ_S>@yMAiSs~2I2(0iZ+g9dv%A>^h^p@fs zwVMm~)^994bjGgm=zAlR&>;~W@&_<0Vr2WD&QIw4)two=9zLEm?!#~9FS+>La)hAWbn!L<>3{!Wd~2aFESY& zQo6U6Mg5r-F{0f!S0@-ed^olHt*5iBF8wfnarKYOHsyb5$DLv0WpJi43>%4`T`Q*gvZTohh47w9d*1K z5VPs>&balBdlPIfg(a=M82;YKG<3+fX!%=ppH^R9AKd!Z=cDz`e>bI9<*ONE3*XM2 zoAG+-%IF_#Htqj_}<7&BcdYa&A+>7(frQC9;)ZR8EtUt*Gawd<+M@9SW4~MUUJU4y0+sp2Yz1wUb@At8JbkJ|@qeJhF%s{w3*^2H_vdCF0<{W=R7;>XDn| zrZMZKvz3kX7{5kto48u~Pg*4dC$E&dCR@urQ&z}*QSM*yY*AK9kj)Rs<*CET~)}c$}Ht-v^SOyGR zB!h-8l)FbPkRh<|y^)7Hw~!IEQDH=Gqj_c}PcoGmbNa~4<)dZ#`dKn%i}f#Y-kZOR z+~M`)KuFMM!Qr7F2Sy&g>lYVu+dDb&#@4jdYwp?US6mCSE<2azTym<;KVyHo;C=X4 zhj;e+*AD;M;lI|K{}ujl_>cA>e6Y5RrF}@9WFoU?_mMfvM$4>qvt*j%%Ab=w9lwbQ z@OgZ2Pw*!pVG(zC9*(}XJtpb8PeR%i&(!QjkIcM_uKCB$JC_vKIaZWZIaU_E5Ap~) z9PF+p57MuWXU22dL=%}etB=fIGDhaFo&7d@^Xi|{J+?ec^7sGj=+4lO4(vO6YfnV- z)g6(Um;7S$&wD2opWT{XR_~TuQR`AtS-z#T;)L_b()XcBhePOam_BVHI%J|l!OT9g zXz>_XxMt4p1)J9VnB(U1B+X~XC$WLycMk1|zZ$wfsO;(4s5$|JYF z#JS*1f!m3yT=%k*?}LmqY9SRJBGDlk9kM5Mk%cq*$dW~4WXb9|zn|E+_J`vxZeM15 z@4TP1{qW7Gohgk6Lh{ZAA1JL2JaW3qH}=dapJNT>+j7t6x#ykB+*(wV?p1o~eQ46* zFghF^&{n1}>pBM=if8n0noU@~YR+$E8*HAJZ1H%Uzcu)yG~c7w;sVppAKG11w=cBv z^qwQNmAezpmIbAqFWjDUA>AwILdv$nx+I?yRqw-}Iz*wvF?7g7hZ1zCU`FGqm2-YQ zwSL|ACmpvwDt6y{H+x&mm89+24bi(wY7XzOIvIAj?nFpTLqTxLg`8d47nA(5FU9#6 z)W>WuKK(w(qm+eWhiGQNr=deWvnorc_f}?y{C?Vc&dbxb>%Kef;Q4u(Ysj4fueio^ zznuDnoh21VL#m1oM%3l)KYA`RB;mrbJsFo`0<#*A?kG4LxudB1eQ46*h^3m0L5K7a z%!)vVa%QM7JLFBxia9^kty}j^oxRs*l`f$-i#!s}XZhw-CGRLHiQQ9`cO&L^C)DR|%PCLWUQ&>-t12UUUtRK%gXdxoMqfM{p3)c*nss@9NM6JKkiy#c zK}Jy)k(RAx96Ds8LlHWhLWlZ!qkcWNY|irwYiz%~VCQ|e&LQk#xog7d<6hatnSLj- zQ-Uf};`i3YMu(p}a`foMh$Bgjp$D@r?>UfnZckWY-TNS;IyG<7A%Pk2*~6I?!3>qE zX+7UG%pLXe;?gf3kRMc7Cq!iDMaom2oM-bw?7y8VIc{<3k-i0^MLn)T&JE7sk;ZR2&mapS&9`_QCAltpWq+D}6kphLwt z!&hggTK;f#_V8!-7tZ|j;qtZD@2&ByyS^dh#6^dgjCz;!xYJvYA3W(>wwGB5JBovA zeG9|RcorOOa4$$X=a!#;)-AiR_I;2s*dZDn()y~)qM_~Ho*rlL(}k(szP>$s=ogRX zP5T)Fkc_Hv&Juabb%ZpFK6oQlHgHWxewuW}h~)bZFaGb>sBEyE?`E@yD|UK6o;B`n9i?tgd~$%B}d5 z^+CsO+aHW$rqhvK zmtEt0FKkWu&#Dmn+8ucts`nJEJAI&V&FQG3)m4e_g^V|BE|Xa)RM@-qtJ=ZLiWsAP z@8N{bSD#KFboPfi(<*;lupHs=qdu09u;w(?xudm$6iA>F*CEbrO!`GtY1AKxFMarMcBF7-c58+`KB ztSQHTnZG#oXX|y5->!Gs_r$?7@N*acZJ%rna=-7hXUj+1_c?qRw14BB-~;P#hep`k zia50T#?d1yZ^T8u4>HA|nanqB{%egz^UrU0Yku{ML2c`wPcSWeJ#|p-+nEzm-_DyG z^_%sI(4RNh20eG&?DLJAi^o%M59cR-UXEYv@Y%$w5WCO!`rCfCKVa>r2Y0M~cr<9` zC$T%<2YCz~$~vn&y{xZt?U8Zw`sagmN?%)j|Fmtr!;jlHZu%j}-tKwu=Jnt2b6oe`0jIU!9@?_%n<$r+U&pz=4>GTV%8N7F z;s&!K>b~#Ns^qsp?X%=)lQ=n{cZ8fabdQ`nE(mg1PyZXP4e)Iw#Cw%dt=xXa;&_R^}$Iyv3kTF$pvDpz!0EZ6m1Ankk2m(IQC zN%uZ;rB~lM(g*ze&6a`vX31UsXUe@0`d-LT`VV`Fk?tC-CBsMR%BTrOGI6G*Ok6rx zCajwvW1Qy7!`>@@4GY@%P6C$!7|Zif{b;V zCnLR9{Sv-o(+?q`ZeQ;_0RTE{}riE{k-PZjW>*w<9$Zr2fp`m*p>^gMt z?)K>DTRw?N*SDsnU2)6FYIH8lz36nZpx(Z!u*#t}r`+jm`d>wc(T@s6hyAQHjz))M zbjX}$A#)cDmboh@$!xntuhU)DKTq1`{vGDV zSw#&l$4l#+%F8Pph<|K3T~O#!m-SbX2NWIXPaZ&rSmuJHjx&_m=%CD*E3lp<^VTnZ zm9u5T_vv1qUnB(V{`ko5L$~+uPq@14Q07Gj5of)bFSj+bqRykJ@}$d&$|C2olXq+ApiJ(x>orkw@|AY`2oi43CNv$2_a^|0*&ZJM6bml?VH3 z$OLrAU`|Z_)Ia8#&8_D(j_jKB?S-}R z=n?B%ULNgVS@>6x5%g&l9gZ*yKN%ge(V=KcS9x;wpf{CECjDHwX34je8|@#JZt?#h z&prIoF`tCGxWLSlNA?sJg&!!(-4|Jzu_vKAb$5Dg(yrrmN4FQ&9SJBqc{s4L_^;BW z!vS=NM28e~$Q{Ex40Jd(d(i9Z#gksttXlG{X2a%(Cmpt5Kkgddkl`I)nY2B#IC}T- z+{2+|=?4y1CWXdU$AzTUMeoh4j|e(mAHK7+B7E1W6MvO=IxxmL%Ix!0en-hehtkRB z%mo?vYu%!W&(Ew}^5l%|=6jX)+bn%AY#KphL#swz6<^(;SF5?2z%(#RU_-zOsDr!;5P-U#qwCudi?nD=Tt~%gy!9 zNKM~f5R<&C^iV?Rsr|8stM^35)$WQ)uMa$WyguO2iK@VZCrke-@(^~2zz%V}nSX!| z#iR9PC*k4%Y5}RJ=nI50xmwz}TsAT`K zkc!~sh|@a~V`}^pQ|o*akJoLBIZ@>kb+YuYA`cn7(;*e!eDcEb1B-X(>?se(JW%PA5moJ# zkzC`EkzeDUQc~%Wc(U}bA`hd(!LF(@sh66}8>A^uj?(@0%tYhwugvKEaBvcwUuL zZfV7q%!-n~iadf2htMIlXKPtFP~&aYNSz!kXGTD^U!Hf>t|GTnp(Rcghs!pfj6b=tJQK>xHWgPE{Z(XS zN8)nk>|E1BRhA5B^K0Em?XRy+==kY_som~;F>_Sollk*bKU!{k{F5~vsdqQ*JbG($ z_`a*oF##9cQ?{P{|JZx4u%^1UYdc`?z25fT8x|B$dheYO2q6Rl34ss-Ap}AKgc1l4 zYUsW9jv_@+P{4xav0?#45fuw|z5eO_e8;!(9WUtSzwvIIhns6Svl7-Ab6j(=3TW+q zCC)8D<)rh%DnfH?HNH6wQCel++EVtnKmyVrK@&2?yJkYuq1ofzzdI0$%We&-?YQzv zN3MO$z@X-ZgT0&cvaclhZ-Hc_ zA#cMpXxKXKHR?dz8Q4AZ@=Li@Egw{O*L=}BRrpy?Gvkw)S=Z-*4G}823KupY^vu_6jM~fxz5F9f&I<%cPq>?4DQkQ*KQz zDDIGe+L0*Gkq-e=RW9IlSm10(2X|BIPcKX7?;Nb-Hy)1oMPN(#EX3nKMH6g4#oOa1 zl8M-lnGTj8@<@LRlr6^G>6ne_zBw0j?&FGS6{vrZ11DA|g2EOdsO;mR(<#_se2M|K zXJ|lHaRxUHM__6Z!B>X>JY75l>)SxM0S=-Ju@Gxy1xdyhkZxiQIi`Qhy|Xhg7f}bI z>E3KiDXf~24SN^FgUre>IJv(bJ!39ju=3Yj6Q_Q=t0C$T@WAD zfrMj!OGD>0OwlcAOzPKp(y{Q*j9}P0*9YYwG&sDR1SeP9fYLt}puNEaj5isA)fPRl z+o}VO+q8kQT?^c{YXW1326*pK2j87);E&+%QiYIRDj?kbw?H8BI02}m<%|AS2xOOl zNO29sYHfjdv;7cDI0@0NY9M48fFQ`~2VX?^?3Y0P$V#KV^UPtqp%;0N(aPDQ)Ed8+ zE=}AKavSftQ&-?1>00n3;$6W_yZa%3!~bgd?>hbOI{ZKD;CEy`gq~Oe(PvgeJh~?n zP4`0r{v^aw)Ij8I1fhKEZ$S|b6Wln;J9di48?S8dR~`kvFWt(xBh+gCuuEgmkaKIu zGjdnh6US@ecZhc)uG!xW{~I6(c|9KbUIZMT55nV1P`tSsBpO>F)p$Q7+nj? zL-4_Q5RLqWL}3+VAPqSN`ymG_2bm69kmhFjEy;)UP8>)d6-ID|0>y&IeiG4rR%ZMi z&w}Ke?&TRbTEIRU7jUnos7DQR`=%0I!be8C9S=v)csO+ zk;j$Pzv2IC5F(G0h%{uNj&;83Mkv+U2jymR-%Ig26UAiQn|wNTB$Lf~oX8KqEecKQ z3y#X_3P>!t;G150o>fqB)~m9rfqAyN%>8V25xuoE&$BZ(hj}^uZ-7v=4#8+0B9O;P zLfKrF+zKdC*$5R#LzSuAmns{bcNLDf(GoY>(;P4EZHZr0Z%mNnVt7P$OHgcK6F0f6 zmXlLi$u6lW^Qo^z8BA?9^L#~ycSnAjPgmyO@P9Rk(Ck4n(vWj%1(YbG)2+1k{;V^R z`&5V1c~j$HGh9w}dyvQAT}@+0U5w{RT127QXcnfZDk!nMG$5m@(7&)Y&#$^JgWXu4 z;&ZM_;@e)B#JQCHH$WI#2LU<>F&b$|MfqSJ+CL~m8fvxoes45B^`Qx?Gumix`?Si% z{brFnuRGH_s#W4IX%GizS4Kn>6^F)^=LMx!XYzCF(sI7MS-m)k%66gf5X2TLXd`7q#*-o zC_0Hwr$AY4lh*D}Z3ZV_U$D>~YQ@{!X>xSGTB#>ZARMj3Zw+xsLl*k2EIElzhEQ7fy>B&Kbi3t(q=;bEW5izNCp;7q_ z!BJI>{D_8nend-IU_?j$-|(-7P^2LN<>om^Lzyf(8A9=&Z!MZT-*xGq80j_BeAtD< z^|lh-S{t0XwUzD>MMccS%pBj$qzryxOiEZ;xI|nXoRD0{i_dNFkFRL(6*tuT#hfqq zi@s3sH-HeWLm1MKgf!%#-|I^BJlCYS=F0_*9dCN{jtyNmRlnV1ZQa#jPdj^#>|b6> z6XujN5|WG98REQv{P3)h(x8l}D*v>kT6StyJu9WOo|)WG@11nMoRx5);BSBkxpe zr3*{_^8yQli~aH=Dpf zKfdsD`{|Xhd(}4$-PJj8@1ddU^7Is#B=WA$OdLgPz@*BuPU(6 zt0KIVUKU&7T9#JjQdU&$T-H$KQq)>X$?wSj8z6GEG(>GeCzb4&3FZ4||2%hW{<|)P zWy3dB*FAcox&Qi81LX@3%*|_W+K>zSh^*vpa&S}!Eh@OpGs*8fJKgInFW0>(tdPbqA>SQ~X0&p*&w!eJGe5V>%z1HDe$m4L#WmN5 zH4k(R>nS%qF*7ZFU`@)nP4E<7cjSfiQHB0jJYv1NeI#y|c`bCLq4Zslk}&y?b6R~Zku*}@W}j&V~Xp~zSB5Z`Bvvl-fJWMrJ@F54eiRhs@E|FxHv z0^(LkLoVt-G^~?)*|SpW#?$rE7sn1SJUgMdq5QMjft(3#`Q(p=n$aJyCV~${YybCD zd+&D)GW`wPmHH~c-RY%(K^%$jvU@IO*$gGIv4iQpmVlBREWi5D6b5N%;4%PB!l(WbAmlv*p`7iuv0zs_C0r*S`UB7GvHu&Bt85JO|VH zcpj$y^TwH_aAavF$gPh9rJdoRahM1CC)r?mh5`0!G@xoZ14Gvl*ak!hFtP)Ii7iB! z;y`SM{gq^4^)t=V;zzEP+4mBx>Gvw@zhS&$Hm0w27N)IlHm3H?Lg^ydJUaspFA>9u zwIOH*!w=MUGePeV4a|-?gWX9IxX7ckC{E+STM-BT%2)_ev4SvF3y4xPhd6aJNY*fc zOig1b&@zHD?Z4q#<8(|*#|%vMt(lnoUyG-u!q(Z*uzyhy%0YZUZk;=*Y;gwdo%Ue7 z#|Ciwu|PUx39g6DfgxiGK1WT!|CliZ9XEuq69yoX)kmA8dLTKeiweRz=#?jbLu>Oi zOy!knn4E{xq$IF(S`=)V&4*nJyx`zcS2(eX1ZV!S1&s}spugD^EVdc}e!D)9cIW|h zrw-6}X@l2pE%4o=2?2XFAb77jgzZJfY@aH`?Nfo|{eMH%1u0ApdIMYht7%dZuxwfY ztefeHau8?Ov(OIR7glg;g$XFH(g&?II$*R`6D-%MgUxzXAg)&drwvL#-KYre8_$5} zrqjUMqyU^v^1$0H2O)@vEq?>B(TtcE%4j`g=ArSLMG$mm1%zs@2cgMM2(vp30#`ZU z`>2AyKo@*tOu#$Y5e^Wp^y23aLa2DKj8hq zX3*!h&9K*>0N?+k!TZo$;2&EE;qogWN_{BaPMTBYY3O1<}(a|?UasmpJKbd~$e{!YL>{3G6V{1g9PyFuSS0UV@( zg`Qv7=sE6p7bH?{Ifzx)L4y8Hh{qlQG3hjj=-LqOXZ9;N)b?wD*y*EhGHu)|i}Bi{ zfHmq??)QRP8}Qt@IdI77lHe)&Lw?WxKjGI1_d>hvAMrbhPq=>q{80YjgEVjs%>B0u z5{-OTyvjOA*4+sbOBqNYo&hmU7es7}A7R1v6G2gwasNcdm`^(Ug=b#CuzN}HGipuP z6PI%l1LR9l_Z@GDuiD=bcRAdSXeT`ooOgW0{}caeU?UA&NT?qmEopAp{_-XJqO^fA3i^w70Re2;Q2;XlsZl3s_N zl#8URiEU2(F=xql!|Rt~4qjm5_8hB`5FA`~pM?Nb>`5(yC-T_&rGLV5+`kv}+ z@F|gD^G@vVG8Pfa90`sIc;=rJ_K1}kbJwFFvEQ{K?HaWyqnC0qv%{$?vzd%C7?QTm+aWcV(Xj(?Tt z>pC12$Q}q03U2$0W3I6ziB~+cQoHEI869plS?#peoU@dRIW?5-j0)Gjq!PFOm?HN( z5q|=>NCO9H5bT}}V$}0aK^n3Y*P>3$b|^MF^0mlX=|jGQ(O5Q(Fr4h={xHU$+aD$n z_V6QPFZ#tx+E{7n&CI;4CPsN~y+>1CwR=Z?iQA>@LV8b1F5`M^w&yL;pMZe>qv3aV zFb?^wG?Y>1o>>FM8ry!B8yxvmW~KDD#NK!$pJG3d?!oAfXY;N^@`W8C;j!m=G06>n zl8hRktegt(;`~yt+Ja)Q_QD)SM_wk%VA8#>C8T=y$NY(ZHTa=*_}x!RK)G1P@x@Sp za?&!5t>3Hl4}Yk(P~JUB-LqHX&Fc_zh0Q`iT%ACaT!H#Q#r|oz`M&uD zIqb@!ET8706z}#z3CduS*nLTfzBgk31n|&0_#?mhyAzXyzMt7hLlMeJE7Z4ssna_& z-e9gcQfF)YsNB)vdLE5&DUBI$K7k{wiw=w{4;Q8s3dET?{N%h0Zcbr}e_3&oUsFk( zZ(DJ!-=%D^f3GBldp+(?01tWI-x_}RQIb*LJ@?om)WcZyt6FW#r$*gFubWL3hZ=2+ z{!{Hh>?xu$+Oik{4asa_MO;8^VN_^Jc6d}~YDi*UVo+vb9KWbIhF@0_$wT=E?_zEQ zzb7Sve=Yt`03T`KA`QQL7^$f5o{xU7%N17ss8iegp;_m^XuI*5C(YJIH|mJQOJyz| z=kn;>>U8h$q9p&=?AYMsl&HwegoyaOn6R|M$dH1P@Q~`#kdW3=fuJ)lL~tcFL~u3n zPyDMP0QJmc&^?j9Zw?e5T>w?`E50?VZX9pb**|j8NZ}zmIkvBnVBcOzrq>s_`Ilxh z!*bI&;?yL5a(rBPW>kzgFIz+&3Fa(4JDQ{PNGuDjVK(YVRGoY$SKP)6$^3*^ba$>*QWl=IU2azz9pv_7Nwf z1xTWjLo>n>qjLk}k_x%8*~J`jSqWQwu9O|qk?$LQIh_;Lm-Htf5c%#PwC5g=G-U6c z4P`R(el^G~{n)0wZuGL&t|xs4C$D!|=y$Z)+BGzi+)An`oUBrMNKyeSIywjaSY`&N z^V1@8{8ADMSdz>lrlh2pAwlDMNgesjgv;q(@qLm%0YOMZ2=e}k=<~?iGYhJY%>91u z)Z%v+mDY@0)7<``Ur)BD$4vKpr;Tk@3z3%B=;E7F?IsYHdqss6a}xLkfvLW^!Yr@s zxIB7RS^+JysEC?XU*wwAk?)pvIo&M}Fwzi?&VWeXf=;H~Jrn8<&HmITyYN+y z;)R|t8@I~byJ;&%htG(4tr`w3z-$yL<L%q8bvNp;TcOZ*ccK;AzRb*$6T>6oQEXZ$>SaOT^t<8udZonCzR zvC77t0qvtLcZ@YFuVb;fSL~dVE;)Kdwo?OwT0Fvh&#|ICo4E0`hLB|E`sg%LT}q~X zZGM(rT}>9g{$eJfsyErb{962+v_nR?Df=W%j*R(=GW`Q zX8m0;=6$zB=G}LMe*%Oke@I&;1r=+gKDMuxdUSUQrgwP9jP^Gtmes#i-dgfn<4D#k zUB!f#W_rRA8%zFk62WJP>g+M(=|&yocse}`V%a~7^tF8!?{EDiJ;3sD0pDz(D$r!0 zCD3@FKhWsjL;jzDsAVVvStj+XaVh3b?>tQJ&=RS(w>xIlO~|e&{;0Sm~TkP&v6=#_STEw{MO%r^j1J7ycN0FzDaPkex2@S`6|!d{8c&KbhOdK zc(jXQ^z!x}fuzM!P`(gzt9=gU@-=ii<@i$Rny)+O7JZjpk^cSk=GgD5`@+6yALD&9 zIqmb!M$O}!qqgfeH+}LqFJp&q{$_-40t@_i5f=9?!5aHD&Bo$Oo~_yEQah8+bp+#2 z?F7S5SM2`;MDzd{;w zsd)yb>GBLr*@M|=4rA5yWY{}T1c#Rfq8SVyP~7AW8atf9U@s9Y58}c82o5MmvEXss z5?He4z&&XS0y$%dlsAHS1p`Putq(b;^`Q8S4jO{gh9;#y(OoBvX>6a4DY-rklksYf zR06D>A%q=sxhMx=qP3uc!deojZmyN6y@5A&tNVC{52lm~gBJ_s2O zEw%&MW4ZvWXE?BJB0-FsQK-{DT&YM)hZL>0XZczgE7DWiydIoLCoQ8;P z3LxGt50dS2kiO$jl(eJkUq>&ne~Q5fV4*Y{R!pOz9K->(&cVUn`DP%q$N=P)Xo2!F zbWdmOyi9s|zWqrm$|215Tif=c9n z0^CtQi;DhEILpidj}r^P=k!wW(^!Kdx6R;>-whnsBjDqE61+kcff1_)?rGXU%hv}= znGrbGngIEn88~)W0I|#JJE7P5GyW#-gY6@maonKoE9;l|5v#X$!&dL`Q}MqV{<}W^ zT?dp$Q4Y^R$G$88U-_lLRbK;vhMR$By9fL!GT_US1C~G;m|{)vNYMlLTqAHTH3dqw z1voch!KoehgVbgF#l9CmVRw@-Zu`i73^zo4Vg1tK8TPHi6YRMCQ~(`iVy;L7?a&-x z9i0zcxup=Ox&}h@H-o@>F9ed00+)&6HohA8h;+eAVhkQx=HOO@{pDI|`@^My@SWU3 z{OWj#^pV)>G)}nb{0cund2TaIePaF6^&ajG`3~-_(^P;5(m+ER=x7he7j;1bPc4BE zmDLcgyBWf*_Cg5h7zBEp0j|F$aD;~7lVA?a4BStTe7kS7GKVkJTJk67X39sWi>~7i zz3#6FH$8^&j~N5FVb43b7xZhkuc>{uZzxj%43vSm{mz2+&jx?g1reNF0z&20Akx_k zBJ;f63d2<%4Ur+dG%DjJM;e2^&P|&^-#+|vuP(b$_e*wTw5b43q`@6&@IueCJmfdSWEZ2J)@l%IZH8FWeGqMT z0wSm?5aO-(JuuMX3s+?KiJj>5!7GzC?or5iO{-wNqBL?|kS}nbJNEG(+usekfqxi$ z#qJ6BB4Lo-N_^qjLVW2l75~+M@&_N(=?zAHGxEe@5T98E37VTA(Rd%k+sgimaaR2n z;b}M#!nJX8!s(SLe%}PChI=8|TJ~$AquNKYyYbry zU;Joru*yx#+lwBTE=xx(u%WuiWELv#&; z8K>N3$Y(0R3u*A!F$1`0Z!sL@L9xi|NfcH>y81@Q(%<_%(@J(Cm8kwU$<_2lw731U zP_EnkfDqq)c2r;=GcoKkJtOiWtuW>SwJNri(j0%D(i30rd_As;ayzn=`an?V`h;8H z`iwIb|7u{MJv|=syphQ3C7}7mG?Wi!sc!g{r@QBKo`vjqHbLWMs*Cy4I1kd@2w%pv z;6To0t}v*B9UI>2l@fK9krUhCUYbzr){t1`)|pg_GMFN_o6&jhcf+#i1N=<-6Yf-i zH(Cczq#+Rb&1jTKNs!meMEPKz%KGm`I=ep9 zLW9q7qlBnbA6@005m)9}m{`oHmK1ojCg*zeBxj)vCf)N+L<;j^P%?9XHx8}#ye0;l$q!`Z4=qL`F=HfgIo(k|m>%d07I~3q7oM{S}vr!2-lI6p!Vkr^5plN=nM zkibt*76%lhMR9A=BLgm^3j=zSg}i=oc);DTuz&}GsX!W}!58^FA<~e9zMnZLw=R)g z{Iyzf_1i{`ZO_l^%RFebQ0=RP7hay>AKr|(lFALg9>)#4BjkqO3!RF8HE@ydjz(*dwiCS}^uX+2)yEfnID2}< z%XYPmk1y&TyxwZ6+}U7b(pc$WUta9umYYjwr)GEu#-;d&i;@J>b@qh93TIkIu^THPkI55dal%5<1EY8;!Z=?^T#|QUdI}?< zD2<*_pYER6o#v5nEuIl~JHj*eZrD@+=XVZ+{%*x@oCZ1D(fk4GADoq$GuA1$=oy;B zxOr7`-=!{N#ill_QQ27nKBv}+Dyek!jxO;G2rXoX@bY+(?CdZxGgF-4o}MD1rWd5R zq}Qf8XIxC7reBY9O}-Q1D!Cgr72x+fhe6+sB=l^XzjYea?4JIi?eMIT9@%-1?w(rN z*RQ^(t=I5$%_U2Nf;PNO>N%2&xPjssRzvsWRj`8CW!!Mj;*cm>QBnwmQ@K=iGeQja~tadOv|{ZLpABBZ?wcCyDK+ltE;zm4d4EQXktkNe$lEBz5!gzL}Sw$t`br zth&AWo~~@(O;at&HERn|4}loeO{V%@q%j#COkZj{hv(E56l~ur3bSoN{fCy^NXwQg zkwxo;NXyp$2(20)23yrX3Y-eyq3g#lmx6+oQa>A4VP5tu!Q6bjQmT7o->eq&rqY@r z)$N5(b&jPzGFFYbXJst7ZD+%|>FDTr!<9z8=IQBpmE%L`3--hHiUO>9C4uI>c|oSV zHNhr*orp()CYPT0n|3_)n+ga){fE@0$p0_F+`ljvbG?5qrt8IOspheLbE{v;uPPi> z*`D@7Q%3yUP%(7KO2_}1ovGJTGS2OZn?3olH<>uVrP>aJx?=}o7#0I5Ow)k^Z{x?c zEW^j0EQ2QlEQ344OoN*vo>Ku)i=-fTA?86N>L6U4gSmKnF6QjJwbLr!@1LLlPHuI| zxYD+mw;BgS-sqq5e`BfQ{hFZd{@U5lWsGh{8uPItjPYHtdx3|dpubz|jUc8tRkj%q8DxZ$&ZJvo~zdQ@m_+T!k?9008xnB-0kbF70 zD(cIb&B0&P_i(=G9bta9I7$0#cgFd%vx>tPx(4BkkG9Pho-X!Fn1SUNv61=L6l0UG zd8S6+D$ESOoio?}cEv*P`=EvH_m@*LoQJ_&t(}f(ZJmLsy*d+9{Az(zCTyIU2nQEL z!0{D)P*~3b)ot#eyT=7g50b!Eh5$|{Y{2a#7QEyw!T+>52+o**NXZBt++YZqD*8~Q zriTvW)`1pvZMd$X1rMj>MmYx4+B6MQeQ_G5;Pwnm>d!^eaj<1(81mfysC&SKQ>&?< zyq*MFTkv4C9gEJQKn8a&GFkhP**S;|#~}k$5Z6N+lRBszt&I+;*F?jp8tAo9>Ztgp z3azrLaB)i7YcQDV7HLdguM|e|Xc{IOmP!j?;|yQeIhPIx7LwukG6I}lg$4DsW}vs; z2+TI>gUu!#aM+>+l&u;--=+?%?W(}tp#p-PN+8;$h)RfO&;i5>P_SDbD)-1k?Ud9s zN@4OYVK9leF&N?7=~6+kOxhdeAg-`wmILgWhl3*v&EVt`Lr_|#1DY!|!C;jdn6Fj_ z+!{q7tUV1*YvsZ9A30=}PJ+)mSqNBv975M0gQyKhA#uYI$lQ1Ya;GG}4PE~#1`{@b z!Ej-glqW2fc1Ae}9@fpUfNir4Vc%SBkeROratoC}X^{eGEItK#OJu=#$#Jk)dK7TW zjsRiVVQ^f25GczJ0DZ-N@LsVG{8sFNz?Hi}h!9N)IHHW0uxADkWM+f&@p(W~SOj$S z6~HiB2MpV-;O@E`Xq-bp2|EVP2`9lRO932<6~Uoe8Hi1)K)9d|cHJ6a+ouV*TiRef zp!3~oNcXelsP0FLw|e8|AN0n|zD&vgZ#3AWbs!#|4U}W^z+HY3Fw|B6(_kHV*=z*{ zbq~0+4})vSaiGM>fpf+gAQviwW2G86G@@v%O$!KJ+JNuX1)H0CKX3#3U$H|56IP>! z?=0UMy|(yh^wQ$1;Z%SVdTt;h4WvV}frffHo~IUpx5^6e(O(B_>^ATw?*&gU8K4K9 z1X}bNpr)vROP&Uh%e29%UKdC$`aryB2!tNvpZI>$uQrd&K3Wf%k7GwIURjP?j#y4u z3|f6NoeCiT*06g9kPplP`jNTdExQPOl~;hD?mFg4|7sxZngO)E zvw(&6dAY|ILg1O@5UjZlLQJ+pkljHDpvnTrM+sQLTE9G_4ZqVR=3i;q*e{e~{3mj? z{YS@hqz?`k$>a9dDWmvDu7frsvrj&ffFboCEBj?r6A2zJaX+WrMS$$6NX>Hd^l$Q*E}WIwP! z>wlNf#l1zi&+WlK_3tDMd$-!Z^f*U+?ON~f&S@%uiZr;OXL@gxgYc2x3`d?f8f9~_ zDr+G@ciYc+i$kAd?B(A_xN40FSf(Rf9{w3C-1(u0*yE0CGOOPun{(Bvgxlj-%ezc! z4eWBb8q`jF6nNI*8RvKQQtdQKFDJisnF?@4&-GN~yV;0f^m&Mo-;6`KSd#J@NYUQ* zCB^j6`$W9LE3u2ta5%$qfX{Kb%?YMm^NM6%@rY+%qNVwFQ1ke$E)_xNotp$_$z350 zpzlT!%EeL@SAWmY+WIle z_~7d_oWgK|qwXV-8}?=hi`2{G(JuLhd9{1T_%<^n0gdiiL3Om^kZRXj)O~3WFQfK{ z7g8Sv=ea)h&!!D~XSls`p9-L%b)cjDRW9+*$&Hy&5@@oElab{F!@t#m7SRO=G2c`v(gwAXvnH z>L1B|?ll$Qjx>0o-v|Nn-myqS+P+zkcXZz868WWXs#Mku*Xr!PUtxBtuh3TeLZ+i- zQ?jc=RVLgrR(KNOVYKutXRZm@N|U%VPrh%`yDIt1*Fr_d@yn$2>lN$Opli z44|VNhK=saaHJy!1ogju@OF# z@vjCB^4-7BPfFf`&Oh8W{cFX+S#KIo%pYn!v;1zG`nD@)4NtVzSZUOj63mM8$%L#d z8by-I^b{v?d?Vrmc>=Lez>AI(azyDOR%B7MS44e`XJmJbm*{S|cf=#UclaQCD$q8V zG;mQ45{2%IH1u3ov}4+*n*B3I&mWufr$WkyFYAk#pMJa2LrVJ|$t$cPhXWX$VGp z{|T#+?_4MKy?T?>>(=ekPkZ-FyLIEpg05brjc2=b50|%_D(5ug3?&Wrxab;Z$B;@l zT0of>)2GcnA7RLQ zC$E%(qSaEL8vl_R=~^rG;NCi^zB`BJwe_D_U)!gBu&~?sOj-w4Puxnd3_Is!AJFJZ z@u~Nud(`-PQ>y|wPL&Y>_7w?%w&hs@TzN$Z7M-eOU3ovqrt}HdwqTew6~IPoAVS_h zV;Kf2mto$vEymoth2{_*uaoM0bZ}17J%zPpH#PTVT{D!6@3GVpcHvF=og`bI3sgss zHV-PLh3(;Zp6^9CCuHN!#rs*E&Ei^|tq3qX*BW5fe2;71ILNlF9$_LpCj$b|_2U*} zAb$~NuyG!y|I%Dc?|fA@_J0QR;RGnT@wd`Mb>e;^F7-3%oo0`86nVY;!vNC#^gVldoiPIZx!Rfy0x6v7WX`?;( z0XG$2CDSmsN~JLu8>VBL&>Ti(|7=XbrzKM96WeCSPaIhoK5=RlZ$fDkYeI9U`-I^E zmyg(^Xd_eB?juFsX2SD~)dWY`Vj@V@bRtsS=u@Jm!KW;3y-%e&I-i?#wLf?3X?=O3 zr}_B<;^U;;&%t22s!#{w+%!zt<>{E5d$TafKbK33f9{+W^6TINzh5Vod!iW(DrjtS z1pV!HV6htqcKfZs`H(p>BqnHM)(8TQ8=x5wJrJMNL5JjPLB56Ye1?=6L=wVbH!uS53{ZK})tyhAA1By^};0!b$JPmz^rs7-` z220q96YQDE!?Av8(q&>Y6=JFeO>7==#0r`VTP})@KZc26Lr| zCf#HG!V7hQ0SS{QGwu^Rw z!=fGFvS>Td7jFgD;w=!cWD|rg*$6RH0yy;d+G76Px}Va21ej z*MS3V3lKOv0Uy2>Y!eOuF6%H@7s~*)`WRT9Jr0%~C&04rBv{-%3Fc2uf!T98FddTz zlXvnzj3*Sn7=KlmF#4(R!3ZYhzZ&+<0PK-jKsYuBNb(E7No^^R4ORgew;mi_w*b+1 z7Z5`C0Y2^^*k&97o1$Z2U3CJmO|pP(KLu7ja$tE|9xNU!fcf*&VD{?tPt)-;Uri>? zd@}y3_`&$6;GqkK3^7W%TIw#y*%JrPJ?y#8Nl`{fz=~ruozbPX+Em@)ofgK!gNCIo#{8V zH>ST-$4o(aGQbvTutFN}2WEofkvTw>oeyqGOTbNc70@j<0L^JTP?&px%s&Jq(J^q4 zoCNzEd9W)v4fq-*usx>?Hl3<~yQ&V@hZ?`EhBUufjA~7ok86*cebRny_D%bx`7ezT zb5NU%|7zGf1MK(D1Q(RWxE-Gl9*RrAQ+qWq%{G9C!wzus*bh{$3^)sA!7)J|NSTU2 zEK~tPCCbAZHNm!B8*F-X0C!*S8+K41{b-)t|Le6_h{Heo$z{uVoG`O@;e)v(oP^C#HvCJ(H^;6K)&HyL1uG}!#k zf>1|_{yPWxJu4=^82r>%fxqEK@Uz(kJ}!rV=_Lzv{+S=Hk!s&u5_P^fWf*)S6_|Xq zuQ2~$*N9S|cHFp4pY3bh6T27KF~U>qd%OGApR8}l_E>qycL$$bgkHzJ62f#gK$!WiZ^8C569F`Zakh`f7&FlDrF(?sFeTphsbiYM z05RA3fnAyFfA9@%w`@DyZ`k(J`)o$&UHCVY3xxNME%u)XXNg~N4a6UolL17e!4Y{I z59Gc5knavg{h)A^i$yA;87Zv|-=a)*eT={#eIsx=^OEbSGsyBc8}Ja=-gS*4-E>KE zx#pDV+Dj^Qzf7!RT(WQW>?B-fwiBLsH4{ha4GwQzYDphRm5!h6%ALOACIg7b_`%-**`Hwh_^%DsOyWYfD9~}`oDm@8u)4%8EV|l}yZ`aERcj|JB zrFK$N+}oUU80Vczz0Nw;vl>YkeCkQJeX3Cg^Z&jPec{q_@|at(^SE=N^G9O7%V+## zfCExRL3b((x!@r52}L3o9D5YK!B>9i7m3S^iBYH9(i!llZ$%=tX0*tyTI&}ERFM}6s$O?^$xbbarbPMffw z3?QwS23MrR7dg-n^eIK}L8-)%xj$3o7Jtl8Su>WUvwbktT;_g)ozgXtvwl~ohh-a| zO*revC)fFe)2f(aMyW@#caeJzJD*nSm*d*#pXJ)c&7eK;Pjw$*CcD3KlhDV>iS!Q+ zlku+xH*|gf-%c3aC9&w6n{s&0*UXcP#&eWbkK}7@9mq00+@EZ#*d6Pn*B0Ss*%abU zsNr+T<$fWwBDRQ;>z%;L^vv*0V-)%)(`y5g=ofei9(Q^1p2MtI&r!OV`IZvHeD63J z;E2|Nj?$R`LRq~>lEqsyJ4Zesq$c|*aU_`K9Q-!Q|2WEaKJT~uTnZmNi73v%Mi;NC-Wn<5@q!4xM;$1Atqde>i zgg)e~5FRZxFw`?KAetrilW;_w>;NIVj33HA7Z}3s3k=~r=eJR>AeXQ#6tY-};7u;@8UU#`te}7A{g+gr(Ub`gS$t)*{hEI)S zIwnMOT%#ic8NzTOOAs2z;R(_M{DKPkzCm?CK0#eUY{3(*Z}4+(-{4p7zCmv&lL5{s ziD08$@NlFf5$Va4f2WAYMKQ{OJS;c=kYjyXXEjO2|D74ke&nB6sr%`PZ zB@D;tcpqxGnCB539p=rA6mxuqDO~UHd_Jlw1bT#b26{$3;d%;(Sx9H>SO=~ z-3NZl(NqR<;>oBDkiS7{ylSiT(7D~y?p-)Erw6^Qq^(hVPhGX?sbbWe$|@ilOLAOr zF&T7+@Dy)KP!gB!pCIt^iH-906ifWwqjPz#(N%m(bUWWw{D@178D_afjndskuc?y( zH1rw#cEZu6;_{Z*4kCkU@V(gja5r6BN)XN zk+H%&H~XM$rn7$r$BmU18#mCG^DTb5()^{&A5UfDaV?ULNex^|5n#mz>?Ga4;b5^C)9 zBP$&(gG*iQ{EHb*-UV!`M;_mUnj`cgXUF+CWMy*fGRyq%S?B$2vv2tkvYva{r@e9~ zro5p}26&=thb)#t6A74K1&c8w4GS=LF3!VTzrF->@!GB#O+6=U&1hHIL9z<=x3NV zymB+Ie(PdU@y=;7fQu4|*m;XeYAC2@qL*E8Fv)d z#og526Mo(JL_i-_iPeKz5tqqEF5PYx4wt-e_={XS?8Q(A^G>moNoTsVVP~m}L1!~X z|Kd#-gNv`phHW1ljLuIGCIbX>G2_Y8F}I4RW4i0n+cDbF>5ynTq;hZxrf_ik^o(c6 z7Q{a}y+$~oxt;gW@DS_1X5#g3 zmf7jtYO&M4eHZ=v+E(|*XPj>DSL|d!)HKZfYz*c~#Wc+Mrsx9WW?kU6f zq4Ij~#iw=NrzvWEC{oh+P_L~1u}ekm<6{-okK-z;@4qQe#tpOvZK#=1jamr>o#=GT z{^=O;>-m_7@9U=Vzwesm^ZoFA_a7&hI{#2wW&cBK9qxzWCW{|dTTOr3?=br5vdiEn zV~_4H-+kJ@0uN~Ziae+eNoX1*`}ZV>j1rtXst7$t&%hw!?Xk(|EXH7JP&1!W5yfyR7U&|7c}Ocu(3<)XtVjW`Gni}wR%$zEVA zL8Bx~cYxUK48{pC7#oy~n4-1NgB8*m zuzs2nY@03*duN=0BQuYJ?5sneFnd3!%-#c01cN3;#`OolxaA-ibsYku{=;DS^avQfIsyjoWx(LG4Cwzj`duH6e$j)Y z6Z&xE<0Sm6LI1#XFh7Wr5tPo@$<76PrG;RxyA13sR|B5B9&Eg}fOX&wu!`CZmdX3T zJm&zIl^z1Kn!{jvP6kXmkAlh7V_-aR9E@L{0Hb$^PqN<)zsr6$0NIZQaN?aI92+-; zqyH0Nikh5;`=^5yN~!QDogp5d3yz8l!BKk|kj&Nqk+cB_jICfBunTYz`@lN!AXuT4 z%ChJvSX3SZ^Trck)-DTXJtx8R{wXjWkpq))`R~S`6h0Y!S9p(-skg=;H)ag7uO4({n@>jDrDifxkRL4zz{7!|GUYfy~=Vl;3YzA`w6JU;# zI@)d`#z!*(cqX=0CKDEkOO5C8!Kof#M@8IP*UN z7D$5?N+gIoP%44a06I#DJWnnFrphv4>a78$)n=eO?FLuRLqA;tj(>9um;XYHQ~X3o zRsCq2tN9*Rs`JjeR`0FVdBfM1myKUp+&399e`z*kF=6`D>Zid2Ea=>}2F>d@P`x$@ zV2L!~(0Ai^BH)IS5igVwu}{ngU!|q!(CRhdYqt59H*wEbhTD-(G~ZM2U4oU~I!0-X z5fgPs?J^8s*c6x!TUVeqP$TxKMTgB}i+NRtjes7+g^LqAt7J@Dj)*V-JP56?(XjH?gl|ZkQ7ibF|ZZe(eW8|%&|LB zRJgv2XTJA4=3#h`?~n7?%ox|b@3l7aJJ+?=9bE5p-@o1cj_(eyTizqMXKu>>n&+{A zE1s7EFM2!Z)G;ZABsGsUgdChRUKf;dqz7ClV{N}qq=%@Qs@S^kXV6dAA2HTYY4ENNT1A&tf`vQ(dP6b?v+8yvTaw6nQ(5}$$-os(P+y=wJaUdKVRsuZn8kTZz z5@wxTydPyaKWpTe78=ypzclIdzG*h!_@vHR@@|E%+V!GvqYK#yR;SZ4oo12>J*ML; zefP&S22DkFgieI_M~sDzMU8|Uj2Q|!7rQg$LF~?mk6}9^=lpx3<~_Tj7F@cb7M)iD zyfEiRVEt6gyoER(RcOo_WEkgLRoLFQ>#ly@VJdjP#bN7jbzW*0%0moK6~q>ynMk+*M{S3@oC75|@@q1Q_6vNjJC6?FST3nBNOxFLW!%pH-lZWc*>OjLI zWl>i93X+_5=VW<~W)%4iq*ey+NNNo4O6ZL4h}#+07P~v4Ip%0$W9+rWri9lqjftN^ z8WQLH>Joo=)Fu9OUkUKVx-pn{vypNflLis$!nUpSAA97Pp7(34y1&zC?e%UO@pEl% zD#sf94fa=sTTYb5I}I14d-mt%`E_TN1$U&^MYN{0M>i(#h_6fBl~|oPom824F}W(` zd0bWMhp@`juK^XQ^IjFHKRi|f{4sYg<-J_Yyp@=Fn}w+JUD$=+FU#=Puqx{x!}@D3 z^;wCX>~v8+)Z(kZr!LfDq%zjAzcj_8t1!o}J+C;pDZ4tNF0&=3D!n_tJZ&VYBz1ps zQR=yr;*2K=C7JIdiZj0i6=#0;F3z0yS_ufmxsZt6@A;T{Yt~bseIsSAcQf@BI*5l8 zicG)l(&alhU@3aE$60CbHXprR&A}Es>!KaHs*>E>$};^LiwlEm3MwNi@)~1Ga<<18 zWDh3gX6;SM&N`Elo%1j;H}_p+Ztmyc+?;PdxjEmxR|0}@9wcMtEW+!k$CCg$1t_0( z3Q?Yoi&5|Hm1Vp#p~HJ>#C-Fien*9gE-&4|_8{|~rbzqtx&-&e>U7_lioBrm(z5WP z;`*4p!fo+c1v`_{^CweM^G~Lv6x>TnFM1o5Uic{_qu`rwM!|QVm4Hy32dS7jmpbvA z_{d`SI`VErkn(s+nDRS5A#-+0i|5!lO=RzogZyZpht7_!0JDzvaJ#1FIJcUHRG+fi zoS?$$lJK0$+UWH1w)m9NzQlx*iR8GFnUvVl|0E}tzl}~T`xKH?I_H;E`ptJGARNaa z19Nu;H-XmGWWJA=yc*{t_YSQkSEnWDPan|WJ~U}6G_lK0ZeY+&YkQxcX>)g|ZB0jv zOIcg8cR_PjV0L3sSXzBmRAOyQTx?BGLR9rwQbhI9lB4S0Mn~6t42`Lp^NXqa z=DQLQh3`KbcLG#nH$Vp$`7*>wp6**kexKnY7mkV1%^X(a+PmL)eGfCac$k@-J;z3lo)e-@ zo>62QI-$S5>zIXj)3l><<$e#{!oB`xS$o24lP6-GW5-fFB1W@)gNI83{fFv8y>XL} z``}Qd>)^pCm%&R>ZbL7_JO;l6diH(y@#>rRUI|EBMWB*}Jm{n&zYQ~z*}do=j$v2A zC1$ekvLI#jq8v-_d7U+_XK0(NPuj~B&A4f19q~0vo({2yJs52lejv#?XkV6x@7`h` zN}*QsqmPLsGRWAZ?V{nVuphpCr=PLtn!oyUK8x{UqwSP95sA)o500u+vfIfhQAf zd`@IKx}PX=aXwz_?l9BgWjizEZ9Q|)$LjcH6L+ED!JE&`G0^) zPVAv02d3%B_*q6Wh))XXxyOgQ6C~*C?y7N=+%{aFealib`KFUh^lx4&q1OYo{jWtD zcwJ2}b-S8r?sTQd+U`oNo%NLt2g@tNj^>d>BTR*5ZvUu2GLVGx5YWnb?naQI|W+o3`n3+77Gc~yn z#{V~Nw_;bu03io=V^_i<3fXanO4_b7lG@j+Ncp=>)Vz06jA?I`+2h{o@PxfJT_5n) zW~298*Uj#4{luN$hDkcSjhC@~n=WVdwouXHUA3~=yEYY*cRSUL-cP9;emJde@Zo`m z!Ta~>`fnH1_20mXTl`-nOB5Tlh zEl!_#BObST%e9X4j{J7>o*S%x1Z}eT5hYCfk+j+LN6r@GpJieOKN}_Ve|Bxv{WU77 z^Xrh5*1|>Pv6SYoFUYqQIXXnhINpO^?96D!6Ee!tLFBw(AgQpL5(|RpAjBB_K#tiR z)YzOrkHZ$sxGlkk#|&KfjKO=2A)ZR1k3WFuKr+7;9$%+{KLDtqd{>2@jViEflM)<4 z&f~6-$3lwmd_{JT5wha|*2m6_Qam9e^By4y3oIl8xGDay9vy@TofAkhU|eM~2Tc|e z^bZC=W7h>64lQuzR0mHkRS4i#hH!30NLVcgnLIL3!Yc(0xGSWKZz~M1k$|Z+;&2i< zw<7&G1}!)SrP!H~fes@2H6cOhLA=m|H~}v@2tg_h{evM$Gw6a6qb6uDse(SU5|}W{ zgC&bB*t1HZd)SKZK^%hEL?Mb@1X5NBLEfs3C|@@~D~BNTatOdKP5~HSkyadoGVG2? zzePyoUxfJ15#oX##0FT28F~-{SVPr@4OBG{rBeh+IysQ1mjYD=anNGe0{RRhV8SQ_ z7K|IgjuAx#(|Yh?S_?tUd=Smd1F6j1kk7(}-vqg!nS~SDRs_t&sbH)?50;3XG9x}D zh#4G=*udU~6KuVBz&dgbSf#HA%TfU_Z`=U1?VEr$AOvRP!eF*f1Wb=^2Gg_1HBm5q zh`ibYrk{}?2>cV#1yk6(692shQ@OuAhy%J9XANd>He>@QYff-*=K;I0wP2gd4>m;` zz^Z-|Sat}5MZXAG?Ai?GQ=(vgcnc;tF`!*W?ui5K1@ch>X!8jCmqmR2NdxhD8i=g~ z9?DAvn#|u0!dadX+*FytU7royEIGm1g$JBM)`3Hk0NCem1lt;6uxZ;2*1cQ6dRPps z_K1V!K?$%tu@x*YNP@*}YD{@{b~UcD*={bRIrr#+d;U= zGJvNtGkEK=fwws)csTKbd%!wyjo$#yIYQuAu^Aki#lXHx0_+AP!FF5Wqi*C^zXWX&MiC&`8Rh^UkR|mYjDFgW`E4P5t#ks z&`TvMvp^C$sU#XNBsd8CjP>0-7a1k_DKu5#ePDsw8^21Om)=bV&pbL!p1Ad!KX%z= z_0Var%{`|XySq-8?f&EV*#0-C4>s3ae_CAe0F%pJU^wdqx@WvVdnLejGZj2B_b#pf z$KbUjWA;zS9b_3=?2uv1^CR6x;7f|<=6CU-(l4VDRGx-qX+H`qHoE6mL%Z$WYW2HU zx9x8pgZ5Y5cROBon|8YBcGh{;^^VIK*Ei0mJm+ms`hdl8U;HlO2ZqyrpuZB}fF8yN z>xVDpEzI2+=%sSxuuDaq?PtEh>d$$W{BN>cH$O`alzA8*t$rsuRsTkKp6S)#a?6W> z^|t5z+8xgL_Bx;R9&tVHHRXQHYsTY<=M~R`o=-gw_NT32uybefze9f z22Cn%io_lW%v-5=Ejc(hiliA9OI29Dmg#c6Ev2n{TIeKlKgU=0W?H!VmBd8-*_bS| z(~(71$HS`Zj|Mk6O$T!omWR}n{QimZ$NX@uAs)KLm~B% zvmtfSPlD>>@spge=u(#e_K5XLfH&5S#Jrcjl)dqO)Cf?%Hw#lXB#sy-SDd zLYu|L6AeyMhpK#3_mqa{jTXe14dkTQ^k!x|cBU1(wWU;hH6=Cs)+clY*2E77SH|rN zEsr}BS{C;(q$25yPi4w4w~7>SC{F>Kl>lGN`!SgJGI8C#lovDKI?9*!4V33So2mD9 zO3`2K)#5zUN!xIw#Zhu^otMh4${@Xg(kQc@!bIziybQ;d>;l(@j0&%svg)ZjSLZ7OhJoBh^_W)J1Tx&YnY$_Uer(s--pqBMuP{9M^i@q z%=W;%jJ}ZU^xa{Z=`-OO>9@kOvOf6dd8?R_Je~)>&JK4hz)FaQRr&-(Q0iDF|MnRwydm4vM;I1 zbjdF-^vo))^i3;i4oE8M4vsGz4T~w94v#Lp5*}OfIxwMh-Ychu92PG?_nXghFQsPldH(NNfGMN2_@F4QG>N3gI1!wJDla)ySz0Uwgnkhwnmy4 zHznBRHKaRd*5-SpRG0fCR5b*|RBR89EFTUHD?b<(T7EGsyz*sWRQ0@9bk%}ubOku9 z1VrLo$YjI0z)BvsF_K$-%;efG7IJYP8#%Fm6XoDu1(xyMdTaW3S%`EFIm$Nmd#YFU z1n8G^h12pn;%qY7Qyr6Aa@^vYO1+{Q>(Fy_1P0X)1_#vb5Amy?4GCy?9uVC0-7Bb`VccYJS|9>JSfLBv`>epdk;;hW!zq> zX2e~kWYAAHZ)d1U#*P@vq@HB^*sd(+h|Xg7kd7MffNkx5KJ5bmUhR7WJ=)I&dTx8_ z=iBkk({J0Ni+>w9tOO+BJt$-#4;m?$ed)>U2%gF?$v_St#U6l}b!7CIG{cU=n%wON zO*Yi+vy~{FbXClo@X<^k3pPv~jiSX2Ct8OOX4nS}6uS8KSG#-lwRySq_4~N=P5C7V7C&G%0xbt6LJgl|HXbfa$*d3MeN6u5su^OjAwXB-x&$| zj+1H}^~a6Ymmjqf&6{?XO+VcJCBJvGp2V@$ZpJjgXkc-W*JHI zO*T^Z`vyw+OcnziKNSam8(G&}Cma-%Fv&9v5RYTrQ;QI9$lnx1Fst zvYKr*F`w->Gn<{FnO-=LJj1WQnV6jiBicDIT#5VDI0l`B933QN59aRy>;dS+Cxtd% zWg->#*h%q&4V0V*(hMp0)!1V18}WqQv*r)@(^<&-uD6)m-C#+lJJGUscTyCs@8qdi z+^JMEyVI&+a;IO*=lxOB%2HOZ)ZCFFXY8Uj_)-yo}sz z`7&t>?Pa#O>B}-nqnC|R2CsT#^j}TL>b^cMtMlfrtj??VvN|t*$?7}@nUy$$9%vu- zq732gkWS3Mb?0zr#BbOG@qm#eec>U|UxcV3UnJ>$zbG?%eAQvYrg~1>uU4zAzB==o z&v~ykoeN%PJQu@nFqbN*_bq>e&bR7KTHo4*G`_g5cHa5W|C~a`Gxe0iPn&u91fh+#NEEyF(7FlY#TNL*xafeL!6GHrfg?Iutaf0;}8xWzIgA~0nC^G1SCZjeOFlm4pvntrID1j3z zZqZ=FZ3^tt5Xrt3l2?gC9>*4_<`9K#oSR_)cZW=I3Bw8G+KO~f;`n19M&Sjlj}9XA zF(IBG3D#yr2f;yT=s^t8gXn-LRRg5xR6vnl0o3VbL6<=aj2I-qoN)`-GHyoqAPnA2 z8zGok5Mr6vLk7!QC}mj#O)PxS&B_ZS$kd879>(#*Ed`w-@L?eiE!rhyi*K zE%YF&z(-L4L5d9CkF6j<-2yUH5m2Pt1nP8xphL$GhIDIzM$ZQ}^gQ59&kf!T7!(;+ zK>`CiWHYcrIU^qF$H)SmD*}3wRM3;B17n1yL=WZ~j6gGF22*P`F!AI7qi}98NaX?j zVm{ETUjw=w>p-`E9q5d%2c0Q?(3wU~@q_jy0nomSJV!nt-vvMi{t5m*z(2DB`gjcn zvUFgESfGosQey;5eP*z*WCNNzCzytEgK;u17!|Am!`gLV(7qlFcJPD#umI@q5dgh| zf}nRCncV<-w~(jEd*s_j&|Ab;_#1r?T+|1Fm4KydFp{PNb7ZM6##V(9>~xvI#+)6j zTsXlZXf@Ch_`oc89hg?G2a^^7FzyxvgqsUnyFuaaD76!w&$X8@R zc)<{ae;R?%4+z1ZI8cqejt3O`?mMMox)hy4?aM_mNj(zf8V}&71rZn==8iucjdS z1zpr%lc)Bl;kbMaS|j zzw8?&e%N(L&fE4$f3q2powJ^l`(iaM|Jmxa;wQ`NO7AS6D8I7!p#0qOhtgAPkbhzW zGLLOR>X996T?sHn4`YYf+YK|GFJ}KBNqPvu9b_RoY!FQ2f&fQ8@bee=X7F%a_m4t97ma;VQO2AL5w?8aL%jq) z2Zo8f_e+v^?VTh0!lO*-scXI3U(W5C4;_1S?>h|X|7pL+;I`di!&`Rejc(ZeX?)f0 zjnO5C?|K)p4`YA|E{>+?1$^_;h4c=aXb>RPbo=_c_Gn& zV=ms3_d|@E;H!ur(Wk*NQV;#pmHzZ8Q2)cLQu~HSlioGAPQxp%ea07^cbU#Q?=w5+ zblm)m(>3#xj?c`GyL>e{hP^mPJwf}37ib*z29@a*06V+~p18&wgjq8huO$hye;STQ zh7!|Uh7SAtG&7#($xZ@~;(WKRXH7zrgc0tU;ju@x$&WZdfI-! zc8e+BUh6&HBevsSd+m35op2cOy6G_F{n~EG?}zzNAQ%q?f&M@+Xd_z70cWi1kM*N4 z^QK__%@(9U;b!WW5^4HZWhzXMO7%Hz6+Vo6>kbE_u5i%X9u7Lo z0avUWi1nA&TGR1b^4C*-mI_hcSBX=f)W|d3sn%h?T57TGT!HiEnQUK~Lup|uQ%P~! z6Y*(=qu3)f7*%G`A6{qE6V_(GJ*3yMBY4!gE$EUlMVY4v(0+qiYz;0s%+Y$njM-WyPO)rhg|Ez_qx}FopP@V`_rR3>XTz_ z3|Q6Saq+eBV1yVf2R!k;hj9`}M)ENKm-CQMb!*Af7C~~mU5t9US)KKCoynTRmG;6@ zB_7ga1%b+gIgwhu83_j4Q!`B4lk+W`6U%KI;_Dr1Vmq8GV|KcgMep_~iJI{&ivHcR zB=)^?S;B%%c@mf-#$`!hv>fopafrmcm$sC>Imtp57kS&XnmpXbM{abAQqQ-mvdlCY z@$Ij*6&lALrNI(^rQU)tt?{eJC`fB|$w}>T z&rBKhOi!NnN=>=!m6rO-Ei>bXeRdXDBBqGRa=;(wLM&#^Y&P<>j1_YyGx?)~mE73D zPG;gFTx z=$w|d-7PtD*fSyHpjUjx1+Rpx7jDTp^Y*EEV1<|=rpv+2$pjKuFncqTr&SE(j}|6! zy^Doh*~v;y4{V@J_scQv>CxpL>NMZb)8;7N-sCCYSQnsPT^+7lRuN}hSe9mXkYmAlU?GVi=sWd2k4n8I%k@kL;rP=r5;6oJ`tAOy!CnTgC{ z_Wl!l?|(xFajBPyoF8H)GsFC3-;fN$u6}K<{vI=d&h7SFn%dpvYFhkM%Nj#<3hH8v zvTIUk=~dZQNfpI*ab>kmQKjv!;UzoWLrSJRgGe30Jq~`!1d> zpY6O`!OFK4%=}uwbU6@5M_%XSJ;3~bVH*XrCmlI7LM3}9DP-gTH|aYdO6}OE%-T4q z&s#BJv9WN>Q9NtZLpEi|UnOoZOe=C{tbS-;s&T-MT$)dBxs^vxldWrakG)g(xT9nD zaYu*ldk)UspKV-wz{0%;Ox?S|WI2#b$iosst~L^Kx|>3#2PtF^X20S6xCVZ773nxC zL}@yrz*IS{!&P{I#-Fv%P9%BCO)_@US3Y8Qh-&aew3gpkvYywj93!{UQZwg~Mhp9q zZY$f7ack?5;1b ze{g9HoQ_moU?L@#c}f0dF>1yo73Rc?2AokBEY^n1I&Sbk@44CQT!4hz*$8Q;vkCHc zXR?&6&y=WIoNmxCJKe2ia(Z0b_{<4yqcab*jZc5pGCl)KnJk{9YhP}&q{Ovd6(%(@*m73_6awMcp^jzdLl#T^F*D={fPma^Ak%> z`zKDTt)F^RN}ipaS<|lMGA z;aB+jm|x+`$Mp&y7ZLaulQ;%DaUQne=b#cjP!2kP_}>W$zE6nHS61Twi-$P=+DNha zB~G(%3A*R?5qK_U#3wVhd2vC$@Ger)zQl&ti zDgi3!A++d3zyLjj8Qli3K@Z_fzYcuRLxeH#KoSEsi8F9P9U~WPXXJ!oMh@7AO#h1- zbb+~Nu>N&I0^`(5WPi0G|+=6>yX0h5C?wBW)P-qf-Mw5kff{!Im#MP zrt*R&l^gV_TwqG&02?YhxKLTZkB$kV=;$Gh4v$cy!$)S(QD8gL`!7IMh6)<8RM18L zps$Fi(}S)7BWPPOgQf>7sE4tGY6=Ia6mo)cEf*-YbAwVZGQ1iTcOwUo8RR?UVLynG3OyL=GJ?JZGw8aqfp+jJ&`jh6 z^*k<6tKtT=meruz%>$}~$T%;k?n937g31{_P`QRYny~f2YNlo;Cj#<=Lg;W$T0!X zJ&*qBmf)h!Gr^y_9|gbb{t*1C3xc0@f&Y^ptpE5o>+tn|03GxXCfI+ll)r5-?=HC* z2USL}H(&-^YxF@L=z~Jh2PL5o%3J%l4{Aam)F}u?{TmjIMmH`PPHy^TI4$(U@U+mp z;WgnogU7<34Bv^oH=GxFYY0NG(F46Qf(j7mTZ`}sNM9v zdTuc+{nUJq>=W8yxyQ6~3J+WKVF9*yv zQNRw@+FfzY*$4A(AdX20jzm&PW znfrFl@_*WHSG;YrQ|XrVn92?71FF}pPO4qCx~_i7>Y4hi^%s?MwxDpv9%N5DfYd2R z*m}|t#FqmWSl0=2uNUUdK+NFbI3`gz9?^;n^HDl1pTf;JUWYjGJq`2|eCQh~a@Q+a z;+A`^%x|t`@>iYflrA~7sa|mGQ9tJ}sCmYIx7I1U!`dh8W_4!l9_Spg|DZMP_)F~& z_Tn6L1-S!mAcIIP2dtOw0cK7=%zR->Yu_6%|8AlFOq8Yjl&H@1GTvy_;}|>MyWw7f zH-bY%uLQ(N&iZD^o%JeEI^|iRdfdH1g{*lXRz1lq~WB~O~c*J zuMEar=e5VN@o~%(l*YV3e#{$WmjiZK*8}SZVeXE`HTOikrc`0dm-MaFR~bqSkJI#6 zZzoytT#a)RoQ(_+JslP$H4~gHe>fmp<)B}&`aYj(?Mbg@-3ia_24fxrMx*W%#>4JM zOa|R9nfALqHSPDD)9>>Etv+8+>+=JpK7UYH4mjc%cw_yg>>Y>MKXncHnI%Yhmn%wn zk|#rVCs&L4YKHmhbLfLk#QTaKjt-OB9}%Z88Jey-5uB$v8d#3!CGo7V&LZN8t3w*`Riwm{J62nJO|X*uA`gX4gidntP-;k9J0CSUW{ zk{3lA$^BAs%Jm{Ort`U`+{ZKR1rA|<(B6b#sfpNVg^{Ra)xn4?&AzZA-JXytgY7|0 z#@hn7o3#cEnm7ATS~mKhu&Vd}!>T^;y;(!>fkXx0TDHqFB7*7@%aZTsh@=s;DZyrkxkQ_>iQ0R+~SM82T*XoSQ z*K3O?Gi(m8H)#mnMyn0!v#1W9u&M|?YF!?D-KISBjYUQHPov66(5;FF&8isuS7#aE zj_*Af^IklX!A3q7u#*?%tH`|?4sx|th;p`Ck@0A`0q4FV>-FP#E+T_jzLGoALglw7 z$Evm`rf4?DXX`b@78}+?*O*pDwV0Ph^jH>0?6NKlpSH~pzhs*q@xrPwdfucc7W9ha zK&vDk)RzOEI1fUZaV|2G&)Ll6ehCw~UByCvuV*6{8a9#>b@B`ctMxc`mszYEE^-py zk>|a2dv>sVTSk;hV``#iZE~h=Rbqi*Swf|0aa@ymL2Q>*Zp^SvR`dbe%;;IWjF@NE zS@GXZa}vQIHwkp|@Cg0ofH&U%2u1=ajO0lk9l2f3NPeqjCRdwS$(a@ba->O?eyUz) z)o3+sZGV}AP*<_1L|cBKTw_jzN=;V0Mny)NPDxsxVPQ&{Np5nzc~)YFReHjpO-jN( zyQGA($X~W8$#Z6DsbH9q2D+K)pt&6I#d#1#Prjy8$^Akqxlzf0nFrVYTbar6_VwgI zn>5`-vljbcz1f=XYP(JC>Pva%o3CIj9T-Qw05h+ z)SWhQsgrgwsi*CtQy<#KrGKR*WP(vr7U(8tgVu7upOru?mAt^rce{i_uGZk$1I>)& z)HX(PxN{Ae>Xf7#Y1d%e(QLxoQE#)Msm4{TrqWlYyeveis3clFuP8|;vmnzTHLu7d zDYu#ym)&X^oz-U(k+s`4EbD|_Xx2Tuh@8*n(RpALlMi~a`JlZVYyn0OL&&3CLT;2( za1PLsQ*HF*Xcs-%-@`-3d&H?bx2v*j-)6+q(rPVO+vqG>UhgecR1>6-TNSC6QIVjP zQkJftP*PwVQ(S2lQP^w|TF`49R4{HEP%vZbUvS4ZsOXbpLy@E7~1JidsFl<}?S$ zr#FPFB-h1h#?_|kMpfq;hEU=>@C*pd-&2@>N6-QEF6GaCjHF@zI#RVy zlCF5K8cWWkA$RI-t99|?PMe~}Jhz0721o{sgvU)acj^bm&{} z95%4rIc;b;aNW>y=UYANoxikg`a#3CAJmrf1jpfOIUy(U9_&X4u?xpw2ReW@%zriL zLCTJfB zpP2t@u@9gKJxJ!+RV3}~Mv{0|mM;2?CUfX%6OMpWHay;^T-Ldt^x5EiB1G8!M2x7- z@l*-R(b9HS{Gr9)`fp_ z3SHQ~F8mCjgV>I9pdKB-QvGzyz_C~8Nzg48;&Y#yc-|KxuJ>iAjt?~H?H(92T0O8~ zF@NC7Zu-EN)967Mx50yW9^D67eA*An*J?g&S+D+ZC%@Xm1N^FwF7vBCc*C!9f1Y3Y z9tbG^`EL&47>uBU=t2k4un+4W`@4QL_F@Fwq9bmPn2GZ%9%BDmh*-atqL{x{p_;tW zr8j(I#-R7cmPzNW8;j;!KUVd(5$vk(l2$3b%i~adSHmg)emj@!`!Q~r566-F+|utp za!bEiQ^|^)?Z1?;=c-5wk*`Kh%WT7ZeHBY zDzbQ*O&A`s2`_wN75eq-U+looVKdIbQuI*&r@k-tf;c?D9tiA(FalLbTC?r~y4uf>r1sc+f%c6A8SIEg()2 z1{ummP^1WeI(i5_^bn@#A*|6uxS)sdLk|&!9wL*D4JzqaVH+|;#{&E4nBnBVsKC!a z<|(Xy1?%4>#P%^EhR+F6eM5)>5F(9;0~6Vd9z+OM6G2!<*1-nChu5+i#0VEiQ#e3@ zvI^8Fte{K5<_!u1*itCqP9YG2Bq0S5STF*=&` zpl!+s8jj4M=Enjm(QKfU!48Tgt3aU+Z+$z`%LxiYoFG4r>_d)nf&4k-Ch~*}6y9?! zD$H~KQ~=I-(6x`v|g=yt2MXol@_dh zp$%)FYr~pnI>7f-2Y8nQIwBN&ST+UBF@Ia*s~zqUvd8hT(_#P{Q)aMq#Qq>Z4ls@4 z{%MlN^WC_BZ_cP{?H9wQb)OA7*MBtV6L_ybBJfUsQt++b;SI0#&Tf3E_xr}DdM`FT z*8j5cf&Su#dj=qI*AVz`8^XFj3}NkZKp*`B4Rfvy`iG?+02lNRZa5yUI3CW1OyFS6 zHgD&_@zpwX^+&6OHSa94*S)5d2)s0_-SFJBb<Kjhc{l6FV0UN zMY;uV9mY8ibJh>8&YZ8D19+Y}M6Y{nmn!(cCV$hPRuv+*EgM9Cx7a3j!@O7Gy7}7iqK7=V=e5&(PjWowWERaU6SbW~@Num^BC;wT4Z|#(x54Sl1SFuM4hq z`|uG6z%dCHr7Q-^P`?DJGraXTVtM9k&+*X9oA-`e82?R|gpJpnGDR*q6p3B1tCBcp z+a!6$rbGIaO`q%u>s@j)R{Q0TTAfrlY;{BNpw&x-{Wjla_S%8uls$+~Ie;iWYe-}{ zV1e1+5$i8yz5vYrVQVpWZKBLYN>JWJD$+d(*Jb)M#A?-z05{&tzJUVgy`qIqd!&e- zaLbW6=29Yc*ttgbkYkJdeupl_y$%CPllHq+cH19O9k;uvw#)7>wGoFeO2bYdJLCdV zL#`l!Y*`Li^AK>syyuJAI~4P86c70sx1PL@7oj|fm!{s0(`2|FMPr{0bK*S}>??3A zAWV4LH(qSNce>=1XTHpCk8=5Ow|b>f*LIa*mtM6&mr?bd&igg{oX=?WI^WakcKM*z z?Y5}c?E$h~o*>ob1ro~vJG=+(nD+vaNW6|XF7h>rhrCGPC-+jfP_Cz_(w|Q-Wc;LT+XWkqenh z^e0jc*rt=LdG^M+35-Yi3lB$xiw}gxOYI0wlj{!3Q|b&TQ*HOJQ*ZHY*J|?Fp;PZO zrdR8ISijo)vO$&43%zRpdG+c5P^!V>(h=#J;Qs}jm&O5ecQ_;YlE6qFr!kVdSuEss zE<3rLzk!_2m8UzLrN_EA&2sfvvNQisypM2SOo&)_RE$(dM6z64ShiAgXpw3|aFs@F zP_uSbV7G30z=(dS{{h2d|5?MLfF}mULEp4WLO`W76ckFsK(;g-Wc~@b;u!eTlf@`H z@+6r;?q)KO8+q9GUx-g)EaoT2ie%{a=WDY}WYbm;r8}(Ok>V+|Juy(MJuXtJIVM4_ zJ~~~gCNf{OGQ3=~EUZDhIJ8r*AY{-WFJ!M#PRJSKtdK`WIbmP5b0a`4FA|jUqd;ys z;Ew(!kV3x167nDo`@M7N$(2Gza-o!&oGe>M4wXt#_Y`X~kK~(j_vP5F+n(XRsV&ui zOJj1FWNl)sTxEQ!Qdw+{YH>`7W3tYv^F=I#(eo@4gDlZkn!fR4&C_`U(uTM5Xp+vXxWnFB*lWHEY;kEB8{y0YMu1BR{fON9fpZ96UOl|$4%m5 zZkr^;ebh@#0FC5CP)SJwh2?JJo~VghwQEuqYPE6 zF!fXza%?NHTGLqQyrCxFTeLhUXlrp+q)dKBf?{@Bx=KcBfksM7rFLR+vwmDsk70D; zm~mv{QIm+o-%X;D-s{JtENaH4f@*vkC?X2~1bnIFTNL&lq+;&@uK%Aaqmbj(xb|O< zy$6llWVCTJrLSIzv9m^hRdb~UUu~JAV0nqBNKs*cL|%TlOjd53LRwC$N>WyydVFTN zc1%X2USxWgVOZLzaY))>lc2QgCL!tX^usb2G$S%WH8KknmjnKUyu!I~8*}HSBHVj` z`TKA^h3sv{ry{g+ke#i<0X@uR%)Te9@Tm}({dQyhA@mU4xId`9m!CBDNYPbwt1}mGH{#0OX0WlhL)h~5i zs()y>R)dOr4JaZC|Kx2njst!k&f`5eiurqQ8)iSO--{lib%37K5AuY)Z~(?7W=euIF+_qw_MxqabBG0$Z1J9q+*j^l|%e42HWgf1`(K#QJ4R z^$%hX0G^Q&Gs8zBX2d8VGfH&+$Ml%IkI~rNkJ@uOA9d%kKjOF6=13U7<>B}Zw8NR3 zOr}dk45yn!^{01;=}u3H=}ezTUWn-&oZq5z07P~6!{+6jE5mt+pMzaXa{wJc3p#)b zte<-bdmv^gBn;0;^}E19d@gJto)@Gkt{2qloGutK*j=zlw4(~ZR7nIzGDrb5wru1nE)Zbnsm zZbzs5!ku36MF4~Ri)cpKm+4H>FH4!FUbV1neKp7`@oJh?{PitX@s}T1#h)**h&=<= zQTU=p zk^QPik^X8%**a%S6`ymZZu#a;^ck4IeJEHz8S95$B*fzeA=Y=$0iXv_e@ckTPbTyLoJ1DZpo7>% zwqoYTeIV!ql+g!hp@%R+4`GQO!Vx`$H+qN&>S{p^q3q53vt9i(L30O7KjS)TQxXs*m^H z5*?K86G9YUqWgGDur48+5CQB6IL4q)VETQ7H5WE%w zW{3mggG3`aShEJ{K!y=Kl;M6H1lfZeWCXz(WEQ!Fzy1_?kIXaRE|mX&q?c-A{#RN8dm$7Qs34c`Ck=L6Q_U*dKqPPI#4vG2RVBNkoI8&$w(&Hn#u$ch0GvcjkK_U z_;#cp8AT?ML&!7x&_W&mXmMoYBpZ9q5Fj&7(I8AQgBee57}486}R`%jtM?B8Wx zuzivJ!uC;ik?p-Ku)RaxB5!1YbvdAd^|jDD=;2!Xk_RvpLvTFwwdp{Y#sFH*=!62$ z3B|C2YC0RJ6tOQTSFie|+`Q_Cawo^UQXj`Rr4i0KrAf}OO4FR5mCkT}Qu>Yaozhdz zSIVC_pDQnLK2-+JC(6L_SmnR0dZYsX186MONB>}i`P&p<&GBBC<9N_;JWPxkz{rjX z^u1Yr>V~s@*GXE1NrB_DRvG6{8(HP))r7_O)Qe!{wbBzmA@p5L`#^$p}VE#OAD{t4)ye=u4@fQD=SR@ehzi}%6~=ZLKm z?$gnu|7l^t_|?pn<)dj3`&;8!j+aL1+|U0X#@+*}s%v}Wo%<9zhYp7-9Vs@jP!v## zfPnPgd+)s?N)bT>3!-2{EMV`wYpgLQ<|ZbwCTbFmvBg-|`!LrVlJ_5Pym80xZd7u< zwdPv;>^;9V*WNQ4RDPV^s(RPCOZ~Rf3XNM%YsEh}Zr1$HahKLNjz_e~yAfW;#vGEAjLVk>CtQ9uIO_Up)L}QKd(fR}A3)*V{+Ub+G)BT)p*suu{>VE+hkXdd zBwCMNM~~*7MB4BkggXgthx$m}2nv_~G9XF$ieHZU1>aK5bKZ42XJ$3)o%HI^Kkl{6 z;Hc*+qr)B>j1PKjH`(uT*mR%AMYG*A@0soNd~UMciy3a6#YS!QX1ZIvnf4YRrZo~g zl8V@D&ozb=63t;MUlM#8+1`v)NRk3jAphukw6d;U|E=wX_een>T@Ybld>7m{2hPsRJm zABl-nIS`d3-V>3nvm>lne`{#9(NOSQlTASjMsEmQY_UF|*J@qBz?e1uJI1Z@KRUkG z|BLY}{C^qO6ZpoWCzzQo4`D{YV0kDTH4;3In^-XNy=Wo5O_HQ1>C*IbrX1bLQlu}l z_2_)o1m4LEXURjU-tv2rLRGfM$7v45rt5Bu&No;eRc5?4qRwn}c#}nMSclb$(C)Fz zL)MO88a!mZIQW1~SMUX!MZrJWEDC)!W>GjZUlhSi7DX~6U@#Ik8+{Ljl^)NdU(z_b znJu7i@}%f`o-AD~(5935V|fR2r%CM2@|5429;C78o`TVk0BFd7N- z#~4Hqy+posI}5ee`Fy%sBte&prRj8u1|2T3;C2_;3%BOG%WcTnAnD?3^+u=H!&RnD1@tVxQU6$FnhW z5}5g%L}ofCiJ6Rq1rCn`a{pAK?~r$1Ey6SZ%24-TE=fl#)M#(TXl`5C6ye4aSJ}0N zzRD}}LdD(LvAT;hQw=&Ya!lINibu~+t+s4Ro;P-GQu~DZ#AOp}6V^_yO4w#wk#N+m zJmI=sdE%3a70DmQRi-e@s#G=_n2v-6^D!5R?qy)jy8wA_8AoR-`E@(9sbytO z?bx#H<_X1Fof8W)`=;b&Y_`kEIAEWham7A6^Vcc4+3zOg<*+gNIm{wImyI3?3n%(D z8RL+LytfSN?#RCn&*5nAT#mNR6VZl7eOf(lJilkoG^wsS4~6z>f3=p%aILxJaii)= zQ;n*MbIi(%iY-bCtH=Zs6PT40?}**z(?qJK(s z#V*^ZigR{R6+cahsr=JAwvvsFt74Y%Rm^-OFB9Mc;e5DMffzKP_P+(S@9oHYkbm`d zO3<<{4O-MSnrrQxES%RdUADH}O9|Vc)QjgwXy-S_kIHUJGsN;MO}WXxr;(I@%U=pwDx3!q_%96xCO)=E5^uT}U!}{+kMQT{3Pc^H?@ydD~Bnwx%$>pr@QA%GPte)H*r4_#{ zQ7>j`hC$?#0+Z0iRilHt8ZG@hJIDHVt{(5*xoyI%&XW_o7TuoUz3Al_pGC~Vw}Xua zrX#tD^Wl6oVt_H&3H=SrFb2qhyH>$}KptK*AV(Dg+EhGX!Q~B15oE2OE}gp0OFnUJ zfO71baP`PF@tR?)({zJY<>~wPRT%m9&NZFYyU5&QWuJxn%B@yzD^Gx1mToIvn7j8d zvza~21Q?Ixt5U>ZE_|?s*aL$8uYnJ<6gg-se27});YC}8l)FupvbGsh+BR!m($;Ch z*e&kTkwdfP!-hhXf(Bz${Wqs*_-@Y8nzgA+*JD$IzT3uyhAta>ji+ziV&c5?1k!!!0`AHaSQ#qZap znEh5<#C}^|=>8eP!2PqN{PqRP`s|AodF@S9oVhns#dS}y`iwpGVy8XrTGRHd)N$A| zq+`G5xUSuvTRL{TUg+5EWIA>`n6};ae{urf1-rX21{nX9=>MV(sDapm8h~AR7A5k~ zgd-eqkj%82|zi{~;HpMQ`wzry6qFEja(Z0$xJ5a!=f z#J>glRfv7=5$K;H3jGW@_+@wi*Z5@jtu#%#rAQNRX_NJBGn#P6n#SLmMq}^Jq%n8> zILo^coW;Fl-spSzJkuX*`6fRuJZ=sjKf=W$2?Xf%iqLg{+l70J+UN{Clkr& z_o-y?yBm#q>Px!M!Z__`Nu1{Md`|qlp3`{I$y0l=o~QcqAW!Ax*F2RMPk74D-tm-w zXaArF=U*GfzZUxW$Dn@>`d5fNza*M=gUIF<{D*r)rZ0qK{8pX}us=udy*BB*Hzdsu z=A`jq0%{@b2pa<633$PW2!;<4Pk6N`yofq@5nY@#yay?E5T3+W;8#w9{qYYLV*b}b zzhGD&9#jZCAdhc|9DX1ge;3;K;XnLNsJ$Tg9@6kVMDQR~pr;8BLJuBxo^*@-iXV?S8KA>TJ^nK=cME19d#{LBV z<7XnR$3$xH30@1Kk395I8k+L(JrqfRws7!52yG#>h0qpaHeed?1R)>=lmT1_8BTt- z5#XdB0W*RBFxs4B=3ulH$Be8wrsu$8S~Gb}Bbd+B68KCdkI$5=KoeL5mV?z`1K7f6 zO1r@!a2i|zx4^GFru+x^0NDRG!}^xUwXJ~Va686v%+Qv{^j&#OH-OKyWBE*+#b+Aj z0;Vw+w1cGrrrrzs!Dg@n><7pBO#K4*4m`wv^8&o*ztdp6w;GH;%$xrMW&!Q7$hF78 z0~iM{V%V3lfFEQwoyUxQ`OGkq&-Bv-Os`15bnC!;&{v|JZ9y^XBMG+ zW|kyirg=hUQVCyZ9%z?f#!EpjSO+#syf@w<@y_^w#9QN260eOvm-xf@p2Rcb--W-K zyb(S&VG_RrJh@il=l=s{4eiOuwQV&4d;ojI#11~0tvzfucX&bp0yaKYz{X|@*_aZE z_f~b1Z>(A*Ut2Dcd}X;@>ZRo>sTY<5QqL{7NIkXOBlWxGF{$4yFG~Gtc}wbn)o)Ti zTD_6FYsI8*gPT@NYM3AX1)HQr%pSS+H00k-@ByZe0+<)h6FD{w<6-Z^e`gyZ{Bv@$ z#EVJ!l20dAN0t#``Zvpytu$NDq5Th`yp z-LQTnf8FL!`D-Zhx@yDZu7JxEne3&1!R(;#2>)R^@_#qf0C*rK9>(w_#&I899eA&1 z%;Z0H3KBkYjFWgcHB;&*hZ5<#4z;qk?VII(uqWKyf6@8M^N9 z9%do`_eVR1>oJ1F^gPIrehwJJ-SKnaZp`-NU-Jo;yfiCL_A}26(HW0IrIRx&RgSqg zs2y=@)i~tVB|hNVqq)yzt=1lwLG9fxdv$iYoYvj$@~z$$m&dw;Ztt`1 zHq2xyBVn%aJ-o2q?1#KF80`p?r&r-h^h=nSZiO1tSD}-*OTn&!vq64RCjuhnj`$@j z9`Map+3QoHzT3N6ykpipt!-Xy+FLxA=ni`J>TSX^oi})FH(2j+#IWDvbHg5NP5xzC8~o~Y`e!%kt)0D4f3L;7Z*UK@IxLgIW!j26h=Q z4(K)M^xt6C;lFEiyZa85 z<%U<%gme*mGESzd)4{aS+^$qx{+47n$&HDAa_i#5l~%>ZtF4Gm6L&}DX)lQ=)$0nc zHRuRyGHMT9XtE%5xmiodI`gKGZ5H!_k6F$Qxo*`E`oz2;?1OPbIMbgS!SsO6NU+=h z9|kdqMXrNO+!c5L=TMJvDpN>@vy^Ffwh3*?n#A9bF+*}qs*l{t!bWKzAg=_nkzdYtTQRgM0lvj*j3t0DDoNvo+t4Hs)FL*5o)ztjzL~U6v83 z*qIio+MbdiZcR?tZcfb8o0m{#FekpwxGt{6v^uuayfUWOvMgrPn39lKM^nu<;hL<{q$Km_o7-S>&FTk2}5pph+e{L@l(Wc^2w6r!9Y7;agqy|A;`O=dxXuc$dML}hMnj7D8{l2&zArfx-Mp?+ybrBP9OgK0rpn|W^P za;vPA^E?&zbI$MYsKzmOm z^3E#k`>v9qRn=Owyvl;>s|Ty zv+GT>vRchEvX)t;X098XoVjycQs(LL37L1sC1w3#k&?|!fl+D>(;vwnm{ zc``f~hQ|T(;AjP60PQWvKl|q)_nyb6#q(6Dz0rhgnQOyuXmFIQsrQgAuk}+bt_fAm zuZ|JtR3>X@R%Gd=l@}Q%msOi2ls1iyE$Om|Dp_R}QM`3*c=7SEVZ}d;4KI0a5m~}a zqe__(&>zV!aqxjK4rdU9gEfc&^f$r>TGc|d7`LHqcxO#>s{u94AJ404aS)a_xyckY z`ik=A1}kSZM5(9GNz_WI&(KY%E6|Uvtu%_NnP(bay~sSYs?RdGYRD?E>gbq&svBbh ztDcz$S22^2DrOj3#q>w=QxfWtFc(iC274P218A>XfZVqo`pCr_@yy!#MY>eoVa1g# zv=tP#&ydP#nJ^cZDiNcgCniEJ_iFcI0RWEiBdZZ?D() zZErK0)z)L;*|y2lqwSE{%(k!0W-j>M*kb`R^lWANUad@TB-imRbqZ(3KFo+A=&yw{ zvJBb_kQvvm#ENvEkn&dH$&{;%D1FsGIv(AvdTz^>>$@!5XfR{hLBr|GzBHV^^ojnAB_H%=EMdAXi9d>o#alU3WmoVcj)thqX_%9aewPa#+PQ zr>yV%oZNaMePEY3g%aLi^^dmDlrz3v6X-C5N_DAA{wns80CLbx4ns{WcwDplLnej*ZWyc-a zCpY%!RoStJf0G+?@PoY70VZ#?pNU4Y3unUs^jAQCA@m#2_mb@x17xN#2T_#)cVOm8 zj;5WHAlvhbH03<1A}*NGqzg7Q@!~YHxj2(1T=eJ0UyS6&UP|U!UCQTKT&m@pU+NH; zU0NeBy}Vmsa`}qDD??L-J4CE z&aLH~)~z8<^VVrjeDeV({{Bx+{2k+I-1sM}G5(98-vs?(S1JpAk39i>XuCt(;R<$U zd`V>fEs?=ZA?ZC7k?un^(*9YGG=DZD@h{^^{TDk@`_+Y1ANi8|`{Ep;)W&dCq^jn}m>`G-HhW=^jL)#77cF-R84Ux$YM7no~ z#E*ES{z{fqUn!B&pBkk2ryhx3n~?nLF(mtD5=p;xBFVR2BzPA}{P!uu`%p^sz7^mk zdxyb&2fO3lWAF~V{~xW;uZDik5$p^?-vcgVXUsM1ih;Hjv<;!H`4f@KFK{H@5F7~! zI3aQ*14lv<)focpnBkZ{zV6Jxcwi6QKp?;+diW7VAKeJFgCWoi)(^u6j-VF$dC-r? zKLuXJuAr~sNI~1;E*zQrgg8SRO_zhdG$Xh#gbEM=K0_MF14W<;w15FH2NQua@C7lT z05pLfuo)cq2TUK?rXeaJh8bnSG0pKDQ?}!nq8rEL134xa$1#~~9+NHyb3r@Dq?dwT zunuej+c_q+4;%%bfv>@R@D#iyCdK|jn&Ef<4~&rgn;_#H#t7}ug*zjj#4)uQXp0}( z63t_x3{V20I|?QEVP#M-fOMmz0(@tz114xz1G^z`%~)(?+>ldc+a)I<2}*(h4)DN74K(l z#(SvE_z!d#|33I>82tGYYz(x=!-<%Hoe<-Zg-<|C##;~@I~k6Z3mmK2Jlqe#DN5zN zGb-S}Hmc&kGMvYMY1qbpZn%X1%y0$&cf+;(Cx)B&j}3S59~mCt|6+KC|IqL{|3{;r z`L~V!5Zp9kg71u(;9Kww_z(Dc1Z)CyC&H1Kj0}7VoB=zu$<_pao&dLK8uxyJ7x(Ab z5Z;S13H;x!viXlKOZmT8)(IY3Gz;!qbO?U3SSGk<(I>oPv0ixFVvF#m#a`j}7AJ)_ zEUrmhw|pRR)$*m}Wh*9m5u68~fpb<&VkB%5^zD$1+rtTPgfrlbHaQ^{(=6z)MY}^?u;jUBcVk*8@5`wPg3leYBre$(OP;r{mOf`UPv(r>0@+ixi{(z( zu8==&yH5V7?U3lO?Ouh0wx<*h*#1XxkL@GHopx^(w!@9tX3yle+A}%4?^t#uY$|k} z;YPS28}>vyX35iQFC}{HsYUnPP3eaFWctG0jl1aP&p+!LB|JGJMe5j$T$#huOJxr_ z*UImAY835tYFFItxI}5EW3Tdd#{rdXj@wnYI37_QbiAy#$??A0fYU3LerKFP&P;Kw zGgAPfwbTEGISu!p;EWKx^5xMZxFf%yLg5}NX1?~;qsu8y_vcih`saA;Pj#6Hh> z>D?abayw?`i?+I#D-OBWDQ$LZR@vy*KFw7w=QMj=ZfmV@ zeXgc=Et5Ri^*BrH8ulX7)JiElpJy&Wi^BB-x;;~a_ zvBwGBPLFSNJ3OCgFZB8#UO0=Xx6fj#?cPjzBp)v?vxt6%{>?B{phsdQJW@ax!tfTv zFf}?DVMe>_*K_-*&Bq zzTG-)K5KPbeYTF8?{iqc+2^W$lh3cC8fU-LZuDbfpbk_U{r_gT@bFK>;Kxv8KhanL zMiz7?4sRih5z@hECE68hL_@JQ+(3*oe@)aZ$=-+{ndRY8qNQO;N?jqDDjmTE>g_=l z;?|%!S}lR|b(#Ve>&*-38`a>y*`VHkzhSNaMZ=na2L?5PuXSsJm{v_N(*Wu~?GwZE z;I{z80R8_w9+@z*pkv9%!V-D3D?x#V67^{yaXhy=VH$r$yobcnSbv$$m~i=pQSnL( zBGXh_B68Im!%M_-!)mnVgf{8ahIWjq4q0JP8M48!JYKuM zNC=g0iH}iij7?T)h{;l~i!Kz`L{(~4Mm6Y`N4AYBiRd;cis&~gh}dbIA930wH{y;- zUgRJ8`B6+KKbmO)G0^zL`{B8WZ2U{yZk&Ve5oDu#vvIGDV$N)iugQnS$vsRaa_G_VQlNDyqKkiIWcREvtqWJ zWX7B@O^>;0ni2cLAQO+z&x~ihoqwRp-u@Ezb@Wm1M;z6=o)>=4E7QWM>p= zWu{l@q@^{EN=aR0n3&pU9G@~|5|?tsG&c2X@YFCajp@awF`a}orUf)V@d)R`x5MLr z7#zke*Dls@P4ktjI^Es32IBpC6@^lb5KP znVX@WmXoiUl2f6Rm_1i7E^DDdOx8-HsLahK5t)Zf!?V6LjmUap6q&_FMP)Oc=xnA1 zG(Yh$0?tqh#sM+dUxImn{CA)RF#wCIP>o-uK=Z2gsJ?m(S5;-lFRgHqC@h~PomUnp zmsJ{}m|haEl2V+eo>-JCjxQ|JjwzU<7g^AzAD-W17@EJ)I5_`+Nl^Y(@S9;s{s+C# ze5M1m!t$BsC+^{v^D@qZV;F!FCF%RY-?`yzHY(1*6>*c9-juutUG3QF^C-VyG zorO8Io>Cb#ezK|6p`xU!7^V2i6xEoDY>mi@63y`PI-QWR)=`0F-3I=p1BQO3`;2Cn zUIC8`{7T>J`Ij>7fKsM8lA9QZ&vH-=fHBw({S9*w1Ka|4g1Ml&Nt()<)v2i2l=7Ob zd09=<1Zj=#63O#?rQ_!X%f-x%QiyCwR1Tk$sTNXSq!CzGqvcoEqT^e;RL{G1y}noN zUIWkCO9q}bzmD>%d8ae0hG_v!?;0ll#Pw8+17ffjaUX*I+7`s16|PJhR>MIto*vUb4ck8+|U(j`F`bEdJ@vW9?BNMwdG7YzRe{&h%1;Y;E4#a=Md{iW~BL*FC zg}RXYEkW+Lj3@=WrV_igDZbmBV!9`B5z8F;q043pgO|>h3|JZ>J$p%vocH1sk=No} z#hG2@Dz07g)Mj*cX*hST6+3qB(wx?LUUS-_pT*NU-e@>3Wa>a|BxewVeHeow^ncAl zR0Ke~6?t&&a;ylig#WM#`9F3ng|Akn&^3k>yk;B)tg++#*0}I|R?iZ6tqv4=td5X$ zTa_s7vMNi~xvxaz*w>)w(6>m*u6MPvZSPK%DSe-*OzC~7JbA?%<;guvdGd0mG-U)w zaUSfzxUYx)ip6*`M>pmHv`beb|L#ZrxdHj#X6#HD6w$0fE%F*PBacBFavz+=xemH> zGX{Nm&VwO*$H7>k!(f_(-R456DVyu0CvILSYrT1u+=R{B<;HJ5CpUi61G#Y<-pG#| zVDjVE|C7C#1Dg^5KIkt--<$f7{~{00-H28BAyh?dLsh~~yd48iZgJeJMAP=_k;7hd zvfnq6?Djd*lzlU4@;*Oq;=TyZdS4Q6{JvcN*nL$3t9`9Pi+wAF=KHovjNX4nIC|fG zq1m3-lBTh`)OMoq-RS>5RAn5(&WxiRjXNn# zV@@fP)hRu)JY`N6r)|jm^fVfMW+s`P@h8(WQDky9jf~EgaE50aIsLQU+^DmIoZh(; zoZi_VIo;EL@^nrzzRrn{2ypz!dgync+I&q7lArk@nQ zJp^u&;`QgG_$4F7Ym8I;;%`=>|BImCfY=wK?`i0FB(!}`K>rLpfX}cq zM`gkdAt~OKCB=J6B>GVc7?J!>V@U3&DI|M;2Fcu?P0|mdN$Np1N!+g^;r%5fxIaj| z`=^P!k3{~#Yryc>qQB{a{=7|pRVJmQ?~&-Y?^%rh1?)_@0uSIC{1^BEn%|)+;uewo zJtEnsQY8IcM3T={NbpRHc+U)po>_p2zzKMRD1a0H8BY3VnCQ>90DSO^pTHmB?f+nv(}gKplV9 z1Eyd+e3z+2A3Q+>Ksy-P!O#wdNzTwoh7V@=!2ePS{VdG6=+oGlbQ${SxAnIe`U9Q+500hyo#)I)wg=mb4rH5dRxU?(^LPJ+we7I*~y1dQJQ zf51k;e;8$eA{U^EpH-CP?KNzYtV|Ca{ngZz)&_)`E>-8```V z90ljWcToL>-q9Z)Tk(p==oO#QAAH2Sos}P;BJhE4Fj*6qj&s z6jyMs71waD6gP5zC~o6kDDI=@iYMu*;#GRA_!B);dPet^K5#!OGwvR^`(N(h_z7l? zT;Bq|gSj&7Jsd|P9%h&qMmA`V6ER(HV%lNcJIy5SPt6?e4{;gyTwKpR6}NCt#2wsk z;$_?;aUb`KxS#u3Jj6W^@8<4{k8wYWFLSpw?{VL2J>|a9`oQ}NUd%P{1-SYz*cfP! zMMcC|J$dutPVG2WUUk8z?0R^D{iGK~AdGLie%BAdHzQNp`s zQOmn((a5`E(ayhQv4nrYVkQ5)#X7+`iy^@oi@kzV7N>+KEv^fXTK+0LX!%-VKfIT{ zR!oTZ91C~<3pNoI8IzHF+wqA_MLXa}ymwHcr?$HEaFRLQo;ZcRwQ;8}CI)bqZKApJ zHmSU`HhKKh)@6bd)^&no)=k2r)(a<Q8M3IH6B+|AYa_eG|4z?Xf;AwafaF^bYHv zq_^0-lpcitve|}7ZM0#M!)zD})sSFX5>%tS?k2M6y(g1&W@ zrOPuk>5Qu-9d&h}1Fjz29+yD=ju}yctuvA(2B&99ZgMV?9&oOd>33?7UFS4kevM<7 zXqDqiggI>P;4W6OGevdfGH8WGC``mM7R=StS z^|)1wy4~g}EOl*HTOz-;YHco;)mmL2s?B$Mquc`T1&Es6nfyqY zGcIfB|2=4b6^NWK7}WqlSdI6?TM%X|(M~@@8uGWM4gOBNwSHdwzS)7o6~0kY-9Cvj zOT07Wx@P6eFY+o^X!oj9THx8DJm0fZwb^5(TBFBC^?4q9G#Wh4iR(Rn6xVybQmgY~ z%5}4tB2WOLPcX#b(JbVg(7%Gq%V}Kdj)484cnd+0h&G4l(fW|Fv?|1bTM_KeUl!yi z>IjIHY4cB!YxT<(HP0?mY@A)CjQ4}6%<*kktMgf|QRCAuuJYNbS>ba^tK8?7 zR+;Y$jk4KH6)2baF-4&8iTAj)JwOb;4n?kmOa8G~+-HLw_<1v)pwb_qMSYPLv^>(5 zTO8rS?+Eu6E(i;jY6*>!X$(n}YY5H|)d%G()&`ahM%iWmt}4Sy-`hNob8~QAo2!K}eT4 zH)NGoPVkU+R`3y>%#iE4nIXSxWri}1%rK^!6~>f-(kGr`9Bzfchl;@*NJ0!!k^841 z-$}uGXMzNEC#q6sk}&C&?E_Whxd%6)NXN zR;uPi&eO<>=+MlFSgD;BzF8+F;-GGF#24TN7`|*@5S-4Obw_c#4_bi z`~n~5D~$bV#NYsQx91=RdB`_#T#VbFwhTpT%G9HVOe?C%wB=P~%;1-#dr1_g1xV$k zhRbB9#K~tSrz)f+no9aSN-L|%t2c!uzRey zT$Ktcj3}pK9G6*c&r2(J;U|^N62_MXNX3?h%S4sL$%PlEDTEf~DFqc(s00)?s?RR$ z68jXa(ey6Zq2*O@7W||&tKhYUcL7raDn12F`4eB^d_0L5>_Pkop})2kd0#!&-a$nT z@-FP&%BfYN%sM?vtFxlyx+z>joijhS)#VQT=ifv-Iiqm4(iXX*p<$tQXmoruOGNwGUj46HMGCaW}n1egYF&Ac%6her4hpcG_+lqPvfY|^B-W;2Ruw&5b1r}Dy@-1s3)K7zo;APK+5NGacWi88b1 zX32TZEm3f9s8@1rSg10ip;y&;&Q>+2hLdWJbMC4+)xT14s%Og1bxa8;e&Q@*un%J} zg#NFchZwXV2CbL}ZHPfTa^Ho>Jr+t+M29Mc!HWr5G=>5@Y&rjq={(;KPri4DpTKKj zm~iI8I7zqmbm;<06bh7uLU#lEf~<+ad52+u6$%$hSv}ynD>ZtH+u=dZu#j zJ+7QlWV&>{$|*RS`Ymm^u1##^6wthV5~y^3Eh|hcrcq#gD{AvQ*J>H zyiJa5wyTl#b_1HQ-IB&_pG0GKIMSFM9%Qw{pDcGolKGBQ&TK~!XS$<-Gv2Y7XS8F0 zXSnka&tT_wJcDh|`TAQKUw;b|j2ilz&Cvf?i-f*6t;85WJ9`6a0H7PZ4LdV-;OPvz zkpu5T4t|hN#;8d#JfcPhNA!UO>7y=X)X{0AcXTG{9t|L!V=<(4EQ>UcRgw5uJ82wW zL+Z!(lIrmUSks9y=!PHL2QRW89?)j&41#tDbiJVKco6zW zpnn`5z-f2@=Y*tkQI?c0DFba%yktTOm&cLlvORDo`O5($e68kfLtX~{R;IL-=YTM2lx+n z2sa&)Kpu-w%2)u=#0{|_ZiXyzV>%gIL|t%mhITwcJ09c2|7`(SL-YiJeS%Ir`IYGR zKmNyDjD0a;pNfADKL!sDeV&Rwk3*A2`Qfh<(Hf?2Ll; z)X%Xq27NZXf!NZxEAVPv*T6J{K`zMqnIp1hWC+ z!O#wdb}$5@!68>Wj~Uk5uvG=VC- z2od5TX9W+&4t|h3{FOlbSFs=y6ocVdG=g@p7(HA8g*DLJ0L`uR60vwr$Dn)>!*+{) z!~Y)9YfPVER|ddQ`uSfledPM1up>lA1)c}$Fw{{CqB0sWnTWCyVc^GnKLTciT;B-3gMkSC3yym5VstP^#PEYu9WYNk>78OQ{izT~FBCH9 zsX`Gw5mnJ+(Omjf)Ji{#I_ZIEIo%hnrXNKc=&ooR-4^Yqo1!!Hz32vgt@wzpDZQc3 zvE}PByq8PhB5GqU41=GCVP^0j%#i<^VEx||{(}kPVTAF~A5Cv{Cecf+8T3Rvn|{%V zp!@2{bWc5pZmXBlP4!y(UcHIFRd1)S)tAs$>MQA*#yYyHF-TX$d+3t*1YHzgqjOph zxl`JIa>updmgz9=hz{c&9tK{_CzvJlE#W^{!haZpc32@E=4$lHRG)q`8bc2Z?CH)Z z5BhFY5M9@gr7!f;=!$+mT{0-A3kLPvX9msOS%Zb#X@jNQDT6-lgy8^p%y1ib#PAUB zu+atH0i%1oJ;pD1yWqR*0Neh{RvbUU#!38jDqG`pwc*igYbkm)PDH<2s?!}aL;A+d zny#8pr;8T8bk-uAPFW;y$1O6sBNm0+A&Uy$0gE}j{T3~}y%rt3-4@;aT^4KjJ1jQy zw^{BHY_&Ws7_$6Mu+i#?V8H5wu-}Ra){S9;wZq`&Pq2^L_*%2Y*N`37e8J60l5`XP z)EDEl>HGvMI%VTPM{GRkz{EgquT2!U%O;t(-6os2)uxC)WL?Q0v~Cb=vYs#4VBIBL zZ@ogI-+H~oTI=nStF4bpuCo3@a;42Ll07zWCA%jw$z>Cn#L~YI;`ot|4?lwbFZfEk zH3Rhr;BzOuiP2Vy&e*Ea5qneG=P;RePIaNJQ+>J34xzja4srbT_Nn}J_PK&J_9enq zcGVKScJm}x*tJP6w_PgLZM#}}sqLW5V%z;PU3M2_7uo$JyU_lXOdI@{1rAIKNREU- z|0(qE;d1wtCvpuh)IZEb&NE#=2c1y=Fx`N*%$PtMT^y<3#gkh-BaqiSJ(9m-dV-+a zIYYSAIbUM2Q<-F^Q>|2oQ?txM$3?Pjjw|F^9S7uF9Cyh#JDwIbI^7n{b$TJ+;LK!! z%p7MXJ!d+T`UIQ$*JbW|XkWrt`zb%lS7rG})w7F+Vwz?Hcx42cxG`Tj&&U0;(Yj9mAs&`qdQ0uZyvBu@NVwLL+ zrApVQ3KeclzQUc!0vRCviI<4MedPbc9?-cU+~*_r+l%9Nv}KdGEUonsQ?Ku6>h_&X zi+!ha9X_*oZ9aj5`Q8!2rdjb4^Jb+@4YW-$L0^-%9ynpLwD}pAN-* zpOwnFKATi>d=98)`CI|Ns$}`TSInBtL_iM6e&RRGgYVJj^Pz}A6xO_BaGwqOBXO@E zBA_K9%G42RK&@fps43KeYY1`W)rR=+tAc}s6+w{_r9lZ&#er$kg@Jjp`2l6}xdC$& zvi;kXGX0k;r~416ruy$yOYy&`mK^Z2YI49^rIbLX0OWz(Cw{>^yp9;0LH`fNA_lnB zZv?CG^HTiX!U#p0AE`(4BCV(%eo%GfbY4Y-7r!*zUr-blCXpW&E14UbBAp$YEt?rq zBA*^otB@KzUnx0wnMz`CziNE&Zne1J&(vdsAE?EJyitw|VG8k~Oa$bC+%OL?4qqVd zC(!r3xaHZBf*61m@FP0#cP%j@nj5Q4b+P7D1wW`P)`?dXGn1bmJzJ0)6(Y=vijvHT zOq5QG%#=-uD3ni%s8&dbXjY01U#t=nzE(9Ve5YDu_*wOc@SoHoBVH>0bw_NH{?{u#*m;77C~9t{a{RFf#CibPW?NwlWI#Hn0vf*UU@-dm6n zA0$kTi;zr?i-mVrBb6Pz(<{pl(ltW^e zVrUE#0r^kd#5jBwjoJhBdpooTvXO7(VDAHt^HQv4$7QC@ z;H9N_@sm>mgo(*v5^>3~QZY%XGEqsnauJE;qOiodiopqslmio1sRSf!Rr60cspgk( z2gg5@{S%mCKmrp1`A>X{aX1}^?*sIE2-@rN|MFlK;#ixBx^wIvE67x)oUBolnPo+3 zSyQ-_EN5O~rUySRbG9HRBSa!9BU&;%Jy|+5JzF+7y;MFhZH|Ip+CnAY)Ls>z)FIVb zX~)4$)mf=8mAzA$0ucG6GWkzj!@L{z<920X911WFC4YG^^KmRkJMuwhz5=D?>rhI; zXi6-YNO1+zxR?SrUSz%xKRiE37@8L;5tNrG6_A@Lnw8V0=$W%ZX=e7I zvU|=^6}O!4mEE&nD7j}dg_+q*G&76If8rA6|6$C5?a*3}Ti=zHe|a#CI2M;dAAgrz zDo62U8WdY*Owr}zDWcq-3oD<&3n}yB1(x{>{7b`xvrFS7y-U)hyh;jWJc_I3+=}Om zT#A<~%qZTZ=v;gle5>eO^jyKYh>4~b;ts8l$$etDHft9L6LpU*YfsNPvz|^nH-R{ulSqeh{4Vx_z%$Ug>L6uHcem3*fjnwZ8MKa+sp+Ge{&!Y-w73n!5qW@dTsNO z`z;u*gF)`I5V=nW)_)ga4@9R7xpu0MOV=ox-ep0~T@%TvYZ^`KawCT>AI`ojgtP66 zYK9NG1XXiBdJP3|+KiG5aN(>IB%`y6RP-%J|6%8$mb zil8y8k~qs%`J8!QEzhj4gJ;^ehG*QjhiBAxg=f_J8{cTf2fkqs6BsW4n<2!1HT0LD z->scEAD3bt^k5z!RSsVb4+bgXjDFN03?K*GC?xYu3N(6?n9MdClIdnEGTA(dj5j-x z(Pj@a91J9b!5GpX%pkqNa?%}aCGEjp(i+@Bnu8ZebMqrkbK`qXyn*q=1Anu=1->+5 zzHl+V6Vd15K8(Ry)Br%!Zxi-G3}GL}R^-6jk%R9-9RO-lH1{cxc%KGo>@y(seHNsK zx)jy@j-;~Rla%)dk@A5AQaX@NiU%4<;lMHy9T+0{1E)!T{{s^3eM_P}j6}QtW+h_Z z3Gb^B@h(TdGoc+b2oGo*JfNL;It2WHar>|jda`8JcFlFoSjC(vz`EZK+a+h$k|fj&bFd36d!zMFOJu6d;;D9_CJ;&_AM*_s>8`f zzvG}CxEuQWp??VRKMD`v1nLk@V;{&lcn}u|ehNn%YEtN`B2dRgPY*?RX1EcWfE&W8 zxDb0{Q3f|7U#EjAfI?al?*D z_j5Pc0${HEd>1?eFF#VZ9^c3Kr$od&`0(&PDCnQXJ{a^@AG+$$RrnfxAJ)AE?t!1c z1MrZ;4Y?$4Naf+TD8XM5;|AFPUWg_930rs}9`Gk3kT~E1_+~D^fWJYY-$3Ne4S){> zMVN2N7^)D&+ymNn=(FWj_)lNK|G}@xB1e~GMfGO!C$A_0dHZx9ZW z!T%rsVLN_rKNzkBxdQIO8~7cb#M^&(A8+t4BVnq@Z#Ly#LJ8i39J~l2{0D;nK$C$B@B>jG736~oXw5-C;6G3Ybe2MAB|Mh3(Afx$?aAN3z?Tw^M@`G{cnteNq3CM@ zbhGej#q^A-p)(gctPfogw-WvA7E_<~C|`ZekLDkN@HZBJ~YEY1pN@ z4j<+tsFAr2KKdRy@EtT{5f9}3s)&cuD2xrfF8_xWZVMLBO+gp^Anc*%f1|l|kJJ;vvTPs2b59O5@?VIMOd7FZxM7gzm`4(GT+J^sRh8 zU6(JXFXij$3;AaHTz(;47A>WVqF%ZnT2G&ew$fRJ19V#PGdihwi;kiu<`8_C11gO6 z!GGENFPI7Rjc|$#V~lnf$k2OTC3>o*O%K)0=#J_nx}oAiU#iZgD{A3%Q7w@^Q_rL` z>VN0NA zf7yuRCqACWX0T2zaN2_hW*j{*l%^kb73o`TUHV*i44v1TN~iTb>6m^X9X5!j0|v>o z&oG4F?Bs@wR&awx{oE#_ZQKTgpJL*8nW*StOx z#_I(u!HN+uEA)R1zIv?jRXY)DzBc&UAIqm}CNgv$^-3qq%;=E$WZG-tLOU&eX`5vz z4Ozy~X3JD=qh&5PU|GWTTUK-HEa&ppShn$2SuWxAS+3%(wA{?^vE0jFZgq~o%<3+G z@tBu_&M}O?2y~1E!^i)^#-siLx_fQ4_R+jf`y^h+|HIaMz*kje{rlf@Z#qdx=)DFKNCDDF@4fd% zDk+eJ1VRX*gcf@5y$gbXG!aEb?7hB@`cAWsI*w%=N5?jf_y61kUwPl(|KsQJ+~ktI z)?Ry`efIj^b`9_u8!uJz>8(^rC%t=uL-Jp}%uj z5%zb7WnsVAcZFN*!1hkQoz5jFhD$HY`ZH~$z{ zfc7Sh(~hL6+L9chjoc@-E-A}com6OAl~`_Go>*(smC$6fB%#fAal&G|&V+7a-YkrlxJKTQa^$p`ZT0k92?S5o>MLMzw#+De;vdV4dX4cxa zWH#9~XU?~8%c++V=fBiOuBMebiiz6EPeUHZu$BZL14g>?;d99m)&4oyrQgIhPh5aVajm;9698t8Zc9pWqvp z!a_@*qC$(~Z5%i{{E2aR23t3SrVywKK9zHD!h7s2DJVVUl2>}(HMjJp zYfkC!;h!$KrItS61diZf<;`5?0x`IszMpU4T$oMH*T_7W#pj*X1%bJYmV zuJ%$xb%1KCBaE8r1f!}d!&F|CZ=O+AW>Z>KV_RI=XjfR-?vP)(+%dOeQ=jaLgU*>1 z_qb$KKJ1!a`6hhroKb1%lTl%D0!MJL@*3yBEn;w$zMpMk99kF$*f zRbMw$GwUX(x_+uE>%&xDA7_-+rw)_dc<+El#nsERNt1cbjK82OeMy&eQi3?PxFy z$vZoliyY_SOFh1n&$Cy_Ja-k%8>xaeFXgobD5ot#+4B>O%(iqRy)ECA+E!*xZkuV7 zIB$+^{Jc)P*m-O0qv!2*h@5-MF?`;2r|@~NIEBsq!ZEz{7l-gxi$i#e#r{_wBL-LL z?-}eLT};o6QWFOf1xqaZm|JVn1SnPv3 zEOtQ)dU=RBc#*!|h5ZA|SrbQS-kooRc9$E|yBkbF-EHQ8?iJ=~tG3xpU3J{XZ`D;>-&N1U-)wwW{A}yH z++ypy>^H742kxP-M^_Mo)vO8YtoI@@4jY&U8_B&k@%b~vZZau+v#UZk4_3&Qahkrx zN5NZy6u5=wP;5z(|JH0x+ghS2TW1=+TUrh8ElZ8bTQ-}#wj41{+;Z78Vav0o37bDP zP1y8r^MnnSUe>~f)P5!@!{C6*(!S8dB?|ygr z>>noY{T`aU-&d3N2g~a~v^)=_XySo9O*l}l@dsvW+<{JwIj~-%4;(Z`9=O*Sao{Oq z#Qu+s5qp0!hVQW$!*^RuzjBuTAEEC%H!}~mqrqU;S_e~efEXM`gE>kKz%gndj#C41 zk{XCpP8xm6U87D7)5y~v8gbfJ!%qim*y(5uJ)Nc@rwcXc?ivled!7c|y-NML$)w-i z_sIS3$K-bUL%HAegWOMA09PF4cGV4r$o1+t@RrNfAc&Fk)pYf_S|X>bv*d7fk?gN-mhIIOvbk~{ zUWcz_d-)gHU9$WS2Z;N2;@wTZJLvPQyU@X~nRS6VaM4-=Lk@hE{@>4YFdjeyc!)gs zrdjs4oMq;lm5oP-vdE1CZwQ81HX>QTLjM>i{9_FCEjoAWJUq!J?IZXOEdRqU#(FJ% zUvz>x9Qs_2?d&UPP}i`J&B-^=03M+Z;THPK6WoLHv}E&~xX{^y3-seLO!)Bq0e0X{P;E>jiLcq^uF5-Oswze;P=Gi z`}ca7$2_ZHtn-O?;!`{eggATB-{JJv9lK6{!Vdqm$L7Zz{{~;cm+%kx8t9JxWkY*T z=pb&?o)8nuSnz`wzz++Hp=BlP1A=a0pe+O%EG}pcPSib^KYe*TTM7UTtT^>@g&zeFqesYe5`>K;FW^>`;1H*$R!bO*aZyhE)e@Do;7X^Mj zT3`SDHkN(^&>g6O=mWAc3?@JT#6Tuk^`JUzwa}l1*ja}5u?8(-Gj?`jXFo%7l=e^2 z?sw?4AbWly2lNs@H1#0f6$wF^#-l{ z7p=Vpul^q_gV7%bI1me4bPse8XS5i5Vqr`qzJc^J7Mq#aE5X)G>@?x~d`^$W$doIw zuns$0IbC;S;}AAZqQ0Cb0@s)kkLg)X=4bHqDaPXoY(I|f@|gL5V;PSAFj)8j{qe({ zc(@MGk4~fY4?7<;mr%WLPC^pR)!Q~R^oC8HUbCH}mu=hiqU{nrZ@Ws*+OF3#cH8t6 zwJ}dn8}pdm89i!uMUU9u)I$!h=!VnBy58q|U2~yw2(DOhwdnF~dLBMJ9Q*JSr}n=F z*`mL=Q0p>KANHXJqt7(G?i{6;T+;NMOQD{2t<)2)4SLMAMUT2J&?9}9>Y={fdeCi? z9&p>K``r%dKDSf4;(k$=-5=IP_ZM}(-^V&T;CtOY(4tdt*Z+Ypfa5+oChW_UQDmV>&hb9-SP1zmAW1M#o0Hr$ZyZF%FEf82e%0Xp6D;4)}tuo)WiD zd|3vku#|J;F(TIy0_Jr^e6J$?=UkF@CO& zjqlWv@ym61{5l=<*lz6iIB4wiIA!edxMJ*@@R+f4!rR8SiC-C8JT0cpun9KyVsJEm zn#8g<75O`u%S{NMbx!B<=FeW++obCgTy@EFr0$vIt<#f3bOJ5rsCR}Ac^B${ce(a? z*J_Vz`?`QK$ zKZ|L_ZI*Mi@-55hN7#KMl6)(goDc4gKz|4#|DMuEr?_A1*tCf{=pUec{!!XRUCfSv z9BmCK(dK|kV`D(Qu|8mqu`Zz9SQF4?>JC_IS{bn2ydvO`d0D_&b63E1n;nPXFO-Dzyg*?6ac`?Tm2KmdKIX z5H(qAqJy+5I$F!4Q`8lmZ7hi{G8RQw7z?B7Obeo#P4lDL&GVwV%yXmG+q6XOwr!3& zVb>IO$*wW_ar;@(@4~I92jRf5G9YBTBO~lGKoqY1C!p8#6P?Of?xZO;s69 z=E{tAoAUJKwq@y?>`KxP*cWGhLQOednw{gX`kZjp=ESQeC(WqJ$u%l+N=)TB zRi?6>S>}?QHk;y{rM87R8|?CP_Sxs<-0hH)^Ppo+&Z~~uIbZVHVh?s;`zxF1X+f@d$_*L>calkck81w&O|;GvlXQ&e3LqRN68l^3KKWd+$rX+e=u zTu@;uET}gZ6tvpp6)d*RDOhKhRj|iCv*5Htdck#g*)gr)bB@2*rx#f4!1h;OCf<)= z>k{@)&tx3x7zbF#>rUd*!nib)IBRCfAXSx&Q$?wdW|Ri2v@}Y^rAaC(%`^&13yi$d z8K&IQT61>k9CK!Ar%igv8r#&8UG^y@ciAVGUUNt)ebFJY^fQkCu}dnkSg}pM&2xFo z1#DfYK?`H+Nt&i@jm*Va#DI9r#DnNun|Y?3OwZ4)YX*u__#u#c_0Y9CYiJbY>&Q}MH1Y=yLLuH9xES$oVbqV|eic-^z`iCuW@PqyJREj>ik zSZu7^A_iA#sR6IV5K*XRce#BQknvl+!U$A z<^&})XDF_@z=&-wH=>*BO_5FWOyNz-%%M$NY^FCIu?cRvWE<4sh%LkH(WCwU)qLgNDRu6FVc{7IRI{xFYk25lRuxHeD4%%7_0`5}s$ zAEU_mDGHyTqpPwvZgN$ zQ1H@l1ujicz|su)FD=y6rB#};w8`*Y+G%(%U2jZYdcfqh^t{P)>0_peOFuA8T=KnX z;v!2Ao}Ctxl}n8KDeND_-nJEJVcq1Os~Lwi+y?`>kPH#PgYGqTjk~6-87AK~9`af1 zEAO>In!Gkjlh!87Yh8{!*Oh7Fx(0cyYuEU7t2K7rUX59I))=+!CcLXrYyM@7>bCT< ziX+@ZypPf6-PqoU4zhd$`Tr)gu+8NETZq9{^8an*U*NNy8iXCr8o#5z#_brPu{$Pc z%uYXz-WjY>J7Y9*XR1c9zz*A4t)V+xHDu><4dNjy19zR)fSnJi|IXj5|MqV+V4Fn) zw!#+f1%Xr8KR~~?VS5cWJF(NalUktNT|a@39iO9-AeXW1Vt7wn=@C9+T72`{a1^WjP-CLQaQ& zQJ+H=^*Pwf5n{ZPes7?kOLws*?c-d)UcnLO;c>>`1m6&Hk{Xax*uR?`{45&4Ia~F) zz&CT8?=SoF!)15gL$>GrWOF`5rt=9htQX(&EG*|+VHMDsbLZg+7J-l8J0_v!f7naR zx9s>$gQ-1+7I+u;ft*1Dx(5x4Kb?31`xmJLxPk_7ANN9BH)MLi31PD@4CF(HkuU+K zu;7J460peMr~@Y34U9ZUXC8b2e#hT@1wR9Rz;^oHO}rNzWlhF*3H?mJm-}EYWB+Pz z4a^AswEqqCmq&OG=Pgm_2v6ETA3gwcV-t!WPmf?T=)pzUk0QV@w2@>e22T7J81NVN z@OwJ+{8K)6MpwFYL`qi6t+qrdQ{=I5~eBD?~x z!fR$U5l3oKT+v1Pu^}7EW6H;|LHA{YNIc$6g)+1Q#^gOF{Cf=Wdj#^`m*5j#;|DBe ztec5>IsMMUb_{);MqjNpFhieV?4Kw0FI(*aVI;XD0fBemJ@^1Vv}I#VOgfuHFM*i?dTMnfna|_V83|*_+w}xJeBl4=OHw($G8vaY3yTnFm_#E zC-!e)j}Gz~$1mXT@DKPWd~1i!;!N!cG5MLX>3KdXepoVLCM<#-zy!Bk z13C&8d-Mkb{Xtf&dH-1OhEPa`0;qx}Xa}qQuo^bO4%i2W;UwGxm*ECHjW+QXdGlxJ z1wZs?9zXKiA8zv<$8X?ku=F9}D9_D`WpTp+`~M!tRv8!z`L4`1=hs&{+|U%=D@$7%lzLv;!5;|7|pP=6n7Q{tXc0YHjI|zR5`Q%vn+fP2ISh9hc51QHjE#0|EWyS~ zY^=k^7Hm+5p@V1=Cz-bA7=`=LJ#L{syvl!{5RvaVr7S(X!14Jzu(+dtxR{t1Ob=UL z3r&Vtd`~RCqCV(zV)3a`^%3*peN|wm9vdy#XvfA9Y^=n_dTeZ^{XMjO7~SJEv*9Au zK{xccog$#v%EHU7JbCzomAlIcs`YyP(` z*m4&Y4;(&s2Yg94wMj^e@P#|49?Q+gb`E;S+)r?%|m+XPmC+?mmy{l=GW9>GGwH zyZ)l1XfH?lawgq@^-;&)v%GyaiX{i$;^)`}R-=2|XX}jnT%C4bsJq;k>7@Hw9q+eINBiy9k$!jSQ2&cM(Eq0P4|rXB z27aMkgZ`r(gSkGywmbM~B+JZr?0aE*GTMhHmxHlL>S!?!^>fpG14rrNARpZ`I7Fw1 z#EUz&b$n=njtnc;p+fLuMJ_S7!rAAuv|bEGf0)8P*NgivJo{^( z*BI@bPw81+~>%8-{#=At_K2=)j)1VbTEn4Q&p`|{{jU_%Cj72_sjD@}@ zj1J#RrUkx_o96qyV`}sJ)--R5#Wc4Uqjid;DV_s@TRFT@GbM~ps!7{f-F5WaO@$_V)~Fizl{Ay6UaG}+2X(nUh^>- z+6()uKo_kJ8mtw;9_pGtMT@70sxu@`3qn#gKO{$OA;p>-QmK}ZdSgyVi_sL)VayI$ zX_^(X#Z(`1&|DXKk9lV3L*|;W*Ui;oe+P@XD$HWKlXr;!bMa^}T+ zjEU@V@ncn(qn3sZP-plUEr{^e{D>gUjf_%DWRjXAGu0TGui24hYKW{c>LMGB+Q|7v zP2@6Db>v1p_UjgHOKm^F*aPYV&haFo2uH_9M!}Yt2(yQsElne zD&ppvX2dNqmBpv81%^!q++ zpUo%NVH>!I<0gJy!S6c~dG0~HtC|yrYF46$>J$AmGjY0V5~Ed>n52rtOwC9vP+8Ip zqco}3C{CJVDoW}!6(p@T=O^tn=O&%B$w|Iylb!sWO;++>;oo2}Tgkr7%Sq(^S!iL{ zKF#*8M}y(Gj-QwE`+4}$nBt=PltG%AI#yMw-l|9q)Qr>!m8Qn4I5ka0sd*|)D>Vwz zYK*+JCL=ek!<3!2%AA$9-JFqr+$KH!icMPjGd8K|pTJLGF{jQX-MB_7TAQJ3kYs*L_B&m5()OfQvWPE%24m!PjM_9(|R^m}hJW7kqDkySQZqX2B7mZV9v5zu}1C>@Bq12KDrIe&Axg=kSB{PhK zk~$-KtduOpG zH1e4%Ear7HepC~a!V31>Gn|z^V}Mf2M=QD9OGy>elvoj}_=;G?Rir4kGDk6$C5o!7 zF(NAG7~z$ROre$QP17s)n}RFPnS&}HH3wF`V-BqRmpQ1yV(OusBix{$=W948vAJ&! zIae!d0xab9EPN?%Aos2#@0;nUgqiM&LyL*6^-y%JucB&$6j>Lkh&t}UsLNDnU7|@8q@0cnx@vDHBG61#N=21N0VROw(;&Y&?edw^ZA_lC+n6-xZo_NNLxyL|+lFWJKMl_&OAlU+7L%1r^zjrn4q|uP zLe?cxfW?c+eK}Tl^4TlDOX(o@@B#~T{G;A@R;w-}@6TZ}Pny_{?2`b7JC zu)C>?^I@U;~``j_dqN&$!nR5CN3Kwk7Xk?e)$BATkfl|%Yz|WqgSM8 z)QUWfTv4eJ+}t&6#S#r&u|!~h%Z zo6%slaz1WHgV{m;w~H}=$uM>|Ip`j0F!tHWb-$}z_79Zv{*f?IefCe0)BaF7?oW`z z{v6ruuaxcnR+;y$l(COL+ItV&!r1%pEtAh8V^=Q+=(|;eS-YiIgK5H6#a{By1JuDB zVhj$W0Ue_9%*R&JNi?8S+y`=+Z%I9aeY)X(o;rkkxfkM+ zxWL#03BhG|Hhx23424!+;LoBL1sN~{nDF-z=&Lk-l|R1nEPTq}eGm8mTZs3sbuhKZ zS&y)pjJ+`I`SK^@us7ri8o)K`5U%q*BsZ}C$Zc-o$4&fr6hCea;sQKMdYpJXfgexC zuqj{@@KiM{0AleJ9eaufp8Rk43V!0>{-Ra5*G`=4>2oo*Q!ny;G*_{Y&9Q`T&_ied z*tEZ;Uj5}6j?cmK@B;9y#^O0CdZjPA$N)CyBiI~Hq(%fkejf|@Xci5?N%sfl#UC!f zQ}6*WCV%+0=Xo@<&M*h*bNYRp0}rCXJ&gTFd+$MVd79W;ZN3Pv!W-}wybXVVKfycj z9x?gAnYt5V^2ty%3J;Pd{P;4Ski)JwZ+j%7K6G6nZXgP z@feEDiNwuXgAqfYGO$&Iohoe1LW^i+S}dRsOX=k*WV-d(*vd5B!_+xUEygKiyo+cO zH<-%LaSFXpM7}{Uu%H+GzgYShj0aPLDb?#oAO3YeY>vjJFMSHbULv-#=|>4Rs7SBm}1TE$vetM9p@ToZm4oUgch`7tvy#WlWwz6MCGvaSK0g;>W}IaRWad zz>oXULGDAVyMiWkiTjl9B^KxT7xz$^a)#dAjRothJq35&f%Pkw{>^Fql`E$kOWu2& zT7Q%sqv*~OG?KneW>lxsr#SkPj-3MR%s^Y2iG|sm1+9#J2X>ZXXEio9)BYZvAQs1r zdvwHfU5Cxj>Y(k1I$-y$_VL|GdmXv6>kfWqNwGd|=r1fQZ^O&Heh$B$ws+E_<^g)p zW~}bB^V21VF!YrKopsFAX{SQn*P~F|vQzzX5bksdchuo8OpkKE3_AAove&yQPuU0$yH)>n|dD_x{kv8{VrHunN zYyE(IS~u`6tr>Vls|P)yRfFHriXq=>*-(qRZnKo5m9NIK)J|e4_T{oOg;>uwPe&WEgF46ouhAR;g~nIVC+9Me=K*qjRWiPHlKQN37Er10?lEs+)E9fz^;R8P|d%;|S!@0ai zvd4zwq2%5y^V^Bd22W?L_8g=YUgOk-7PENrbahUSR>$OIwR>l&&AUMJyl1G@d#2`i zH>ufYz8Za&X|~TsHTdo`>U~ceb$<67wSF%eHBF3tNy|M&d)(hc&2fu-zc?DnWVO<0h&8CTrE@M)jTatjni^9Yg(}yrd6tL zT7zo+=c>kkv8w&o8dd(gjEaDhMtQ(hV@BY!Mp@t|MrqK$!D5sK{>B?2Y&)=dEs;5p z!Wh8bByvuE*G+5|2id4Sz)f=lhiOjW1T_Xt(X629st=Alppq^ksoR?^1ynu@(MAynZTAR zmF-^!du-U5PMtG;EW?j>{FoEsqS>K?RUbM|wPD_>4hvLeScEFV;x!{IO=aOZDhV%9 zad@?g!e^^6qTR@kSYhNvY&CKsj~LmJ_nNYzo-k!beE>gz#pofDBfNl}8}$9&OtzXi z%!6F^xY^`7__3JSwDNuf-zzmUa)7ELN2xr@OJz~hR1y`U;;0xEMklEtI#c=4h02Sm zP)#owc;VO=spu#vm<;MjnH!f1yaq-HIPghoao-z~4l%7zl zw1ie8HF1fNoVdYAN<3gnOgd*uNP5&1pY&(=7g($q@rk`Wk<7N2exJeikz#WH66PW- zFXZ!He&2u}?GPU@?Iq#?>p8mH_eZ)GI~C?h#c>B+H5OHNg4N{&)eN|c;Zqr}uX zN=RK~#HFq?VpI1SF==N_(P@vEqSAkFic0$iET*VbixGXBN3n4^kM#(<2WN0TRGGKFTp3I8-gvn;)2T8uDwIE%T!mh&X`_g7JSP=gKx ziz?Bf@T-dV3h*(5@6<}o?x*CO5lYONp!ghL#c{t@Y;J^NauXDto1v(@0!8FiC_HbL z!t&Y`lHYAi&);PP<)1bJ^B*(<3jWIo$p4zx79%k4Hy)tSx@fE-izX|g$Y0?_p$aRGRcLXlLW*-Wy`)S*CG`p{ zX_J4+N@H5d4r5B`U4~!jb;GyxHTcT#E3p`U#kVQ4822#;?xz2TvAeU8bFztgAZVM7 z4#e+DW|DjJetd;V5i?vARz5%>IX{1jLbtbmFr`Bx-qT4k1|Ru*eY0l)1;~s@~XOKcvihE&#EsC&r0-%3X9=orQBj%q@Q=u{{z_F*2*}{<(!08 zUR&!>3h*m+7N7m%Pf)F+{A_`YKIq zXqHFA5{+-ztZ@xTHKyUJMmM|wpKDD0FB(%v<#4UV7z^j@@VnV_?AG8Yl+m@)+CK-&C#gV85-F- zOCwqrYFO)f4V`;PL*`!6pt;X#Q0w0`xaDUJnL{;qb1$dqXV3jm3ppPaGY(4`2dIPM zC4BzR@1hqG1Mu!7|6FLVkqi53MCTw4?;NFJof9>*(@#S>r)%({7!6#MrU8qJ)PGT} z`YoC-cZy2f7VTHxMHl3{=qb5&ej?X}KdEmAyJss4EILj<_tO66F0KzN$p2TdE_IXt zLk=WB2>5{qjDP{%j&fhkJs_(G0pCTs+7qVAWpyYd$a!^+`mC;y zB?sNcvlzCUL%7XYK;KKnvU)w+ou)Syp zW3Y$yfPb2eow%da;T+>W5ZoVq68m?d0i5POkTc>U59e&a3Gm|_ew@b-o|U2t_;GJA zBtSl}(A>*Jy08ss;KEJ*-MjqFx9}g}?g8FfN}pS>U3G-@=mc|se;SOf$=Dioj`6>M z{&R^sge%y-53c`;nGfKI$AkEBqaO^VAbBhr34YuRK^x&>^k@k*1F?AYAkfI8FZ2Fq z@IC+b7cD2=^N8(CZ0FyN26Ub|coF-Tv452s6o%0GL25uA!Y*AP*TxdKfh#>A-^fMmuZz)eAlDF)SaRZhyEsGH}o3z zA7K7rvmZ8{tTwH-7{(smO!~uBtvv!N+PK<|X_p72Dz1^~UbV$I-v&pX2kiP1ycd9m+fW{62gD ze}RwTuRv%?DbYe~NSgYfgD^Hfj39|49{-8rfdcu^L{hmL2z<|TQEzdyRs;O1KUlQ~ zYu-N;CW5sFBNj5D1ZF}rw8Iiu1?yoe?EZhg5#5bvEga;X6L1#w;4*5(!>AQ6paFb< zittU38e**m`4@Z*R#oC7_yBsVF|3M&6{|X7RcOY7A6W0wNr8N*fCk!cq5TeW>ZP>b zP5T>Ye;bO(9x~{|Si1`w=TR%}M-6!bHRLUV_60)H&jhgd=^USMd>^a|MUNuUqlQ>3 zA?)B+MS?qrsLJSlN=O{`vanN(jcU}1*|a~G_7~D}7wvb`{s!9L#z5_5z>d(j)3V;3 z@(xC;qnoe1nD6T4h& zl%Y<{r2R(PpG*4-sdeb0{ca}g2HNKd87LAjk%hm&vhp1I!!yLWksyoH5F z;pQD!nBcwkdyn7B9-Hp;Z3KOqguNgH!B|d)box<%jdFU%(=qVlS^Rj4ae0Dqc?>^p z;m1uBiHA|EZZIa-(Il=Bi>r8bnMhq?FXVq1Oq&N|7#I_cj-sd^g) z?=>n^USwW8hdT2Vs@>zv*qc=BJcJ();>UITxP~8B@#8XnT*QwHR56`HH9O0gP?v!M zat+PuDfF{Zjv|_DsvSP8vK8xSqIKkd?LJ-BLS7l2d-LN?fHN+Ep{t|*T z=a=ytKeEVt#>xHXfe66xv^%PRGmEgviJ9Gx7Di!nGWLRKF`Bb4MMsSs9X1u|ps8H@ z&9&NVZq#n`T>t)zhu5^m>2r1W`B|%YTFc5i zu&Ofev&g+Nrne&G2CuIU=EB25e2=4x?y?`GqmJWs(8*7Gd4kMt=UDAqZ7VzYj zU-@(ti}*wqXcpQVaLEfrU_2i*u;?A`Z`QuPZrb5CTwB~dwXvVS*7Xn98lK+LJs@2x z2jpt`fMRtGsMOMd^;$e|jyeY}(858>wP4UD%^$o^ZG%s1?vVS{I^+el4E79N93z*WU1zjtXAvDS!x+IPtBv2sA<$%%^tl=vqqm#{g^AN8~coE$9|-l<9<>N z%FLboH};+iQ_k1YX561&R*q=fcNK96ab9l$~jsJDw*pjE`0G z_!Kpc&(ds3fw<;-0`? z@#2m;f94>zt*XqKXf{8vJA(cP^XcnUcK(yinm@6xT0MuV*=xKSy?oR#DM|cx{^GF~DusxPfyzpb`bUuA$Y?^(XHOqIP>U>A5#?MPte$!Op7pn3pF)Evq zq>?F_DxOlHqN(L7oLZ;+X|2kewnVwpHYmq`zq0)AQD(p+$_)IyG6KH=w0SE5y*$gt z;{oiSOCs|~W!DXxlZgSp>%_Mf{HXJHMD6LP3jYx*;~S<*0(?~z5TwF@2;~RHD=#oj zxq-RL2`p81P>nK!<|re$Q|ZBLl{S5^Qg~!ua>xxMIplXnQpnd}v7#QPTl54M`}-0Z zhcw0^6Ey%fq@xDlM>~Er;z!kVJCy~ysd)Mj6-*zeyy=sbGu>a=A)(3)iBU#KveHAc zlonc~)X*xWgf%KTtV4<6tCbMGTk#R6jkt&hjM&K6;U8czVk7!%sr2wEN{t9sazrE~C@C^siID|Lh$>fn z)GWnCw<{)km7=3}Dk|nKMaEn=B4S^Kzk|hyi0LIV8a03z+>5=F*xp}2LQqH+%5f1t z&mkT)#G?p5vSXZ;5#3*@F(Z^5;!E%aSd8fj79+$;JWrV-20h9Uw)e0p-dxK0$Z=s270|?^ z0{`+;$O01`m6YJF1gdr762>Vuagw4Frzt8iM3ITnibzUUcv7~)l1mhtJX0YltqM-* zQc%iP1*RTTK7`T9880BQ-reLBZ*n3d|@{Kt{FvGv;Vo<`PZK z+$_J$Bl69WoibqrCGLX;R(> zdF3CHXZ}S^%zp;{3O~y;k7wKE_Hr-npP>Kyu)Vc`xiE{lz_FzsMFL+6D;WoTiN=?p zA_q-FotauRSbjyLnNTuI9wi+bU%F0XOAlyF z=>?50eG)#_=#rl_rUXTzn4K%!L(Gq2e>b)_HTT{f)G>!lkk=Kn$;9v_sg_Kjnryhz ztjQHF^5U+gi50^&p>n)DDkp1vrN72ihG}eNyv9^zXmnMvMpe~nM0J~nS9fb@^+K^ihEN`q&mXwa;D4V+!2{L(XlD>eIGFPHkJ|&~{RGZ4bz9-W#%? z_mv#xvWsu+rRNT*4%D&5oDW?n0?SbZpcJf?DKX2K2QZoU#=;PA@3N6|m$RI@+~wFc zR1RHZW#2VPc3u9m>57!OD@8^Z6RnFu?4lE0>zU|B;3{Q-FL5FK9DV`|ou+=ilNiwM z>XrOzb?@Clm1~&?>$o$9KMe(67!SjsAGmBVWVg{t#>T#sQw-pQ9u91LHu?Y;!Hq0x z8#tk@C;EmKSVbrI!UYEWX%^y7kjQ@kd;qH|vmV>aX}fJB3gKqf#jRwd+o=lJi82Nr zFl-n0cVmAKssPPtpB*@Jk#plX5JrLr_yL=NeMvwp_A#mVF}QoT!D$x4o16ge!M|9L z@Buc{-_@H?=de3#2V;PZjQyO82dT_CgepYBI-D@}JBliBoTpQq!2Vru$^d)7k5l+@ z8b3~tK>nP-1#k*PKss<@pJBq^y#{FP^fmtd>+lur{0w}z1-2K_&!)YoGT6<+RxEY` zuru)#_U~r=&!P&PlMF)1=AMfjT=^ASHb8y2`1a+a8OG&)#^pNkcyKC2Lk@8AKS(Sd z+`&eHh8}nlJ_2HK{g+-<<^b1cZ0BG%?hL9F|7;@mhGEYQdye;E?|yg?9)_FnDBQZu z<0dxc4yYwABnSOaFNUIC;Kz&pe0&xUg{TTmz@Wc;grBc-d=>r%-}R_6H79vOEw&S| z8%+N^u{n%?#+F?6kKDHN1jnc0d3fnIuW+QP|4~TZGEggWAeIx>U`4*d8_5DG~O z%0)RJEpw88vK0vKCv@bK-;vn;Rkf#CkI%CfVmk!8UJqfPxBEU$Rf^T-b6~ak8oUX= zhd;wRz|{I*>d2@3{26>{hce=7eWU@(2=n8|5Xj^)2eqgqT~v(h1&sbo2mfQuzO8qI zSak<0)=C8HT_NLPDnvpm6hI|dt3z7BdUr|}bi+p24tvR}4^ypi3a#J*x%+kWiKoyE z{zNYO4|IdxyJ7yx@eBA6{tRzJZzYCRcd%*@R7dnEHKRCsLkJ{5Hk4wchHSBs_UDm7 zchdec+Fwok8_8z3qkZfn!#_$^c{g@06Oxyam?O#Pzex z-(f7TBUy$=V4G!@n?-e+W%szPGqa1QVlpN>O_Q|M9H7lM5!zszpmlcXT4R^1Zu?@b zvaiqz`&un?Xwp)L`C8)8rA3bGw2(W77C41Y`&O#WtzProTGi^-sX1=lYIfVMM)#wd&68Ui`aQ1te($NS|97e#VCi8dM=Nh* z)2hK-_oM$)uIXHdZt#4~9K2jLLpG~w$U#*OJ*V=aH&s6D_bMCyjmk!_;@!b3 z*ne~ymt!t1r`ZA>4rE)w&l|nTy;$G)MwabGKMJlca5 z^cXA8)At+Lz7R$XBG~eTlV@;=SPS7XgMQQGj^h?#!XShxM0l~ z7pb!G2`U+%rsDCrDjZ*;0*@Nydo(F`!b0UtSgq`dyOrg6N*SKlmErZO(!Kt!bTpWB z^p{_;>Oj}9dp4SUFP0d@5Q8Z4j8OJg0qigFqt?>_O~+m36NjqQbDWAjy;bPtuL7@7 z<$1*@*DFamlQNYxsZg1dDwHvKmeMD;E7g0YQoMI4+2^E^C{<1LeMyOaUnl_$#!8}Z zFSqFP73`mmXC5Y!@4;GLFU5~G{FsH0m3}rV@pe_A_aNo@j8=}1r?P#fDAPAs8NLxp z^Nm-kZ<dW z|76AaXDgPc*~A3QRCHjAq5_vHGHA0Rf{!RX__D&LKdaE`pTf_)rdBezmj{Xc`6P6p zbhf;iVt=nw@)$0#5sMgB3lnie}l zQ)6ezFRnwrackuhzhB<*sNV69Yf{389Df9MNpZbgA_hG=5VoyPXjxsxngFfE=s@^U zOnfpKr+9n~i+56Ryt@M9hbSO^jQkTkH7#L^rX~byN@ApZ6O-hVm@V(5QcX^()1>72 z@=9K|%XEZAF5sl1xhvRn|g$6Sk#-#HpTt0IF`@68cp_aK&*ISv=Si@Yvm%JH# z5{fSo_~M^u(&QXxc~U7eF=wbI%wf-g+}HAG|XZy;7=yL z#Nl5EapBZQUvWS`an-2e0UB96LL*AXYj}ybhLr?pXi0>Ilq70UX^sY#&d`9;M)faS zqJCvt5w}Ew`nd?&v>q0AYVJ=z}uM3+vAMh)R z_XF^85^)++W1y+@(ZFgq4X7Th{?((@uX-Z*$-QQ}+-hRfwpTo$i6vQw$1snX|9o}nTDIzzyY|3 z@cS(M6@EZ`wDhna`&+TM1|4GQ67;yGtc_5_>r{wbj0Ura{EzoXE~F{}`YtrdaiNoJ zs8Z3wfiMC*=ztFd0~ekSPN)tB&?;_qEN7DKhI?3e9*4hhG5j9zp^fjf?BE)OE$iJu z3s>UaDm2M%@^6TRpw)~4$I<+L5U@3o6PQ-pGk7lG4ufG7OoS;A4xG&0OypGz;wn0^ zYAZ(W;$rwPkSH$ymQoaafURA`fVQo72eqzaZQj7Su!%KkGaAem?u>!4Fc{ou#&H|= zw~I}VnThNOuF#L4hrnp?0)L2xOsL>}26X#cs#A`@H3I)S6Yw7_2EPE6$Jkzp-TBz8 z!$#2#<{@DV-^+QhkIEnzyr1|Vpep1bwhzP6U%`)~_;J*Q3l8x(Mm&z=$MH#QMuH$7 z3V=yxy&dTo4IjI}zh_Py{TqwIkHE7Xu-!r5X6@o!#9lgfB5`->F*K;-*grv43L&&V zjomZAkn&;UZ(K0g05LB2I&%Sb<3qVYY|0pytN3v>1X7?3nAlh8?9~%&78sAqjK}4F z!hd=-7;KjxVlBXC^eN^bw#J{u{yFU9w(TWsUV;1IIy`ur8yp`3n$%5V@~9)a2xIg3 z05+-k@r-wG`R=n>Y}{wU64(P5;d$Qs7{1XQ`dvw%v*~9nee}PVbMP|r?<)G&{Zyq` z?OAO+3Xj9nKqz~lnVxEqmpHx*ufpqgd|1iY{JuXr1%ABii%t3u@!CmgN%#~bhpSY!`Y-N6KQVAW!VgC_()G^Ei&0lGj1?bp$MGi}eO?L}xG%V~QJ z+Q%lef}L19h+c4#{P_YQc>rzVIkbtt=zad`U0Qkvto0vOE#et?0xX2?H>_HSH7Uz;(U(wcC1N9s_KT^-sHE+B+MYw(^J%-2p;%7aYtRZdBUkN0FE~sePcw9v>E|tU zkGGgMU*S!!-KRNPwGZplF|NaJ_9^7SpYN$h`I=n!b80aDDlcpWFw{}lNTK~)rb7w3 zM-|hrp1w3QP1?{sI+>!@tac4r!4^GE=6#DXd4v=BA!6|$|Kd8HUt^@Kn#Yyf+{^JC z{OZF`*#8I_1=3gR=2t>Tat?` zx%b|CFSy{|dj(ev25g$CriJj50HFl}0YV872qby`BiSz`-v__PclYkqJZH{1Gk4Cp zGjrj|fTM`=tK=rDQy#-N9zl-l$ng;Vag})cGI76(t{-3*m-EbjIE!zb#wI7pQXEI3 zBb0au%N>OAz;B@DVkjB@0X_%HwUx`ih%TN%7dP>X8^rw&5%*sq?!QRfe?h7#zmf9W zDZi6$YcyIP3&#{VW>NkkGBB&i6Ko+*u$SonBwD$KgXG4Zk1RcG|d7HzW08RS5a9m68BY z26f3t<7Mzv!!sD3Hd^U$EHPSU*o>EHHZx?3?P8f^yIv;P?UM0!CuFSsL(=E)vh+HA zA!D5XC1YIJ59lsb4(4eK`JYg3J>W2(cl$B6GIM*?*)W$yD@*LnvcNG=<~l{nEaya- z;hZVcTnc20OPNe|t&xeYjWWTtUBUFj9sYSe3yJE<=pVrQNtyT1`i!g=vw^ zrWd8j{Dm~KYi^?_P)BeZ{%i5rKbc!R*g@C6f!hodcV!;(O+!!PO>WX_GRbJ(zBR%e zE?pjRGTb9ohI!;jhi9=2@vM|~&w6R~YLynRPHFP$l}7Jr(%`*V>U}mzo$o=Z@qJLL z{hkG%NtOS<0KM;BJOSUuR35Qppo2_?Jsel_ePIH_KXfty`;7K?BA=s|4qtB>;ukD! zeo@lmmnhBt8Pe#VCxiVNU1elO00QO98oGo5!F%<*(~{y!zC|jtmH<`lAP#Ok`=R4GGk6lMl9>_V&4Zp z0@kg9OmLMtpM-y3DXRdu#jgen`8=I-eaO*;94+`rO^lONM7c{@w5OCr2TD|n`?>yXU&F_IoXUD6VkOKQRnNl82@$%&6iQqrHmKO{Mc zxd(~dnZZT$e+;r^DUR1lLA*)w;{7BiK18w- zq9ijRK{683B|R};(h|!hHK|@wl7>if@@Pp)o+^ncOC=$7o5ZJ{kl3^v;BD}|#HBIs zAeEV-;6f3P_u$`IgD=$K3t(<7<9uWpi5%_7QHQUT;j4KmZjzN^kc<>>Nlyuq)D)|v zFh3_bHC2*Qb0smYR1(r^BtE@W;?hS-Y{q1X$yhAWnfFO#<}r!LdRVMkZ*lxiBC}XW zoXJd4a2B3})%Zd^L;XfVktSk)juZIag+5xbO$|O$jL&3dI!kJ%yCn0b@1)ECNyrS7 z_)K3isMpLZCLr`W(mceK_Zv&`%Y5D#Tvtg$|OCrltN_2j(M6r4* zGCx5g@-xI*P#|Fil@eOmC?SQzCAesuSc>LJV9`biC_W_q#aG3z_%-kipIK8~#NPJc zIC|d$-kcOnX2lmDnc_+oV+R?7hTItR;F0FY%PHl0XS9WmkyO zSP3po6-!yJ1eTRaKv})`mk$-c@;>n?pCjHC>%^<#fOuA17IP)LLR7FT1o;=Q@&O!y zV<&tYhZFO4(>IR5A364P(k6#8=I6IkWXT%LigaYLRy&HNiu^;BNdl^T#lI?8{8+i< z%gQAmRxWu}7mH_2jd;|wiMggnOtmw`Si43H%!$#ny`iq|C2_C)8=uKNkcUw?fbO@$ zuinSs`voTf- zjj14C^h_jjZ)z4@(@4=aPZLe^3UO=RB`(e9#ku(zj(-u?CZ3#;i&5AMzuKvHO&_7~ zc>3oF+#f*KIND?{?SbF2kuMS5Sdk}y>peOg$f;<^sThE_Xge&T>4*@wjzn?o$QGB5 zGI8n{ERG$WV&5@Q>^hc+O~-bOdkWkl>G~n~L2QOHnkOH#6OK)Aub4!?Fa=+jhA< z4t%cRTp{wL@q6@G;%{W~Mn{G*Hlpcq6{j9|vF|a9-Dp3t9j$IGv4Bo~bRnn#7;`j# zIC?(VjB<~G8#MZN!FPa>l8kPNJx_g_E`2xx&L-({f#$y7Js4orYS7;{os{t8l2D!NcxG0pD; zlX3PHU=JPOMJoF;j`tNerGEpSR?ov17jt?UA}yy+SV>!0MW3`98>}G*!!ZDuftK%% zYvHF#{aEXW5;Xuh)*{DRU(SaBY_cvBlyeS8UfTx{e$Do~^HFY7@xOwfaRT;qgnJ>J zlPQ11ditb|_~B;y#QSImfGM$J2HI`R0ig&6w=`z3>+W$U`q+s+cIg0e>_(2=$gw9L zM;Y+=XXo0}s#-Qb#kKu8Q*pP@IZO@${F^@wK~ngX5dv58!R^C-6S_Gx&=m z0VF>16?XYLnw>)m$cMC$519yXzVE2?cPQ^W6^*O;7b@?d@(>ze0RA8nq=F()16qJu zi_!xofN8|(bBG=nk(XFOM7^F|!B%3|-Q)|7FfZdAIfI9ZqhBPl`jn^bKa-yrm;>?w zN0t9j85orZU=JT~F9)G=Au1Q+1=M_$1dv0Hr5uh1%5SIaE~4i#lskcp!ZgaALtbJL zd5@Juv>V75Y-6p+KC&Jsh@mf%n|Ok}!MmvGyZ+pVntSpJP~2)Q$iv`Q{(Ew`Q8yEO zf&5i8d}-97kn*d@AT(0;5Y*j`+Q*R3nLtWv8mXx{M3RfB+e&g18_7-VAUAQ4dY-{e zt`o!G!JMDVEi`u%MwS0ib1+mM;yn1R3_qcdZ?Vhg%)$7CIT#;E7+eYPWRd$QLH-)b zZldg=l-*6)V<>w(HJwV?v#Hl2Txb<_+eE%#7p|;UfINsco}@{=k9E{uvOKo|r@&Eg z2;7t5d-y*GAAmRUi&xOa3+UoD>tUWG7ju(2LN|zWuQMm*8o8;<$Z-+7Jcxf>Al^Pl z+|RxX#OsU66|ANUxetzgaGWM~zs{$Z$rt<$ZyDHM=6;R}th2(_1NoPaIV$(Q1D-|~ zkD-f)i2E;-i+PZ^|2(^;o+jQtiEkW3jw9&f5Oz689%Mi9_Fm-JgB-h%L(O{FPG^1} zHrdRT8!2Hu8e5Ac*WkIooqwS|{~gYcfNE~ffX9I9ZZ427JVo4pj5czJT+BXfvWK{T zrxZ|fIW3?Djz&1z;TR6bC|JkAF%^!vw3Ow{!Ptye_F|#a%u=~QR^s<~&bMG7v#7F* z3V(5epWDt;TDl>Q7wBG2A;S@I;IDPm$pgM1EF1|>5*%4@6v9ysM-4S@gr|*M#Bg#E zqu?12$8>TL3(0vXiFTl!W6bQjf(O6AuYW~S)`7r%4}YXvy={iylep7^c*jW0Mb~ma zvTdR7SVt~qB{o?q!PF-jo@8pt&X~wC6FH_M$29UFQ;=g4cA1EOjOWu>uINPBe=sCjZ{W6yUKZKA!D)og z53W#V-tblon-m#ulPzOy3#HeNH)Gh<$Y}dU8D&32M%Z^tm%~`;beJx~92d(_$BiP#9Mw0JC)-R z;dseVeUP;4BcxRyFU|TiY0~pX2t%(e&HmNaoOSN&l3^LA-% z^JytHKQ1L6?@5X0kAVEcT|5H6y3HR-WjK+B4md95`y9@z;o%r;)ahd*ZD#ThW|Isy z`$@e=sML8xON~d8RC{K~AkTcM^emMMuNo=yV*P{Ha4F&KMn&E;q|j%%6!>nJJl_+N z>vuzP{N9!v{~sim9LzmjO{5*9Qky`)8Y zNJ^x?Bu9oyVq}ygL?ucByV=A?7f4)8rNpwca7^rQiH;p7k#Tb+B5u7{;}1x9{ACGC zxC8zs;R(z=0M>YN_vn56E~lQj~PY>=pA zFNsVJ6l-#rgr~$vSW2>lre;eBYo&tIYQ;j39F*Q8f$1~FKV!A{W$YE-j0eOg^EvRj z_>zC|%NW2>>bnd6O@rwdoAAeG9zk;)gDgXlqXGFU&{G~hl7dd6vs@%RLnombW(mpk zliqAPwHFjKYY7tZnY ztdPCxsP8uT)(*uVhvSc(_#?-W9poR{Xp_iRge>WG#68FoTFLx_G8geGbr+9PvzW_x zGe=p77|Wu>P?iL8L|-Sp2R@r6FrhWtZ~7YGz>ZMbM^ zubVHnb(_Ve?ihj0Bj9bZsr?p^e;^NYKl~fvTrq~Q zxNl${O5a%gv6r}GG_fzTWONaG4MPXW{~*_t|eM* zTWCNnbT}%k##jmGu{_=ZaU3oxF8e;wRQCJ>HK;vO-XzKLTi-v^Du z7x^t2`64JP03CU7y$-otx}C+YTT8;m0K7mTu!01T4RGWxoV$yQJEwuwbh`V%B`Wv| z_=*4z89G=40?#UV7joIm8Q5VamvOA0jt)4NK85(3-z~`HHIX?G$mR-c$2*cNaN`f$ zff@LMU?y=ygH%umaH6p&a4dh=w+!s!25^B!_X0QLFTpQ3KWjjy(jI1Ehq>G%=HrW? z1ys&s4g^R5q5S4Eha3`nX4?X1oETlq(gP3R2SPzS70L!QCY9`*i85y_09$dm zGX(liWAx7;{24IEnDQ4d>YypEwZf@#m$6yCJ zmLtb<ih~DK05&oK#pz5u`PfbP$WnP_{Fw1Fdk63t@|hg zzufW`<^3J-gnKaL~EiD-aLPSo(d8(`4mRN&Y-@I2Rk&fok~rc=Ms)U6fX3b?Z1iH0Wt z9s^}NAEo@`;3PN=_;Z4fU-1B+9|RY{C2-l1e1(>|A|~=7w3UbBnZr>Cn#m=MwrJ)&xJh7@o{hy+yYO6 zr@?LT9Deem8*?^{1TPkl%x)s(%-_!IMMzW%54p_B-T+{(u~B zBFFEL<29nlSBSvw5M{oI9M2Q?KTDMO3=#5EIP)!79_QPmNcjl)AT{^nA)xXfr@?V> zPlkV^kMF@3*ydx=QWp<$9~SBmjr?hppU-TL3QDU(hb@%dLD?fHdkkeypzLYXYYusj zC0Jk$ZoHM|a{x`8flJK@`MsQ=X2)PuxsSs@?SZiiC>eeRUxSZALu>rwpkD!Nc}FwT*SIYr!m9Ge^=-abg4 zZa;GDMULJ0$4>n8e&X%zj%;!s?9Pc@*5V(l$v>-wrru>QI2xj3W%g_w# zK+qiT*2Q8^@#~+-NBk2E%=l8rS9NrCM!H$Ll9L?w>lx!B&t|&1wd75gk&9V`O?W~` zsp0U%QI}LWvdMH5!cz`U4LptTwBw;&@br@Nm`YEw04uF!W!Ww~_%v2~lq=o=-+_UB zk=r=l_9Xw{OB$V9%t3$neHhzu%US8pZ56%DwsECyypfZ<={Ryieas*0!AD0U$4J_2 zH*$0#2P+=nYQjs0QvOJ^GJ)1Jn=>nsZo4$t9G7~V>r!XSJBaMRmRbk)N4krfa6cHr zEi9b47i{M9O3p3xX6S)lCh>NqUPq0LvNK4Rt&a@13ziQ1NEu?EAZ-q5(&~^S&5pd4 z!m&aIJJv~qQ;XC&bxN%>YcQNygWRd< zBZRhCDz$^8Tsv6GbVH?7H(H8yQ>0M0SPI;kO{6~}x%z98qkm0u4Br5<&>$CFf&WAT z@m?~+3a~1PcrT9O7DJG+p^Pig$q?){*x*bqhx~)yQ!4cVQmzk^GJTAc7?PyekRe6v zs9R_#lYC>XKQpv&G!voyjkEHT= zCxh6ZTidd9Vt>9*;(QM}8HS#k1G%?)+eOI$FkjKVqUeh}{M zIoKf=JAheP44IK*B>GWvK-hqic`ZES@O713axvLHo|5SkAnCrLlI9yFslJJl;+rAK z>>HEhS0M@HV&VfjB#!-JVgqMMbl@6^;=xp8&;^OGJS$eqUpf9;A}u_j0H>+47>)2{cJ^ppPU5S|lORD)B*a5*Nf9 zAuKr(V=0yB;5vy4ZkLFV9O~_b4Rtd3=lHiDG5)`pq0wZ@yK;&8Ri+T!tBK}c7O8{%60-2k0lsfN% zb7KWV@Ij2R!4y7^L6)J&F&G=e($iQiM`VV|(UR%+!fTrcun9-eSrM5+m!B3|aA_&&m*Y=Edl; zYebtf1oVj;L8EKVMsdkKB2Ky2!SBU6_iJ$>2jdEMQQu9?_+vYLQwRPC`i2s7@x2LI zcrlUWb4@C`ipFNa*vGrrPKkuD}EMi?%RSG=(wZR+uWTh56!AR3%PDt>ReJ zBlbnJ#I9(a*c2Vaxvzj%`TRHVi`W*jt``0cL-5B=@<84ABNzjQ^L;S#lo6(7a}DN| zaP-2KQDUwl{;zZ2<{PZE*wkW zG=W^yMD7veu>;@Bd(i>1Bp_cH*ZFplgP};xFy*LEuKNYFdI9};b+ju=Q5BviyREF@Vh4_)d44DWKc7JsSe~aT!9WpLJl=2 zWlA830O(?JA;2D!yD6MPCatI8A3@oVazpx%yv>i?6j%cSm)fQF-aM4H#k2*G3lf&_ z44$JGYIFxqfWhRiP~R6J$0FodggzD_$0FodWC1Z4n490iN`NyhK%om(a5LD4(y!3~ z{z%2Y#|fE(L7B6cAr3Cnu@Vq_gIS9Y0B_(9oYuidH5jzhvEPOI+z;%s!I|^O zu@N~oBFCl>kN^t!jxILhSR1J9h8>iHU#`1DWB3ZN^FF*2;p~K?fwGG?(-+*wJe;lM zpthlZ+{lqXBZ%O}0``Et|39F5vLBu7cVkedXFz})hwzOc6zVYo-X=Ip;Yr_3e+-8YWxDTY9n3+>J`9cm{cT+XoqUKlc?*2w3O2b~%Mo2%!GM>k$mJ{G_uy+8OuX9v*7(4=SF#_pd^C3_1`57kyC**j+mwZSpIg3IbWVaGXPUeVF zU!w4r(8Wt1N;}+x4$%)#$5`s-Po3N`m;FV`QJfC}#q&5&W#0zR-Ng$WUj%o+E8ulN z)%qWtzsvChZ1V|n{3VbD4arRGuVlZFZi37CfQo+s(HANU@!R}^nh&A{9v~RRf=o~X zYKT_VT9gi=q>*Ga`iLAS5v$K2Vwp#7VhM9TR+BH-Ofl81pS6YxSm-*NOIDL76WR%|4GrD)*sgzdQj{4&niz=0p6i z3_pqkb<&Y*@gmO>0#_^?8I)g0*@MV?G?0&IB|k8XvPY7h>ZR<7m}ok6n@hf6soWw$ zeVo|pQKIyRan@^myFv+<$*x?4QRP3>9E>ACtp~X$!%x`cEAR<;k9h}g@{Idc<{i8w zRyYzVKbx|P(QFm@hz4A;m9jg?5saYhF_b-lvZoQ*&VzLs&1M66iCr|M<20!&atOyc zNX_=csMemSxfp6c43&#eGW-Dk3X~fu*Ls#Y7`Moc-9Q%)i3N^m%1^<%Ib;$_D0>hk z*HbocDIvZ*M8tW3D0Dw@|6b(SO+>zvICDFhf~}n0f>fJGB5uGV*5gfUVO3D`FP4Mv z;QTXq11NXD39gc-Q*$s*ql@Fj{fBwpe*l~8CC=SNp6-6+*p3`q$%AYms@+6Hy^#oe zJ(2KQR4X9?Pn*0NRmP_3n z=@NC6;DNpZ;jzLIN2zJZpGz*H7>!rpg|%=r!qE;#CmcO+Oe9Y*3rW-H-f(h1*yNaRyLpV3r`yY!8MW=%vq%dz!r~oO<{? z;R=8y6dv}Vq|MeNM;&t1AV)PUgE&)R({U00*QsdwyRgQsD z=@=#zj?q%)lqjW6tif>3lOpF5DRi!ue3vH4bK#8;u6>g2I!iL$R!fH4Zb@@HC#f1{ zd}&yLr~L_#g8=8@Jj88nM*>3&up}NGL^GxcXGn;ChM|*Y>{a9LDCHWhlxU1nq~UE4 znjp#7giEeAMsl>tlC8~@Ol^T==qe;#*C46nVp4QtB*}e-B)YGZc>OMk)1Q@C{ZkTS z_*h~M{{*am0B7LepG54RiXWsg?BY0s@8e<^TOwb3FvD@|Re_%r8eGWbxJ#DaEE#$~ zN!JHUDsy8}46J`Ju>Qf2BZ-C*i8t0toUu(}jiV&mG*zNZ%Ot|QL#)h+3HP`qVIChz zxaU8`N-oCgLF^CTo^*VXVaCdA?7(p<-+MX#>l_f)xdsq(dO1iMxtL^=L6Xc~l3)&y zcypMV9=w0y% z`ayhyn0pXN?4OA*z`MSP$9~250+?7xIFL(df*kb>(aZ6XJp45+jAzc|Vj=>x5*}cb z&;Tz94hR5YVhN0qpul7a49by!pfd5d)QfNMF!2c{W4#eTCy!d}q|g+??Ii zc{7|VYY0K=2Iirt$JCwGjI}GsMe%zva%N$#1auOPP684g$meLp9LpY*>>+H7^A|&0 zsOaOO#XUYnbn$tjO{fGdqDdSju8A|mC2@^7C+!o*q>JE1@VPi8{vyta%;}{58*7RE z2NV7@(I%Q{6OFWq2K*7Zcsa5ZqLVcIBnF*?pcCH=8!@K3hvqK$awAjX)=X*vGSg_&?W4+_JUel5G&@94~Rq2^5DMtJvqni)~J( z*yNV*hw6_z!6dL0FqY0eM$~s;c;|7M+7D&y zIQ)@g!x+TodF>Jq!FWwZgkOQ1YRJJN}!9*6o5TCQCcUJ7(NZG;U;(pXL}f9zegwd4{k{8 z7y#b_epYYl89$55IM&a=WYcL2Ad=q#kjpfg91z#q1HzgCOt7Uxa~hbFGG50KIoKyf z#)SZMF^)zwb`ZdzW2sc%avI%U@;6th>|5NJzX#+W;QZ}8l;#EW%^(ZJf*{Ojo`(+t zd%%G5SIp(}T=X#qeat~0bC6?>3HX9=kc@(hKqKhE=_zpL4m!dIaK4wx<$Qw!Fb88H zrV@d4lgw7?E9pr%6wsI(vI^Z$cApYe~?$gu`F*7$=ckjXhZ znbkPdDipg4pICX4!O}B0;uj2BS-k+?ILaPIxwY%a!EB%}*hD+rOg{j$TbKiLA6#3( zHb6D{^C9>D&v7T;`{BfmSj)f+IranrY@!|v>_HcM`Z!M|cOT@MN4Wk&%KA|z!rO&t z4R95~kwV#Fl;yb#{@tvD!F+@VDfQGr7ZcU&#pS*hJk*;Y`~{4hSwUxU@$pOO>z6J_F8y2f-z91zf&+ zyvp$*a2??8gb;W0AvOdq_{cLJAe_8K7C~e^Ko_@Hf+OHj@F!`Zt`*cXlT%UDN4+Ik zdzNy}gNs1%DGpTE9|%6d@oDfBcm~`C&w&>J)#?veU+4HHcpJQrK0fefQhy9VWf2ed zhZ0!R@IImPA5*c9RVL!MIS@4;#1$Ap0Eh%?Jxo5)StZe`T8q*~K4Lg=>L_vqW0@~7 znTTZuxrzDYCYBO8tnGig{|V9cpE1sdRNy^?dq@68dS+lBju$wpbs%aF43!7?ZyA(4 zDi`C>R-)++ z+;s$HkD=^|G?5uJodraftK<+3`Tz}TA6M0j zu@0;3#6wQdm0c$%@g^Gj0c#DscSy~@SOC6+^Ih-~P%f{U7%dkKx=;TM}|BkNeBw3@ho1@ZP$;@ri^u@E`tPHl6^3lz~pE8wYtr;+@?5O}&Ne=O3d znITK@m@S+=j2BjY--3Z%kk#=Cx{yoUW=^=1f8n^5u5B&yEJFrn;==0&r=B`_ z!V>^bC>+snB*K(VE+Pk>B6!O2iW)T01WyO~fze1b3D2ERHeel^+RLwMXP4V}(qFOS zzrnzc%nuvsiap6cc#;3%xQ;G41IP5 zk$(Uy{23n5wN68}ap+~FGxt;*XY{Cp&jgnbEJ4&MochGz4ZIZ-Im)q1DgME3m~in9 z3Z%_P`dqA+jXkpPuFU?H^$1tLO-pAD2K)-=EZh>q(18^jfW>^C$+-!B3~{*K3_~Z) z8XKu|bd@SwclgY3`NC$QPV51J9Qig$l53M8Ikx$dWy=~2yIM)NYn3$n5t72dE6HJz zBsy%71c##%=XhOW9p8{xr>`Z}nT$9%6^uALI& zHbJ7?7D%LKvsg7pB%D{qg=u~#q1vw{j2uijI0pZ&1lmC|!x}I*i8v>o;a(IvKqpPu zry6^e;3v6yM@iFa$mNiK(0EFM#$V#KArhyJlo)NiM6-Wxlr~Qybmd|t7Zau%CZX=* zB*cBbSoE7Dh&eF<`iI0{|Aqt@z6H!Z0EgkHyvpAE_(Mh!4D3N+^iO>g1ICEpd^t}JU!22Hzy#Ik*jKx?dfySW{VCoY;(;V?N ztru_eA@MR_6;JbP;_2~?c#(tgHWT~9w+-$!**uENVYms#XEJP0#SX|(hi%I6le}P_ zbK$RXEDxTzGJO~O+el2438zlz+8KU=JE$#vP zL>F*Tv;i-IFZj$T0qmy!o8etij6asrCzRlieC|Z1CVs0z#v=SA3x7?*M@Tb>#o{Qw z0UGi0Xa5C%4>1S$feV2``!56&`@^NyBP}n-A1ir03wrrH40#%nZ4f#t#5S4OCIOv9pp(D|J90R#Vhq-a zA=o7P5FcO>_YmI98JZy4uq@Gpm5N(r!I9Zp8qxF8Vx1JL_>(d-R2LIq3 z_j2m2)*~&gA|$DyO@N+i!ZBoNK#qzc{1G`bkcDk|S?9ytb97>gb`tkUt!N_*qK)(v zO=N($p(Iz{xa|^^Ax_c7;uu{g_A$f6E@pz*#4IL(!JUY`Y9!_f@Dca{<1&_@&T2i< z;(FS|VA=#2)j&8{OTU0z708#5EGdPId2_J?I`Kj$h9n2kBxuAXUN27Z9^#nbCk_dr zVwVsjwuv}WB1%l8LhKbINn^nRa346y`J3Pa@IA_9PAUAW;9S^D|JX{K03%z7xteGb zoG(L`>_J>wM(m5u{LzUSo#?V0#3jRx9E-cyq?^d8(21neh|_VJbQ~xn5AcT>ZJ-y- z1)KTpICu=aPcVTDGpbhbP-HsGCa#9jy1K$9S(%Ibre|4LS?;u_~RJtFp4&bEUCy6g^WSy z$pd+G=*EevNs|o?$B}%78$cIoPD(wxs1F1Y0DIKq6ZHsP2T9#zu#%v5KMKCe4d5*r zJ~C9X2SpEd7)$>+0e_r?FHA%SnZISoNCj+x z6F`n>_{KC3U;(ipht9VKpunkIJY^G|&?yLSGf4T8hR7TYM4PqY_NoW8I{E> zqd(+m1g?Og(7+&bImdh8n*M?3|2sPHowl+JeJt|=p#Z;FRx*$PRZ3s73I{yQ4e~KM zgimmUUt|`4uhK+AR^leBX)?HO{5smE4a^le#_>2ffo)D67v6kJny6>B_x$}Mmc zJOQ2rPlMawIq(8_3A_S+2mXj0Z<`1x!`Uw+he-uZ1lBaR_cn0uH2B|nAS(Z$_65-c z9}or-h>NqCi%~-Eqng}6BTvnTkoV{$Rvk@VVl46cWFqRB%v)GM-eU#P!$x@@Bfg7) z{zwG*d!qN($tJu?Y4`TwxXx!a2Seon{)4Fh4O=o5TJkL(@CCsYMO2hZ`FWIGM&6@_ z=%9)D812OAos>O_vd5Aum_+qwqK1X2VT9zlhFAeR3JG4;TEP!zYC zgQ4a_{FeU**I>$RnDj8NbP<<&j=aQ|{k)1>twGrV?#;pY?UV$isr1| zSoj{YS9L0dhk7h}w3e4|Wlt z9#xdzK>00{Ka}pH8&BvZFEN?C#2n)G75sl6-Pj={x`dTp!ehQ63Lbd>^1V42pTMWw zSGl!v`-?y|i^J$*FMhF;7;_tO{}ybrfw*oRa;!lgtB5975cMr1zFbNKx)>i>h_B8^ zj=9)nHd%<7FiuArwM&S4bIe36I3CX$hYVxyqL-uMe+pa$XTecGQ|<2xH=v8vw2|e+ z{fmkF*{zPeN(?njM%$U(D)NYEi(#vTqZW=Pas)%*7=aYy$P>(<?Bnj63~@LjW|>jDS)Ojm`yNO6ND=wcqZn3>pQDmIyfZ;U6-j}m&3VtSoo_!TZ0=-$oT61d%NqB~o`_xZ>(9a$zILyy?O z>jtMgIS4a#@`Wdey08x>a@5dXs*z(5`lzJDa{ettiV`GLvs4POlG?>J7mv!p(%E=? z7JWq~J)W8cr*O^-8~AZ63n2gC&ux`k-Av?}KsP@cy$p9`*dvbcYS0^NKxnTO$WbO1 z>STpA2CgKy(&5U3s}!zkc$%?P7iY)Q!_C8kHgMGeB)&|~`!e{7UT5Gf;U@!mtPsL& zISd^DwGZl4_$<8FXxk|jVPGX#l66M5>49)=(;T$UA&QTKPk|?1ryb;2+ zP%N%h66Dq*0d6D3Pcuz?HSB$(*)3k0^Wv$wEgsrWz)#{yW@aD!Tat*rQfVDvS_&gA zzIVkk+KXVsi=IlcRxZ{`#aeM>XRKN`GCb}QqA^LZ#z%sfEfc6^MT9n1{Isd!tIHD~ zX3BW!n#7Z3@@Ds`V$!b=BeP@-`U|4h^R90Fr{HJ4lMR4xQySipiFaf%2<6zDj&~+A z5J$c$^i+)Ju-HJ72x_7|Y{$~fpSxas+&#pb*)m?tmhsd_iHAN(%w%UwtXeV} z2aCbjC3@pz(J@O#XS!dsrnBN^dQ#lXABo2NPrj24fPVwr%W{dt^B4q!9s-4q4157O z24R~*{3L@xNdmTs#5NXhJMl5Qiic4rW}{I|CT}sCg2Z5EMTD6Z5#~&B_u#FV?B=WW z93~pC3F79pSX{ifiL>`9arC|^PTuc>?>WaEm3ps(cS#}sScE@<(FH^v$fPFoS74j` zL`MJkNIbTQz&1hX#LL%Nj9yyNdl|&t%TsjT{vcGeWM?$YlyUPd6j#3*aq$}}PX1%X z!GD3+GfT!c;Dp!&JSw*S?}Bf|&YztS;93Lk;!=8wGI|OyiqAthSC4Gv=qMlCq@fcw zBav`)5`a$3!S-Z!+{p6iMH65aw*X&p4GaWu8ow&!_iEFH@IK=40Cfb0rdIGw@ zXc~14g2pJJ`Qz9oFcQoJ>o|7^JOtk4T4W$Iqu!Xb49WJg&b2{2vfCyPAtg`=+u&Mm?Ro@GESY$A0;<{ZZHk3=C=dj zDxu9A02#>4^si8YcTO8^VhDjO=maf%AA~IV=q0&^_JB?TsTS@oI_&41XUhx}XR;a^ zLUwl=uMv0y3y1=#fD5yzNY-#LnNDsc*hi%-nO}dez+Y1Ea-0>h6)Z%1RqH_j@-bmPel8*Qp>hdLZ zAtN!3zG)UZn9a`|>p{^>B4S|WPkg5116<>Td<--H8_3GQX<(+xBwLQiF%f-CGyq?K zUra~?@e^tMtH|mcrU5?Ajpt<}SDH))PO*qp=l)G^Y ze|MgN)610kcj<$3C>+)6@d5rmZZrJ=ml*DYe=8i@zz(nz>;`+mzPrbJpVjyM;J{rR z5(Jg7T2-10^V9U3*bt;pW6sL#y#+>@>RKq0GAWO z4rE5oaKx?qGZyN24p623N7fH;ya+CVE8rm;W{YS6zVS#LC;{l=5uESFcEH6Czb*~b zv1k|l0CfpHL{_VXwXRkkYkA@DG`0UiO5g2%v3a0@&Mo(8wU^WYA69XZ}` zXL>;pZL;PwEu%H{?Acnkf=Q}{x>6G$GLkeWGuucF+3kt&nF9*F;LMTGkwlT z{xdp>zc8BrmHgTI;o$@;r`3g$AgPnSL`oAZtd5w7I738=>NA)5R*7HO+ z&k~9) z4D61fW@UT}=SSdmK=0Y_YRa|Gk}W%qE)ElQ9$y@)QGONW zH&A{H-AD)JkD&aqXki)_QTt=8Cl=p>X3pX*Pm>?`oGitE`k`iKOakx0_Y$}XRC7|z z?J(FQw(z;ZrKcP6qWnN|UskdcapV}(?ig8=UqJb#WI+bOQ3ppe978F8B$`nBbIv4^ zR_{&Oigu2YJ-ChstNBGgbH%{U7~LEdziMKt`5gzUOQ7ZUcYmwU#ZubH0%nKIArmkY z-!tYkrA@yH~2(&5P^TTo0MK&=dE;NNz#6C<(IB+f4E z_nrcLGY@;@(Tn8L>*T_(a86G~!ifICS_8L4y0lryGYMJ7AVW88WC+=r7HmS~2A3y1 ze((gtV}&OM&rBiT|4V-%TOt5;x#jX&P9swi!Q^1u@Zj)6Rc%22W48k`9XhHtmM|^3cKHLnw>21B} z6})V|7cX1-O?WrOUvF066fL~Q4U(M+UX_C z#v~!OJ`!vjC>Gl=3A95ZyJYdR&lX>YQt@%97ca+Q;^{a}%uWl$#NF5?0^3;h4&+(LKWNB5Fk8l? z@f0JoWei$YM6hznom`AgS0Gwlm1x}C#m&7}T=jFsS-(-7m?h(=zb+2Ul5x;~#b;&$ zz_%uYJ|Ua9JBOh!#}S#d2V|*BBn*iq9Kv2{p^WpejTPGjdfJGW$&oyc8(gf2aA!q? zo)r;#i)i$$h+w9St07mMjg{hLY!OEjJ2IHqk%7l{Hs(VNl&*o-z~8{nvW5Duf_p(e zu~q>?Z_u4b=#s@4kKanMO)j=c#Wu0%BpiPY4CE=4udV1kTts8iiL1#dF05Q~HV285 zhgBRs62zVzWb8c4#fIHu#A_sh;ta4B90XT6_bT`j@N|KCuYh-cF>RuRegSmxxs`J@ z$X0@ma#D#m&`B&h35#OPkH4CNY(>j%zAipmar7~WJ-f)*vWtw3FF*R?+T!#!n zzsNfHm%uxxn)^cy?Xs43$>-)l#C*t7%b7e=7W2nviC1}1`KfIFl0L9TxZ;16N{k~Q!zhI>{6?Gm;1G!hPS zY(o4h&KDs|8ajzVj^JE$fS>58qHD5^*d@||Cb-dHkRi?hJOR!UhZDyo0hGuat|e{= z7!Q_U(4F7`3Vad8B181QWhG)Rgm-2OeRLb`5_Gg81K%rAJo;*4InC7>ibI&pN7k1q1iMIO3P3Ef=m zksAXt02k*%lG{Ut=3&^a;4DGqbJXEW>OlShuDQ6()Dhe#Mj^v!+T}?4N6zIUR|4{d zp%Wj9(W4hvWtDf+*r^>Il3t0Mp%YD%J7M@LV%%5At;@NlW#`; zQ^mTBW+CEaRMj^Qe;kVr#&8+3r1D#27flMi7?H;fv)UpPgO~v{b3`_2 zM2^AOqyd{W=qUhQ)YCrdu}3{lR9{VpMH_L%P@@_?r&kkcV~bcv%P_J;AS{$5RDJT&E(=4+o<>h zbj-iQ5&t1m7am*PzVR6tLu={w`}B?QjEK_(pQUzt20eiuITgrTzJp!yJ!+6M!oGzoYtm3Y-RKz&UUppz8j7$YmF1b>JIU zB0wIGn9;>mobU>ySGf4fOH#X)CJJW)e3t#>fDW=disCy86rUZaAX8;mBir{pMOA*B{(E3+!`4b9TOLykeHm3nx2uFm6My7UszOJT2@{$sH(cQ zuD+qMskx=CeMrZ!;ho(hM*d&+-UJ@1_Wd6pdrBmfy`o39WGrJR$x@FsYocT_Sq6D{lq9r>w)x-F@;v5@p3nFDd%gbu&*%U9xRp8Q z-0ySU_qpb}?(@E{>plnC53@5MFbEqGx(gQ`5g8q`I~E_eH$Gv1;=!athf|KEre_?@ zJf4-Elb2smSajm#snci95=zS|&Yiz-v657M>2gh7eZ!S&jn{A9YHB98-oDe`LAiJT zL1*{Fo?hCczQ<4KPX`#!hhDrK9(g_bW_;r9`wx>Jr$2rE@{RdFE$mkh#^1T?|L^+# zxwu*1xB$!Kg@Da3Vi~;zuzD$$*~_!+UJ)4nDwgG|vrHceY+sjU{Dv&+Hv{Hx!LolF z-~hHP4{&0+fE(}uPnHvGV|l?2;0FFIKL}vlycruC2S)Pt-Mja|P9{HooSK>jw(|MQm#<&HeFHDl{_np2|LJ{Y z4mYQPIStHdU`_*b8kp0-oCfAJFsFez4a{j^P6Klq`1fky{l92_sCthgbiF zsJZGn4a{laKS~47D82vKpT`$-YX5NvX-V}jeeq8sItr7|{v+Vi-7Dk||0H3qZcYPp z8u<5UpugqXKlxl}-K@@$G7)4#EW*`7NL;Ywrei`-0cM15mr$ zs`vT@mrVZ-0FJ+JAzr-m5A}0Za~hb_!2gj3#(T)Wbxj~}=t^b;`rOCgiJojO2)9(y ziR<_s;BvgH=6r;dPt|V#_abx`fGqa>O{Kp9ON&!eONG7XnP?wJ+vIsW@{ z7%&8EpM4DK^yL070IW!z9Z;tGvmW8qHER=b3x5GzX6?h9ILlvv_1&{c_)@WB4d?`~ zg5Cy?yR!k9!)JrcmCexmvP&Bt%?e;LA6A{O>UjR?H??zz=QQwd(ZJx9+-Tq1ziqnj z#7@+F1b6E10Jry<@v)p|>%G|#v;>16zGYl7JK%)vPv28KIxC<*6s)EFUKYj8dXv5g z*4X|mp>JjraX{=>Jz~euEP&Tef7K)0pUeWN1FMRE6`R>ckO=W#)!H8`t_3hyn^EM*M2t!%_ey6*qjFb zNdt_=qImr0-yz=C9&pzbM#!E24WKi{_J{X`y_*%$!+M_Zd--$L_`s)3(_enE=G<%& zZg~ExM@VPS21r}^7hv9jSpY9s54-#-(X#+9{qd_7d72@K;&I8Brc>OlG|;>u33+pQ8yT^IKa{l=nts zt<~z92G+BUgRFDD4n6Mayx&E8K8t|4L;sx`80)?=+g#3s|g_CPp&8P*N``{Aj?DdEUIDqy1*37~& zirt-A3%1d42}~6Qwuck8a{%hk#JlS){Y#EN2LK%S)J4on!bjqEg+(W1%?6k|_TQ(0 zzJ{Xx0Rgj5-I>hW$NfyCfK|zzm{l`<>8!t~_q~M72IynGrs`+0lei57>ayVR%37!j_Sv)u-z}(+@3WgY-c{RFm;#f zI&CExagl|>i=~yW!zFy*pMFm5yxY; z1b7~MX3=;I2k6hN27y#~u%?l{9>ELeD6A)|*-8nl3DzUcY~?r%(9c#2cJ{*naQEk= zAiqZGUy?ZZ!3>`E9peLUBKFs*KR>EGJMbT`fq|Ba%-!3gXYc1@LbRj$_vtmVc^1UeW2~1<{VW-rfX-br#|I9Z zWxfghIr{t%p*H{*kt6#{`u9)q8*so{wtDcc0vLb@t4F{GsS|KO7)%2E?vL0813ZFD zu!8|U!2w1v08IYF>Cy>9&aW2%P4T1B6{&N!v{tjEQY>A@YmU_PazIg9KkcQ9=zTb)<(;W zASRx zFaUVV4|{>n2id|fEND7R0(+Dd0ODZ)DtiOqRX#8PlYJ@&UM>U&;9(*H;DFx0a?wAK z95jdtn+9=`7^b7KmA%Vm@9jJMvAd%7!iRf!i*x(`uWMlJ;gvH-!aZkAKTKUu-(kMu zdyW*biE~2wvB>SO;RA4cxLYs>u}j!Y3hw?)G+Q-D#KNu?7F__*0azza!2}>gY3w4} z-~hxGcEB4Bz$tbBlP!J0LZ`q0tKlM|U;sNfUcuYcbu7!u=WsV8VIOARKUqolzn0Rj)}C5Hs~AT=|?`W=!HypqWW(RPFNj|!=AuKs0FqwghYPx0{U3~&0_a4eDoCPp< z=zpPsm-lLl5(DfxLgGNg>#9UAL%E-8B=>O0Yzdw*e1Nx}pP|GfX^=e7>0t>XXv)6(> z*n+h&cBTdZaqLYnP2nQ2FhBqt;0Xh8Oy)Mg0G;qo7{CBb4_F&2aKLF8Knf1{;Kq*N zg#(yZVADBx#)`>2$7YoX_(%#Q-mzx2A|SS0!*rAXfl-b&<_^F$@c!W)_@VFnpE@g# zMSHJP1}uCdC!i(H^6#uYLX-+aG&{0?*@%O0df_1s z@WNGg5ghaYahe?v3A+gJ*EZP!9MdF306U1Av$2vX>4R;N?d4dIW5!WipFlqZB7Ui2Zp( z`zdLb;C<}OnG&BZtPiZ+)9(He@o9zUuHJ{mt7gH@9b#!^;BNx4At*3w0=rdg0OsErnqSa^>;Q*f$N&0- zB@Yw-s`#~G$S$Gk*YUqTW!V9JJb%^v+~8&hFje6I1Z-x_*-Mz+MsP^zW^V)H0Nh{) zG=E=fHxqS%9Wc%@NENUHm^){l&Dw@fFwVdMVK4~{c$mZs24H3aLz`LPgpoP2ZDuuC z9R!!aZ2OZP!2w{lgPD?$uQ#5x;QWX5z_2{R1N^* zD;we_CxHDjCZsqJu;>8XE5K{;*_vPmaY%qggEKh*u(^FL2LLv=f3gCOaAxlV6Mk<; zn85(ia0zgha~>9dKrDetcwq?_0Ru2o{uQ7H9xrD9wt&1+4R#q1;cYPU{u;3PC0ASe zJmml|%g_-C8HMMrPzFA6R?Z#yKi9y3cKikli*1gZ9IQ6jvi?T)|5DV8_S*8I?DXUV z@%WgCU08oV_Nn^SK%3Q4>{f_mZ-L!5SbIF|fOVXRel|opCxD%`+~owo+?jof%z_88 zHNo`c5Mj>_Na6s%$QO|VAkQwLd&b=G2X;O?;FAf52zCI|?_U8pRRxo9m1FE2V@FKb z!`pyQV~@ZA*V!d7JK#JOp2K2h!g>)4lfZl%!DdsU+u#7^%LuV$>iU+>zF`NUOP%oC z&v$t5%l90o%^mo6Y2fq6cN1@3gBSHru=jvgm49e=@D6V`r$4RCjrFxwD=V^xB>wzk z=JfQt@f~9maTsop;IA050eU$BCTsxCcmh0LfaMgyE`c-Z0gD&h;fU@a*z-pdx*ToL z+1uE{0f0rA_j3SX@q%*LY=C18To)|d$hk@eo-{?k0}99C9C0iARWK>=@nJ0tz&x~w z{X$?9L?)98?*&`}^ZJi*OjuUkbW>nb2`m%Gg5ScY7L?Ys^t|LCG#tX_4*X|p;LWq% zdv}@|8)`@w%1a4^QubV6V^Z)I+qHUYloe!`ELy*?iVH#gQE8-S_931D~L zS*BK=4Ch~a>CXP5{$fLWsd3n3_{V;_{t0bu4E zSU7D9iAyiO+&;)z%Q`YLJ^S&wqyLv_V5Fn|{HgrRBS{IYNl=hK2IJ4pVzygqDN3?p zx__4wY&zKccg3$Q_Q*=pufu$3)kyoL?L}bob2>4ydRT!WRK0Xw| z0L(m%U#){buBc*#Vdta({brw>khHR%m3zS6?28?5;OB$=7sVCzx2eNlW~rJx^xvm} zuOG%oh6d<;)b7p)_d9!^vT5M%i4;68VEYy~CtDi}Q$v*28V&Y1O6MP7S5&7(Z9*z|Ces%ye z3@!ndNMoK-h9O|V9%dJOh|z{M!OWR4J|HBtHo<2>%%@=>m&PTsY|T24T}R4p!}9Pf zac!X?d(%%;Hc??A7YZ$Yyf6F2LLt$Dd(UdhU^mV zbBuF}?0^sc@HT|l0n7|>I06Q!GyNBU!C?4c43oe-Ig_p}TH_c22Rsh@-V6Svs^*@N zSv8N~^-ShfkM%A)B9jU(-e%9@|BdXVJY(mfe^pTvi~D~U!hRLEIVlJ` zU>ptiU04&$6k#}mT>`U`BisW6JmiSP!T`*J((G;U!0-R04Ko0e2Hpv934?onjJ856 z^f!fORKuq@0Di?o#bARcHa@qKG73NY$A0yROD(-4v)9cXozuYo=NkAl_TpJTt*5*5 z{{8z8x@b>FKC*YAE@f{t4(q>T`_?U+J>1NEm<_5EndqG7W)z-9>4$}(lo#KVxgjudsO~xFJ*5+OR5^#Zi`4OCBJ~3{ByT#UryPTe_YbZ zc^8;n(%jKG4g5!F;PKs->sRY*E>)ANsxH^xxbqOsopZ4}wr+NHa~;^(U_2)-VjfEd9nyD8HwVPQuKt7uTdD{+G7QiJV=)ruFu;pFGbR{~Iv7FA4jy>DVEWwr%WBk8(orcV9|MOUA|h5y`djM|q~ezX4{(x9DG*t5aEku-OB zP6Pi%8kl@LJ~lQs@os8%emzxrvLH7nCnpa&dG>tGtq0HG>BVp9jvK8l*RNl1X=VMV zlc#@TIb3-J^S|CqA%H?>G(3X?$bLUUExfC2!wZ|?Ll{609tQIu*6^^O(D5FA_V@jB zj;M{>_vBpa`7~=ali7I)pGRuvU?wxr-FJTzx|o5P+nm$DoCf}v8Wh z&G{=S>)5gE{Gv1ERafuN>Vrkj)*I}c+-&kOzw@bU8U3C!c?7vSfgH-DZWDD&pe7h)Cgd*MPM zAyHNl|En->AjIeKQu&|qa)~0iMG-ur2wqVHvl-C|S`gr36;@lU!pq0Q&Ci7pm?t=Y z!6F1V7Y`3NFE_sc5BS9$&c)3m%8TGzu^4IY#4om80hb`Im3c})g0xQY=B5YFw3qmf zuMFEi@rQ+u^Rd%a=sK8=Q;k~cvLm9Yb6}oQqTqZFY;h^$>o-ZgC8(aNjZcXa?jADp0)eV=tH@swXMA`KI+?e_{SX1E33OreK`fv z7@GrjC+C;f-=Pgps~T?f42(@FsAy<=^y(Ay5ki=k3&D-xL4dfe86x?Ke@5`c%{G^k z4a?mPJ09UP<(+!gPnd*7MiQ= z-&vO5#0u-EVVL(++czce15x=5N_Ej_dfzfzsshh&rRmi9oykH*vaTXa*BQxDBN4(C zLES#r3eu?0vLXWY4g)n5R(EMYm=5 zMWl`+Z-%2&BY9&6CrgkmQHrgoCGAV4Jg=qex`!utE4QM2^S1}2Er9f78~nOzuvI5$ z>oIDOa(SP!Pz9z*&F?Ffi7=&pknt%KXo8lgG;Wqjbx9**PnRmEp4LXY>aEg~BPHxr zgoK<#L>abmhO$eRK9j1Nl73JANbbT@pKp_m-iVH;96YvqM`-@nn8Xl!UYwf&Nh|Lb zza|kIO3Y79tp2Ypeb9PS`Ljij`-E_b?1Easi>9}DfYNQ)2Q zsmE6k8Dc(a$&!?4O0r?5im8iI~e@LhdPP_ixF*lN{qPCvI5c6Ikld{b!vk`$2nCMGAHp8co%!-0jGHB5wiRabUum73QkQeRI=V+8+6 zd+fni4TEn8o?0d{o6JSaeNjeYbrPSni$+ZSuJvrrys`h$nbeIP*0<~g`{$26JNngm z%hm37t9`gY8wFjABAR5BuuO^t}gQVGbX~wKKt91eRpc^=ndXxB8uo6n26L1OoS3$7++@g z!mrD$Cv+M`LldJ;Yd>fml^q!jvdAqsq#KT-6dckxqm~Rlbge>Gq1^53EBFIN`%v5D zy{p}u^p=cMQdX+lfA%|QGCA3@M6ACH3?ME8%KXZgc!Eh0j{6f)-Xcj`sS~}Z5HsTn zp-63veD0?X!(I}3BIKHT^JKHM)pLIXgv~Uj#rIOf6`b7p)hm?FCe+F&T|?eZf4wLG^>sY+D6zCHPbKE`xaB;Pn#raJm*g0$Q`VOSUQyC^*T2~l zoMkPSq??Di@p_Pd#v!N_r&GqJCua}u`GMdLh5lb z+loS)OUb} zlb2qL8(+8fTz4-WwFZov&y|N$UK?VXANlu=E<&c>HZ1VPzBDWVqr6CLta2ZTF1DZ02U8-wKx7Jr`_v;W2)!JX1D7+WmOIZF^`{TtfNUW`_d8&{WVNjusGpKePDr-|H z3ioqXF1$Pfq1?<+u3_i0y{J7VT20P+su=Qz(SqVZ7g=g&zNM9u6Qn0ZRBTm?r=*>d ze3I`%f%f4aerzkP!S>r5vj1AOpA(6;Wr)%|g`w*TV~M7;Jq!XA)^Lng}4scG+Y*baY!d`cvtLB$O(zngqRKp#I$P;ah zY+G905CcMmtZLE|dsc9$3FYKm2VH=E~WVsRQ z8!!|onOrmVt%;?r3fXRhsW)rhOUucl~N!}Tm?pq)DmPjA<&uCakK|dnvbw< zyaDM37HNnMfTWw6z(3{DE|gMpVxGI6mJz1Sz*@a(YN)M^;CPCXTs2ms)ZR#aVz!8Y zt&pvdjRa$yCu3u;dV($W)+Mq8K{H<44+qp;gFUUy1%=Ae#>U$3O|LaBXCkn1X5UVs z?>3!gB3hR@FcEqF`<_2~arO&|iBNu$#zbhM=x_bPcgA1(>Q7p*n^Y$IFlzYSJp<3c z`KbC;Io-QZ_tZUK1)9nn3))u0Pq)V+8@fiv2DI1Sxbq;U=ApbUaemGtwX*hgH|mEi zE?cJy=Jcr5{*pxgJo8%9a|w2rDn*`@^Av|v>{`(05Mma4X=`Ca zIVE5JQ3q~aL-f&!SkcADNyA6t{gHnB z`|B%RaH(#{BV@q9Qa-di4C)o%`kdcw% z1hDBW!3_y*w&cfpJC~*#YnZrao&p1e_cf9WQ6qDx#SJyy8t>p0v*`>0yH$UrR~(Qt zmnDS9+CB%4giI;vKC1h$X<@ie-mxr#v4(0kWk2`ABm6-2D-rYpWF zM!pGw;l6Ek0EOMRc%jxy!FEO?*443B&Yn81?fWvjRdpbxo@6gsDxX&>OZ_H?w4^$> z$}hP@Ns0>NOSOufZ1Ghn6xm8wUm9{_4Nq?kR{q@9y7J*h!TBnUSeNDP60HX*If`_; z>@~}4h?(^Fl?K~*%hNKJaad&kth}`4p zIJwBwfP~18Lp2Zgp*#s+-vN8YnWwEB%!Jgsc+=}$OS^J!1dl-ikCJvQUw9DtQuVsJ zDEAko{7P#96Dz~K3&8wRr)1A~1vo=mW{! zuUh(awRA;+$UB2brOTrQ5Waf*_O+Xn#}1!hB8=x*Jujq^(-X0N3vmbSvBXsw8q;M# zqXmah5*_E?RtJCUahsCrI({5lydxw_K&lmQ)7pq73QUKUX~&{bn&gMWSyofWHNMfR z_J{0VNIDQYnzi_BF9C~p3fmP>sfaJxYAu`TnlNrqxgm8A<8aGuO1`3RcWG0f@*no# z-3PYR6-N*9q7M^PT{0mtRoZ&=MhsbkE*Z<1pEA_^$ndKqWdh|HK}i^z67RZzYD1e} z_p-YuItC%MNUt;v#EE>mz%k=hV+Wn5o7=uplLcNy?NOl@gRp zIdsQc@607d9v4~y-!31DO{?&Tn7plV<%PiBFJt`#PQHWTb-t^-XSb|3w^Vz@fay0=D!@cQaJJ~O(hpfcNZ(DuPTR< z`UXcK&5KDsW*vU}RUmN>X^Y18o_f6Gm>p?-YCZk+(9I3=*W7!NeoBsCUC|L`^yM9T zKUc1U+}mm#LhZ~c`$L*x@1RjnUGfiZiEl03?uoa{m^xZD+bQRPF-=7cAg zmPeL)#aga}6twpw)IQl|i>ei4BBEvV>SW?xplsBQFA7<1{g6>k+TkvKK~K&&Zrlas z;Mp(QESK#Nir2mTK*HwO%Q4cxg|GQlYcrcdvXa+{zt-MZq%^Ixb$#SyvfM2z*`Zu|-S|aNR^>~(fb33NFJ&~@KdP4Hn1QUV6ZeLY1 z?X_((X{yuwv(g!qW@484Xc{H^oq@|LqHa3Yt_Mn=&d{Jj?q%Q(7#_06F9giBimDw4 z9fz7}x5qzeL7}gk3pPeC12d%;qp4FFG?_gNAqD}v_6mtWv)op$P&A=6SaZ>fI+$Yh z@^Z(b6Z`8Agv8DtYFTnOyxvm;ACva^z6jnanEIv_lVn$PH4A}7=)&xyQx}c)vscaY8~yx)AL?Sv&2gGrnfj9VMU_cbX?7w)Yc5kY{`C zy~RPNwmptJ@nM2;_!9APfbE6^lUU!?I%z#wlw?h!yL1FOH>8`A{V2aY`S_+FNG&6t zVv#2uLBO^MhpZf0c~XexVt^M8Jc*^%wlT8eh9Nb4e^>%x8qh;V`t!JIOleJsLH(C% z3;}%LtNkR}RI(h}QF;k&?EY z)E7Mh>6%ofbPOP~RD3IQ=6M;fBAF=EkCuly)XkZ?sTuzyA!L*SX-zgTB)T;s*m~)2Y z13=iW(kz2|*B~VnQ95K*BoTS*no2L0h7U-7gX{*!N}}8QKaAvBK$2~E?L}dS4M~&Ujh_Lna&|Vw;btq^ji|??Ryt=?c5rV=uhD zHB?T4@ZAK14a8|c0n5E2)gVbL%~YZ_%I6B&Mp1o_j0&PCPqVTrRkwZ z8iPL%QOu!zLJbAZC}%EP(l((RJiS=z-BmTZM}!lVFTVW%=0yD&NvO1E5K?CF!$@AD z_dCBu*0#+o#+x=;kl5%{M#)Pm#hyM>6X+sDC9lJsH`eBQ2C1bXwTyB7_;8G>RiJ40 zgm69SfU|mN9$>O-)}R70gg{LDDT0zYQ6~|EUL-ruqBny3-HvkdBGz5^&y4gCQ~fsi z>8f;U50wFKpSQBeWh)nzf8?MPq`}}2x?T!O=VQeeS}`iQ7~yyKXRm4vOO^CXBIrV!5h5vI3C(^0F3)0^;{ zATR-JK|2Ibu*3|t=!*!&34=&LY_U$CxD)G0=Eg4;WmLb;Lq|V*j4SUJuCE+I{IRyZ zu7y0}+$->hR1maezDiwd#b~24KX#YXvy27lJSctTR@`_y1Cm|Zq#n`ARfCQ3Za|mU zP@keG83U%N4YD9qSk&xOtg1Gae^6Zh>%{RAR~tFQp&Q%P?xPpt5XF%)L+zp`g_?-d zWnjLUcP~jlA_tBOI1v6AD~;Q09SUvcTbSJ zT2VfiL-LbHp+3|?SJ}9?<7;Iw?a!{;R!9%x=mc!}T0yVw;_{9gd_?T(fwP4hvq$1z zig?j1)hcBMabWB`K_jJ~Qalr!wmfaPMmK@G6tz_H=1RuGpkAKLMr=SD9!a=N23w(o z`psV9zP5>(Qr1MxG9q?Ecek?)BXzlO(L0})+qvxfK7J;>EDokGP2#p#dmB$MSd>slN%s>k(U!%@(@2E^NqYETVeE$90V6O$lx_lHI)om%Gh6?7 zN+^WbXi@v@@X3_YN+Mrq>QJ+!@<{3_ql7M2lw@gtz52Rk2b>qjo;(m7|6*mW#7k|T zCEg>ciriT%k_j}Dl9yesWIMDtW|BOi)BOAtVCm*LdHoj2uhk&Yh_bJny@FB|KWqD7 z)(KB#dQWK0GYR(%;X|gMk?baX4fj>A%jdo_V5?R+0!S6VW?6HdX!m|Ce{qKyjI@VG*|g-ES{ZCGmIDaEuBG%DfAMWh)@z7e)1*sw z6GIjPA|OL_)W5TIppSsv&LepPJx`pHs^64mP*v417)eRayzaFj%YE@K{%KOG@YIt- zV(Li1F(2(qiMaTo50J=>W*YHKgv_w~+uAP>-uUfq5J)`!Clj&x`g2;lT=?bD6X||u zKkgf{vQTzw^newS1+PE+{$bwb@Zwf{s#a z5sx4k^BHl~CaFTN1s*_>-Cql3H<1zNzhlHEHvgf4V=!C=&?n*52M=8Hzo%++0#dm^*JpjMY`w0Ea=u z_5(peYB$A|c_uAQzfgPkevtTtyKFLCgFI`xJPuIH?DU6pX@~I2=11%H3^mIYTxwG{ z^7Tu{ZlE$2@FbHANCL;8=(aL_zzu}o%6;sUwpXHj#58-Z3u|C3$dIK%2E$$rLgr_6 z6>G5Dv1eK(JD15)^H(x(2h*`T`P!f3t_q}M12%~?btxBoX!~p=M16dhR;HD#GX_bo zm8(ig^$!H!+!elMq9bX`*KD1(TfX%|EtZ;G81>cT*87)8ZL=h-<@1#v$T=&gd@-B$ z1)((g(dLcr&gRJoj|b6|BdgCezBZHHp1fkSxj$UlGv}rxCb)c@I zuemg{Kb=N$^~fdAB1&oEt?_4Gr(npJ+vZ;gvTKkHP;8unY`Kr72BBD*{N+GdG7)#r{XQ-_h{7@il zqrnzTn+}LNb)j?$E0E~NI;Tt9;7Q%L;}wndxqp?0+W6d-6T!2B8eP(U@m+Ha`6 ze1eh{2Ixl<%FT_IU;^g(fg(azX=U1unC~%Iw4EBHD;y~MPzrFsjR%scsrLB76c>fT7!Fa)f%xCm_A*8Y`0W|RGBsg1fKvk zEQhd<4TC{gt_fQqbn7x0<(Eg1v&JO{@F0-LJC>%ZcHOH&jE?fy7%8=0=(KUTpM*&g zZEcqtt_!6%K>6IUPjM8|b-+Kw^{VBjW1D-CD;bFw!Iw_d>|K-Fh<$wRZGvulIVF#A zvm?l^+Ru++XYEC+_H*w;1@iO~v3+2IF6j~_*{L;2NzM)x+O9K_4XJbUsbr}}%V}de zZe(_?!3XrkI-@lA8-BlJU9FeMtJ_dcl07`?Dr3E@C}BZ9=>U2j_zF;Ha4+C}t#!_# zk=iCptE=%2Vnsx&)cTO+?We{mX$V4^z6-ev6~a3P4O5y6 zX?4!Tkh;N5!qZh{^);=*kaB7>MiJ$MYGaIMuhaHhWLg+1>fJCX9Rn;F(Jq)ZZ-SC* z{w%k(PvZ>ASy@qU8TK?@8yzJHsXR$s?Y$O6!GZ;_+ud64%jZ`+E4w$ki$cmNgM}^D zNm!ymEm`~`mgci?B*&;%8KEkSMbDQbrFjk_0s|nK=IG|z^zhu;a7bIF9VDqxnq_aa zoprVSB*goOfqrra!_hH%N#4Rfg8i7b{^0C_Qj~j3pLBQIs#cUvj)3&qku(F+0iLY2 z`nR|!Y2aI}l=3!=prn0`d0g#|@&*AeuWNU)K{03#;Y7*i_j1*Ko9a5x$e+!;j-^@d zL2sOF0~xgzTw@+F#OOWc#K$jr+kaYHPE;A+SZ`fla_H6*Q2njA%_B5Tit5Om)$!0(l+u-%K45@ z*Alo+^w@|rFIa9Cn3PY_^^D6*xBKXnyNHUDs!}veaEYlTtmA5XHQPvS-?F^-;D~P_?!A7AHu@p%2B2_V zD0NaddN_kogO&4Jwd856vxNO+6V3GkvGVzqyFH!hcvmaxN+If?OlpkeQxIuPtrP~q zO-E~}(L;(ffTZIikbway{-r5-dbE3=E^yZ}`=I2ycVYx}2*Nrj!est6}p>Fa7 zCC3?C-9^~!U5yb;W2CzRcAc}))G$MYkzqe|RdF;vjQI&& zCMqN5`B<~bRePgP}kSD47Y z;-Nbxx!F%IDg1e?mUmH%(-r*P1u31nvO{Oj8*0cudRf_Ged4(2b?Idz(88$}NydEj zKYQZ2j^r#Dk4KDL)@)5#uU|ah@IHpDog&w`Q?Up>?($0`;bW6Tva!y<(IJS z83-C;{l)t<@~d(3QhNp^fOD^@@rfgqgroIAYPbDa?t8zlQq{4$>po)`qmbkShNQDh zD`1H8(I^lzL)sE``;;$$0ql~&c7Lt9E)@9Uk}1uguX?iG1nlX0%do>ADXEJ1?J|sc zbd=$xHZ|vLI?5TS!=@F)*xEqCG&mgd6tC?p*F4l-f-)$t35){V&8wR*ZHuBnT|i0B zfcKrt2K2092#hsZR!&k?`x%>YYiZS@;11xaALx8;pm&=C1( zP}=fdP5x4p+ha2LxAid@`#3z3(u>kb`{XA&nq>`=`PNB}eX)Ly(Nd(O%ai14=|RWd z?X^kRorthnawep%ELF|`j1$FOs*$Li07?GHjJr!S>}g<0K-WhyNT4gX+8+Y>VdV>8 zxx(#JZ3I+))w!&2{!%QhF*QI6UlEIGYip;Rc=zQx2)2o|(I;5}I2Nmtw*C@^H5-y& zHWh!*X7|o-PS=)w^9jEGylv>-iE|;tJ*CDyihi%uPW&la^?{DkNPbc(?#kO8(Sj)F zm8b$7{v;;V;Cw(N4aW+i1FCg)}lzbR_c%vk@@wGHc9b|F>; ze-wD(MLqk;&|&k1G(p|d3FJd>TDIQjdUY$>th!e2+iTB1c@-bVr<|mTGp;{|5c5tb zT5UwWZW4Xk<{uTxe`7Cn>XdjWKZw8ubuDozF&ST{%+o(~bKW6dgk&4kSe2iqV45lU1AxSw=!W>#M59eKm42%GoG~&=635$RG-#EbW>1t?zVG8z7UF+TSh!Zs>Z`Wz zv!zYr?L2h(r6^ezb(HMp<6Tng?2QhuB49;g2=Nhsk{~5+yj%Fr$6km0QMY;HXH45bPj^Y<&^h#RVYjQ!-!%wx!Ez;DUK~i8P%Ed-kVQeV(-rcr*CSPzRd%sW> zlv7eN>)Ra#?#U5fu(5Ip8N#n8VWvggYLzr;(!uLhO5ZoTReC0`lmYgg=EU8lS1)>R8hys-NihFP^D$>gCUw9VX}C-bl5{JTX~KufeJTX^u($cKV|isD!t%rH+IZ~%1gy;PO;^BAsoNylV%tqe|QBHq;8 zaTx4aySs10s*4r$x549|@9YwpK;^dYO9Q-)jG`2cD-drWOg9f()HE4wI-Rgq+b^zY z;@aCAi1$*Y^YrJVV|f>1Pv}m3lcXsQ_8m6c_WC%7Wv|sj9D4-b((Fwzh1_+PqIFkURcNN_q-P zinIi0U)O2gya3be{mQUc#{4~6vbUUwHHYvQ&LyL;R#qRuva=(YX35diRbs%tTCo+3 z4V1&T!_K9yLMec~0p6kJSGa4q{Hio9@T2W(%V+QAL`m-LQ%#LU3wmx!d;zKCarLc9 zma|v#5D}st*_c=^N%k=;MB65UHKAG?U%VDMi#D;6tC`S0($@Mqm70)lrTe@iTpC%{ zKY;g63$({NsSn1wEHbwDNNXrcQqQ>?9efDPWU)@s=-X3{=mS2Xo8qqco(o>o{|1ku zq#UsMgfLA=_q-S@O*%V$3e%t^vy&ZPUv-;RUx&JU$X^J z3iPGUUIFw*g=RB15PCn#leM%JzafhUQcXn41m|&W!-D8v8ICS8ol4ucww>UlcmqSJ zjYV&cd#A#EnSc%0-kAurH~4ldgdrE67S_pps*OQ7<3R*UQ?X8}>h{(fakRRVvJba$ zL299c%c4RI8bt<|C1Foj>=9}}+gLmU5wWPY1q1f(5)%|CX`3jNGDIFX0FyYd#;Pu} zdx+q~po6sRbU6f;l_CMv!FN+Y&@c~hEY5^h zC1CqOL!mQb?nDoefK@sj?-#oxG_NzCbjegI!c_7RSp3!YTpL3vC?Xa>>eMF&_;AOV zp$@Q?`80^R5)Hs|6mw`zx;9u(Qv>)b|?cyNm;3rOC=&I$`U<3H}6t=`L z>;$}Mn>{*MWXnkca7qw~tD0=5uR#TW2|L`%ZB$6BouJr~>|0Upq6PV7+UOWY`B*9) z5M>O(y$eEmrnUrXCHJ8LOHB>fCfn3ML_SbeS8OE1C0Go=^hdr4}4mqvUvB^A4? ztqcUDKwjPCuDeJ$q*n^XQ*K0q$R~Q^pah5=lEHe^7);wK{r&(6BTR?mN20fB;pwx{ z;M!jR)?WUOl6yVfUAE!#P#eRmKdjY3mgZ%nOU^Q|9t5248tE$T>Y*g;g@!I*6Lb*} zZwPcI_+0rwaRNhGIw3FvtP&viTqEUIP5DWTx0dOQ0Op4$>bCR5-NjZot7f%RG3~|V z`-86GXb-M}tX35e^6Jz&++jn>12M#vn6?XAHQ*Am>@2m?glTyx;QOxi3euo?pYx&? zi6l{rWSX$SA~;BSPY!7uzgQ+Wxp?xPp+Z;V?hRaEb+pd>Xqi2cEeFgGT2X6DoE%j~ zq17wYt}`+`QpWmPWi$2GDI16TPVhWCvR+s{Qxs6r?BTwpPK~$fD&)%e;y`?CYmqs4 zFr)0$@DbH+Fp^>~hOAyI`XDE3#i92%-QL~d(+{~+D)u$&=47qbO?z>*jX1?m&ZuSN zNyB3Y_a%H5USIU>wWd|lV8E)r*J_PZ{%OH6myYiQo71EPMM_&R{L**i)Eo_$3D@=1 z9@BO_Th=^Sm80mwcf1v)*pgG2mDn#E`=0l!qI8)#@2Gt-$mVKLtLA?p?Yj0Q+$YO> zB2tdDexq)<&%um({SPv|OL?%=2J5jS#Y8~ERxEOtN3^)O*I-3u(XH~0a-@h1)I7^# zf-)a&t+wy&x(|Kg<`D0B-^9VLWhn>2I9%);Qa7%alF<63p7bmzH$wmd zk}~g=whQB{8J=34UN><-x%!1hoiFtkvBf0_YXCPD4yXNP1{Zv%l5az zuGesMPW^wVdKY-6{`h~Kgpx=obM1qV=2Dr<+#)JMbIYydzP7^9D8$OGT!$3GRHEim zE~8{!P-d&K>VvX1C1fQ@A`$iZzt-pb{r!Ibhv{VZopW~1^ZmTNrDCx;6UDvyVATjK zPdD`EKD>9Hzl_VvGQYJuk0Nej=cw2;n)m6F%oy1CxO`W zINDDD>5K_M*QG5MHO{JGCZ=8eUsxX~Vn(v6(E+omr@)xrGN2r1{>s^x#8n%V&!#Un z8#lNToT^pxeO@vZ;fs6^>(&dyNn;qc!-!t>hw^(yZ&4xxcaPJcMV*Fk?45- z_0x#VJ^7A5V5CV-!8)1GVYs>5-~UF`hs}`Zmq^}V%MNk=9Fy)_%e;L!3ZzqW0i!IT zf-7S$aMej1YSjEF^BxeA!C+P-eb+hEtuEPQY1zLwM1rMe(?kEkF{|>SRpoagC~`Ok ze`5$m9tRj)hcZUk3CzipBE_j97vfewDGzKPk+Yjhm z6SWzTcka(UV3TmTHbOb7X$o5lj9o1%WpiSi#yeztv=g@%Ut1!ynHZS8*tMOpB+uGI}panU*2#~bb$ZY z&w_Gz+J7Ubd2NDJF-Ur83PCxg@ zM$?A{49CVd8HPD4e|`y=AB^WDjBq%QG!@tN$2574Q{?siG37(b4ulZ@5T+dbN!F>M z>hPmMlcuNCGM@LqehTJn2-{#%LDvQx{X}sD?Yq&HKXHJXPQujfu-K5Fv7V!jKq&o8xxVk74ylP8gx5DMyzxu(rW9hQY;1C>(n+b%yu0)R;5Wja7U~= zoSb-=vt`%XpxE?nC-}J;Z=81o?oB?%xu9>oiru%l=yt)~174Be04nxqFkbHXl1x=S zJn8d-8A?a39&ki<84WHo_Xm@Lz=RliW}%! zr^8=41;6@FR@x}CzIvj@RwxAAv*_>hko0IIypE0#I6}(fYPJvQN4HSC$YT6<} zPz6igT@El<$2s%DEJfG>V^4IjbxUomyMP6J*Wrn;oYI<%@QPt$xJwXW7_iVxIlUcF z!|4Ak^<6<}1=fsBCEVhXe7k2ko}lpRUkV}({(xb09A{nt^!6agk;=ZL&T3!)hhr5R zeg6S8<}1x>dD4eP9I4>;i|#r)*=UkxxxQ7zu>t5VT|ZBx{5STNREnA0CC_4tsnHZf zE%xFY4~hxN@SG9J`` zSezVY5OEV!T9hR&19DZb6gUG04S2{}KjhKP!4A$Q@z$v%*0;clHoF_{!lMcFO zekIc#J|-xv6x|G98a>f}V;CC}*H(eo_F@zn^FP3#_DV63uH0^zlday5_fT;tDl4#L# z_lqt?KYNx+;I)12^MW9TzCS~Zuk0nv&7Gb-=i3beJMl-al(9&JaI;jIO_kO)`SX%w z(h<8YRqH*egzC>mcUjv&c-`YCP;6XE67-H=YJ>MO@QqoRrx%NL{YATuS5%9|9wXKe zXp8v1%?8`uZFsE;T2#}bIzEZ!0Ze`&<{F*qi3Ydn(6&p2?n;Z6ENk!$!7nU@H#aIV z6@JEIofjjEySv8E9BQe<42MyQt?&$spUx-!w z0b8f%VXGo1@262}6Cq6UF`Y(!2!={Pj7Iptj&_1Ygu@{O&g1r@>ZD4 zt*h*LsUXd5*`j$?D)i|AU1xH@h6G=QNL4lZvMct3~(-Ml;&3} ztGD+Ypk_7_HWXfT<^E-775eG=0D5iqdfi;j3OVKT#=-4-nEUmKTGu2u?-s3neR<6z zxfPwt*_z$PArmE3_G;e~$5{>fwC*)gD$xhMWnOmgk7!faEOz1It71M{>1mDKNsU)q zRLVD4%F0S_h#bF?w|02pqv2sc`{UM*iI=-R?(!k5UYK4xW;=xmXU<;PD)zulZY*q+ zqL3%?vd5OC2jpS8di5ru1y5Q|c|7eq@PKyy$455jTb`Vvtk#r{$(uc139Mgjj{<%j zU3jZ&X?LD{F`mGrcp_;#bWE8xgr9sSzD9R&{`vR=194W5Of#=!Sd z2{BD0`7BY2Uc#dqQuTm}9(ccg8S0jX2IEIvLnj)J_Sz|h&Wx}B8k8@+Ms6f zk6NUfdqsRVX_0tj{AHsog+54eY04Z57GgLZ3Qj{>j-uSLw0|Zqh{WA!=NnzdEcEGm zrZ+vu$s!JqBZ>8v0%p7F;V71}tLLwa-#Dq}L!@Zsnbh_n68Dvzf0Y>obJ3_Gxx5?1 z>%M5S6b?&2pWtV{I|a;R#*_lJXWO$BBrIsVQwEd<8%VJm^n+l%Ge!72)NGBhYpyX< zF_F3y`7xPLBgk@_4n@*#Gu!!S@uFANhNiV${mSL|t^tzRrDkUF*eUf=@>Q7+RDwZa zE=_xyzv0aF#dn*dFtMT1)ud<_S`n3Ce@VHQjDx|UQkh3~F>rWdRKpjlE=BSfuKHdz zTefEV#hepdJmZbc=MeDrp|?z7B2nl{PPWnb8b&FZyK(fwTeFf-ACm)p4uW*K^1XMn z1;sgxlvdAJyVMC(w@NQcf8#2S%Yqo%?t7D!LR|Vjm1|@8LjCrw#iG%RLw_lcTq)B& zWPfa*vMy5Y?61>+t*VA+$trXSkM=6{_@wU3;L*0moH_Vvd6xWvNvBCBCgG&i)8&tv@(J8rM;6L2kA}uu&xN}E zZ8_nNUFV6`etw5&Nyb2YqT&Zz8w-ryp}SO*@(L#k8kIlKEX=-SLE98Q&!!sE;9>iA z6y%!>br7mzvXllW8{^jvAzmm#|wmiPLIRaLD!`H#VeQJS3k4X3@qGzv<|2IdAacS z83gUj2Bv&&z64aW3kopiM3{wJqmtRl(V-8{25;Z3zGxMjQVU%bSoANmuw)Dvozyms;+ zq9vQX1?x({wn7}U+MoMuZ@Pb#3-OKx4U)1aIpyiwYv7*s(zoiRd9^!@@s(fUI*>kj zClDtsP9R#{@pV8w86v!e1XT7{4&WltGHnnyXD)#*0C`)7DEeN{S`LVhK$fLH*xedI`n==y4c$PQDl+TJ^XJzRxS3eZyE$Z4P%lNSf!r84?xiK%W!`LJM$~=O|e- zBP9~_+Jki_T81j~97-08h#)x-hDAmU{i5?UDObu`H^A4_6Kq~50H*1s!%q!5$^t|2 zHN-;20VA?Q$ES48FB)z#mGBlqH6jPts#QsVnyTont8Ea6yg2#qcA_4%g0R}Vx}y2| z3y<-Wq3{d+P*tKjoTx=Ssc3}OF=IZRig?qTL~YNayWc@sq#`ASr8Zt z2NRmvDEmFC$PMBgy1f$gy)wL3MFlG%3U$kY)ykoSv_-bGamrIBl;c=`>jM#*fOWJu z0-_Dw8*vx{8XXAG#BmD#Z>I7>z}i{iV4AT?1QqWdD& z33mTQ0kglXzFV!GLs6wx8$?skfdpP1`TPkEhF8~SqN`;F`Bl2Tj5oZRJ?gBdvb{0R zs3KuCj8bVY=iK6U7PYK5}!5PRG z^p2pKNIhAfVzGzp6x3qc(_cgvw-VqiMbuIn&Nv9p^Z~!|cviG9J5qj<`4GY$ZiM>f zafr|uabo2tN{=t2uE(>r^UGQ?mfF7|Qnxk|!u&(Xz}PXBvCc_2-x0J~W4B7zywZqg z{+kGjZgGk!`(1aV?@jIx{tPF3rY&$8H`7M=5q~~;V)g&!*erd4W9$5nW7~Hs;bl_s5_@JNqNJL$5}tD@=- zvSM*irlLpAz$hoDYAk)51L5Ef%t_RN&NZA|%^^j*Hgjq2Us%2dL)CqY78)t9AQGAy z8=7;4`wmJ>LQ`ckc82B{hvp(!+l758*{$*KO|r-)TogmD;;r?Y0gPqRK4X|M!OM44)Fxy7zQ>G zc~rA}Li@NuOiCTwyN;7){z7!LEMvZB@r5X5ds*Ej3=a&)WIm$J7z{uJ)NOFOYVB~V zF(X8r;G_(TtdAKKG3)v)(hwU$ntqzIAo)Es$|;(#R`>5Zz+Ac=+K)5kzy#>wxu-Z! zivW;mc{Wo%gd(R!3R8l@6|$A8%c~m17EYF>FJfS$7W!{ZDX-I4r8#3Z&otki)Hn)& z>WS_kau;Vn*-P%va-*K(qN97#m8-6VoT)2OEdxt-5x)y#P9cvR(Ie}LTHQS}_@sj_ zSXMJv+LqkE-4Q2EKId`Hc5B?s>oWD1D+6IiMttsS9J*XzQCw7|*0psyej3AjZo1yn z{iXJfcq{g8k-v7W(fG@5@u=mXY2+U7^ACq-^j?UZUD-l9Cpmil=5lZE|5xD9MvF19Q)l6zS3; zf0^av+SPE5pZTjNEZ|Y!wu#fM$2Jvy`nq^)^9HMQiuBk(!)VQ8#QlFo%FJ7Oq>t9< z%mghwlirUE{fxLjwDOEl@;hMH%9q#sR&d~@Thd>-w`=bH$A3j;i-9V8PkCAZM!Ud^ z|B4_qAR$4R_p}*&zE9?Aw^i8b%-%%-13_!ZzBEGMUNmQpBU(eHU)FK_9ouI)*_!|x z?Ozr!0&ad2Qd8NRe)OG5C?j#1=C4BuU4Se?{0GHI*bU&Tr)u0wr_`#P0+WnZXE z_)dwXmQh-H^qppCLC}~i+2}A*^IWy08rE481ebY4$loq(s&eNvO-K7Xc*NMFd2CKW zC7ii!IYkaYkcj9~Hk!bn&H}c9gvkr+emJ`5xGs5{KYqz6vbBzlF7^O1EsN6;4!rSO z1Subu;68iFfve5ri~YgZf1J}6`1a2t@_{k9&?1W|hI<0(hgz}1=8cw|^dTW^>cT;I zsihq^eF=<7!^U3tCeW~qBg?A+AtBm0f3A$AM1!>r&qx2?ryHdZ_+XFgg4z>{mUi_e zZ#Aa7xbJX5R}4uY)mP)!1H)^d6){$0$R@cuB~1bc6h1El`9mr~ZxL8l43 zsl&HM7|{%fSp)|eW5{5eF>boJEs)nrtYu!H*8=oj-KOYc2tz>>=Yb3Zz^A#9#SP?~wqr{Rm2-+ZbTgkK~RGZ68dXd>3g!$QM^`noPwmG7TROoXx_V>#+!h91hm$;hlTd= zDDpbdx26dIe*0Uii97IKOeF#&(CL5Jwk3g<>Y7z&@oYZWyD)YNGZbWFXglySH^TCC zJAy?NIHjV+EQ1ZuT#{3f;DNy&pts~qC?N3kmiEDH&=yE8}j; z0?2jncCZ4+8u-?*6j&B{32%ap#=wsmM~+gIo~&h8DlxUr&vM8}iN&{DDqbo;$Ot~n zu!J}0&4cQQcIlVuh*m{Jj`YKVHb{P&WqoBYg7oun7by&p26Vm%DW-LUF&1gm0vid$ zYQ1VxV}PRA0aLVvmn7OR)gLQbY)4T6!(OCN6!wo5rk*PseO2E8u##&FrIsB5{&PIL zs23^|ymu1MCQPiK1A5lq0q`w4eaD3f*fPE}O>R~9?pVC9#Ye}EZ5T8!TlMx zIce3N?~Y@FgR__fl{F?R!DqidavGSRNbK{0Lw}lLoKj1i1ucY7Kr?UAyqvG6HTTLDzOGgcCBE)-Ao!Tf_Qcgv$JHs2B&>ZQC6|ljZ}wgdA@)ki^W3p_pCv|i z24EF986}rE2&s8}kMV)op3$-@?w6V~i|Dr#)m4{=qE)$s$cCm%KO&v(rRY9Hf00omZR2(N&yS0Sd@Aa3ZL`~2T`Q4{u_SUnT?jGYPZLm`1MIf3m zY|+X5b+5{3C-wx)+7_8t>B9K3$c1LFMhotgA$a?gRw_*(Xx_UM^Jwo>J!3?uyym^c z7oqiNC?Uz2?X5KbVnMU5=^F3q*^Te1_LHqqm$3FJqXna&lg=3XPeg%7fd@s=OX-tz zVmf7$J(U+IEI}#atGUqT`DkQyCyD0YOsClv&$3e6kn#lX{DJkl^W!NasyFvgB<7LTVU09+cC8IKgVLU;BA z@p`&NiP$VYV5>^KSaDA7IcflEo|Em=wm8r-7TL^6bsnrZ##kGExfLsgT{D7U6^@`K zFHL(Yzg1${`E!eH5?)Im6$cUP$m$>LC9E?XLCB~fLbYe!5%3f4)99Yb_qdZZUcBBi znxZy&5n9+>cjd)d0QGCCJFx9i0R~d8#9~Y&9PyO;p&E(VEE+$ZXEFm9ikPE~@>SK~ zktTxM9aqBk%bbJ-st*f0Ad2Cix5Rhdq70p$z2)X6y%*F;Gl=S#KNgP-#kruaW7j}~ z+_)z~hsm;2*+rrD;t`9<{ydFW4_Gym za!zcol36c>HlI4v$phEw&c1$LW-_g*E9QLREwcWwzE}Bto%`V9NZ&)W{_2ybHXUx( zD`E4?=ilt{M8{r^@4I{N^{uF?w{H%%un>_e7RoOMCMtgT&si_D-BhW66m{zmmfZGR zHSbv1w^#s9HvLf<~;C@qS^7Y_)#*yHdZb z^U0sFp)bOI$e+H0?669fFAFaGnXf;V+!y-d;8WCMs@E)kQP91HFxEExG&4?Y^*$*F zi}la5sq6MTRz`McT9xBjpy{Rab@P7_cPEsSxw$8&vRk9cM@=~wcJwl9E}uyMS7ehg zfO_$af8lR42s(`GCqKR09j$Y9>GeDyu}!;HCc?g)3m6A4-X#p0zlMSUtBUF&B(0I)nm3F$*oj&N>eCcW`$fXU z#$9*YJW#2=k^hQF;k#l$QD02e>YC0o5^bJZ3_f*~yh>qkW#QK$n%MDg%9=wn<`ieA zN+qRdoR+33PX7LN^!OusHOEgE43ve&4W~(Fv;Mx^cUA6y!WUWE&)DFz|Ge1HZ>1c^ zP4-XRT_3-*AY)B|tNqUFp{Lt^4|8>08Y*vi#l0fo($bZlwtzzEb5#5*hv3c8Gf_HT6-9q7>hhT>DjlAhu|nJ>JiH|uX? z-U=sPwf>!uT4$<#5kh!gxPlS_FQsMy%8<~J`Gaf`d=qd3SwF14zUh zLoDSZ>J~J!^RLox7{@g2$=eZ_iPni2LXJB&k$B!Vh=Xr;?c~)Jh$%ZPwREvV%F9}@ zF)(_ffLE!J!1F>t#R9Nnw?>?x{f+(8Xz{8%0Hsl=i0Ie~jIaXrwAbh{0zXiNa#Z(@cf-lKl9?t|6)jG}KDJ5nOB+P%iD^m-BGpC= z9li{up8==A#HY{K&tlHPo3jP51|J3I396lE0Vd*aqnDtW87mK{?3u^STC|iKNtk=# zECF34RPdqU4nJn}Ee8Sy+skYrlOYr;JrvlSJ;3@ol-&oSNFN9}P-OY0Q1u6q2ciA! zAfzU>lpm+j+XZ0HrvqtNWgN#Wo`#Gn(c<7+9q=e1VjeLKIeEQI0c!^)V*ONpU|FkN zAh+KQ!y;lppzcPJ{|JXl7G8aJ7A+5VT{)=09!?N23tjF{3~jGLgPsYA-qMDc{NM-B z-GSXvfQkCP&}T;_M2r9EWxD?nm7$X%ss`=hy#6j{2-ImsSesX2pXwG;r};N*8D%ag zkP|Wc3po^&2>G~08z=8whsCK{V=TsYeyaS=WRZO$p0SuPao{2GHrN%f@s)kefH8$$ z7Favb3n;1ll%gDN4?dy`<8!~Vf3vYx#TWp~Kbycz$-CE5*#0R2+rRucEIZk}e@5l?Vyvg_1Ppz?&{1}BaK zkf(m{)6IM5K=@&HzH>tS8|zmKLFhJ{EDu_VHRv2)EmR-#|NrWvqJ7zgc6#}jDxx7<%Y0>C2xisuq%{JkxFih2r9w+5G{=B4Xi3wZRSXRxqc zW%1qF`ttnh4ubjZ!F9Dc)BC6refmM&tF^wV22rJR1eMw&c#6hCYv}WkzL>jd57Fe6a63eb>9wisDx-39=&}oO-TwsJHQRGO5`v%R-^CO? zC<;;}RN&*QuAydp^bRF8S^vcJ0uL@2=4GYh#-SCs+5dQt2nR|=Ji>&s;AXyp7(4`G zqBWB&>BKr{w(~T5PBqxz4$YYL^fQPM$0>@!SlEEZANXdlnLvXUUchmi6%^ok^1ZcR zNXPWIPpAkU$)(-WAK1~^rgwE+^Z;6B@B7O1KT4*qy}bj$dsFFG6p(8oET}9dBq)v; z2y+aBy_J2vfn_v{jWstMJd;kFv-WWD%;O4^#e9{n0V?5?WLap0*GZp5ig&B&1(&g(jpye zB4LnUpww|y`;sLA#o$9^QTe8452>+?Tk`uspG>zoOV-X6Bno0 z=-SRimD!zB=M2~qB7J7}-=vgC3;VvD|RLl4L&WA6mFY+XUb{z_U4R!ly{<}gB_?}T)io}UAAB*;Cf=SXa`08T$Ojp52TPqgObJ2X>6)g|)`n0(yL%sD?77+J#=T<^M1KYdEqcF-M1 z&gdREcwYY>yImQZKlyc(QFGo7UytroX!xHiS9J^;7??e{tQE<=5za^rOso0IsrYbk zuH)L7mczVyyYQ}??y+%-Q$8w@(-l8_;Cj*p{_Cp4ubcG-Ro|S8dy~OWI-+%8?o4&! zg~NP@l2^B+?%1G10`Ejo!0?s(qABoUiy_-_`2DfL=tVpui^_exYC12xjd6lQ4xv#^ z^4eg4CZ|V2Y0Bt$;Te}*Tse>HCL@vUWKoehGPaC=hw&8NyA{GVglVwWkSo}C0A z6-4RFRB!8r-}L4aaXw$8ir?>a8c~qDb$H9vV1HW$5R8&*NMOIu|n)(CxwP?ZWhvwCcpusQHEiLCC>K&7OLlI|P^Q+I^T9_+SN!TSdUZPezBDcUz zR+U#T+lUNPx?njF0TlK&>sy^c<& zr{=K^%!kLVHtBRmKna6>;C+G4<*8za8H%CE3Fa$0RA2PPDO%8OTw)n+Imw)JgA$SR zC;AR|E8(nOK*I2OKq?j85F|<#u;8@3M(szR?M#PS6xN+|V({@|T4!lv6noDd=s zcz=*0fxp1kmgX-2Wb4+42aHloRl3a#27!mGjg0|3VrujW5~*gYT@CO8=+aMQ9<3V* z1k8U=@ZXyTs44sbeGp(wl-3TRf6Re!Psj{m_W&wA4lE0lvI&_MxWTk&VZ@MM2kc@E zCVJD?Uhv4*w1tCCSC6klK#qYL98q-47&qGs)xpr$jHd<|gR&XMHx!!6r1^rXMFD%v z=u=D^D3D*-je&%oof5&&&v86jx?>L-=sr_;v9yzo9teN%s7buTxi7HCM=5%A=oB`r z1>aijEE8%w+>QFd_u=!_!p`rZQEB=JIy#dD0ERgYUXECC^Zq-EGZ38o67$6Ttwk#_ z2oj#)X{Vj_)qh>)rKS(^ zbIK=YN=4Sk;%wl&?d5Mm&4FWK6eW)b#suOu7w{OZNSLLt z;FN0SvLK}RfSGu!eR8r0lD9jJaq1>hMF$6r(%ncrkWDR41cAq}>e{`yK81MpSPeMo z+@e{?bIhWJ6#(nz-IzEYEyEZD^7j7gCpkq}twfw6vzQ7+qY}aN{jT&@#nry3b@@Ai z7EB;lR=2s2!+vkZ)-n_kFwrc&y!H?>Z|-RON+$5_yGoL$FNXXp;{MME*M1nVmf`*t zQPTWZBujeUt>j;k3AO%R0x76i+D`b|7twKC(awKP%7@;3WdGfP-1;##$;CLhw!eC{ z!~NjWkM{Z$@ox1sWl|i8a}=!L{Qf zq(i^YW!eyE#Mi!+w=6#&~|WhVZ!cWyf+ivcL2P6D>x{-ftC76X0d)#z_?X> z<2HqUhcjYde>5&N_nWpoP<6bX861W=blM^=WZ$H}3L@v7$2pBkkiniByd9oiu!la0aZ(KVh#WhodB~QXnObq!8BZ2 zLvyN%S+%TMu!GHD+=Vr9|40NakrT<>`Wwml*j&+OKyeA!O9uJybWkKGg-x5LsBb1T z-xvM|sJR=uIpUlg&=)&O-`(cqtVU$)l;&<1bC*o%(RzeBp>h27oh6(5kvVa;k#O9u1ohaMg7WaM9@>!t zh@*pd_yW<)50bWF#h7C%WG-b9tJ1ygfpPF5{~Rd&YwM0`SNC)Q)4Vuq+ppQqof2c$ zhgfKBsCFcS^&F``fc!Hp#Kwfl0eRdt2JaZ0%;VXO{BhYm;}o#~fBUd?!>+@T;|HGE z0zD#{?e8Lfdk4{qc-Qt&*6Pa-L>PGe=>P5^UYc{!?wttd{Q9KlEs_Z*Y>`T`fd{7+ zBG@T+?|yqP>pwSst01~c)P751KP#|!!uIfQ()#z3 zs=QE{4@d{gipMe^pfb?^o@l!QTTem2K7Kf4sLix)ImjVcFaD=-XkplZ&9@gj!qvXL zl9<~1_+f2)Pj&Or#Tz0!LS+a_CC&T(iT_NrKX|cfaIr#Z+m_s_8K@p)r9viKr^X=i zZWN%eSTX^t%1w<8n3Z>)$+`#w&s!f%iCd$y1YKWVVzVtq1TziTKN8bexN_~%)-{&RrCD^{js7d9K{uDbBfzpL}Cteti(P&fu0^@Vu{X)4l3x^3G!M#dI#% z1#Y)=tn`}EnJ?7eUnNO@aa!JcH&MVA88`#Y6cel9tc6-FY`H-DEVT>jICV}YwuZQQ2{We4p!L;8Rz z9>60(CH>d-OEAK{9hr$4_F7|!jDr1;T&%7aPR`X)fYVW&(XmW=AuP1e-ue*=!J4EA=IdaPk_T={{wV@ zgkDU*k1*TGxrBjfao~gx_lX5sO$a7@e0=`HemjH|oEEayN&v6x5L|hJZ3R)NL2zfa z(D#zv2hbk*4`bQ@suoWcNRP;7fL-oP`67OCr?CeKWCKLISUbm#k2cFUsmTDunqn-1 z0`v^3-bu*}A9%(nEl69**~W_QnJ$We+ML%i;|hyO7jt zWrBLqheQepjazWO5TNe}$9V~nCG9q%B}eR%2gr%YN@`?2FAGda&n!ri8D(x&*82`3tOP);=#x(byivI2KM(ckqWE<*pJ{zahnm$KC2gCN8{g(}$rPlu( z>%u=G>QdK`BXd~;1TI?9nt0+73Qmt}VP1rR#x-{BoV0PzwzaErPzlVXX8--rS(&1$ zs7_Ew-=x$+<{JGytJLyc>2E#b;2SD3+!k_x15jzxxlNc2>0l%a^-)Rni&y&Y&Qe^X zgl9gat-AR``c!Tfdp_%9#56@s^~lM-4yEsbEVQ*};YjioWcA0sYP6KC&p8*}(Khpf zPS$4f20crt{WEI27p$mrv*tLzfVJ9QS4#1&zl!vGq?66xUu6CjX+lf=tcc%Jp%Azd z_6rp#I#h8~(0=!2zxM}4$(#Z7YE)6oxkP2JWzx6$_2Njkd`Z1Ma?Yf=&|1lmJ^AC# z(f*!!NGq83>BWGWus$u-0Ved3Ab4+lh#D(>X9k$doqUE{2}Qi)eifDRJy>XyHQ3Bo z4I9mep+h~2jp|Ae^ys$fy3m{>DGGM^O5YK*lL2=TCs}0fgoj6onfbh82xXJkH0FU9 z5<;>Jq^m`o67WdtgIZ7?1FLt~QPekG#|=c%9sw;^ugf>^?bwNDMP34PL`&($HNA?H zeABgj=pd{63M8}xAzFSk4_Ic+Me@sDF$VsTlx1YTd9z4^;|SWi$dhWC!DYgJB1Y

^R)AIb^3*dMaIRZ2J;e2qqWi2WN&gb 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 `X*grkhfz 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[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