From 1ce16787a99a0f4593b88293dda66c8baf98a058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E6=B5=A9?= Date: Mon, 15 Jan 2024 10:57:41 +0800 Subject: [PATCH] Initial commit --- .gitignore | 10 + Language/mesresource.en.resources91 | Bin 0 -> 5770 bytes Language/mesresource.zh-chs.resources91 | Bin 0 -> 5975 bytes Language/mesresource.zh-cht.resources91 | Bin 0 -> 5972 bytes SQLScript/InitData.xlsx | Bin 0 -> 9046 bytes SQLScript/Tables.xlsx | Bin 0 -> 12321 bytes SRC/MESAgent/AutoLoaderLib/AssemblyInfo.cs | 31 + .../AutoLoaderLib/AutoLoaderLib_C.csproj | 258 + .../AutoLoaderLib/AutoLoaderLib_C.sln | 32 + .../AutoLoaderLib/EPIParseTemplate.cs | 236 + .../My Project/Settings.Designer.cs | 101 + .../My Project/Settings.settings | 9 + SRC/MESAgent/AutoLoaderLib/ParseNEL.cs | 247 + SRC/MESAgent/AutoLoaderLib/ParsePL.cs | 245 + SRC/MESAgent/AutoLoaderLib/ParsePR.cs | 380 + SRC/MESAgent/AutoLoaderLib/ParseQEL.cs | 259 + .../Properties/BuildIncrementVersionInfo.cs | 1 + .../Web References/wsInvoke/Reference.cs | 779 ++ .../Web References/wsInvoke/Reference.map | 7 + .../Web References/wsInvoke/wsInvoke.disco | 6 + .../Web References/wsInvoke/wsInvoke.wsdl | 427 + SRC/MESAgent/AutoLoaderLib/app.config | 35 + .../AutoLoaderLib/clsAutoLoaderLibrary.cs | 356 + .../AutoLoaderLib/modAutoLoaderLibrary.cs | 939 ++ SRC/MESAgent/AutoLoaderLib/modWIN.cs | 492 + .../MESAutoRun/AutoRunLib/AssemblyInfo.cs | 30 + .../MESAutoRun/AutoRunLib/AutoRunLib_C.csproj | 453 + .../AutoRunLib/EAIMessageSynchronizer.cs | 633 ++ .../My Project/Settings.Designer.cs | 161 + .../AutoRunLib/My Project/Settings.settings | 24 + .../Properties/BuildIncrementVersionInfo.cs | 1 + .../wsERP_EAI/IntegrationEntry.wsdl | 372 + .../Web References/wsERP_EAI/Reference.cs | 980 ++ .../Web References/wsERP_EAI/Reference.map | 6 + .../Web References/wsERP_MES/Reference.cs | 1899 ++++ .../Web References/wsERP_MES/Reference.map | 7 + .../Web References/wsERP_MES/wsMES.disco | 6 + .../Web References/wsERP_MES/wsMES.wsdl | 925 ++ .../Web References/wsERP_TP/Reference.cs | 9862 +++++++++++++++++ .../Web References/wsERP_TP/Reference.map | 6 + .../wsERP_TP/TIPTOPServiceGateWay.wsdl | 3799 +++++++ .../Web References/wsERP_TP_RPC/Reference.cs | 7460 +++++++++++++ .../Web References/wsERP_TP_RPC/Reference.map | 6 + .../wsERP_TP_RPC/TIPTOPServiceGateWay.wsdl | 1762 +++ .../wsERP_WorkFlow/Reference.cs | 180 + .../wsERP_WorkFlow/Reference.map | 7 + .../wsERP_WorkFlow/WFMESService.disco | 6 + .../wsERP_WorkFlow/WFMESService.wsdl | 120 + .../Web References/wsInvoke/Reference.cs | 1535 +++ .../Web References/wsInvoke/Reference.map | 7 + .../Web References/wsInvoke/wsInvoke.disco | 6 + .../Web References/wsInvoke/wsInvoke.wsdl | 847 ++ SRC/MESAgent/MESAutoRun/AutoRunLib/app.config | 35 + .../AutoRunLib/clsAutoRunLibrary.cs | 1189 ++ .../AutoRunLib/modAutoRunLibrary.cs | 712 ++ SRC/MESAgent/MESAutoRun/AutoRunLib/modWIN.cs | 225 + SRC/MESAgent/MESAutoRun/MESAutoRun.sln | 30 + SRC/MESEAI/EAICws/EAICws/EAIws_C.csproj | 143 + .../EAICws/My Project/Application.Designer.cs | 11 + .../EAICws/My Project/Application.myapp | 10 + .../EAICws/EAICws/My Project/AssemblyInfo.cs | 35 + .../EAICws/EAICws/My Project/Resources.resx | 117 + .../EAICws/My Project/Settings.Designer.cs | 88 + .../EAICws/My Project/Settings.settings | 7 + SRC/MESEAI/EAICws/EAICws/modEAP.cs | 28 + SRC/MESEAI/EAICws/EAICws/modERP.cs | 120 + SRC/MESEAI/EAICws/EAICws/modERPIntegrate.cs | 16 + SRC/MESEAI/EAICws/EAICws/modKMI.cs | 37 + SRC/MESEAI/EAICws/EAICws/modWS.cs | 1473 +++ SRC/MESEAI/EAItc/EAItc_C.csproj | 182 + .../EAItc/My Project/Application.Designer.cs | 11 + SRC/MESEAI/EAItc/My Project/Application.myapp | 10 + SRC/MESEAI/EAItc/My Project/AssemblyInfo.cs | 35 + SRC/MESEAI/EAItc/My Project/Resources.resx | 117 + .../EAItc/My Project/Settings.Designer.cs | 88 + SRC/MESEAI/EAItc/My Project/Settings.settings | 7 + SRC/MESEAI/EAItc/clsCom.cs | 195 + SRC/MESEAI/EAItc/clsEAP.cs | 99 + SRC/MESEAI/EAItc/clsERP.cs | 74 + SRC/MESEAI/EAItc/clsMDS.cs | 25 + SRC/MESEAI/EAItc/clsSPC.cs | 62 + SRC/MESEAI/MESEAI.sln | 156 + .../MESPI_BusinessRule.csproj | 119 + .../MESPI_BusinessRule/MESPI_BusinessRule.sln | 30 + .../MESPI_BusinessRule.vssscc | 10 + .../My Project/Application.Designer.cs | 11 + .../My Project/Application.myapp | 10 + .../My Project/AssemblyInfo.cs | 35 + .../My Project/Resources.resx | 117 + .../My Project/Settings.Designer.cs | 26 + .../My Project/Settings.settings | 7 + .../MESPI_BusinessRule/clsBusinessRule.cs | 16 + .../MESPI_BusinessRule/clsGetFunctionBR.cs | 96 + SRC/MESPlugin/MESPI_BusinessRule/iMES.snk | Bin 0 -> 596 bytes SRC/MESPlugin/MESPI_WIP/MESPI_WIP.csproj | 124 + SRC/MESPlugin/MESPI_WIP/MESPI_WIP.sln | 32 + .../My Project/Application.Designer.cs | 11 + .../MESPI_WIP/My Project/Application.myapp | 10 + .../MESPI_WIP/My Project/AssemblyInfo.cs | 35 + .../MESPI_WIP/My Project/Resources.resx | 117 + .../MESPI_WIP/My Project/Settings.Designer.cs | 88 + .../MESPI_WIP/My Project/Settings.settings | 7 + SRC/MESWin/Resources/AUT.png | Bin 0 -> 3414 bytes SRC/MESWin/Resources/AutoRPTMeasureData.xls | Bin 0 -> 19456 bytes SRC/MESWin/Resources/AutoRPTPareto.xls | Bin 0 -> 18432 bytes .../Resources/AutoRPTVarMonthReport.xls | Bin 0 -> 16384 bytes SRC/MESWin/Resources/DEFAULT.png | Bin 0 -> 2192 bytes SRC/MESWin/Resources/DT.png | Bin 0 -> 1593 bytes SRC/MESWin/Resources/DirectionDown.png | Bin 0 -> 628 bytes SRC/MESWin/Resources/DirectionLeft.png | Bin 0 -> 512 bytes SRC/MESWin/Resources/DirectionRight.png | Bin 0 -> 552 bytes SRC/MESWin/Resources/DirectionUp.png | Bin 0 -> 606 bytes SRC/MESWin/Resources/EMS.png | Bin 0 -> 1534 bytes SRC/MESWin/Resources/ENT.png | Bin 0 -> 2974 bytes SRC/MESWin/Resources/EQP.png | Bin 0 -> 1546 bytes SRC/MESWin/Resources/FINIAL WEEKLY REPORT.xls | Bin 0 -> 60416 bytes SRC/MESWin/Resources/IEW.png | Bin 0 -> 1849 bytes SRC/MESWin/Resources/INV.png | Bin 0 -> 1216 bytes SRC/MESWin/Resources/ISU.png | Bin 0 -> 1485 bytes .../ImportSample-AttributesQCItem.xls | Bin 0 -> 33280 bytes .../Resources/ImportSample-Equipment1.csv | 17 + .../Resources/ImportSample-Equipment2.txt | 29 + SRC/MESWin/Resources/ImportSample-QCChar.xls | Bin 0 -> 46592 bytes SRC/MESWin/Resources/ImportSample-SPCData.xls | Bin 0 -> 23552 bytes .../ImportSample-VariablesQCItem.xls | Bin 0 -> 33792 bytes SRC/MESWin/Resources/MSA.png | Bin 0 -> 3376 bytes SRC/MESWin/Resources/MTL.png | Bin 0 -> 1119 bytes SRC/MESWin/Resources/OE.png | Bin 0 -> 1562 bytes SRC/MESWin/Resources/OP.png | Bin 0 -> 1577 bytes SRC/MESWin/Resources/PM.png | Bin 0 -> 2569 bytes SRC/MESWin/Resources/PRD.png | Bin 0 -> 1606 bytes SRC/MESWin/Resources/PRS.png | Bin 0 -> 1266 bytes SRC/MESWin/Resources/QC.png | Bin 0 -> 2409 bytes SRC/MESWin/Resources/RPT.png | Bin 0 -> 968 bytes SRC/MESWin/Resources/SMD.png | Bin 0 -> 3378 bytes SRC/MESWin/Resources/SPC.png | Bin 0 -> 1602 bytes .../Resources/SPCExport_2003_Standard.xls | Bin 0 -> 199168 bytes SRC/MESWin/Resources/SPCExport_STD.xls | Bin 0 -> 188928 bytes SRC/MESWin/Resources/SPCExport_STD02.xls | Bin 0 -> 143360 bytes SRC/MESWin/Resources/SPCExport_STD02_2003.xls | Bin 0 -> 206848 bytes SRC/MESWin/Resources/SPCExport_STD_190111.xls | Bin 0 -> 75776 bytes .../Resources/SPCExport_STD_190111H.xlsm | Bin 0 -> 29862 bytes SRC/MESWin/Resources/SPCReport.xls | Bin 0 -> 54272 bytes SRC/MESWin/Resources/SYS.png | Bin 0 -> 2404 bytes SRC/MESWin/Resources/USR.png | Bin 0 -> 1927 bytes SRC/MESWin/Resources/WIP.png | Bin 0 -> 1935 bytes SRC/MESWin/Resources/WIPReport.xls | Bin 0 -> 50176 bytes .../Resources/mesresource.en.resources91 | Bin 0 -> 180 bytes .../Resources/mesresource.zh-chs.resources91 | Bin 0 -> 180 bytes .../Resources/mesresource.zh-cht.resources91 | Bin 0 -> 180 bytes SRC/MESWin/Resources/msg_action.en.resources | Bin 0 -> 39481 bytes .../Resources/msg_action.zh-chs.resources | Bin 0 -> 41134 bytes .../Resources/msg_action.zh-cht.resources | Bin 0 -> 41136 bytes SRC/MESWin/Resources/msg_name.en.resources | Bin 0 -> 46002 bytes .../Resources/msg_name.zh-chs.resources | Bin 0 -> 46582 bytes .../Resources/msg_name.zh-cht.resources | Bin 0 -> 46499 bytes SRC/MESWin/Test/MDI_Panel.resx | 126 + SRC/MESWin/Test/MDI_Panel.vb | 1016 ++ .../Test/My Project/Application.Designer.vb | 13 + SRC/MESWin/Test/My Project/Application.myapp | 10 + SRC/MESWin/Test/My Project/AssemblyInfo.vb | 35 + .../Test/My Project/Resources.Designer.vb | 73 + SRC/MESWin/Test/My Project/Resources.resx | 124 + .../Test/My Project/Settings.Designer.vb | 73 + SRC/MESWin/Test/My Project/Settings.settings | 5 + SRC/MESWin/Test/My Project/licenses.licx | 0 SRC/MESWin/Test/Resources/iMES.isl | 4303 +++++++ SRC/MESWin/Test/Test.sln | 22 + SRC/MESWin/Test/Test.vbproj | 195 + SRC/MESWin/Test/app.config | 28 + SRC/MESWin/Test/iMES.snk | Bin 0 -> 596 bytes SRC/MESWin/Test/modTest.vb | 183 + SRC/MESWin/shared file/DirectionDown.png | Bin 0 -> 628 bytes SRC/MESWin/shared file/DirectionLeft.png | Bin 0 -> 512 bytes SRC/MESWin/shared file/DirectionRight.png | Bin 0 -> 552 bytes SRC/MESWin/shared file/DirectionUp.png | Bin 0 -> 606 bytes SRC/MESWin/shared file/Export16x16.ico | Bin 0 -> 1406 bytes SRC/MESWin/shared file/MakeVersion.targets | 16 + SRC/MESWin/shared file/MakeVersion_CS.targets | 16 + SRC/MESWin/shared file/Save16x16.ico | Bin 0 -> 1406 bytes SRC/MESWin/shared file/arERF_General.resx | 411 + SRC/MESWin/shared file/arERF_General.vb | 1313 +++ SRC/MESWin/shared file/iMES.isl | 4303 +++++++ SRC/MESWin/shared file/iMES.pfx | Bin 0 -> 2582 bytes SRC/MESWin/shared file/iMES.snk | Bin 0 -> 596 bytes SRC/MESWin/shared file/modConstant.vb | 22 + SRC/MESWin/shared file/modQCSetting.vb | 61 + SRC/MEStc_ABC/MEStc_ABC.csproj | 129 + SRC/MEStc_ABC/MEStc_ABC.csproj.vspscc | 10 + SRC/MEStc_ABC/MEStc_ABC.sln | 30 + SRC/MEStc_ABC/Properties/AssemblyInfo.cs | 32 + SRC/MEStc_ABC/tcWIP/clsLot.cs | 337 + SRC/MESud/UserDefine_Customer.sln | 49 + .../udSYS_Customer/Properties/AssemblyInfo.cs | 32 + .../udSYS_Customer/Resources.Designer.cs | 70 + SRC/MESud/udSYS_Customer/Resources.resx | 117 + .../udSYS_Customer/clsSerialNoFunction.cs | 174 + .../udSYS_Customer/udSYS_Customer.csproj | 136 + .../udScriptFunction_Customer/AssemblyInfo.cs | 30 + .../clsScriptFunction.cs | 225 + .../udScriptFunction_Customer.csproj | 157 + .../AssemblyInfo.cs | 30 + .../clsUnitTransferFunction.cs | 124 + .../udUnitTransferFunction_Customer.csproj | 155 + SRC/iMESCIOC/CDO/Tables/CDO_TABLE_SAMPLE.cs | 38 + SRC/iMESCIOC/iMES.snk | Bin 0 -> 596 bytes SRC/iMESCIOC/iMESCIOC.csproj | 84 + SRC/iMESCIOC/iMESCIOC.sln | 22 + SRC/wsABC/My Project/Application.Designer.cs | 11 + SRC/wsABC/My Project/Application.myapp | 10 + SRC/wsABC/My Project/Settings.Designer.cs | 88 + SRC/wsABC/My Project/Settings.settings | 7 + SRC/wsABC/Properties/AssemblyInfo.cs | 32 + .../Properties/BuildIncrementVersionInfo.cs | 1 + SRC/wsABC/Resources.Designer.cs | 70 + SRC/wsABC/Resources.resx | 117 + SRC/wsABC/wsABC.csproj | 171 + SRC/wsABC/wsABC.csproj.vspscc | 10 + SRC/wsABC/wsABC.sln | 30 + SRC/wsABC/wsWIP/wsWIP.cs | 131 + 220 files changed, 57241 insertions(+) create mode 100644 .gitignore create mode 100644 Language/mesresource.en.resources91 create mode 100644 Language/mesresource.zh-chs.resources91 create mode 100644 Language/mesresource.zh-cht.resources91 create mode 100644 SQLScript/InitData.xlsx create mode 100644 SQLScript/Tables.xlsx create mode 100644 SRC/MESAgent/AutoLoaderLib/AssemblyInfo.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.csproj create mode 100644 SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.sln create mode 100644 SRC/MESAgent/AutoLoaderLib/EPIParseTemplate.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/My Project/Settings.Designer.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/My Project/Settings.settings create mode 100644 SRC/MESAgent/AutoLoaderLib/ParseNEL.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/ParsePL.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/ParsePR.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/ParseQEL.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/Properties/BuildIncrementVersionInfo.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.map create mode 100644 SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.disco create mode 100644 SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.wsdl create mode 100644 SRC/MESAgent/AutoLoaderLib/app.config create mode 100644 SRC/MESAgent/AutoLoaderLib/clsAutoLoaderLibrary.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/modAutoLoaderLibrary.cs create mode 100644 SRC/MESAgent/AutoLoaderLib/modWIN.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/AssemblyInfo.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/AutoRunLib_C.csproj create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/EAIMessageSynchronizer.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.Designer.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.settings create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Properties/BuildIncrementVersionInfo.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/IntegrationEntry.wsdl create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.map create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.map create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.disco create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.wsdl create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.map create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/TIPTOPServiceGateWay.wsdl create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.map create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/TIPTOPServiceGateWay.wsdl create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.map create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.disco create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.wsdl create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.map create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.disco create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.wsdl create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/app.config create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/clsAutoRunLibrary.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/modAutoRunLibrary.cs create mode 100644 SRC/MESAgent/MESAutoRun/AutoRunLib/modWIN.cs create mode 100644 SRC/MESAgent/MESAutoRun/MESAutoRun.sln create mode 100644 SRC/MESEAI/EAICws/EAICws/EAIws_C.csproj create mode 100644 SRC/MESEAI/EAICws/EAICws/My Project/Application.Designer.cs create mode 100644 SRC/MESEAI/EAICws/EAICws/My Project/Application.myapp create mode 100644 SRC/MESEAI/EAICws/EAICws/My Project/AssemblyInfo.cs create mode 100644 SRC/MESEAI/EAICws/EAICws/My Project/Resources.resx create mode 100644 SRC/MESEAI/EAICws/EAICws/My Project/Settings.Designer.cs create mode 100644 SRC/MESEAI/EAICws/EAICws/My Project/Settings.settings create mode 100644 SRC/MESEAI/EAICws/EAICws/modEAP.cs create mode 100644 SRC/MESEAI/EAICws/EAICws/modERP.cs create mode 100644 SRC/MESEAI/EAICws/EAICws/modERPIntegrate.cs create mode 100644 SRC/MESEAI/EAICws/EAICws/modKMI.cs create mode 100644 SRC/MESEAI/EAICws/EAICws/modWS.cs create mode 100644 SRC/MESEAI/EAItc/EAItc_C.csproj create mode 100644 SRC/MESEAI/EAItc/My Project/Application.Designer.cs create mode 100644 SRC/MESEAI/EAItc/My Project/Application.myapp create mode 100644 SRC/MESEAI/EAItc/My Project/AssemblyInfo.cs create mode 100644 SRC/MESEAI/EAItc/My Project/Resources.resx create mode 100644 SRC/MESEAI/EAItc/My Project/Settings.Designer.cs create mode 100644 SRC/MESEAI/EAItc/My Project/Settings.settings create mode 100644 SRC/MESEAI/EAItc/clsCom.cs create mode 100644 SRC/MESEAI/EAItc/clsEAP.cs create mode 100644 SRC/MESEAI/EAItc/clsERP.cs create mode 100644 SRC/MESEAI/EAItc/clsMDS.cs create mode 100644 SRC/MESEAI/EAItc/clsSPC.cs create mode 100644 SRC/MESEAI/MESEAI.sln create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.csproj create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.sln create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.vssscc create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.Designer.cs create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.myapp create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/My Project/AssemblyInfo.cs create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/My Project/Resources.resx create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.Designer.cs create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.settings create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/clsBusinessRule.cs create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/clsGetFunctionBR.cs create mode 100644 SRC/MESPlugin/MESPI_BusinessRule/iMES.snk create mode 100644 SRC/MESPlugin/MESPI_WIP/MESPI_WIP.csproj create mode 100644 SRC/MESPlugin/MESPI_WIP/MESPI_WIP.sln create mode 100644 SRC/MESPlugin/MESPI_WIP/My Project/Application.Designer.cs create mode 100644 SRC/MESPlugin/MESPI_WIP/My Project/Application.myapp create mode 100644 SRC/MESPlugin/MESPI_WIP/My Project/AssemblyInfo.cs create mode 100644 SRC/MESPlugin/MESPI_WIP/My Project/Resources.resx create mode 100644 SRC/MESPlugin/MESPI_WIP/My Project/Settings.Designer.cs create mode 100644 SRC/MESPlugin/MESPI_WIP/My Project/Settings.settings create mode 100644 SRC/MESWin/Resources/AUT.png create mode 100644 SRC/MESWin/Resources/AutoRPTMeasureData.xls create mode 100644 SRC/MESWin/Resources/AutoRPTPareto.xls create mode 100644 SRC/MESWin/Resources/AutoRPTVarMonthReport.xls create mode 100644 SRC/MESWin/Resources/DEFAULT.png create mode 100644 SRC/MESWin/Resources/DT.png create mode 100644 SRC/MESWin/Resources/DirectionDown.png create mode 100644 SRC/MESWin/Resources/DirectionLeft.png create mode 100644 SRC/MESWin/Resources/DirectionRight.png create mode 100644 SRC/MESWin/Resources/DirectionUp.png create mode 100644 SRC/MESWin/Resources/EMS.png create mode 100644 SRC/MESWin/Resources/ENT.png create mode 100644 SRC/MESWin/Resources/EQP.png create mode 100644 SRC/MESWin/Resources/FINIAL WEEKLY REPORT.xls create mode 100644 SRC/MESWin/Resources/IEW.png create mode 100644 SRC/MESWin/Resources/INV.png create mode 100644 SRC/MESWin/Resources/ISU.png create mode 100644 SRC/MESWin/Resources/ImportSample-AttributesQCItem.xls create mode 100644 SRC/MESWin/Resources/ImportSample-Equipment1.csv create mode 100644 SRC/MESWin/Resources/ImportSample-Equipment2.txt create mode 100644 SRC/MESWin/Resources/ImportSample-QCChar.xls create mode 100644 SRC/MESWin/Resources/ImportSample-SPCData.xls create mode 100644 SRC/MESWin/Resources/ImportSample-VariablesQCItem.xls create mode 100644 SRC/MESWin/Resources/MSA.png create mode 100644 SRC/MESWin/Resources/MTL.png create mode 100644 SRC/MESWin/Resources/OE.png create mode 100644 SRC/MESWin/Resources/OP.png create mode 100644 SRC/MESWin/Resources/PM.png create mode 100644 SRC/MESWin/Resources/PRD.png create mode 100644 SRC/MESWin/Resources/PRS.png create mode 100644 SRC/MESWin/Resources/QC.png create mode 100644 SRC/MESWin/Resources/RPT.png create mode 100644 SRC/MESWin/Resources/SMD.png create mode 100644 SRC/MESWin/Resources/SPC.png create mode 100644 SRC/MESWin/Resources/SPCExport_2003_Standard.xls create mode 100644 SRC/MESWin/Resources/SPCExport_STD.xls create mode 100644 SRC/MESWin/Resources/SPCExport_STD02.xls create mode 100644 SRC/MESWin/Resources/SPCExport_STD02_2003.xls create mode 100644 SRC/MESWin/Resources/SPCExport_STD_190111.xls create mode 100644 SRC/MESWin/Resources/SPCExport_STD_190111H.xlsm create mode 100644 SRC/MESWin/Resources/SPCReport.xls create mode 100644 SRC/MESWin/Resources/SYS.png create mode 100644 SRC/MESWin/Resources/USR.png create mode 100644 SRC/MESWin/Resources/WIP.png create mode 100644 SRC/MESWin/Resources/WIPReport.xls create mode 100644 SRC/MESWin/Resources/mesresource.en.resources91 create mode 100644 SRC/MESWin/Resources/mesresource.zh-chs.resources91 create mode 100644 SRC/MESWin/Resources/mesresource.zh-cht.resources91 create mode 100644 SRC/MESWin/Resources/msg_action.en.resources create mode 100644 SRC/MESWin/Resources/msg_action.zh-chs.resources create mode 100644 SRC/MESWin/Resources/msg_action.zh-cht.resources create mode 100644 SRC/MESWin/Resources/msg_name.en.resources create mode 100644 SRC/MESWin/Resources/msg_name.zh-chs.resources create mode 100644 SRC/MESWin/Resources/msg_name.zh-cht.resources create mode 100644 SRC/MESWin/Test/MDI_Panel.resx create mode 100644 SRC/MESWin/Test/MDI_Panel.vb create mode 100644 SRC/MESWin/Test/My Project/Application.Designer.vb create mode 100644 SRC/MESWin/Test/My Project/Application.myapp create mode 100644 SRC/MESWin/Test/My Project/AssemblyInfo.vb create mode 100644 SRC/MESWin/Test/My Project/Resources.Designer.vb create mode 100644 SRC/MESWin/Test/My Project/Resources.resx create mode 100644 SRC/MESWin/Test/My Project/Settings.Designer.vb create mode 100644 SRC/MESWin/Test/My Project/Settings.settings create mode 100644 SRC/MESWin/Test/My Project/licenses.licx create mode 100644 SRC/MESWin/Test/Resources/iMES.isl create mode 100644 SRC/MESWin/Test/Test.sln create mode 100644 SRC/MESWin/Test/Test.vbproj create mode 100644 SRC/MESWin/Test/app.config create mode 100644 SRC/MESWin/Test/iMES.snk create mode 100644 SRC/MESWin/Test/modTest.vb create mode 100644 SRC/MESWin/shared file/DirectionDown.png create mode 100644 SRC/MESWin/shared file/DirectionLeft.png create mode 100644 SRC/MESWin/shared file/DirectionRight.png create mode 100644 SRC/MESWin/shared file/DirectionUp.png create mode 100644 SRC/MESWin/shared file/Export16x16.ico create mode 100644 SRC/MESWin/shared file/MakeVersion.targets create mode 100644 SRC/MESWin/shared file/MakeVersion_CS.targets create mode 100644 SRC/MESWin/shared file/Save16x16.ico create mode 100644 SRC/MESWin/shared file/arERF_General.resx create mode 100644 SRC/MESWin/shared file/arERF_General.vb create mode 100644 SRC/MESWin/shared file/iMES.isl create mode 100644 SRC/MESWin/shared file/iMES.pfx create mode 100644 SRC/MESWin/shared file/iMES.snk create mode 100644 SRC/MESWin/shared file/modConstant.vb create mode 100644 SRC/MESWin/shared file/modQCSetting.vb create mode 100644 SRC/MEStc_ABC/MEStc_ABC.csproj create mode 100644 SRC/MEStc_ABC/MEStc_ABC.csproj.vspscc create mode 100644 SRC/MEStc_ABC/MEStc_ABC.sln create mode 100644 SRC/MEStc_ABC/Properties/AssemblyInfo.cs create mode 100644 SRC/MEStc_ABC/tcWIP/clsLot.cs create mode 100644 SRC/MESud/UserDefine_Customer.sln create mode 100644 SRC/MESud/udSYS_Customer/Properties/AssemblyInfo.cs create mode 100644 SRC/MESud/udSYS_Customer/Resources.Designer.cs create mode 100644 SRC/MESud/udSYS_Customer/Resources.resx create mode 100644 SRC/MESud/udSYS_Customer/clsSerialNoFunction.cs create mode 100644 SRC/MESud/udSYS_Customer/udSYS_Customer.csproj create mode 100644 SRC/MESud/udScriptFunction_Customer/AssemblyInfo.cs create mode 100644 SRC/MESud/udScriptFunction_Customer/clsScriptFunction.cs create mode 100644 SRC/MESud/udScriptFunction_Customer/udScriptFunction_Customer.csproj create mode 100644 SRC/MESud/udUnitTransferFunction_Customer/AssemblyInfo.cs create mode 100644 SRC/MESud/udUnitTransferFunction_Customer/clsUnitTransferFunction.cs create mode 100644 SRC/MESud/udUnitTransferFunction_Customer/udUnitTransferFunction_Customer.csproj create mode 100644 SRC/iMESCIOC/CDO/Tables/CDO_TABLE_SAMPLE.cs create mode 100644 SRC/iMESCIOC/iMES.snk create mode 100644 SRC/iMESCIOC/iMESCIOC.csproj create mode 100644 SRC/iMESCIOC/iMESCIOC.sln create mode 100644 SRC/wsABC/My Project/Application.Designer.cs create mode 100644 SRC/wsABC/My Project/Application.myapp create mode 100644 SRC/wsABC/My Project/Settings.Designer.cs create mode 100644 SRC/wsABC/My Project/Settings.settings create mode 100644 SRC/wsABC/Properties/AssemblyInfo.cs create mode 100644 SRC/wsABC/Properties/BuildIncrementVersionInfo.cs create mode 100644 SRC/wsABC/Resources.Designer.cs create mode 100644 SRC/wsABC/Resources.resx create mode 100644 SRC/wsABC/wsABC.csproj create mode 100644 SRC/wsABC/wsABC.csproj.vspscc create mode 100644 SRC/wsABC/wsABC.sln create mode 100644 SRC/wsABC/wsWIP/wsWIP.cs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5015794 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.xml +*.dll +*.suo +*.cache +/SRC/MES_C_DLL +/SRC/MES_S_DLL +/SRC/MESClient +/SRC/**/obj +/SRC/**/.vs + diff --git a/Language/mesresource.en.resources91 b/Language/mesresource.en.resources91 new file mode 100644 index 0000000000000000000000000000000000000000..a0e95009ffd1c6bba5a2cd2017ae17a1b9e1db32 GIT binary patch literal 5770 zcmai23v?9K8NQ;krg%iR0_ z-~HeJKSOrEc66u27+Zstj`bHTBQs4i3T82%Gzx<|&Cq*|d^67!l4d@g>S^X3M!t|T zv-4(6n@&H?TrQ@qV&0gSHHubVPd9V5*pp5r+l>CWxx~oM>zO@Uza)9dH)hPec$P7J z&fIfPRaVSesf^)hj~Uh(Fv`H9KdRSHe_veHbmL2(d~nmX?VqixI+k4hgMUrB?ehMs z?zsPtE7vsdKe{IO%|ESu{Mlpo_C`0XdvEFMKb#ktweiqn>ZW~%R&3GN-?inLU!3>I z&l*QRHh0m{Cww;@e`4JWm0Rz5Yx~x*wZts))mGgRj|5~u- z)z`A6h^9=f`{B z3jO`V!xKK8vT5D1u3xYHeC3W8PP81@Gj!j!d6nHiUsc7Atg8O0=g#Vtb@x@@fHl(k zYxRG|UQl!3vd3$3zdKTMbnC+-5<3<)?3%fz;mU8l(Qw%48eO|Z8{2jFcgK6~cyD~i z_2=*hdT*Y%bJylc8^6A1@;Toge}0c=($qOa#$9yq#@nVh9nQ@@aQTOG`fpw__xSRK z!RMahEuFjjT3TP(a>d6ZZ*RNjg0mx;m93F?o|zS0`|$Dh^S9qUf5P*@?@a00o(SEy zSzq_SX8pPYdlnCiy`EaH{Q2tDjp6h!&zqI`$*LE#w{N`lnw?+1+tl^#U1Ixa5 z|Eg=(H{E*e3Z!R~hq1;p89OqBu^OzY)r@@!`V`PdR4{g16=NHQGqwQh7-+MR+xNl0 zeHdfic%H!BXNNNOGS-#2zZ&bYO2)pA;`|)<4}w1zch`eH59b?zQ=nrnWW^w37kJlU zPk$bTE)%!{bX0+NC7!eJlp*hN$oT}=2CUVfTfm=z=LoEKAoDL+zro!&bYvlKJM_Pa zd+m50##)5?FX4GP?gdE}Uxe(Yr;5WjykFh2J zzZ$f;*!zHa7c!m$E`|L_tk1Ci0lfwA7ht^&c`IS_aA2kY`zX%8!u>w-3;L#FNjQ&( z{$}8cb&NH6Sqt+rg+-W;MOhb9nP#8jFpRNrE;|Ue!a^m0vj7<7waGCypM~+`#qDm} zsYby_uyWRgxKrT;F~a6x+vT&B$q*7@aa@iJx9Db@$xDTv4%90<17<4WG@t{NOvYl#& zG2QHMAl8a}lFS4wJ>lZq6rYJI@d#We>Yzp(MFF(11{~`tsFc;X?IB4U2QsHfg~4h? zmjdkM6eGdP;R40=c@Ba14Yor3CU;bYX~n0p_SuW)S|7Lsb|t zCozPdqrs?krwYaJT!D?C(5NW<5J162XFFIo=hHx%OxHW8K7gUzDA-Y^B3SMexCBs- zQ%W+sLTC|{Rq8`K7@T5L-drR;g4JTH=mcmgfxbGS90I7`X)0X}_(V5frDe#Gd1o}O zB%55ATY&d~(L@ZY7#HB=eG}Mq6cjI_JgivCI z5gaNbP%W)2f(IsAk8cCiso`J z*b~axjudr3ZUK;bf@oM_m_`2v*v%l1a>*SahhSiU-310rqp?bbDMp4<45f|mAb?{8 z@YGV;4yN|Mq8x%c3Km6!@<;Cs4zIlSU=(4bN}*hdFi{|PLhM!lUuv5as8$otg;%(sMGvNfG%S0|e=z zQY{T`7UW7I6Q*D2p?6*RTgYkL6#z`6HuoccB3BvLy{B>$(J0O$kwiqGQmh=V=msu{_br-2R9W(*SZ-dz+nDm)M zv2!GmyB|4h@ro2ZD!P|$e+u?Qy6v(>i&MkX8&yUzdD$8GTJ?}OoiNYO8gQIIpA{UK zQ$3&?;{d4_^ugZpu4qP$T=ouMzrBqiztu$u+j z?Yfgcgxm7j zeybqW(=Dx-Hn`Wa@~IvkF{Oq}T#u}G?v^}Jdv8K0I2C1fRG>ybRIz7Q87lPU(D)#B+lEIpN$JobqP-MvK$rC|!y2P|XK zP~qB0CDIYrEhC@O(@J(g*ia=N2+PtCI~F5U&5smNqQiPtUu5K^1|<;)As|{b7Wc*# znftskB_@q12@aQA19F?>v0W13tqJL6E{06Km)mAlgrahLyxXy9XxOW@&5-QJOsR@a zGedz$OT1MY7S{7iD50K#jo(-Z1c)5|Pz7EX!P94?&Fms>ncP~ODi8~Gl1m$U!Qe@| zh;`}}>D*{G-Or<01HWk-OgK;KS>9vtR5n+%j9#fSTC|*~)u>*%O^LLG1M$|VU#e5} zB$>lwi&MEA*)?3%^Li$tXHcK^wnI-B4XIxBC(v=ekehd@8ZSUlj&|<1|n!2f0wLnx2MEr3j z9FWdZwP=gx4F^Nf&WIO;k(!Z4hJt23<5crPsoEtbyi$#Z!t=%g!KfC7P8>S|S`2L& zje|QvGy3o=RHGG>3oghY4b{x0ieEZQi(`^G(n0qi7moe4G2uUv{ANX^V7tH;Vu-&$N^E?AUiF5XmHlxr@YcuF(pY%~`|iv`8Gn~L)DHbjdV z=Az=fO@%Sb7A>Yvw5Ti1FDWfD#}t}NONw&xqs7$H4f%PwtIb?{}2G`oXH4kdMo*_g)f0rO!*A z`=@;IZNuL_zcTM13)`*NvVOPk>+;c;ze&7wVfuTv7~gegEHlI}ESgjPb(->^gPI*! zx0N_F|Cw`7z@-PD57_+2F9NQfI6NzR^s$h0OY1`(dEieWSIk+r2X>{+$!hrdT>m{E z&CMvgQ*7Q?F@Nk_XJp%tE-bk7p}BW&@Q;jIF)iYU(z7*-!>?>!e(B-QS8T1=zViB0 zk0lKDiiw%$w#fA-6&(B%9V?^;&yg5{OM+O}O!j(z*#mT>W-Epz_e{OhNi zEZbVbcWv8_^tAgk7WzHLzL>^X09KTSv2Q_N2>L7^#%g9T*6PRDdaP@pEk|xY2EX=J z#@6Bc8_1rX&e&^Mk3hZ(tH+nI-=H|ZhP(v+O31c=9)tZ3;PkL@5xUZ$;~aR;;F*4o z!qz6>ieY00c#q(F8NPMU_dN7m1~vq%3iJ}-Z^8F0toNbQj`e%UnqZ?4`ubu2Ey%6G z_Z6(iA^$4AABJ24>4M%y?E8Q}g6F5;)1M(PLf;+0bU5pH$@*m`F000aUsTdR=M*;Vu54Q@Q1li@)Mo=tFg z9n-NSP<3oI@H%`_;0S3lLis$dJPjlRK%|sR=pkqX@DL!8-jK=t7`+)72Yu-m7-|0vzlOCaq48f=XF6DJLXtg&>O*sbsK{ z5cyO9((%azEe+0PgR_mxQoQ2-9a!zUny z64H~HjoMtNbbJJ<;LcGA)8VMvNM6VO1=)xMYzX3657Zm6piW1hDu6Ua((Ne^aw-c2 zAo%9~iv(FrfYZrPlZLPxluYZDCp9$pk!+G;$J4d}WQ`{w6NE5N0-ct3A=H97+mo4q z^U;9{Zf5XvJ`F~od#X?jD>>GPLZhOHg8~Y!iS1Xh?wq%Qw1C7ja5xGj0&kZk%AMoS zXYp#bgk^$1v0chGVjHS*m%=I~ArbbI*ppxdsw|3gBHIblY;O_;HGwsN5v(%Yi8}&v z24&mCC{Pqenv99q(FCEtNlNIbebo-9xbX>11K%@pqLLYYKb?f?1X5-|*NKW+4(8Lu zdvK5vN-TFmgh?Zetc7{1yicJ@Lstb|B6RBo<7$kgIYu`LKe>pckgKVR4mINjY_rCU?U?h@d&sp#NAmG!^{bVmjR3*Z`LDB?hZ~s`Nb)Rnu9kc zq~}I}nj$)P6d*_sm8xfOwIKTvnJ}xdfgQT*yl){j+9?3c=Ya2;Ho1TyV>As@5LOCr z97>7o#cBNr2}mIImhWy8&51(tLzaTha}j?BzLc*CsMG88jQ3kAoS` zne>`Ou~RkCafeklzan{$^6n++*TJ4o(rz|yacX$FQFSOLEqfO*e>zPj+>2x5*v_NZ z3K5u_Pe2lv0SV^y?wN|OK@RiGFNefIwT?~4J97jvO=uo!U3&YYs^xDnaV(SrcxS6U zN#(6}_yPdtsTH9Dw9v(KL5IA5G98{Z9t*(i8+A}9S53yCIAwtmdZPq?!N>*ce)rg% ztVPptKpM8ZLA__)lMr7zwK!d4qEgkA3is>w9*FtU>zfuC?7=3S@x*K1F+!5BX7v1{kWszo~I(A9lJ75bMsj|Y}vd_`cEmt=PGo203*=_qBox5Fx z0Bwri-n=utw4flTXsd9;cBWKU?>KqXS=MZC>y~O81%ovBTlr9RdZrkwH`;9-Qq^hs zg+{5WNgl9B72S?gJ7sHAw4-m(G1h>+G_+T$8B*k$$qLu*_bMy>EhP@0iQZWHdi# zSvk@|2~ibTo0Oxu)bX8fY-!=fe6v1In3*1HkUI{`9aXN#Yn(@{(rCNfw_oZz<53kZ zqamIyj1TRR50}ZOb_;$a09Ys>iNMm}%eN1`pt-%hMUj+O*Y6T*p>6 zOI@2;#91m=9fK}s<5_9=h!BvRQ}je$;o}b57(5had2Piw^JB2)SqD*2MOCEK;`mUl zG|(zrM;(1=VXBj>qc!L-dxyk<}^50#;8#z!ioigJf-$lfv}?XB@t=jc2xRSi-% zqBd;hsI!Dh^K=zgh#Y$Ee4tNhe@~TyA2mJi)|qt5Ix7(rokAe~<-2w>PN+^9KIlOh z9~yDZSRc84NU~HSyGjPgCS3-uu=w$v!}5a4aP{N&<=!ryN8A-R)?U~I(_P%X2c<(j T!ZcG+4(=bX)|jHVy+Qv4!lfH3 literal 0 HcmV?d00001 diff --git a/Language/mesresource.zh-cht.resources91 b/Language/mesresource.zh-cht.resources91 new file mode 100644 index 0000000000000000000000000000000000000000..7ca1d36f3f4098ce9911f212eb4097b33ba4384c GIT binary patch literal 5972 zcma)A2~>LjHBG%U6zrhmWT@0=0Yj$?@HD8!Dc&S@_?VeTd zyq*;B$2Y<@`Ck~xU;9>m>f*OcG~Zq_J@mnQuXYE&-&%40gGUQOKCZmcdszsTJ}-an zpYo-*4S)OmYUDrW9=2Z3{r#SAszzS^Hu>_!+urMo^UXVBo+5r})|~dQ*Hi@^&}_z< zUhdHRXXbqYmmlg3Sofzd1FrQPnU+8Dc*wbhyF(s(@Xe5`rrbLM+cRe7?)~K~|D7Mr z%C5XiY+6%2d-PmeRLhSq&bjO1S@*8;kBVMAIpRmsmfHE@SJy4N{K)5vH&kz0a^va8 zlLmXm34k!I$?yCNL!-2K} zYg1dnvzIUa>h{bx3J>Z(`?V!BwdjR=VvA3iUn!|;+5Xh%cOR|~7e87*^WROseWua8 z@nHD&jhm33!~Tqg{(!MBCo>j+6|G_HJJ9EXKFx=*+9`}R`!Tix>pEzQklT;Jue+VG zJp6u(vjev=_A1t6IB&tS`7-u96z4ZMFM+=VXAgoNhy7;Y^w4n$vN9p#9C**-nf@Jv zuC>6GLB|yE9>Z@eesz%72{~T?8-is4y&U*S_??FJK4jXl{(!St&`|<;{m}mw&Mm|5 zRjem){ycsk!MP-o1-bjMKMwp+JUZa z=XhW~gp5Jp3h_K0>np6kLvI=QE3n>$yeio22h3bxk7553&aWrGpf4IrzTT##1(2bfbX&@UoX$c4 z2p->mQ6P&+Fgg`tG7xryl4-s2q=x1JI-8>C@ziYqS>s8_0U^wjK;H5$gjg_VcrugV zA30P!p27Wm28=-WRG}Dd<5(jKjfx@x0w}mytU<-PbKU~d96Fv2=O~nv8$F&VQ${TJ z6zB!iUo9maJI%H5%JTH#92g?S#=E&lyb&u|QSmB3(FD46LPZFmdZ(%M8Q`P3caA@w z#Y@=&mIMCSb|G7XZK%p!2(6TaWav*}Pk|MvvMA2UY%54Jyh#+)B(@ifV3pxc+)3N7wB4Gw}ov4WAU_MQ} z2L}nE#Bw7uV|0^n&qXAKOifp0s2LXl4EF}o zydtk?F2{l$>CIN9q`TzC0}@P-46Ia`Mc;`m59AqcayG~Y7?{Wkz<_BqR;e)g$WV*H zvk?jb4CBD@rL+aijPHxG0qQ7N6b;HB-5Dah(kg?Ihmk6Ua>c_$f!q(VEC07x&ps4! zjNk7Qi|2PRIY@(zl)S(r;I0sNXHg7u#soS6j38@PAWZHKPD1%5C{BgqjS1`P?Aq+kO*bk}*`LTck00GQ1I-#2Ym0)~vyG)zNSDZB|NCDNP7 zo(2=P(tSb$ld2>MmZ!mAwPq}U%%RhKgiu@34V>y_Id4}hshS9y56Lz#!#R^)lPGqo zByx99W%DbN_bBgPI(;7O*>u{?<}FSQPdBO##iV8L0On8LSz+LKh?YKPwq zK%`m`DnJWaJQw8TqKRa9*7(B!%(z(wg)(^}2E}PP7@;?x;4c^}!TOndY);gonQ)MX zEpJfoSyzJN3vYd#t}#)mYD$Isb$bVn`O@o~78&foCY zC?Toa9FZs>QBKm}+lmfdw$rW$BbuZN}0CF1MAQ>8CGp`Zn1HvxpP!-EgeF%d|;>j`F`H?1h2MnL#4i2*|N(k5ciM8Ntxdv~MUxY=pli>WizxG~UQ&B;g2^EKOQz{?;6w??9aH|;uMI9tm zmjf0q5b5#U`9Pl1`<@~NKXkn6D|eJefFe@}#NT_DuY-r`h#7PF%FtQYfc23N4@u^2 z$gYwBK{JLSU4DG$FrQKxu4eq9+}qCch>POp!V4Q?@;N}2-FrYfWD_Q5l@{Rg@#>3P IG`2VBzqn!-(EtDd literal 0 HcmV?d00001 diff --git a/SQLScript/InitData.xlsx b/SQLScript/InitData.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3813724360dafad1511d5882cb1be725c2eba8c0 GIT binary patch literal 9046 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 DC@p{a literal 0 HcmV?d00001 diff --git a/SQLScript/Tables.xlsx b/SQLScript/Tables.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..218d87e52a3935427a0a232b467201de1873a206 GIT binary patch literal 12321 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 tplg3h`4j!}mz055Jj|={|2B?aQhs4! + + + Local + 8.0.50727 + 2.0 + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A} + SAK + SAK + SAK + SAK + Debug + AnyCPU + + + + + AutoLoaderLib_C + + + None + JScript + Grid + IE50 + false + Library + Binary + On + Off + AutoLoaderLib_C + + + true + false + true + + + Windows + + + false + v4.6.2 + 2.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\AutoLoaderLib_C.xml + 285212672 + + + + + true + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + AnyCPU + false + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\AutoLoaderLib_C.xml + 285212672 + + + + + false + true + false + true + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + none + false + + + + False + ..\..\MES_S_DLL\data_access_service.dll + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + + + False + ..\..\MES_S_DLL\iMESComXML.dll + + + False + ..\..\MES_S_DLL\iMESConst.dll + + + + False + ..\..\MES_C_DLL\ICSharpCode.SharpZipLib.dll + False + + + False + ..\..\MES_C_DLL\NPOI.dll + False + + + False + ..\..\MES_C_DLL\NPOI.OOXML.dll + False + + + False + ..\..\MES_C_DLL\NPOI.OpenXml4Net.dll + False + + + False + ..\..\MES_C_DLL\NPOI.OpenXmlFormats.dll + False + + + System + + + System.Data + + + + System.Web.Services + + + System.XML + + + + + + + + + + + + True + True + Reference.map + + + + AutoLoaderLib_C.My + SettingsSingleFileGenerator + Settings.Designer.cs + + + Code + + + Code + + + + Code + + + Code + + + True + True + Settings.settings + + + + + + + MSDiscoCodeGenerator + Reference.cs + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + Dynamic + Web References\wsInvoke\ + http://localhost/MESws_Industry/wsInvoke.asmx + + + + + MySettings + AutoLoaderLib_wsInvoke_wsInvoke + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.sln b/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.sln new file mode 100644 index 0000000..056d582 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/AutoLoaderLib_C.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoaderLib_C", "AutoLoaderLib_C.csproj", "{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 1 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccProjectUniqueName0 = AutoLoaderLib_C.csproj + SccProjectName0 = . + SccAuxPath0 = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProvider0 = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + EndGlobalSection +EndGlobal diff --git a/SRC/MESAgent/AutoLoaderLib/EPIParseTemplate.cs b/SRC/MESAgent/AutoLoaderLib/EPIParseTemplate.cs new file mode 100644 index 0000000..cd2d4f5 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/EPIParseTemplate.cs @@ -0,0 +1,236 @@ +using System; +using System.Data; +using System.IO; +using iMESCore.Settings; +using Microsoft.VisualBasic; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public abstract class EPIParseTemplate + { + + // 設定暫存資料表的欄位 + internal abstract bool AddColumns(DataTable dt); + + // 解析資料, 並寫入暫存資料表 + internal abstract bool ParsingFile(DataTable dt, string file); + + // 將暫存資料表寫入資料庫 + internal abstract bool InsertTable(DataTable dt); + + internal IDbConnection objConnection; + + public enum FileTypeEnum + { + csv = 0, + xls = 1, + dat = 2 + } + + private string[] wildcards = new string[] { "*.csv", "*.xls", "*.dat" }; + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strConnectionString; // Connection string + private AppSettings objSetting = new AppSettings(); + private DataTable objDataTable; + private string SourcePath; + private string DestinationPath; + private string QueuePath; + private string FailPath; + + /// + /// 建構子 + /// + /// + /// + /// + /// + /// + public EPIParseTemplate(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) + { + + objSetting = new AppSettings(); + + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + + objConnection = CreateConnection(strConnectionString); + + if (Strings.Right(paramSourcePath, 1) != @"\") + { + paramSourcePath += @"\"; + } + + SourcePath = paramSourcePath; + + if (Strings.Right(paramDestinationPath, 1) != @"\") + { + paramDestinationPath += @"\"; + } + + DestinationPath = paramDestinationPath; + + if (Strings.Right(paramQueuePath, 1) != @"\") + { + paramQueuePath += @"\"; + } + + QueuePath = paramQueuePath; + + if (Strings.Right(paramFailPath, 1) != @"\") + { + paramFailPath += @"\"; + } + + FailPath = paramFailPath; + + } + + ~EPIParseTemplate() + { + + if (objConnection != null) + { + objConnection = null; + } + + if (objSetting != null) + { + objSetting = null; + } + + if (objDataTable != null) + { + objDataTable = null; + } + + } + + /// + /// 解析資料 + /// + /// + /// + /// + public string ParsingData(FileTypeEnum paramFileType) + { + + string strResult = string.Empty; + string QueueFile = ""; + string DestinationFile = ""; + string FailFile = ""; + + try + { + + objDataTable = new DataTable("RawData"); + + // 設定暫存資料表的欄位 + if (AddColumns(objDataTable)) + { + + foreach (var SourceFile in Directory.GetFiles(SourcePath, wildcards[(int)paramFileType], SearchOption.TopDirectoryOnly)) + { + + if (File.Exists(SourceFile)) + { + + QueueFile = QueuePath + Path.GetFileName(SourceFile); + DestinationFile = DestinationPath + Path.GetFileName(SourceFile); + FailFile = FailPath + Path.GetFileName(SourceFile); + + try + { + + // 將檔案從 Source 移至 Queue + MoveFile(SourceFile, QueueFile); + + objDataTable.Rows.Clear(); + + // 解析資料, 並寫入暫存資料表 + if (ParsingFile(objDataTable, QueueFile)) + { + + // 將暫存資料表寫入資料庫 + if (InsertTable(objDataTable)) + { + + // 將檔案從 Queue 移至 Destination + MoveFile(QueueFile, DestinationFile); + + } + + } + } + + catch (Exception ex) + { + + // 將檔案從 Queue 移至 Fail + MoveFile(QueueFile, FailFile); + + throw; + + } + + } + + } + + strResult = "success"; + + } + } + + catch (Exception ex) + { + + strResult = "Message:" + ex.Message + ",StackTrace:" + ex.StackTrace; + } + + finally + { + + } + + return strResult; + + } + + /// + /// 搬移檔案 + /// + /// 來源檔案 + /// 目的檔案 + /// + private void MoveFile(string paramSourceFile, string paramTargetFile) + { + + try + { + + // 判斷目的檔案是否已存在, 若存在必須先刪除 + if (File.Exists(paramTargetFile)) + { + File.Delete(paramTargetFile); + } + + // 移動檔案至目的 + Directory.Move(paramSourceFile, paramTargetFile); + } + + catch (Exception ex) + { + + throw; + + } + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/My Project/Settings.Designer.cs b/SRC/MESAgent/AutoLoaderLib/My Project/Settings.Designer.cs new file mode 100644 index 0000000..a002cc9 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/My Project/Settings.Designer.cs @@ -0,0 +1,101 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + + +namespace AutoLoaderLib_C.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + 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 + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://localhost/MESws_Industry/wsInvoke.asmx")] + public string AutoLoaderLib_wsInvoke_wsInvoke + { + get + { + return Conversions.ToString(this["AutoLoaderLib_wsInvoke_wsInvoke"]); + } + } + } +} + +namespace AutoLoaderLib_C.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/My Project/Settings.settings b/SRC/MESAgent/AutoLoaderLib/My Project/Settings.settings new file mode 100644 index 0000000..ca70055 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/My Project/Settings.settings @@ -0,0 +1,9 @@ + + + + + + http://localhost/MESws_Industry/wsInvoke.asmx + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/ParseNEL.cs b/SRC/MESAgent/AutoLoaderLib/ParseNEL.cs new file mode 100644 index 0000000..15be00a --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/ParseNEL.cs @@ -0,0 +1,247 @@ +using System; +using System.Data; +using System.Diagnostics; +using System.IO; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public class ParseNEL : EPIParseTemplate + { + + + // 呼叫父類別的建構子 + public ParseNEL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath) + { + + } + + /// + /// 設定暫存資料表的欄位 + /// + /// + /// + /// + internal override bool AddColumns(DataTable dt) + { + + bool blnResult = false; + + try + { + + dt.Columns.Add("WaferID", Type.GetType("System.String")); + dt.Columns.Add("POS", Type.GetType("System.Decimal")); + dt.Columns.Add("LOP1", Type.GetType("System.Decimal")); + dt.Columns.Add("WLD1", Type.GetType("System.Decimal")); + dt.Columns.Add("VF1", Type.GetType("System.Decimal")); + + blnResult = true; + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 將暫存資料表寫入資料庫 + /// + /// + /// + /// + internal override bool InsertTable(DataTable dt) + { + + bool blnResult = false; + string strSQL_Raw; + string strSQL_Avg; + string WaferID = ""; + decimal LOP1 = 0m; + decimal WLD1 = 0m; + decimal VF1 = 0m; + + strSQL_Raw = " INSERT INTO TBL_LEDLD_EL_N_RAW " + " (WaferID, CreateDate, POS, LOP1, WLD1, VF1) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}) "; + + + strSQL_Avg = " INSERT INTO TBL_LEDLD_EL_N " + " (WaferID, CreateDate, LOP1, WLD1, VF1) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}) "; + + + try + { + + using (var oTran = objConnection.BeginTransaction()) + { + + try + { + + using (var cmd = CreateCommand()) + { + + cmd.Connection = objConnection; + cmd.Transaction = oTran; + + if (dt.Rows.Count > 0) + { + + for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) + { + + cmd.CommandText = string.Format(strSQL_Raw, dt.Rows[i]["WaferID"], dt.Rows[i]["POS"], dt.Rows[i]["LOP1"], dt.Rows[i]["WLD1"], dt.Rows[i]["VF1"]); + + + + + + cmd.ExecuteNonQuery(); + + WaferID = Conversions.ToString(dt.Rows[i]["WaferID"]); + LOP1 = LOP1 + (decimal)dt.Rows[i]["LOP1"]; + WLD1 = WLD1 + (decimal)dt.Rows[i]["WLD1"]; + VF1 = VF1 + (decimal)dt.Rows[i]["VF1"]; + + } + + cmd.CommandText = string.Format(strSQL_Avg, WaferID, LOP1 / dt.Rows.Count, WLD1 / dt.Rows.Count, VF1 / dt.Rows.Count); + + + + + cmd.ExecuteNonQuery(); + + } + + } + + oTran.Commit(); + + blnResult = true; + } + + catch (Exception ex) + { + + oTran.Rollback(); + throw; + + } + + } + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 解析資料, 並寫入暫存資料表 + /// + /// + /// + /// + /// + internal override bool ParsingFile(DataTable dt, string file) + { + + bool blnResult = false; + DataRow dr = null; + string line; + string[] tmpData; + bool startParsing = false; + string WaferID; + + try + { + + // 檔名即為 WaferID + var fi = new FileInfo(file); + WaferID = fi.Name.Replace(fi.Extension, ""); + fi = null; + + using (var sr = new StreamReader(file)) + { + + do + { + + line = sr.ReadLine(); + + if (!string.IsNullOrEmpty(line)) + { + + if (startParsing) + { + + tmpData = line.Split(','); + + dr = dt.NewRow(); + + dr["WaferID"] = WaferID; + dr["POS"] = Convert.ToDecimal(tmpData[0].Trim()); + dr["LOP1"] = Convert.ToDecimal(tmpData[4].Trim()); + dr["WLD1"] = Convert.ToDecimal(tmpData[5].Trim()); + dr["VF1"] = Convert.ToDecimal(tmpData[3].Trim()); + + dt.Rows.Add(dr); + } + + else + { + + Debug.Print(line); + + if (line.IndexOf("PosX") >= 0 && line.IndexOf("PosY") >= 0) + { + startParsing = true; + } + + } + + } + } + + while (!(line == null)); + + blnResult = true; + + } + } + + catch (Exception ex) + { + + throw; + } + + finally + { + + if (dr != null) + { + dr = null; + } + + } + + return blnResult; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/ParsePL.cs b/SRC/MESAgent/AutoLoaderLib/ParsePL.cs new file mode 100644 index 0000000..94d8b2b --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/ParsePL.cs @@ -0,0 +1,245 @@ +using System; +using System.Data; +using System.IO; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public class ParsePL : EPIParseTemplate + { + + + // 呼叫父類別的建構子 + public ParsePL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath) + { + + } + + /// + /// 設定暫存資料表的欄位 + /// + /// + /// + /// + internal override bool AddColumns(DataTable dt) + { + + bool blnResult = false; + + try + { + + dt.Columns.Add("WaferID", Type.GetType("System.String")); + dt.Columns.Add("MeasurementTime", Type.GetType("System.String")); + dt.Columns.Add("NG", Type.GetType("System.Decimal")); + dt.Columns.Add("OK", Type.GetType("System.Decimal")); + dt.Columns.Add("Yield", Type.GetType("System.String")); + dt.Columns.Add("Setup", Type.GetType("System.String")); + dt.Columns.Add("LaserOutput", Type.GetType("System.String")); + dt.Columns.Add("WPMIN", Type.GetType("System.Decimal")); + dt.Columns.Add("WPMAX", Type.GetType("System.Decimal")); + dt.Columns.Add("WPAVG", Type.GetType("System.Decimal")); + dt.Columns.Add("WPDEV", Type.GetType("System.Decimal")); + dt.Columns.Add("FWHMMIN", Type.GetType("System.Decimal")); + dt.Columns.Add("FWHMMAX", Type.GetType("System.Decimal")); + dt.Columns.Add("FWHMAVG", Type.GetType("System.Decimal")); + dt.Columns.Add("FWHMDEV", Type.GetType("System.Decimal")); + dt.Columns.Add("WDMIN", Type.GetType("System.Decimal")); + dt.Columns.Add("WDMAX", Type.GetType("System.Decimal")); + dt.Columns.Add("WDAVG", Type.GetType("System.Decimal")); + dt.Columns.Add("WDDEV", Type.GetType("System.Decimal")); + + blnResult = true; + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 將暫存資料表寫入資料庫 + /// + /// + /// + /// + internal override bool InsertTable(DataTable dt) + { + + bool blnResult = false; + string strSQL; + + strSQL = " INSERT INTO TBL_LEDLD_PL " + " (WaferID, CreateDate, MeasurementTime, NG, OK, Yield, Setup, LaserOutput, " + " WPMIN, WPMAX, WPAVG, WPDEV, " + " FWHMMIN, FWHMMAX, FWHMAVG, FWHMDEV, " + " WDMIN, WDMAX, WDAVG, WDDEV) " + " VALUES ('{0}', SYSDATE, '{1}', {2}, {3}, '{4}', '{5}', '{6}', " + " {7}, {8}, {9}, {10}, " + " {11}, {12}, {13}, {14}, " + " {15}, {16}, {17}, {18}) "; + + + + + + + + + try + { + + using (var oTran = objConnection.BeginTransaction()) + { + + try + { + + using (var cmd = CreateCommand()) + { + + cmd.Connection = objConnection; + cmd.Transaction = oTran; + + for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) + { + + cmd.CommandText = string.Format(strSQL, dt.Rows[i]["WaferID"], dt.Rows[i]["MeasurementTime"], dt.Rows[i]["NG"], dt.Rows[i]["OK"], dt.Rows[i]["Yield"], dt.Rows[i]["Setup"], dt.Rows[i]["LaserOutput"], dt.Rows[i]["WPMIN"], dt.Rows[i]["WPMAX"], dt.Rows[i]["WPAVG"], dt.Rows[i]["WPDEV"], dt.Rows[i]["FWHMMIN"], dt.Rows[i]["FWHMMAX"], dt.Rows[i]["FWHMAVG"], dt.Rows[i]["FWHMDEV"], dt.Rows[i]["WDMIN"], dt.Rows[i]["WDMAX"], dt.Rows[i]["WDAVG"], dt.Rows[i]["WDDEV"]); + + + + + + + + + + + cmd.ExecuteNonQuery(); + + } + + } + + oTran.Commit(); + + blnResult = true; + } + + catch (Exception ex) + { + + oTran.Rollback(); + throw; + + } + + } + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 解析資料, 並寫入暫存資料表 + /// + /// + /// + /// + /// + internal override bool ParsingFile(DataTable dt, string file) + { + + bool blnResult = false; + DataRow dr = null; + string line; + string[] tmpData; + string LotNo; + + try + { + + // 檔名即為 LotNo + var fi = new FileInfo(file); + LotNo = fi.Name.Replace(fi.Extension, ""); + fi = null; + + using (var sr = new StreamReader(file)) + { + + // 第一行是欄位抬頭 + line = sr.ReadLine(); + + do + { + + line = sr.ReadLine(); + + if (!string.IsNullOrEmpty(line)) + { + + tmpData = line.Split(','); + + dr = dt.NewRow(); + + dr["WaferID"] = tmpData[4].Trim() + tmpData[5].Trim().Substring(tmpData[5].Trim().Length - 2); + dr["MeasurementTime"] = tmpData[3].Trim(); + dr["NG"] = Convert.ToDecimal(tmpData[11].Trim()); + dr["OK"] = Convert.ToDecimal(tmpData[12].Trim()); + dr["Yield"] = tmpData[13].Trim(); + dr["Setup"] = tmpData[14].Trim(); + dr["LaserOutput"] = tmpData[15].Trim(); + dr["WPMIN"] = Convert.ToDecimal(tmpData[16].Trim()); + dr["WPMAX"] = Convert.ToDecimal(tmpData[17].Trim()); + dr["WPAVG"] = Convert.ToDecimal(tmpData[18].Trim()); + dr["WPDEV"] = Convert.ToDecimal(tmpData[20].Trim()); + dr["FWHMMIN"] = Convert.ToDecimal(tmpData[28].Trim()); + dr["FWHMMAX"] = Convert.ToDecimal(tmpData[29].Trim()); + dr["FWHMAVG"] = Convert.ToDecimal(tmpData[30].Trim()); + dr["FWHMDEV"] = Convert.ToDecimal(tmpData[32].Trim()); + dr["WDMIN"] = Convert.ToDecimal(tmpData[40].Trim()); + dr["WDMAX"] = Convert.ToDecimal(tmpData[41].Trim()); + dr["WDAVG"] = Convert.ToDecimal(tmpData[42].Trim()); + dr["WDDEV"] = Convert.ToDecimal(tmpData[44].Trim()); + + dt.Rows.Add(dr); + + } + } + + while (!string.IsNullOrEmpty(line)); + + blnResult = true; + + } + } + + catch (Exception ex) + { + + throw; + } + + finally + { + + if (dr != null) + { + dr = null; + } + + } + + return blnResult; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/ParsePR.cs b/SRC/MESAgent/AutoLoaderLib/ParsePR.cs new file mode 100644 index 0000000..fde4b01 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/ParsePR.cs @@ -0,0 +1,380 @@ +using System; +using System.Data; +using System.IO; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public class ParsePR : EPIParseTemplate + { + + + // 呼叫父類別的建構子 + public ParsePR(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath) + { + + } + + /// + /// 設定暫存資料表的欄位 + /// + /// + /// + /// + internal override bool AddColumns(DataTable dt) + { + + bool blnResult = false; + + try + { + + dt.Columns.Add("WaferID", Type.GetType("System.String")); + dt.Columns.Add("RawData", Type.GetType("System.String")); + dt.Columns.Add("Average", Type.GetType("System.Decimal")); + dt.Columns.Add("Diff1", Type.GetType("System.Decimal")); + dt.Columns.Add("Diff2", Type.GetType("System.Decimal")); + dt.Columns.Add("PR_GRADE", Type.GetType("System.String")); + dt.Columns.Add("PR_RESULT", Type.GetType("System.String")); + + blnResult = true; + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 將暫存資料表寫入資料庫 + /// + /// + /// + /// + internal override bool InsertTable(DataTable dt) + { + + bool blnResult = false; + string strSQL; + string strSQL2; + string strSQL3; + + const string PR_GRADE = "PR Grade"; + + // 新增 PR 資料 + strSQL = " INSERT INTO TBL_LEDLD_PR " + " (WaferID, CreateDate, RawData, Average, Diff1, Diff2, PR_GRADE, PR_RESULT) " + " VALUES ('{0}', SYSDATE, '{1}', {2}, {3}, {4}, '{5}', '{6}') "; + + + // 刪除 ComponentProperty PR_GRADE 的資料 + strSQL2 = " DELETE TBLWIPCOMPONENTPROPERTY " + " WHERE LOTNO = '{0}' " + " AND COMPONENTNO = '{1}' " + " AND PROPERTYNO = '{2}' "; + + + + // 新增 ComponentProperty PR_GRADE 的資料 + strSQL3 = " INSERT INTO TBLWIPCOMPONENTPROPERTY " + " (LOTNO, COMPONENTNO, PROPERTYNO, PROPERTYVALUE) " + " VALUES ('{0}', '{1}', '{2}', '{3}') "; + + + try + { + + using (var oTran = objConnection.BeginTransaction()) + { + + try + { + + using (var cmd = CreateCommand()) + { + + cmd.Connection = objConnection; + cmd.Transaction = oTran; + + for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) + { + + cmd.CommandText = string.Format(strSQL, Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), Operators.ConcatenateObject(dt.Rows[i]["RawData"], ""), dt.Rows[i]["Average"], dt.Rows[i]["Diff1"], dt.Rows[i]["Diff2"], Operators.ConcatenateObject(dt.Rows[i]["PR_GRADE"], ""), Operators.ConcatenateObject(dt.Rows[i]["PR_RESULT"], "")); + + + + + + + + cmd.ExecuteNonQuery(); + + cmd.CommandText = string.Format(strSQL2, Strings.Mid(Conversions.ToString(Operators.ConcatenateObject(dt.Rows[i]["WaferID"], "")), 1, 10), Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), PR_GRADE); + + + + cmd.ExecuteNonQuery(); + + cmd.CommandText = string.Format(strSQL3, Strings.Mid(Conversions.ToString(Operators.ConcatenateObject(dt.Rows[i]["WaferID"], "")), 1, 10), Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), PR_GRADE, Operators.ConcatenateObject(dt.Rows[i]["PR_GRADE"], "")); + + + + + cmd.ExecuteNonQuery(); + + } + + } + + oTran.Commit(); + + blnResult = true; + } + + catch (Exception ex) + { + + oTran.Rollback(); + throw; + + } + + } + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 解析資料, 並寫入暫存資料表 + /// + /// + /// + /// + /// + internal override bool ParsingFile(DataTable dt, string file) + { + + bool blnResult = false; + DataRow dr = null; + string line; + string[] tmpData; + string WaferID; + string RawData = ""; + decimal Average = 0m; + decimal Diff1 = 0m; + decimal Diff2 = 0m; + string PR_Grade; + string PR_Result; + + try + { + + // 檔名即為 WaferID + var fi = new FileInfo(file); + WaferID = fi.Name.Replace(fi.Extension, ""); + fi = null; + + using (var sr = new StreamReader(file)) + { + + do + { + + line = sr.ReadLine(); + + if (!string.IsNullOrEmpty(line)) + { + + tmpData = line.Split('\t'); + + if (tmpData != null && tmpData.Length == 2) + { + + if (!Information.IsNumeric(tmpData[1])) + { + tmpData[1] = "0"; + } + + switch (tmpData[0].ToUpper() ?? "") + { + + case "AVERAGE": + { + Average = Convert.ToDecimal(tmpData[1]); + break; + } + + case "DIFF1": + { + Diff1 = Convert.ToDecimal(tmpData[1]); + break; + } + + case "DIFF2": + { + Diff2 = Convert.ToDecimal(tmpData[1]); + break; + } + + default: + { + RawData += tmpData[0] + "=" + tmpData[1] + ","; + break; + } + + } + + } + + } + } + + while (!string.IsNullOrEmpty(line)); + + if (RawData.Length > 0) + { + + RawData = RawData.Substring(0, RawData.Length - 1); + + // 依 Average 取出 Grade + PR_Grade = PRGrade(Average); + + if (string.IsNullOrEmpty(PR_Grade)) + { + throw new Exception("PR_Grade fail。"); + } + + // 依 Diff 取出 Grade + switch (PRGrade(Diff1) ?? "") + { + case "": + { + throw new Exception("PR_Result fail。"); + } + case "N/A": + { + PR_Result = "NG"; + break; + } + + default: + { + PR_Result = "OK"; + break; + } + } + + dr = dt.NewRow(); + dr["WaferID"] = WaferID; + dr["RawData"] = RawData; + dr["Average"] = Average; + dr["Diff1"] = Diff1; + dr["Diff2"] = Diff2; + dr["PR_GRADE"] = PR_Grade; + dr["PR_RESULT"] = PR_Result; + dt.Rows.Add(dr); + + blnResult = true; + + } + + } + } + + catch (Exception ex) + { + + throw; + } + + finally + { + + if (dr != null) + { + dr = null; + } + + } + + return blnResult; + + } + + /// + /// PR 等級編碼原則 + /// + /// + /// + /// + private string PRGrade(decimal value) + { + + string strGrade = "N/A"; + string[] tmpData; + var CollectionGrade = new Collection(); + + CollectionGrade.Add("0~1.5~A1"); + CollectionGrade.Add("1.5~2~A2"); + CollectionGrade.Add("2~3~A3"); + CollectionGrade.Add("3~6~A4"); + CollectionGrade.Add("6~9~A5"); + CollectionGrade.Add("9~12~A6"); + CollectionGrade.Add("12~15~A7"); + CollectionGrade.Add("15~18~A8"); + CollectionGrade.Add("18~24~A9"); + CollectionGrade.Add("24~30~AA"); + CollectionGrade.Add("30~36~AB"); + CollectionGrade.Add("36~9999~AC"); + + try + { + + foreach (string str in CollectionGrade) + { + + tmpData = Strings.Split(str, "~"); + + if (tmpData.Length != 3) + { + break; + } + + if (!Information.IsNumeric(tmpData[0]) || !Information.IsNumeric(tmpData[1])) + { + break; + } + + if ((double)value >= Conversions.ToDouble(tmpData[0]) && (double)value < Conversions.ToDouble(tmpData[1])) + { + strGrade = tmpData[2]; + break; + } + + } + } + + catch (Exception ex) + { + + strGrade = ""; + + } + + return strGrade; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/ParseQEL.cs b/SRC/MESAgent/AutoLoaderLib/ParseQEL.cs new file mode 100644 index 0000000..9c2f89a --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/ParseQEL.cs @@ -0,0 +1,259 @@ +using System; +using System.Data; +using System.IO; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.DataBase.iMESSql; + +namespace AutoLoaderLib_C +{ + + public class ParseQEL : EPIParseTemplate + { + + + // 呼叫父類別的建構子 + public ParseQEL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath) + { + + } + + /// + /// 設定暫存資料表的欄位 + /// + /// + /// + /// + internal override bool AddColumns(DataTable dt) + { + + bool blnResult = false; + + try + { + + dt.Columns.Add("WaferID", Type.GetType("System.String")); + dt.Columns.Add("POS", Type.GetType("System.Decimal")); + dt.Columns.Add("LOP1", Type.GetType("System.Decimal")); + dt.Columns.Add("LOP2", Type.GetType("System.Decimal")); + dt.Columns.Add("WLP1", Type.GetType("System.Decimal")); + dt.Columns.Add("WLD1", Type.GetType("System.Decimal")); + dt.Columns.Add("VF1", Type.GetType("System.Decimal")); + dt.Columns.Add("VF2", Type.GetType("System.Decimal")); + + blnResult = true; + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 將暫存資料表寫入資料庫 + /// + /// + /// + /// + internal override bool InsertTable(DataTable dt) + { + + bool blnResult = false; + string strSQL_Raw; + string strSQL_Avg; + string WaferID = ""; + decimal LOP1 = 0m; + decimal LOP2 = 0m; + decimal WLP1 = 0m; + decimal WLD1 = 0m; + decimal VF1 = 0m; + decimal VF2 = 0m; + + strSQL_Raw = " INSERT INTO TBL_LEDLD_EL_Q_RAW " + " (WaferID, CreateDate, POS, LOP1, LOP2, WLP1, WLD1, VF1, VF2) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}, {5}, {6}, {7}) "; + + + strSQL_Avg = " INSERT INTO TBL_LEDLD_EL_Q " + " (WaferID, CreateDate, LOP1, LOP2, WLP1, WLD1, VF1, VF2) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}, {5}, {6}) "; + + + try + { + + using (var oTran = objConnection.BeginTransaction()) + { + + try + { + + using (var cmd = CreateCommand()) + { + + cmd.Connection = objConnection; + cmd.Transaction = oTran; + + if (dt.Rows.Count > 0) + { + + for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) + { + + cmd.CommandText = string.Format(strSQL_Raw, dt.Rows[i]["WaferID"], dt.Rows[i]["POS"], dt.Rows[i]["LOP1"], dt.Rows[i]["LOP2"], dt.Rows[i]["WLP1"], dt.Rows[i]["WLD1"], dt.Rows[i]["VF1"], dt.Rows[i]["VF2"]); + + + + + + + + + cmd.ExecuteNonQuery(); + + WaferID = Conversions.ToString(dt.Rows[i]["WaferID"]); + LOP1 = LOP1 + (decimal)dt.Rows[i]["LOP1"]; + LOP2 = LOP2 + (decimal)dt.Rows[i]["LOP2"]; + WLP1 = WLP1 + (decimal)dt.Rows[i]["WLP1"]; + WLD1 = WLD1 + (decimal)dt.Rows[i]["WLD1"]; + VF1 = VF1 + (decimal)dt.Rows[i]["VF1"]; + VF2 = VF2 + (decimal)dt.Rows[i]["VF2"]; + + } + + cmd.CommandText = string.Format(strSQL_Avg, WaferID, LOP1 / dt.Rows.Count, LOP2 / dt.Rows.Count, WLP1 / dt.Rows.Count, WLD1 / dt.Rows.Count, VF1 / dt.Rows.Count, VF2 / dt.Rows.Count); + + + + + + + + cmd.ExecuteNonQuery(); + + } + + } + + oTran.Commit(); + + blnResult = true; + } + + catch (Exception ex) + { + + oTran.Rollback(); + throw; + + } + + } + } + + catch (Exception ex) + { + + throw; + + } + + return blnResult; + + } + + /// + /// 解析資料, 並寫入暫存資料表 + /// + /// + /// + /// + /// + internal override bool ParsingFile(DataTable dt, string file) + { + + bool blnResult = false; + DataRow dr = null; + string line; + string[] tmpData; + bool startParsing = false; + string WaferID; + + try + { + + // 檔名即為 WaferID + var fi = new FileInfo(file); + WaferID = fi.Name.Replace(fi.Extension, ""); + fi = null; + + using (var sr = new StreamReader(file)) + { + + do + { + + line = sr.ReadLine(); + + if (!string.IsNullOrEmpty(line)) + { + + if (startParsing) + { + + tmpData = line.Split(','); + + dr = dt.NewRow(); + + dr["WaferID"] = WaferID; + dr["POS"] = Convert.ToDecimal(tmpData[0].Trim()); + dr["LOP1"] = Convert.ToDecimal(tmpData[4].Trim()); + dr["LOP2"] = Convert.ToDecimal(tmpData[14].Trim()); + dr["WLP1"] = Convert.ToDecimal(tmpData[6].Trim()); + dr["WLD1"] = Convert.ToDecimal(tmpData[5].Trim()); + dr["VF1"] = Convert.ToDecimal(tmpData[3].Trim()); + dr["VF2"] = Convert.ToDecimal(tmpData[13].Trim()); + + dt.Rows.Add(dr); + } + + + else if (line.IndexOf("PosX") >= 0 && line.IndexOf("PosY") >= 0) + { + startParsing = true; + + } + + } + } + + while (!(line == null)); + + blnResult = true; + + } + } + + catch (Exception ex) + { + + throw; + } + + finally + { + + if (dr != null) + { + dr = null; + } + + } + + return blnResult; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/Properties/BuildIncrementVersionInfo.cs b/SRC/MESAgent/AutoLoaderLib/Properties/BuildIncrementVersionInfo.cs new file mode 100644 index 0000000..cc37e81 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Properties/BuildIncrementVersionInfo.cs @@ -0,0 +1 @@ +[assembly: System.Reflection.AssemblyFileVersion("6.0.5.31114")] diff --git a/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.cs b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.cs new file mode 100644 index 0000000..1ad1c3f --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.cs @@ -0,0 +1,779 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using System.Xml.Serialization; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoLoaderLib_C.wsInvoke +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "wsInvokeSoap", Namespace = "http://www.imestech.com/wsInvoke")] + [XmlInclude(typeof(object[]))] + public partial class wsInvoke : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback invokeSrvOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_XmlOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Xml_SessionOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataTableParameterOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataTableOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataSetOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_SessionOperationCompleted; + + private System.Threading.SendOrPostCallback TestOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public wsInvoke() : base() + { + Url = My.MySettings.Default.AutoLoaderLib_wsInvoke_wsInvoke; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event invokeSrvCompletedEventHandler invokeSrvCompleted; + + /// + public event invokeSrv_XmlCompletedEventHandler invokeSrv_XmlCompleted; + + /// + public event invokeSrv_Xml_SessionCompletedEventHandler invokeSrv_Xml_SessionCompleted; + + /// + public event invokeSrv_DataTableParameterCompletedEventHandler invokeSrv_DataTableParameterCompleted; + + /// + public event invokeSrv_DataTableCompletedEventHandler invokeSrv_DataTableCompleted; + + /// + public event invokeSrv_DataSetCompletedEventHandler invokeSrv_DataSetCompleted; + + /// + public event invokeSrv_SessionCompletedEventHandler invokeSrv_SessionCompleted; + + /// + public event TestCompletedEventHandler TestCompleted; + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv(string method, object[] parameters) + { + object[] results = Invoke("invokeSrv", new object[] { method, parameters }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv(string method, object[] parameters, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv", new object[] { method, parameters }, callback, asyncState); + } + + /// + public object EndinvokeSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrvAsync(string method, object[] parameters) + { + invokeSrvAsync(method, parameters, null); + } + + /// + public void invokeSrvAsync(string method, object[] parameters, object userState) + { + if (invokeSrvOperationCompleted == null) + { + invokeSrvOperationCompleted = OninvokeSrvOperationCompleted; + } + InvokeAsync("invokeSrv", new object[] { method, parameters }, invokeSrvOperationCompleted, userState); + } + + private void OninvokeSrvOperationCompleted(object arg) + { + if (invokeSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrvCompleted?.Invoke(this, new invokeSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Xml(string method, string inXMl) + { + object[] results = Invoke("invokeSrv_Xml", new object[] { method, inXMl }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Xml(string method, string inXMl, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Xml", new object[] { method, inXMl }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Xml(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_XmlAsync(string method, string inXMl) + { + invokeSrv_XmlAsync(method, inXMl, null); + } + + /// + public void invokeSrv_XmlAsync(string method, string inXMl, object userState) + { + if (invokeSrv_XmlOperationCompleted == null) + { + invokeSrv_XmlOperationCompleted = OninvokeSrv_XmlOperationCompleted; + } + InvokeAsync("invokeSrv_Xml", new object[] { method, inXMl }, invokeSrv_XmlOperationCompleted, userState); + } + + private void OninvokeSrv_XmlOperationCompleted(object arg) + { + if (invokeSrv_XmlCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_XmlCompleted?.Invoke(this, new invokeSrv_XmlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Xml_Session(string method, string inXMl) + { + object[] results = Invoke("invokeSrv_Xml_Session", new object[] { method, inXMl }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Xml_Session(string method, string inXMl, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Xml_Session", new object[] { method, inXMl }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Xml_Session(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_Xml_SessionAsync(string method, string inXMl) + { + invokeSrv_Xml_SessionAsync(method, inXMl, null); + } + + /// + public void invokeSrv_Xml_SessionAsync(string method, string inXMl, object userState) + { + if (invokeSrv_Xml_SessionOperationCompleted == null) + { + invokeSrv_Xml_SessionOperationCompleted = OninvokeSrv_Xml_SessionOperationCompleted; + } + InvokeAsync("invokeSrv_Xml_Session", new object[] { method, inXMl }, invokeSrv_Xml_SessionOperationCompleted, userState); + } + + private void OninvokeSrv_Xml_SessionOperationCompleted(object arg) + { + if (invokeSrv_Xml_SessionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Xml_SessionCompleted?.Invoke(this, new invokeSrv_Xml_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataTableParameter(string method, object[] parameters, ref DataTable pDataTable) + { + object[] results = Invoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataTableParameter(string method, object[] parameters, DataTable pDataTable, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataTableParameter(IAsyncResult asyncResult, ref DataTable pDataTable) + { + object[] results = EndInvoke(asyncResult); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable) + { + invokeSrv_DataTableParameterAsync(method, parameters, pDataTable, null); + } + + /// + public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable, object userState) + { + if (invokeSrv_DataTableParameterOperationCompleted == null) + { + invokeSrv_DataTableParameterOperationCompleted = OninvokeSrv_DataTableParameterOperationCompleted; + } + InvokeAsync("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, invokeSrv_DataTableParameterOperationCompleted, userState); + } + + private void OninvokeSrv_DataTableParameterOperationCompleted(object arg) + { + if (invokeSrv_DataTableParameterCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataTableParameterCompleted?.Invoke(this, new invokeSrv_DataTableParameterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTable", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataTable(string method, string InXml, ref DataTable pDataTable) + { + object[] results = Invoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataTable(string method, string InXml, DataTable pDataTable, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataTable(IAsyncResult asyncResult, ref DataTable pDataTable) + { + object[] results = EndInvoke(asyncResult); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable) + { + invokeSrv_DataTableAsync(method, InXml, pDataTable, null); + } + + /// + public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable, object userState) + { + if (invokeSrv_DataTableOperationCompleted == null) + { + invokeSrv_DataTableOperationCompleted = OninvokeSrv_DataTableOperationCompleted; + } + InvokeAsync("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, invokeSrv_DataTableOperationCompleted, userState); + } + + private void OninvokeSrv_DataTableOperationCompleted(object arg) + { + if (invokeSrv_DataTableCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataTableCompleted?.Invoke(this, new invokeSrv_DataTableCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataSet", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataSet(string method, string InXml, ref DataSet pDataSet) + { + object[] results = Invoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }); + pDataSet = (DataSet)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataSet(string method, string InXml, DataSet pDataSet, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataSet(IAsyncResult asyncResult, ref DataSet pDataSet) + { + object[] results = EndInvoke(asyncResult); + pDataSet = (DataSet)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet) + { + invokeSrv_DataSetAsync(method, InXml, pDataSet, null); + } + + /// + public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet, object userState) + { + if (invokeSrv_DataSetOperationCompleted == null) + { + invokeSrv_DataSetOperationCompleted = OninvokeSrv_DataSetOperationCompleted; + } + InvokeAsync("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, invokeSrv_DataSetOperationCompleted, userState); + } + + private void OninvokeSrv_DataSetOperationCompleted(object arg) + { + if (invokeSrv_DataSetCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataSetCompleted?.Invoke(this, new invokeSrv_DataSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Session(string method, object[] parameters) + { + object[] results = Invoke("invokeSrv_Session", new object[] { method, parameters }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Session(string method, object[] parameters, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Session", new object[] { method, parameters }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Session(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_SessionAsync(string method, object[] parameters) + { + invokeSrv_SessionAsync(method, parameters, null); + } + + /// + public void invokeSrv_SessionAsync(string method, object[] parameters, object userState) + { + if (invokeSrv_SessionOperationCompleted == null) + { + invokeSrv_SessionOperationCompleted = OninvokeSrv_SessionOperationCompleted; + } + InvokeAsync("invokeSrv_Session", new object[] { method, parameters }, invokeSrv_SessionOperationCompleted, userState); + } + + private void OninvokeSrv_SessionOperationCompleted(object arg) + { + if (invokeSrv_SessionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_SessionCompleted?.Invoke(this, new invokeSrv_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/Test", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string Test(string UserNo) + { + object[] results = Invoke("Test", new object[] { UserNo }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginTest(string UserNo, AsyncCallback callback, object asyncState) + { + return BeginInvoke("Test", new object[] { UserNo }, callback, asyncState); + } + + /// + public string EndTest(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void TestAsync(string UserNo) + { + TestAsync(UserNo, null); + } + + /// + public void TestAsync(string UserNo, object userState) + { + if (TestOperationCompleted == null) + { + TestOperationCompleted = OnTestOperationCompleted; + } + InvokeAsync("Test", new object[] { UserNo }, TestOperationCompleted, userState); + } + + private void OnTestOperationCompleted(object arg) + { + if (TestCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + TestCompleted?.Invoke(this, new TestCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrvCompletedEventHandler(object sender, invokeSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_XmlCompletedEventHandler(object sender, invokeSrv_XmlCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_XmlCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_XmlCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Xml_SessionCompletedEventHandler(object sender, invokeSrv_Xml_SessionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Xml_SessionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Xml_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataTableParameterCompletedEventHandler(object sender, invokeSrv_DataTableParameterCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataTableParameterCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataTableParameterCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataTable pDataTable + { + get + { + RaiseExceptionIfNecessary(); + return (DataTable)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataTableCompletedEventHandler(object sender, invokeSrv_DataTableCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataTableCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataTableCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataTable pDataTable + { + get + { + RaiseExceptionIfNecessary(); + return (DataTable)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataSetCompletedEventHandler(object sender, invokeSrv_DataSetCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataSetCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataSetCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataSet pDataSet + { + get + { + RaiseExceptionIfNecessary(); + return (DataSet)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_SessionCompletedEventHandler(object sender, invokeSrv_SessionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_SessionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void TestCompletedEventHandler(object sender, TestCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class TestCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal TestCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.map b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.map new file mode 100644 index 0000000..4940833 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.disco b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.disco new file mode 100644 index 0000000..50d9cfb --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.wsdl b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.wsdl new file mode 100644 index 0000000..b943600 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/Web References/wsInvoke/wsInvoke.wsdl @@ -0,0 +1,427 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invoke with objects and Return XML + + + + + Invoke with Xml String and Return XML + + + + + EnableSession, Invoke with Xml String and Return XML + + + + + Invoke with DataTable and Object Return XML + + + + + Invoke with DataTable and Return XML + + + + + Invoke with DataSet and Return XML + + + + + EnableSession, Invoke and Return XML + + + + + Web service and database connection test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/app.config b/SRC/MESAgent/AutoLoaderLib/app.config new file mode 100644 index 0000000..cc2db03 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/app.config @@ -0,0 +1,35 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + http://localhost/MESws_Industry/wsInvoke.asmx + + + + diff --git a/SRC/MESAgent/AutoLoaderLib/clsAutoLoaderLibrary.cs b/SRC/MESAgent/AutoLoaderLib/clsAutoLoaderLibrary.cs new file mode 100644 index 0000000..3e6ef8b --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/clsAutoLoaderLibrary.cs @@ -0,0 +1,356 @@ +using System; +using System.Collections; +using System.Data; +using System.IO; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using Microsoft.VisualBasic.FileIO; +using NPOI.HSSF.UserModel; +using NPOI.SS.UserModel; +using NPOI.XSSF.UserModel; +using iMESCore.Settings; +using static iMESCore.DataBase.iMESSql; +using static iMESCore.Base.iMESConst; +using System.Data.Common; + +namespace AutoLoaderLib_C +{ + + public class clsAutoLoaderLibrary + { + + //private System.Data.OleDb.OleDbCommand cmmTemp; + private string strConnectionString; // Connection string + private string strReportConnectionString; // Report DB Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + + private AppSettings objSetting = new AppSettings(); + + private string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; + + // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- + public clsAutoLoaderLibrary() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + // //Get connection string + strReportConnectionString = objSetting.GetReportConnectionString(strDataBaseType); + // //GetMESWebSer + modWIN.gMESWebServiceHost = objSetting["MESWebServiceHost"].ToString(); + } + + // //Property-------------------------------------------------------------------------------------------------------------------------------- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public string MQType + { + get + { + return strMQType; + } + } + + // //Public function---------------------------------------------------------------------------------------------------- + public string ExecuteFunction(string FunctionName, Collection colParameters = null) + { + string ExecuteFunctionRet = default(string); + // 此 Function 將執行傳入之FunctionName + // 傳入值: FunctionName,colParameters + // 傳回值: DataSet(成功), nothing(失敗) + + // colParameters的資料範例如下 + // colParameters.Add("C1", "CustomerNo") + // colParameters.Add("P1", "ProductNo") + + int i; + + try + { + + // 1.處理 FunctionName 大小寫問題 + System.Reflection.MethodInfo[] MyMethodInfos = GetType().GetMethods(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); // 取出Private的Function + var loopTo = MyMethodInfos.Length - 1; + for (i = 0; i <= loopTo; i++) + { + if ((MyMethodInfos[i].Name.ToUpper() ?? "") == (FunctionName.ToUpper() ?? "")) + { + FunctionName = MyMethodInfos[i].Name; + break; + } + } + + // 2.執行Private Function,傳出DataSet + object objArgs = new object[] { colParameters }; + ExecuteFunctionRet = Conversions.ToString(GetType().InvokeMember(FunctionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.InvokeMethod, null, this, (object[])objArgs)); + } + + catch (Exception e1) + { + ExecuteFunctionRet = "fail"; + throw new Exception("clsAutoLoaderLibrary.ExecuteFunction:" + "{" + FunctionName + "}" + e1.Message); + } + + finally + { + + } + + return ExecuteFunctionRet; + + } + + #region ---AutoLoader function--- + + + #endregion + + #region ---AutoLoader Sample--- + + private string funWatchTest(Collection colParameters = null) + { + string funWatchTestRet = default(string); + + string strJobNo = string.Empty; // JobNo + string strSourcePath = string.Empty; // 來源檔案路徑 + string strDestinationPath = string.Empty; // 目前檔案路徑 + string strQueuePath = string.Empty; // 處理中檔案路徑 + string strFailPath = string.Empty; // 失敗檔案路徑 + string FileName = string.Empty; // 處理中檔案 + string DirName = DateTime.Now.ToString("yyyyMM"); // 分類目錄名稱 + string strLotNo = string.Empty; + string strComponentNo = string.Empty; + bool blnMoveFile = true; + string strSQL = string.Empty; + + try + { + // //取出colParameter傳入參數 + strJobNo = colParameters["JobNo"].ToString().Trim(); + strSourcePath = colParameters["SourcePath"].ToString().Trim(); + strDestinationPath = colParameters["DestinationPath"].ToString().Trim(); + strQueuePath = colParameters["QueuePath"].ToString().Trim(); + strFailPath = colParameters["FailPath"].ToString().Trim(); + // //取出來源目錄中*.csv檔案 + string[] DirFiles = Directory.GetFiles(strSourcePath, "*.csv"); + // //將檔案複製到Queue的目錄中 + foreach (var currentFileName in DirFiles) + { + FileName = currentFileName; + // //檢查檔案存不存在,有可能被另一個執行緒先處理 + if (File.Exists(FileName) == true) + { + // '//檔案已存在Queue必須先刪除 + // If File.Exists(strQueuePath & Path.GetFileName(FileName)) = True Then + // File.Delete(strQueuePath & Path.GetFileName(FileName)) + // End If + // //移動檔案Source至Queue + try + { + blnMoveFile = true; + File.Move(FileName, strQueuePath + Path.GetFileName(FileName)); + } + catch (Exception ex) + { + blnMoveFile = false; + throw new Exception("此執行程序已中止,由另一執行程序處理中!!"); + } + // //將檔案來源改為Queue + FileName = strQueuePath + Path.GetFileName(FileName); + // //開始執行解檔處理 + using (var myReader = new TextFieldParser(FileName, Encoding.Default)) + { + myReader.TextFieldType = FieldType.Delimited; + myReader.Delimiters = new string[] { "," }; + // //建立Connection + var cnnTemp = CreateConnection(strConnectionString); + //System.Data.OleDb.OleDbCommand cmmTemp = null; + //System.Data.OleDb.OleDbDataAdapter daTemp = null; + DbDataReader drTemp = null; + var CollectionSQL = new Collection(); + // //變數宣告區域 + + // //Try Catch + try + { + // //Parser檔案 + while (!myReader.EndOfData) + { + + } + + // //執行SQL + ExecuteSQLNoneQuery_UPD(strDataBaseType, strConnectionString, CollectionSQL); + } + + catch (Exception ex) + { + throw; + } // //直接將錯誤Throw出去 + + finally + { + // //釋放資源 + CollectionSQL = null; + // //Close Connection + CloseConnection(cnnTemp); + } + } + // //目錄不存在時必須要先建立 + if (Directory.Exists(strDestinationPath + DirName) == false) + { + Directory.CreateDirectory(strDestinationPath + DirName); + } + // //檔案已存在Destination必須先刪除 + if (File.Exists(strDestinationPath + DirName + @"\" + Path.GetFileName(FileName)) == true) + { + File.Delete(strDestinationPath + DirName + @"\" + Path.GetFileName(FileName)); + } + // //移動檔案Queue至Destination + File.Move(FileName, strDestinationPath + DirName + @"\" + Path.GetFileName(FileName)); + } + } + // //回傳Success + funWatchTestRet = "success"; + } + + catch (Exception ex) + { + // //檔案處理失敗時移動檔案Queue至Fail + if (!string.IsNullOrEmpty(FileName) && blnMoveFile == true) + { + // //目錄不存在時必須要先建立 + if (Directory.Exists(strFailPath + DirName) == false) + { + Directory.CreateDirectory(strFailPath + DirName); + } + // //檔案已存在File必須先刪除 + if (File.Exists(strFailPath + DirName + @"\" + Path.GetFileName(FileName)) == true) + { + File.Delete(strFailPath + DirName + @"\" + Path.GetFileName(FileName)); + } + // //移動檔案Queue至Fail + try + { + File.Move(FileName, strFailPath + DirName + @"\" + Path.GetFileName(FileName)); + } + catch (Exception ex1) + { + } + + } + // //回傳錯誤原因 + funWatchTestRet = CombineFailMsg("0000-999999", "[JobNo:" + strJobNo + "][FunctionNo:funWatchTest][FileName:" + FileName + "][LotNo:" + strLotNo + "][WaferNo:" + strComponentNo + "][" + ex.Message + ",StackTrace:" + ex.StackTrace + "][SQL:" + strSQL + "]"); + } + finally + { + + + } + + return funWatchTestRet; + + } + + #endregion + + #region ---Error Log--- + + // //Function--------------------------------------------------------------------------------------------------------------------------------- + public string AddErrorLog(string ServiceName, string UserID, string KeyField, string KeyValue, DateTime RecordDate = default(DateTime), string Description = defString, string ComputerName = defString) + + + + { + string AddErrorLogRet = default(string); + // 此 Function 將新增一筆資料 + // 傳入值: 各欄位新增值 + // 傳回值: success(成功), fail(失敗) + + string strSQLAddField = string.Empty; + string strSQLAddValue = string.Empty; + string strSQL = string.Empty; + + if (RecordDate == defDateTime) + RecordDate = DateTime.Now; + + try + { + strSQLAddField = "Insert into tblSysErrorLog (ServiceName, UserID, KeyField, KeyValue"; + strSQLAddValue = " Values ('" + ChkSingleQuation(Strings.Left(ServiceName, 30)) + "','" + ChkSingleQuation(Strings.Left(UserID, 10)) + "','" + ChkSingleQuation(Strings.Left(KeyField, 999)) + "','" + ChkSingleQuation(Strings.Left(KeyValue, 999)) + "'"; + + if ((Description ?? "") != defString) + { + strSQLAddField += ",Description"; + strSQLAddValue += ",'" + ChkSingleQuation(Strings.Left(Description, 1999)) + "'"; + } + if (RecordDate != defDateTime) + { + strSQLAddField += ",RecordDate"; + strSQLAddValue += ", To_Date('" + Strings.Format(Conversions.ToDate(RecordDate), "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')"; + } + if ((ComputerName ?? "") != defString) + { + strSQLAddField += ",ComputerName"; + strSQLAddValue += ",'" + ChkSingleQuation(Strings.Left(ComputerName, 50)) + "'"; + } + + // 直接給定strSQL + strSQL = strSQLAddField + ")" + strSQLAddValue + ")"; + + // //執行SQL指令 + string argstrDatabaseType = Conversions.ToString(DataBaseType); + ExecuteSQLNoneQuery(argstrDatabaseType, strConnectionString, ref strSQL); + + // //Return success + AddErrorLogRet = "success"; + } + + catch (Exception e1) + { + AddErrorLogRet = "fail"; + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // Throw 'New Exception("kcSYS.AddErrorLog: " & e1.Message) + + } + + return AddErrorLogRet; + + } + private string CombineFailMsg(string ErrorCode, string Desc) + { + string CombineFailMsgRet = default(string); + CombineFailMsgRet = "ErrorCode:" + ErrorCode + ";" + Desc; + return CombineFailMsgRet; + } + #endregion + + ~clsAutoLoaderLibrary() + { + if (objSetting != null) + objSetting = null; + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/modAutoLoaderLibrary.cs b/SRC/MESAgent/AutoLoaderLib/modAutoLoaderLibrary.cs new file mode 100644 index 0000000..beae524 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/modAutoLoaderLibrary.cs @@ -0,0 +1,939 @@ +using System; +using System.Data; +using System.Runtime.InteropServices; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESConst; +using static iMESCore.Base.iMESComXML; + +namespace AutoLoaderLib_C +{ + static class modAutoLoaderLibrary + { + public enum GroupType + { + UserGroup = 0, // 使用者群組 + IssueGroup = 1, // 簽核群組 + EquipmentGroup = 2, // 設備工程師群組 + InventoryGroup = 3, // 庫房工程師群組 + ReportGroup = 4, // 報表使用群組 + ERFDispositionGroup = 5, // 異常處理群組 + ERFMailccGroup = 6 // 附件收件人群組 + } + + private static string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; + + #region 計算最大、最小、總合、平方根、良品數 + + public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut, DataRow rowRawData_SpecYield, string min_colFieldName, string max_colFieldName, DataRow rowRawData_SpecAvg, DataRow rowRawData_SpecEng, string colFieldName_IR = defString, bool blnGoodFlag_Yield = true, bool blnGoodFlag_Avg = true, bool blnGoodFlag_AOI = true) + + + + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + + // //符合規格的顆數(AVG) + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecAvg[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecAvg[max_colFieldName], false))) + { + switch (Strings.Mid(colFieldName, 1, 3).ToUpper() ?? "") + { + case "ESD": // 計算ESD的Yield時IR必須也要是Pass + { + if ((colFieldName_IR ?? "") != defString) + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecAvg[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecAvg[max_colFieldName], false))) + { + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //IR必須要過ESD才能算 + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false))) + + + { + // //Yield Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + // Else + // blnGoodFlag_Yield = False + } + + // //不包含AOIBin欄位判斷Yield + if (colFieldName.ToString().ToUpper() != "AOIBIN") + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_AOI = false; + } + } + + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_Yield = false; + } + + // '計算IR符合ESD規格的顆數 + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false))) + { + rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1; + } + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(rowRawData[colFieldName].ToString()); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Avg Die數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + // //更新 + rowReslut.EndEdit(); + // // + funCalculateMinMaxSumSqrRet = true; // //此電性在規格內 + } + else + { + // '計算IR符合ESD規格的顆數 + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false))) + { + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1; + // Else + // blnGoodFlag_Yield = False + } + + // //不包含AOIBin欄位判斷Yield + if (colFieldName.ToString().ToUpper() != "AOIBIN") + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_AOI = false; + } + } + + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_Yield = false; + } + + funCalculateMinMaxSumSqrRet = false; // //回傳此電性在規格外 + blnGoodFlag_Avg = false; + } + } + else + { + throw new Exception("無法取得檔案中" + colFieldName_IR + "所對應的電性欄位!!"); + } + + break; + } + + default: + { + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false))) + { + // //Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + // Else + // blnGoodFlag_Yield = False + } + // //不包含AOIBin欄位判斷Yield + if (colFieldName.ToString().ToUpper() != "AOIBIN") + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_AOI = false; + } + } + // // + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_Yield = false; + } + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Avg Die數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + // //更新 + rowReslut.EndEdit(); + // // + funCalculateMinMaxSumSqrRet = true; // //此電性在規格內 + break; + } + } + } + else + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false))) + { + // //Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + // Else + // blnGoodFlag_Yield = False + } + // //不包含AOIBin欄位判斷Yield + if (colFieldName.ToString().ToUpper() != "AOIBIN") + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_AOI = false; + } + } + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false))) + { + } + else + { + blnGoodFlag_Yield = false; + } + // '計算IR符合ESD規格的顆數 + if (Strings.Mid(colFieldName, 1, 3).ToUpper() == "ESD" && Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false))) + + { + rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1; + } + funCalculateMinMaxSumSqrRet = false; // //回傳此電性在規格外 + blnGoodFlag_Avg = false; + } + + return funCalculateMinMaxSumSqrRet; + // End If + + } + + + public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut, bool blnChkSpecFlag, DataRow rowRawData_Spec = null, DataRow rowRawData_Spec_AVG = null, string min_colFieldName = defString, string max_colFieldName = defString) + + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + // //依傳入值判斷是否要判規格 + if (blnChkSpecFlag == true) + { + // //不可為Nothing + if (rowRawData_Spec == null) + { + throw new Exception("必須傳入規格定義資料(YIELD)!!"); + } + // //不可為Nothing + if (rowRawData_Spec_AVG == null) + { + throw new Exception("必須傳入規格定義資料(AVG)!!"); + } + // //不可為defString + if ((max_colFieldName ?? "") == defString) + { + throw new Exception("必須傳入規格電性最大欄位定義資料!!"); + } + // //不可為defString + if ((min_colFieldName ?? "") == defString) + { + throw new Exception("必須傳入規格電性最小欄位定義資料!!"); + } + } + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //依傳入值判斷是否要判規格 + if (blnChkSpecFlag == true) + { + // //規格最大、最小都為零時不需要判(AVG) + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec_AVG[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec_AVG[max_colFieldName], 0, false))) + { + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + } + // //符合規格的顆數(良品數) + else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec_AVG[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec_AVG[max_colFieldName], false))) + { + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + } + // //規格最大、最小都為零時不需要判(YIELD) + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false))) + { + // //Pass數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; // //此電性不需判斷規格(是) + } + // //符合規格的顆數(良品數) + else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[max_colFieldName], false))) + { + // //Pass數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + else + { + funCalculateMinMaxSumSqrRet = false; + } // //回傳此電性是否在規格內(否) + } + else + { + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + // //Pass數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; + } // //此電性不需判斷規格(是) + // // + rowReslut.EndEdit(); + return funCalculateMinMaxSumSqrRet; + + } + + public static bool funCalculateMinMaxSumSqr(ref DataRow rowReslut, decimal valueQty, DataRow rowRawData_Spec, string min_colFieldName, string max_colFieldName) + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], valueQty, false))) + { + rowReslut["MaxValue"] = valueQty; + } + + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], valueQty, false))) + { + rowReslut["MinValue"] = valueQty; + } + + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + valueQty; + + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)valueQty, 2d); + + // //符合規格的顆數(良品數) + // //規格最大、最小都為零時不需要判,都算是Good + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false))) + { + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(valueQty, rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(valueQty, rowRawData_Spec[max_colFieldName], false))) + { + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + else + { + funCalculateMinMaxSumSqrRet = false; + } // //回傳此電性是否在規格內(否) + // //更新 + rowReslut.EndEdit(); + return funCalculateMinMaxSumSqrRet; + + } + + public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut) + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //更新 + rowReslut.EndEdit(); + // //Return + funCalculateMinMaxSumSqrRet = true; + return funCalculateMinMaxSumSqrRet; + + } + + // add by Lena, 2012/06/22 + public static bool funCalculateMinMaxSumSqr(string colFieldName, DataRow rowRawData, ref DataRow rowReslut, DataRow rowRawData_Spec, string min_colFieldName, string max_colFieldName) + { + bool funCalculateMinMaxSumSqrRet = default(bool); + + + // '//符合規格的顆數(良品數) + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[max_colFieldName], false))) + { + + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + + // //Yield Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + + // //Avg Die數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + + // //更新 + rowReslut.EndEdit(); + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + + // '//規格最大、最小都為零時不需要判,都算是Good + else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false))) + { + + // //更新 + rowReslut.BeginEdit(); + // //Max + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + // //Min + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false))) + { + rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + } + + // //Sum + rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + + decimal.Parse(Conversions.ToString(rowRawData[colFieldName])); + + // //SumSqr + rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] + + Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d); + + // //Yield Die數加一 + rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1; + + // //Avg Die數加一 + rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1; + + // //更新 + rowReslut.EndEdit(); + funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是) + } + + else + { + funCalculateMinMaxSumSqrRet = false; + } // //回傳此電性是否在規格內(否) + + return funCalculateMinMaxSumSqrRet; + + } + + #endregion + + #region --- Transaction Output --- + + public static object OutputSQLNoneQuery(ref string strCommandText) + { + + bool blnTransactionLog = false; + + try + { + blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]); + } + catch (Exception ex) + { + blnTransactionLog = false; + } + + if (blnTransactionLog == false) + return default(Object); + + var tfc = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true); + string FileName = tfc.AddExtension("SQL"); + string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log"; + FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff")); + + try + { + using (var sw = System.IO.File.AppendText(FileName)) + { + sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " ")); + sw.Flush(); + } + } + catch (Exception ex) + { + try + { + using (var sw = System.IO.File.AppendText(ErrorLogFile)) + { + sw.WriteLine(ex.Message + ex.StackTrace); + sw.Flush(); + } + } + catch (Exception e1) + { + } + } + finally + { + System.IO.File.Delete(tfc.BasePath + ".tmp"); + } + + return default(Object); + + } + + // Public Function OutputSQLNoneQuery_UPD(ByRef CollectionSQL As Collection) + + // Dim blnTransactionLog As Boolean = False + + // Try + // blnTransactionLog = CType(System.Configuration.ConfigurationSettings.AppSettings("TransactionLog"), Boolean) + // Catch ex As Exception + // blnTransactionLog = False + // End Try + + // If blnTransactionLog = False Then Exit Function + + // Dim tfc As New System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings("OutputSQLPath"), True) + // Dim FileName As String = tfc.AddExtension("SQL") + // Dim ErrorLogFile As String = System.Configuration.ConfigurationSettings.AppSettings("ErrorLogPath") & Format(Now, "yyyyMMdd").ToString & "_Error.Log" + // FileName = FileName.Insert(FileName.LastIndexOf("\") + 1, "TX" & Now.ToString("yyyyMMddHHmmssfff")) + // Dim strCommandText As String = String.Empty + + // Try + // Using sw As System.IO.StreamWriter = System.IO.File.AppendText(FileName) + // For Each strCommandText In CollectionSQL + // sw.WriteLine(strCommandText.Replace(vbCrLf, " ")) + // Next strCommandText + // sw.Flush() + // End Using + // Catch ex As Exception + // Try + // Using sw As System.IO.StreamWriter = System.IO.File.AppendText(ErrorLogFile) + // sw.WriteLine(ex.Message & ex.StackTrace) + // sw.Flush() + // End Using + // Catch e1 As Exception + // End Try + // Finally + // System.IO.File.Delete(tfc.BasePath & ".tmp") + // End Try + + // End Function + + public static object OutputSQLNoneQuery_AttachFile(ref string strCommandText, ref string AttachName, ref string aBody, object DataType) + { + + bool blnTransactionLog = false; + + try + { + blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]); + } + catch (Exception ex) + { + blnTransactionLog = false; + } + + if (blnTransactionLog == false) + return default(Object); + + var tfc1 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true); + var tfc2 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["AttachFilePath"], true); + string FileName = tfc1.AddExtension("SQL"); + string AttachFile = tfc2.AddExtension("TXT"); + string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log"; + FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff")); + AttachFile = AttachFile.Insert(AttachFile.LastIndexOf(@"\") + 1, AttachName); + + try + { + // //Output File + if (aBody != null) + { + string sFileSource = AttachFile; + if (System.IO.File.Exists(sFileSource)) + { + try + { + System.IO.File.Delete(sFileSource); + using (var sw = System.IO.File.AppendText(sFileSource)) + { + sw.WriteLine(aBody); + sw.Flush(); + } + } + catch (System.IO.IOException ex) + { + } + } + else + { + using (var sw = System.IO.File.AppendText(sFileSource)) + { + sw.WriteLine(aBody); + sw.Flush(); + } + } + } + // //輸出格式 = SQL Command;DataType;FilePath + strCommandText += ";" + DataType.ToString() + ";" + AttachFile; + using (var sw = System.IO.File.AppendText(FileName)) + { + sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " ")); + sw.Flush(); + } + } + catch (Exception ex) + { + try + { + using (var sw = System.IO.File.AppendText(ErrorLogFile)) + { + sw.WriteLine(ex.Message + ex.StackTrace); + sw.Flush(); + } + } + catch (Exception e1) + { + } + } + finally + { + System.IO.File.Delete(tfc1.BasePath + ".tmp"); + System.IO.File.Delete(tfc2.BasePath + ".tmp"); + } + + return default(Object); + + } + + public static object OutputSQLNoneQuery_AttachFile(ref string strCommandText, ref string AttachName, ref byte[] aBody, object DataType) + { + + bool blnTransactionLog = false; + + try + { + blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]); + } + catch (Exception ex) + { + blnTransactionLog = false; + } + + if (blnTransactionLog == false) + return default(Object); + + var tfc1 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true); + var tfc2 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["AttachFilePath"], true); + string FileName = tfc1.AddExtension("SQL"); + string AttachFile = tfc2.AddExtension(AttachName.Substring(AttachName.Length - 3, 3).ToUpper()); + string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log"; + FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff")); + AttachFile = AttachFile.Insert(AttachFile.LastIndexOf(@"\") + 1, AttachName.Substring(0, AttachName.Length - 4)); + + try + { + // //Output File + if (aBody != null) + { + string sFileSource = AttachFile; + if (System.IO.File.Exists(sFileSource)) + { + try + { + System.IO.File.Delete(sFileSource); + var fs = new System.IO.FileStream(sFileSource, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); + fs.Write(aBody, 0, aBody.Length); + fs.Close(); + } + catch (System.IO.IOException ex) + { + } + } + else + { + var fs = new System.IO.FileStream(sFileSource, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); + fs.Write(aBody, 0, aBody.Length); + fs.Close(); + } + } + // //輸出格式 = SQL Command;DataType;FilePath + strCommandText += ";" + DataType.ToString() + ";" + AttachFile; + using (var sw = System.IO.File.AppendText(FileName)) + { + sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " ")); + sw.Flush(); + } + } + catch (Exception ex) + { + try + { + using (var sw = System.IO.File.AppendText(ErrorLogFile)) + { + sw.WriteLine(ex.Message + ex.StackTrace); + sw.Flush(); + } + } + catch (Exception e1) + { + } + } + finally + { + System.IO.File.Delete(tfc1.BasePath + ".tmp"); + System.IO.File.Delete(tfc2.BasePath + ".tmp"); + } + + return default(Object); + + } + + #endregion + + #region Invoke + + /// + /// 叫用Web Service, 並回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 是否客製的WebService + /// + public static string InvokeSrv(string Method, string InXml, bool Customize = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.invokeSrv(Method, new object[] { InXml }); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + /// + /// 叫用Web Service, 回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 用來取回byte資料或傳入byte資料 + /// 是否客製的WebService + /// + public static string InvokeSrv(string Method, string InXml, byte[] buffer, bool Customize = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.invokeSrv(Method, new object[] { InXml, buffer }); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + /// + /// 叫用Web Service, 並回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 接收結果的DataSet + /// 是否客製的WebService + /// + public static string InvokeSrv(string Method, string InXml, ref DataSet pDataSet, bool Customize = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.invokeSrv_DataSet(Method, InXml, ref pDataSet); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + #endregion + + + // 發Mail功能 非群組與群組發送 + public static string SendMultiEmail(ref string FileName, ref string EmailSubject, string EmailBody = defString, string GroupNo = defString, byte[] AttachFile = null, GroupType GroupType = GroupType.UserGroup) + { + string SendMultiEmailRet = default(string); + // GroupType + // 0:User Group (使用者群組) + // 1:Issue Group (簽核群組) + // 2:Equipment Group(設備工程師群組) + // 3:Inventory Group(庫房工程師群組) + // 4:Report Group(報表使用群組) + // 5:ERF Disposition Group(異常處理群組) + // 6:ERF Mail ccGroup(附件收件人群組) + + try + { + + strIdentity = CombineXMLIdentity(modWIN.gComputerName, "AUTORUN", DateTime.Now.ToString()); + strParameter = CombineXMLParameter("groupno", "GroupNo", "String", CInput(GroupNo), ""); + strParameter = strParameter + CombineXMLParameter("emailsubject", "EmailSubject", "String", EmailSubject, ""); + strParameter = strParameter + CombineXMLParameter("emailbody", "EmailBody", "String", EmailBody, ""); + strParameter = strParameter + CombineXMLParameter("grouptype", "GroupType", "Integer", GroupType.ToString(), ""); + strParameter = strParameter + CombineXMLParameter("attachfilename", "AttachFileName", "String", FileName, ""); + var XmlDoc = new System.Xml.XmlDocument(); + + InXml = modWIN.CombineXMLRequest(ref strIdentity, ref strParameter); + + // OutXml = wsWIP.SendEmailAndAttachFileToGroup(InXml, AttachFile) + OutXml = InvokeSrv("wsWIP.SendEmailAndAttachFileToGroup", InXml, AttachFile); + + XmlDoc.LoadXml(OutXml); + + if (modWIN.chkExecutionSuccess(ref XmlDoc)) // 找出Exception訊並顯示出來 + { + SendMultiEmailRet = "success"; + } + else + { + SendMultiEmailRet = "fail"; + } + + XmlDoc = null; + } + + catch (Exception ex) + { + SendMultiEmailRet = "fail;" + ex.Message; + } + + return SendMultiEmailRet; + + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/AutoLoaderLib/modWIN.cs b/SRC/MESAgent/AutoLoaderLib/modWIN.cs new file mode 100644 index 0000000..cd62db0 --- /dev/null +++ b/SRC/MESAgent/AutoLoaderLib/modWIN.cs @@ -0,0 +1,492 @@ +using System; +using System.Collections; +using static System.Configuration.ConfigurationSettings; +using System.Data; +using System.Runtime.InteropServices; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESConst; + +namespace AutoLoaderLib_C +{ + + + static class modWIN + { + + // ReviseDate : 2003/08/07,修改處理AdditionalXML + // ReviseDate : 2003/08/05,新增Public gReturnArray + // ReviseDate : 2003/07/01,更改AddFlow產生的Error(CInput) + // ReviseDate : 2002/11/04,新增CUnInput function + + public static string gComputerName; + public static string gReturnKeyValue; + public static string gUserNo; + public static string gUserName; + public static string gUserLevel; + public static string gLanguageMode; + public static string gAppPath; + // **Add for Smart Client Architecture + public static string gMESWebServiceHost; + public static string gCUSWebServiceHost; + + // Add By Peter 2005/6/20 + public static string gSettingMode = ""; + + public static DataRow drSearch; + + public static ArrayList gReturnArray = new ArrayList(); + + public const string strAddTagLabel = "extrabase"; // Add by py for Combine Addition XML doc + public const string strAddTagName = "ExtraBase"; // Add by py for Combine Addition XML doc + + public static bool chkExecutionSuccess(ref System.Xml.XmlDocument Xmldoc) + { + bool chkExecutionSuccessRet = default(bool); + if (Xmldoc.DocumentElement["result"].InnerXml == "success") + { + chkExecutionSuccessRet = true; + } + else + { + chkExecutionSuccessRet = false; + } + + return chkExecutionSuccessRet; + } + + public static string GetExceptionSysMsg(ref System.Xml.XmlDocument Xmldoc) + { + string GetExceptionSysMsgRet = default(string); + string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("sysmsg").Item(0).InnerXml; + GetExceptionSysMsgRet = CUnInput(ref argstrInput); + Xmldoc.DocumentElement.GetElementsByTagName("sysmsg").Item(0).InnerXml = argstrInput; + return GetExceptionSysMsgRet; + } + + public static string GetExceptionMesMsg(ref System.Xml.XmlDocument Xmldoc) + { + string GetExceptionMesMsgRet = default(string); + string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("mesmsg").Item(0).InnerXml; + GetExceptionMesMsgRet = CUnInput(ref argstrInput); + Xmldoc.DocumentElement.GetElementsByTagName("mesmsg").Item(0).InnerXml = argstrInput; + return GetExceptionMesMsgRet; + } + + public static string CombineXMLIdentity(ref string ComputerName, ref string CurUserNo, ref string SendTime) + { + string CombineXMLIdentityRet = default(string); + CombineXMLIdentityRet = "" + ComputerName + "" + "" + CurUserNo + "" + "" + SendTime + ""; + + return CombineXMLIdentityRet; + } + + public static string CombineXMLParameter(ref string value_name, ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterRet = default(string); + CombineXMLParameterRet = "<" + value_name.ToLower() + ">" + "" + name + "" + "" + type + "" + "" + value + "" + "" + desc + "" + ""; + + + + + return CombineXMLParameterRet; + } + + public static string CombineXMLRequest(ref string strIdentity, ref string strParameter) + { + string CombineXMLRequestRet = default(string); + CombineXMLRequestRet = "" + "" + strIdentity + ""; + if (!string.IsNullOrEmpty(strParameter)) + { + CombineXMLRequestRet = CombineXMLRequestRet + "" + strParameter + ""; + } + CombineXMLRequestRet = CombineXMLRequestRet + ""; + return CombineXMLRequestRet; + } + + public static string CombineXMLValue(ref string TagName, ref string Value) + { + string CombineXMLValueRet = default(string); + CombineXMLValueRet = "<" + TagName + ">" + Value + ""; + return CombineXMLValueRet; + } + + public static string CombineXMLValueTag(ref string Value) + { + string CombineXMLValueTagRet = default(string); + CombineXMLValueTagRet = "" + Value + ""; + return CombineXMLValueTagRet; + } + + public static string CombineXMLParameterMultiValue(ref string value_name, ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterMultiValueRet = default(string); + // Value不用加上Tag + CombineXMLParameterMultiValueRet = "<" + value_name.ToLower() + ">" + "" + name + "" + "" + type + "" + value + "" + desc + "" + ""; + + + + return CombineXMLParameterMultiValueRet; + } + + public static int FindRecordPosition(ref DataView dvData, ref string strColumnName, ref string strFindValue) + { + int FindRecordPositionRet = default(int); + // //由Dataview的第一筆開始尋找符合的資料直到最後一筆 + // //傳出資料在資料表內的Index + int i; + bool Found; // //紀錄是否找到符合資料 + string strDataType; // //尋找資料欄的資料型態 + + try + { + if (!string.IsNullOrEmpty(strFindValue)) // 是否有傳入尋找的條件 + { + Found = false; + strDataType = dvData.Table.Columns[strColumnName].DataType.ToString(); + if (strDataType == "System.DateTime") // 日期型態的資料比對 + { + var loopTo = dvData.Count; + for (i = 0; i <= loopTo; i++) + { + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(dvData[i][strColumnName], "#" + Strings.Format(Conversions.ToDate(strFindValue), "yyyy/MM/dd") + "#", false))) + { + Found = true; + break; + } + } + } + else // 字串,數值資料型態的比對 + { + var loopTo1 = dvData.Count; + for (i = 0; i <= loopTo1; i++) + { + if ((Strings.UCase(dvData[i][strColumnName].ToString()) ?? "") == (Strings.UCase(strFindValue) ?? "")) + { + Found = true; + break; + } + } + } + if (Found == true) + { + FindRecordPositionRet = i; // 找到符合資料,傳出所在的RowIndex + } + else + { + FindRecordPositionRet = -1; + } // 沒有符合資料 + } + } + catch + { + FindRecordPositionRet = -1; + } // 沒有符合資料 + + return FindRecordPositionRet; + + // //使用Dataview的Find Method,日期無法使用 + // dvData.Sort = strColumnName + // FindRecordPosition = dvData.Find(strFindValue) + + } + + + public static string PasswordEncoding(ref string Password) + { + string PasswordEncodingRet = default(string); + // 此 Function 將傳入值加以編碼後傳出,編碼後長度不變 + // 傳入值: 密碼 + // 傳回值: 編碼後密碼 + + // Vernam密碼是由Gilbert Vernam在1918年發明的 + string g_Key = "xNDFz6LH67LOv7xKbWFpbMu1wejrM7SzvV4tLRvq3X47m708O1xMHLoaMNCqGhoaEN"; + string strChar, iCryptChar, strEncrypted = default(string); + int i, iKeyChar, iStringChar; + + var loopTo = Strings.Len(Password); + for (i = 1; i <= loopTo; i++) + { + iKeyChar = Strings.Asc(Strings.Mid(g_Key, i, 1)); + iStringChar = Strings.Asc(Strings.Mid(Password, i, 1)); + iCryptChar = (iKeyChar ^ iStringChar).ToString(); + strEncrypted = strEncrypted + Strings.Chr(Conversions.ToInteger(iCryptChar)); + } + + PasswordEncodingRet = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(strEncrypted)); + return PasswordEncodingRet; + + } + + public static string FilterByString(ref string strFilter, ref string strColumnName, ref string strColumnValue) + { + string FilterByStringRet = default(string); + // 對字串欄位做篩選 + if (string.IsNullOrEmpty(strFilter)) + { + strFilter = strColumnName + " = '" + Strings.Replace(strColumnValue, "'", "''") + "'"; + } + else + { + strFilter = strFilter + " And " + strColumnName + " = '" + Strings.Replace(strColumnValue, "'", "''") + "'"; + } + FilterByStringRet = strFilter; + return FilterByStringRet; + } + + + public static string FilterByInteger(ref string strFilter, ref string strColumnName, ref int strColumnValue) + { + string FilterByIntegerRet = default(string); + // 對數值欄位做篩選 + if (string.IsNullOrEmpty(strFilter)) + { + strFilter = strColumnName + " = " + strColumnValue; + } + else + { + strFilter = strFilter + " And " + strColumnName + " = " + strColumnValue; + } + FilterByIntegerRet = strFilter; + return FilterByIntegerRet; + } + + public static string FilterByDate(ref string strFilter, ref string strColumnName, ref DateTime datFromDate, ref DateTime datEndDate) + { + string FilterByDateRet = default(string); + // 對日期欄位做篩選 + if (string.IsNullOrEmpty(strFilter)) + { + strFilter = strColumnName + " >= #" + Strings.Format(Conversions.ToDate(datFromDate), "yyyy/MM/dd 00:00:00") + "# And " + strColumnName + " <= #" + Strings.Format(Conversions.ToDate(datEndDate), "yyyy/MM/dd 23:59:59") + "# "; + } + else + { + strFilter = strFilter + " And " + strColumnName + " >= #" + Strings.Format(Conversions.ToDate(datFromDate), "yyyy/MM/dd 00:00:00") + "# And " + strColumnName + " <= #" + Strings.Format(Conversions.ToDate(datEndDate), "yyyy/MM/dd 23:59:59") + "# "; + } + FilterByDateRet = strFilter; + return FilterByDateRet; + } + + public static bool IsBoolean(ref string strBoolean, string strBooleanValue = defString) + { + bool IsBooleanRet = default(bool); + // 此 Function 檢查傳入值是否為Boolean值 + // 傳入值: strBoolean欲檢查是否為Boolean值的字串 + // strBooleanValue將檢查值轉換為True或False的統一字串 + // 傳回值: True是Boolean值 ; False不是Boolean值 + + IsBooleanRet = false; + + if (string.IsNullOrEmpty(strBoolean)) + { + IsBooleanRet = false; + } + else if (Strings.Trim(Strings.UCase(strBoolean)) != "Y" & Strings.Trim(Strings.UCase(strBoolean)) != "N" & Strings.Trim(Strings.UCase(strBoolean)) != "T" & Strings.Trim(Strings.UCase(strBoolean)) != "F" & Strings.Trim(Strings.UCase(strBoolean)) != "YES" & Strings.Trim(Strings.UCase(strBoolean)) != "NO" & Strings.Trim(Strings.UCase(strBoolean)) != "TRUE" & Strings.Trim(Strings.UCase(strBoolean)) != "FALSE" & Strings.Trim(Strings.UCase(strBoolean)) != "是" & Strings.Trim(Strings.UCase(strBoolean)) != "否" & Strings.Trim(Strings.UCase(strBoolean)) != "ON" & Strings.Trim(Strings.UCase(strBoolean)) != "OFF") + + + + + { + + IsBooleanRet = false; + } + + else if (Strings.Trim(Strings.UCase(strBoolean)) == "Y" | Strings.Trim(Strings.UCase(strBoolean)) == "T" | Strings.Trim(Strings.UCase(strBoolean)) == "YES" | Strings.Trim(Strings.UCase(strBoolean)) == "TRUE" | Strings.Trim(Strings.UCase(strBoolean)) == "是" | Strings.Trim(Strings.UCase(strBoolean)) == "ON") + + { + IsBooleanRet = true; + strBooleanValue = "True"; + } + else + { + IsBooleanRet = true; + strBooleanValue = "False"; + } + + return IsBooleanRet; + } + + + public static string CInput(ref string strInput) + { + string CInputRet = default(string); + // 將傳入值內的單引號轉換為可存入資料庫的格式 + // 2. 將傳入值內的 &, >, < 三個特殊字元轉換為XmlDocument可解譯之代替符號 + // 傳入值: strInput包含特殊字元的字串 + // 傳回值: 將特殊字元變更為代替符號的字串 + + // 轉換 ' 為 '' (單引號轉為兩個單引號) + CInputRet = Strings.Replace(strInput, "'", "''"); + + // 轉換 & 為 & + CInputRet = Strings.Replace(CInputRet, "&", "&"); + + // CInput = Replace(CInput, """", "''") 'AddFlow的Xml字串不可將雙引號轉為兩個單引號,XMLToFlow會Error + + // 轉換 > 為 > + CInputRet = Strings.Replace(CInputRet, ">", ">"); + + // 轉換 < 為 < + CInputRet = Strings.Replace(CInputRet, "<", "<"); + return CInputRet; + + } + + public static string CUnInput(ref string strInput) + { + string CUnInputRet = default(string); + // 將傳入值內的單引號轉換為可存入資料庫的格式 + // 傳入值: strInput包含特殊字元的字串 + // 傳回值: 將代替符號變更為特殊字元的字串 + + // 轉換 ' 為 '' (單引號轉為兩個單引號) + // CUnInput = Replace(strInput, "'", "''") + CUnInputRet = Strings.Replace(strInput, "\"", "'"); + + // 轉換 & 為 & + CUnInputRet = Strings.Replace(CUnInputRet, "&", "&"); + + // 轉換 > 為 > + CUnInputRet = Strings.Replace(CUnInputRet, ">", ">"); + + // 轉換 < 為 < + CUnInputRet = Strings.Replace(CUnInputRet, "<", "<"); + return CUnInputRet; + + } + + + // ***Add by PY 2003/07/31**** + public static string CombineXMLAdditional(ref string strAdditional) + { + string CombineXMLAdditionalRet = default(string); + CombineXMLAdditionalRet = "" + strAdditional; + CombineXMLAdditionalRet = CombineXMLAdditionalRet + ""; + return CombineXMLAdditionalRet; + } + + public static string CombineAddXML_Add(ref string name, ref string type, ref string value) + { + string CombineAddXML_AddRet = default(string); + CombineAddXML_AddRet = "" + "" + name + "" + "" + type + "" + "" + value + "" + ""; + + + + return CombineAddXML_AddRet; + } + public static string CombineAddXML_Edit(ref string name, ref string type, ref string value) + { + string CombineAddXML_EditRet = default(string); + CombineAddXML_EditRet = "" + "" + name + "" + "" + type + "" + "" + value + "" + ""; + + + + return CombineAddXML_EditRet; + } + public static string CombineAddXML_Field(ref string name) + { + string CombineAddXML_FieldRet = default(string); + CombineAddXML_FieldRet = "" + "" + name + "" + ""; + + return CombineAddXML_FieldRet; + } + + public static string CombineAddXML_Condition(string condition) + { + string CombineAddXML_ConditionRet = default(string); + CombineAddXML_ConditionRet = "" + Strings.Replace(condition, "''", "'") + ""; + return CombineAddXML_ConditionRet; + } + + // **Add by py 2003/12/04,Gary Lu 20120911:以MESWin1~Win4的版本進行替換 + public static string LocalizeWebService(string wsUrl, bool Customize = false) + { + + string[] tmpString; + int i; + tmpString = wsUrl.Split('/'); + if (Customize == true) + { + if (!string.IsNullOrEmpty(Strings.Trim(gCUSWebServiceHost))) + { + if (tmpString.Length == 6) + { + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gCUSWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString(); + } + else if (tmpString.Length == 5) + { + wsUrl = "http://" + gCUSWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString(); + } + } + } + else if (!string.IsNullOrEmpty(Strings.Trim(gMESWebServiceHost))) + { + if (tmpString.Length == 6) + { + // wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 2).ToString & "/" & tmpString(tmpString.Length - 1).ToString + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString(); + } + else if (tmpString.Length == 5) + { + // wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 1).ToString + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString(); + } + } + + return wsUrl; + // Have to assume the web service is on the machine that this application came from + } // LocalizeWebService + + // Add By Peter 2005/6/20 + public static string GetAppSettings(string key, string section = "") + { + string result = string.Empty; + + try + { + if (!string.IsNullOrEmpty(section)) + { + result = Conversions.ToString(((Hashtable)GetConfig(section))[key]); + } + else if (string.IsNullOrEmpty(gSettingMode) || string.IsNullOrEmpty(gSettingMode) || gSettingMode.Length == 0) + { + result = AppSettings[key]; + } + else + { + Hashtable ht = (Hashtable)GetConfig(gSettingMode); + if (ht != null) + { + result = Conversions.ToString(ht[key]); + } + } + } + + catch (Exception ex) + { + throw ex; + } + + return result; + } + + + public static string GetExceptionStack(ref System.Xml.XmlDocument Xmldoc) + { + string GetExceptionStackRet = default(string); + if (Xmldoc.DocumentElement.GetElementsByTagName("stack").Count > 0) + { + string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("stack").Item(0).InnerXml; + GetExceptionStackRet = CUnInput(ref argstrInput); + Xmldoc.DocumentElement.GetElementsByTagName("stack").Item(0).InnerXml = argstrInput; + } + else + { + GetExceptionStackRet = ""; + } + + return GetExceptionStackRet; + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/AssemblyInfo.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/AssemblyInfo.cs new file mode 100644 index 0000000..a73c3e0 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 一般的組件資訊是由下列這組屬性所控制。 +// 變更這些屬性的值即可修改組件的相關資訊。 +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("AutoRunLib")] +[assembly: AssemblyDescription("AutoRunLib for MESSeries")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(true)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("C4620590-2AB6-4D4D-8D66-A8D689DA698C")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂 +// +// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號 +// 指定為預設值: + +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/AutoRunLib_C.csproj b/SRC/MESAgent/MESAutoRun/AutoRunLib/AutoRunLib_C.csproj new file mode 100644 index 0000000..1473088 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/AutoRunLib_C.csproj @@ -0,0 +1,453 @@ + + + + Local + 8.0.50727 + 2.0 + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A} + SAK + SAK + SAK + SAK + Debug + AnyCPU + + + + + AutoRunLib_C + + + None + JScript + Grid + IE50 + false + Library + Binary + On + Off + AutoRunLib_C + + + true + false + true + + + Windows + + + false + v4.6.2 + 2.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + ..\..\..\MES_C_DLL\ + ..\..\..\MES_C_DLL\AutoRunLib_C.xml + 285212672 + + + + + true + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + AllRules.ruleset + false + + + ..\..\..\MES_C_DLL\ + ..\..\..\MES_C_DLL\ + + 285212672 + + + + + false + true + false + true + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + none + AllRules.ruleset + false + + + true + true + true + ..\..\..\MES_C_DLL\ + 285212672 + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + x86 + ..\..\..\MES_C_DLL\AutoRunLib.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + AllRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + false + + + true + bin\x86\Release\ + 285212672 + true + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + x86 + ..\..\..\MES_C_DLL\AutoRunLib.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + AllRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + false + false + + + + ..\..\..\MES_S_DLL\data_access_service.dll + False + + + ..\..\..\MES_S_DLL\iMESAppSetting.dll + False + + + ..\..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + ..\..\..\MES_S_DLL\iMESComXML.dll + False + + + ..\..\..\MES_S_DLL\iMESConst.dll + False + + + + ..\..\..\MES_S_DLL\GuardServerProvider.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.ExcelExport.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinEditors.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.Misc.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Documents.Excel.v19.1.dll + False + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Documents.Core.v19.1.dll + False + + + False + ..\..\..\MES_S_DLL\iMESCIO.dll + False + + + ..\..\..\MES_S_DLL\iMESDAO.dll + False + + + ..\..\..\MES_S_DLL\iMESDataObject.dll + False + + + ..\..\..\MES_S_DLL\iMESProjectBase.dll + False + + + False + ..\..\..\MES_C_DLL\iMESUltraGrid.dll + False + + + System + + + + System.Data + + + + + + System.Web.Services + + + + System.XML + + + + + + + + + + + + + + + + True + True + Reference.map + + + True + True + Reference.map + + + + AutoRunLib_C.My + SettingsSingleFileGenerator + Settings.Designer.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + Code + + + Code + + + Code + + + Code + + + True + True + Settings.settings + + + True + True + Reference.map + + + True + True + Reference.map + + + True + True + Reference.map + + + True + True + Reference.map + + + MSDiscoCodeGenerator + Reference.cs + + + + MSDiscoCodeGenerator + Reference.cs + + + + Dynamic + Web References\wsERP_WorkFlow\ + http://10.40.30.73/WFMES/WFMESService.asmx + + + + + MySettings + AutoRunLib_wsERP_WorkFlow_WFMESService + + + Dynamic + Web References\wsERP_EAI\ + http://218.211.164.199:9999/IntegrationEntry%3fwsdl + + + + + MySettings + AutoRunLib_wsERP_EAI_IntegrationEntry + + + Dynamic + Web References\wsERP_TP\ + http://localhost/ERPws_DSC/TIPTOPServiceGateWay.wsdl + + + + + MySettings + AutoRunLib_wsERP_TP_TIPTOPServiceGateWay + + + Dynamic + Web References\wsERP_TP_RPC\ + http://localhost/ERPws_DSC/TIPTOPServiceGateWay_RPC.wsdl + + + + + MySettings + AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay + + + Dynamic + Web References\wsERP_MES\ + http://localhost/ERPws_DSC/wsMES.asmx + + + + + MySettings + AutoRunLib_wsERP_MES_wsMES + + + + Dynamic + Web References\wsInvoke\ + http://localhost/MESws_STD/wsInvoke.asmx + + + + + MySettings + AutoRunLib_wsInvoke_wsInvoke + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/EAIMessageSynchronizer.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/EAIMessageSynchronizer.cs new file mode 100644 index 0000000..586a786 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/EAIMessageSynchronizer.cs @@ -0,0 +1,633 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using iMESCIO.CDO.Tables; +using iMESCIO.SCI.DPM.Request; +using iMESCIO.SCI.DPM.Response; +using iMESCIO.SCI.ERP.Request; +using iMESCIO.SCI.ERP.Response; +using iMESCIO.SCI.SMES.Request; +using iMESCIO.SCI.SMES.Response; +using iMESCore.Base.ProjectBase.Base; +using iMESCore.Settings; +using MESDAO.Tables; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.DataBase.iMESSql; +using static iMESCore.Base.iMESComSubroutine; + +namespace AutoRunLib_C +{ + + public class EAIMessageSynchronizer + { + + public enum WorkCode + { + ContinueRun = 0, // 繼續執行作業 + StopSame = 1, // 停止相同的作業 + StopAll = 2 // 停止所有作業 + } + + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strConnectionString; // Connection string + private string strReportDataBaseType; + private string strReportConnectionString; // Report DB Connection string + private string strERPconnectionString; + private string strERPDataBaseType; + private string strERPReportConnectionString; + private string InXML, OutXML; + private string RequestKey = ""; + private AppSettings objSetting = new AppSettings(); + private string strLanguageMode = "zh-cht"; + private string strResourceDir = "Resources"; + + // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- + public EAIMessageSynchronizer() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + // strMQType = objSetting.GetMQType() + + strReportDataBaseType = objSetting.GetReportDataBaseType(); + // //Get connection string + strReportConnectionString = objSetting.GetReportConnectionString(strReportDataBaseType); + + // ERP + // //Get ERP database type + strERPDataBaseType = objSetting.GetDataBaseType_ERP(); + // //Get ERP connection string + strERPconnectionString = objSetting.GetConnectionString_ERP(strERPDataBaseType); + + try + { + strResourceDir = objSetting["ResourceDir"].ToString(); + } + catch (Exception) + { } + try + { + strLanguageMode = objSetting["LanguageMode"].ToString(); + } + catch (Exception) + { + } + + // 'T100 整合項目增加, 取得 Web.Config 設定項目, 2015/12/15 Add. + + // Try + // '從Web.config取出目前的DatabaseType + // strERPCreator = System.Configuration.ConfigurationSettings.AppSettings.Get("defCreator") + // '2016-03-09, Joe, 取出預設ERP單位屬性編號 + // strERPUnitNo = System.Configuration.ConfigurationSettings.AppSettings.Get("defERPUnitNoProperty") + // '2016-03-02, Joe, 取出預設語系並轉換成ERP對應語系,後續T100多語系資料需用到 + // strDefLanguage = System.Configuration.ConfigurationSettings.AppSettings.Get("LanguageMode") + // Select Case strDefLanguage.ToUpper + // Case "ZH-CHS" + // strLanguage_T100 = "zh_CN" + // Case "EN" + // strLanguage_T100 = "en_US" + // Case Else + // strLanguage_T100 = "zh_TW" + // End Select + // Catch ex As Exception + // '發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // End Try + + + } + + + // //Property-------------------------------------------------------------------------------------------------------------------------------- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public void StartSyncing(Collection colParameters = null) + { + var StopRunList = new List(); + var objERPSetting = new List(); + var objQueue = new List(); + string Parameter01, Parameter02; + WorkCode ReturnWorkCode; + bool bSendMail = false; + + do + { + try + { + + // Parameter01為參數一 + // 作為Mail通知群組(GroupNo),放在最前面防止連線失敗無法寄送通知。 + if (!(colParameters["Parameter01"] == null) & !string.IsNullOrEmpty(Strings.Trim(Conversions.ToString(colParameters["Parameter01"])))) + { + Parameter01 = colParameters["Parameter01"].ToString().Trim(); + } + else + { + throw new Exception(TranslateMsg("Mail GroupNo (Parameter 01) [%NOT SET%]!", strLanguageMode, strResourceDir)); + } + + // Parameter02為參數二 + // 重新拋轉上限(數值) + if (!(colParameters["Parameter02"] == null) & !string.IsNullOrEmpty(Strings.Trim(Conversions.ToString(colParameters["Parameter02"])))) + { + if (Information.IsNumeric(colParameters["Parameter02"]) == false) + { + throw new Exception("(Parameter 02) [%is not%] [%Numeric%]!"); + } + Parameter02 = colParameters["Parameter02"].ToString().Trim(); + } + else + { + throw new Exception(TranslateMsg("Limit Qty (Parameter 02) [%NOT SET%]!", strLanguageMode, strResourceDir)); + } + + // 取得ERP整合設定資訊 + objERPSetting = GetERPSetting(); + + // 取得要拋送給ERP的資訊 + objQueue = GetSendQueue(); + if (objQueue == null) + break; + + string StopData; + var SendERPSetting = new CDO_TBLSYSERPSETTING(); + bool exitTry1 = false; + foreach (CDO_TBLSYSSENDTOEAIQUEUE objQ in objQueue) + { + InXML = ""; + RequestKey = ""; + + // 找出目前要拋送的目的服務是否有在StopRunList中,如存在則不允許執行 + StopData = StopRunList.Where(x => (x ?? "") == (objQ.SENDTO ?? "")).FirstOrDefault(); + if (string.IsNullOrEmpty(StopData)) + { + // 取出要拋送的目的服務的ERP整合設定資訊 + SendERPSetting = objERPSetting.Where(x => (x.ERP_NAME ?? "") == (objQ.SENDTO ?? "")).FirstOrDefault(); + if (SendERPSetting == null) + { + // Throw New Exception("[%ERP_Name%]:" & objQ.SENDTO & "[%IS NOT FOUND%]!") + // Exit Try + continue; + } + // 組Req uest XML + InXML = CombineRequestXML(SendERPSetting, objQ); + // 將資訊拋給ERP + using (var ws = new wsERP_EAI.IntegrationEntry()) + { + ws.Url = SendERPSetting.ERP_WSURL; + OutXML = ws.invokeSrv(InXML); + } + // 處理執行結果 + ReturnWorkCode = HandleSendResult(OutXML, objQ, SendERPSetting, Parameter01, Parameter02); + // 依回傳的結果判定是否繼續執行 + bool exitTry = false; + switch (ReturnWorkCode) + { + case WorkCode.ContinueRun: + { + // 繼續執行 + continue; + } + case WorkCode.StopSame: + { + // 將此次失敗的ERP名稱加到StopRunList + StopRunList.Add(objQ.SENDTO); + // 繼續執行 + continue; + } + case WorkCode.StopAll: + { + // 全部停止執行 + exitTry1 = exitTry = true; + break; + } + } + + if (exitTry) + { + break; + } + } + } + + if (exitTry1) + { + break; + } + } + + catch (Exception ex) + { + throw; + } + } + while (false); + + + } + + + /// + /// 取得ERP整合的設定資料 + /// + /// List(Of CDO_TBLSYSERPSETTING) + private List GetERPSetting() + { + + var DAO = new DAO_TBLSYSERPSETTING(); + var Data = new List(); + + try + { + // 取出ERP整合資訊 + Data = (List)DAO.Query(null, new QueryRelatedInfo() { ReturnType = ReturnMode.List }); + } + + catch (Exception ex) + { + throw; + } + + return Data; + + } + + + /// + /// 取得Queue資料 + /// + /// List(Of CDO_TBLSYSSENDTOEAIQUEUE) + private List GetSendQueue() + { + + var DAO = new DAO_TBLSYSSENDTOEAIQUEUE(); + var Data = new List(); + + try + { + + // 取出待拋轉資訊 + Data = (List)DAO.Query(null, new QueryRelatedInfo() { ReturnType = ReturnMode.List }); + } + + catch (Exception ex) + { + throw; + } + + return Data; + + } + + /// + /// 組出RequestXML + /// + /// + private string CombineRequestXML(CDO_TBLSYSERPSETTING pERPSetting, CDO_TBLSYSSENDTOEAIQUEUE pSendContent) + { + string CombineRequestXMLRet = default(string); + + DataRow[] drERPSetting; + string strFilter = ""; + + try + { + // pSendContent.enterprise_no = drERPSetting(0)("ERP_ENTID").ToString + // pSendContent.site_no = drERPSetting(0)("ERP_ORG").ToString + + // 轉XML + string RequestHead = ""; + RequestHead += ""; + string RequestDataKey = "" + pERPSetting.ERP_ENTID + "" + pERPSetting.ERP_ORG + ""; + string RequestXML_Body = pSendContent.PAYLOAD; + RequestKey = modAutoRunLibrary.GetRequestKey(RequestHead); + string RequestHeader = "" + RequestHead + RequestDataKey + "" + RequestXML_Body + ""; + // CDO to XML + CombineRequestXMLRet = RequestHeader; + } + + catch (Exception ex) + { + throw; + } + + return CombineRequestXMLRet; + + } + + /// + /// 同步結果處理 + /// + /// + private WorkCode HandleSendResult(string pEAIResult, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, CDO_TBLSYSERPSETTING pEAISetting, string pJobParam01, string pJobParam02) + { + WorkCode HandleSendResultRet = default(WorkCode); + + //IDbConnection cnnTemp = null; + //IDbCommand cmmTemp; + string strSQL; + //System.Data.OleDbDataAdapter daTemp; + var dsTemp = new DataSet(); + var objReturn = default(WorkCode); + var objEAIResult = default(object); + bool ProcessResult = false; + string ProcessMessage = ""; + + try + { + // 物件初始化 + switch (pSendSrc.SERVICENAME ?? "") + { + case "issue.wo.item.process": // MES發料 + { + objEAIResult = new SCI_Response_issue_wo_item_process(); + break; + } + case "stockin.data.create": // 完工入庫 + { + objEAIResult = new SCI_Response_stockin_data_create(); + break; + } + case "workorder.create": // DPM 拋報工單 + { + objEAIResult = new SCI_Response_workorder_create(); + break; + } + } + // 將中台回的結果轉成物件 + try + { + (objEAIResult as SCI_Response_workorder_create).ParseXmlToObject(pEAIResult); + if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual((objEAIResult as SCI_Response_workorder_create).code, "0", false))) + { + ProcessResult = true; + } + else + { + ProcessMessage = Conversions.ToString((objEAIResult as SCI_Response_workorder_create).description); + } + } + catch (Exception ex) + { + ProcessMessage = OutXML; + } + // 紀錄TransactionLog + string argstrException = null; + modAutoRunLibrary.addTransactionLog(InXML, OutXML, DateTime.Now.ToString("yyyyMMddHHmmssss"), "MES", "StartSyncing", Environment.MachineName, "AutoRun", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), Conversions.ToString(Interaction.IIf(ProcessResult == Conversions.ToBoolean("0"), "success", "fail")), ProcessMessage, pSendSrc.SERVICENAME, strException: argstrException); + // 判斷中台回的結果 + if (ProcessResult) + { + // 成功 + HandleSendResultRet = WorkCode.ContinueRun; + // 處理執行成功資訊及歷程 + HandleSendSuccess(pEAIResult, pSendSrc); + } + else + { + // 失敗 + // 處理執行失敗資訊及歷程 + HandleSendFail(pEAIResult, ProcessMessage, pSendSrc, pJobParam02); + // 寄送Mail + string argFileName = "N/A"; + string argEmailSubject = "AutuRunJob : StartSyncing Fail![" + pSendSrc.SERVICENAME + "]"; + string argEmailBody = TranslateMsg("[%SENDID%]:" + pSendSrc.SENDID + " [%EXECUTE%] [%ISSUEMOMATERIAL%] [%FAIL%]! [%ERRORMESSAGE%]:", strLanguageMode, strResourceDir) + ProcessMessage; + modAutoRunLibrary.SendMultiEmail(ref argFileName, ref argEmailSubject, argEmailBody, pJobParam01); + } + } + + catch (Exception ex) + { + throw; + } + finally + { + //CloseConnection(cnnTemp); + } + + return objReturn; + + } + + /// + /// 同步結果處理-成功 + /// + /// + private void HandleSendSuccess(string pEAIResult, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc) + { + + string strSQL; + var objQueueLog = new CDO_TBLSYSSENDTOEAIQUEUE_LOG(); + var objEAIResult = new object(); + var DAO = new DAO_TBLSYSSENDTOEAIQUEUE(); + var DAO_Log = new DAO_TBLSYSSENDTOEAIQUEUE_LOG(); + + var cdoERPDocLog = new CDO_TBLSYSERPDOCUMENTLOG(); + var daoERPDocLog = new DAO_TBLSYSERPDOCUMENTLOG(); + + try + { + // 執行成功後呼叫各服務各自處理邏輯 + switch (pSendSrc.SERVICENAME ?? "") + { + case "issue.wo.item.process": // MES發料 + { + objEAIResult = new SCI_Response_issue_wo_item_process(); + // 將中台回的結果轉成物件 + try + { + (objEAIResult as SCI_Response_issue_wo_item_process).ParseXmlToObject(pEAIResult); + } + catch (Exception ex) + { + throw new Exception("[%XML FORMAT ERROR%]"); + } + + // 解析Request XML + var cdoInXML = new SCI_Request_issue_wo_item_process(); + cdoInXML.ParseXmlToObject(InXML); + + object argdaoTransaction = DAO; + AddERPDocumentLog(8, Conversions.ToString((objEAIResult as SCI_Response_issue_wo_item_process).return_no), cdoInXML.doc_no, pSendSrc, ref argdaoTransaction); + DAO = (DAO_TBLSYSSENDTOEAIQUEUE)argdaoTransaction; + break; + } + case "stockin.data.create": // 完工入庫 + { + objEAIResult = new SCI_Response_stockin_data_create(); + // 將中台回的結果轉成物件 + try + { + (objEAIResult as SCI_Response_stockin_data_create).ParseXmlToObject(pEAIResult); + } + catch (Exception ex) + { + throw new Exception("[%XML FORMAT ERROR%]"); + } + + // 解析Request XML + var cdoInXML = new SCI_Request_stockin_data_create(); + cdoInXML.ParseXmlToObject(InXML); + + object argdaoTransaction1 = DAO; + AddERPDocumentLog(4, Conversions.ToString((objEAIResult as SCI_Response_stockin_data_create).stock_in_no), cdoInXML.source_no, pSendSrc, ref argdaoTransaction1); + DAO = (DAO_TBLSYSSENDTOEAIQUEUE)argdaoTransaction1; + break; + } + + case "workorder.create": // DPM報工單 + { + objEAIResult = new SCI_Response_workorder_create(); + // 將中台回的結果轉成物件 + try + { + (objEAIResult as SCI_Response_workorder_create).ParseXmlToObject(pEAIResult); + } + catch (Exception ex) + { + throw new Exception("[%XML FORMAT ERROR%]"); + } + + // 解析Request XML + var cdoInXML = new SCI_Request_workorder_create(); + cdoInXML.ParseXmlToObject(InXML); + break; + } + } + + // 將Queue資訊搬至Log + objQueueLog.SENDID = pSendSrc.SENDID; + objQueueLog.SENDTO = pSendSrc.SENDTO; + objQueueLog.SERVICENAME = pSendSrc.SERVICENAME; + objQueueLog.SERVICEVERSION = pSendSrc.SERVICEVERSION; + objQueueLog.SENDCONTENT = pSendSrc.PAYLOAD; + objQueueLog.SENDCOUNT = pSendSrc.SENDCOUNT; + objQueueLog.RETURNINFO = Conversions.ToString((objEAIResult as SCI_Response_workorder_create).description); + objQueueLog.RUNRESULT = "success"; + objQueueLog.CREATOR = pSendSrc.CREATOR; + objQueueLog.CREATEDATE = pSendSrc.CREATEDATE; + // 2017-07-17, Joe, 將ERP入庫單號寫入Queue中,還原時才能與MES發料資訊做對應一起還原 + objQueueLog.RELATIONERPNO = pSendSrc.RELATIONERPNO; + objQueueLog.LOTSERIAL = pSendSrc.LOTSERIAL; + DAO_Log.Add(objQueueLog, DAO); + + // 刪除已拋轉成功的Queue + DAO.Delete(pSendSrc, DAO); + } + + catch (Exception ex) + { + throw; + } + finally + { + } + + } + + /// + /// 同步結果處理-失敗 + /// + /// + private void HandleSendFail(string pEAIResult, string pEAIMessage, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, string pJobParam02) + { + + string strSQL; + var objQueueLog = new CDO_TBLSYSSENDTOEAIQUEUE_LOG(); + var DAO = new DAO_TBLSYSSENDTOEAIQUEUE(); + var DAO_Log = new DAO_TBLSYSSENDTOEAIQUEUE_LOG(); + + try + { + // 錯誤次數加1 + pSendSrc.SENDCOUNT = pSendSrc.SENDCOUNT + 1; + pSendSrc.EXCEPTION = pEAIResult; + + // 將此筆Queue回寫DB + DAO.Update(pSendSrc, DAO); + + // 發送Mail + + // 判斷目前執行的同步次數是否已達到最大限制次數 + if (string.IsNullOrEmpty(pJobParam02) == false && Convert.ToInt32(pJobParam02) != -1 && pSendSrc.SENDCOUNT > Convert.ToInt32(pJobParam02)) + { + + // 將Queue資訊搬至Log + objQueueLog.SENDID = pSendSrc.SENDID; + objQueueLog.SENDTO = pSendSrc.SENDTO; + objQueueLog.SERVICENAME = pSendSrc.SERVICENAME; + objQueueLog.SERVICEVERSION = pSendSrc.SERVICEVERSION; + objQueueLog.SENDCONTENT = pSendSrc.PAYLOAD; + objQueueLog.SENDCOUNT = pSendSrc.SENDCOUNT; + objQueueLog.RETURNINFO = pEAIMessage; + objQueueLog.RUNRESULT = "fail"; + objQueueLog.EXCEPTION = pSendSrc.EXCEPTION; + objQueueLog.CREATOR = pSendSrc.CREATOR; + objQueueLog.CREATEDATE = pSendSrc.CREATEDATE; + // 2017-07-17, Joe, 將ERP入庫單號寫入Queue中,還原時才能與MES發料資訊做對應一起還原 + objQueueLog.RELATIONERPNO = pSendSrc.RELATIONERPNO; + DAO_Log.Add(objQueueLog, DAO); + + // 刪除已拋轉成功的Queue + DAO.Delete(pSendSrc, DAO); + + } + } + + catch (Exception ex) + { + throw; + } + finally + { + } + + } + + private object AddERPDocumentLog(int pDocType, string ERPNo, string MESNo, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, ref object daoTransaction) + { + + var cdoERPDocLog = new CDO_TBLSYSERPDOCUMENTLOG(); + var daoERPDocLog = new DAO_TBLSYSERPDOCUMENTLOG(); + + try + { + // 將資訊寫入ERP Document Log + cdoERPDocLog.TRANSID = RequestKey; + cdoERPDocLog.DOCUMENTTYPE = pDocType; // 單據類別 1:工單發料,2:工單退料,3:報工單,4:完工入庫,5:不良品入庫單,6:外包出貨單,7:外包回貨單,8:MES發料 + cdoERPDocLog.MESNO = MESNo; + cdoERPDocLog.ERPNO = ERPNo; + cdoERPDocLog.CREATEDATE = pSendSrc.CREATEDATE; + // 2017-07-17, Joe, 將ERP入庫單號寫入Queue中,還原時才能與MES發料資訊做對應一起還原 + cdoERPDocLog.RELATIONERPNO = pSendSrc.RELATIONERPNO; + cdoERPDocLog.SENDID = pSendSrc.SENDID; + daoERPDocLog.Add(cdoERPDocLog, (iMESDBBase)daoTransaction); + } + + catch (Exception ex) + { + throw; + } + + return default(Object); + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.Designer.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.Designer.cs new file mode 100644 index 0000000..8d0e345 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.Designer.cs @@ -0,0 +1,161 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + + +namespace AutoRunLib_C.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + 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 + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://localhost/ERPws_DSC/wsMES.asmx")] + public string AutoRunLib_wsERP_MES_wsMES + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_MES_wsMES"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o")] + public string AutoRunLib_wsERP_TP_TIPTOPServiceGateWay + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_TP_TIPTOPServiceGateWay"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o")] + public string AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://10.40.41.197:9999/IntegrationEntry")] + public string AutoRunLib_wsERP_EAI_IntegrationEntry + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_EAI_IntegrationEntry"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://localhost/MESws_STD/wsInvoke.asmx")] + public string AutoRunLib_wsInvoke_wsInvoke + { + get + { + return Conversions.ToString(this["AutoRunLib_wsInvoke_wsInvoke"]); + } + } + + [System.Configuration.ApplicationScopedSetting()] + [DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)] + [System.Configuration.DefaultSettingValue("http://10.40.30.73/WFMES/WFMESService.asmx")] + public string AutoRunLib_wsERP_WorkFlow_WFMESService + { + get + { + return Conversions.ToString(this["AutoRunLib_wsERP_WorkFlow_WFMESService"]); + } + } + } +} + +namespace AutoRunLib_C.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.settings b/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.settings new file mode 100644 index 0000000..aeead8a --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/My Project/Settings.settings @@ -0,0 +1,24 @@ + + + + + + http://localhost/ERPws_DSC/wsMES.asmx + + + http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o + + + http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o + + + http://10.40.41.197:9999/IntegrationEntry + + + http://localhost/MESws_STD/wsInvoke.asmx + + + http://10.40.30.73/WFMES/WFMESService.asmx + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Properties/BuildIncrementVersionInfo.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Properties/BuildIncrementVersionInfo.cs new file mode 100644 index 0000000..cc37e81 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Properties/BuildIncrementVersionInfo.cs @@ -0,0 +1 @@ +[assembly: System.Reflection.AssemblyFileVersion("6.0.5.31114")] diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/IntegrationEntry.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/IntegrationEntry.wsdl new file mode 100644 index 0000000..9be0da0 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/IntegrationEntry.wsdl @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.cs new file mode 100644 index 0000000..252a8f0 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.cs @@ -0,0 +1,980 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_EAI +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "IntegrationEntrySoapBinding", Namespace = "http://entry.serviceengine.cross.digiwin.com")] + public partial class IntegrationEntry : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback regEAIOperationCompleted; + + private System.Threading.SendOrPostCallback getParamListOperationCompleted; + + private System.Threading.SendOrPostCallback regProdAPOperationCompleted; + + private System.Threading.SendOrPostCallback regSrvOperationCompleted; + + private System.Threading.SendOrPostCallback getProdListOperationCompleted; + + private System.Threading.SendOrPostCallback getProdOperationCompleted; + + private System.Threading.SendOrPostCallback getSrvOperationCompleted; + + private System.Threading.SendOrPostCallback invokeEtlOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrvOperationCompleted; + + private System.Threading.SendOrPostCallback getEtlJobListOperationCompleted; + + private System.Threading.SendOrPostCallback invokeMdmOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public IntegrationEntry() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_EAI_IntegrationEntry; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event regEAICompletedEventHandler regEAICompleted; + + /// + public event getParamListCompletedEventHandler getParamListCompleted; + + /// + public event regProdAPCompletedEventHandler regProdAPCompleted; + + /// + public event regSrvCompletedEventHandler regSrvCompleted; + + /// + public event getProdListCompletedEventHandler getProdListCompleted; + + /// + public event getProdCompletedEventHandler getProdCompleted; + + /// + public event getSrvCompletedEventHandler getSrvCompleted; + + /// + public event invokeEtlCompletedEventHandler invokeEtlCompleted; + + /// + public event invokeSrvCompletedEventHandler invokeSrvCompleted; + + /// + public event getEtlJobListCompletedEventHandler getEtlJobListCompleted; + + /// + public event invokeMdmCompletedEventHandler invokeMdmCompleted; + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string regEAI(string in0) + { + object[] results = Invoke("regEAI", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginregEAI(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("regEAI", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndregEAI(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void regEAIAsync(string in0) + { + regEAIAsync(in0, null); + } + + /// + public void regEAIAsync(string in0, object userState) + { + if (regEAIOperationCompleted == null) + { + regEAIOperationCompleted = OnregEAIOperationCompleted; + } + InvokeAsync("regEAI", new object[] { in0 }, regEAIOperationCompleted, userState); + } + + private void OnregEAIOperationCompleted(object arg) + { + if (regEAICompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + regEAICompleted?.Invoke(this, new regEAICompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getParamList() + { + object[] results = Invoke("getParamList", new object[0]); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetParamList(AsyncCallback callback, object asyncState) + { + return BeginInvoke("getParamList", new object[0], callback, asyncState); + } + + /// + public string EndgetParamList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getParamListAsync() + { + getParamListAsync(null); + } + + /// + public void getParamListAsync(object userState) + { + if (getParamListOperationCompleted == null) + { + getParamListOperationCompleted = OngetParamListOperationCompleted; + } + InvokeAsync("getParamList", new object[0], getParamListOperationCompleted, userState); + } + + private void OngetParamListOperationCompleted(object arg) + { + if (getParamListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getParamListCompleted?.Invoke(this, new getParamListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string regProdAP(string in0) + { + object[] results = Invoke("regProdAP", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginregProdAP(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("regProdAP", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndregProdAP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void regProdAPAsync(string in0) + { + regProdAPAsync(in0, null); + } + + /// + public void regProdAPAsync(string in0, object userState) + { + if (regProdAPOperationCompleted == null) + { + regProdAPOperationCompleted = OnregProdAPOperationCompleted; + } + InvokeAsync("regProdAP", new object[] { in0 }, regProdAPOperationCompleted, userState); + } + + private void OnregProdAPOperationCompleted(object arg) + { + if (regProdAPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + regProdAPCompleted?.Invoke(this, new regProdAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string regSrv(string in0) + { + object[] results = Invoke("regSrv", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginregSrv(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("regSrv", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndregSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void regSrvAsync(string in0) + { + regSrvAsync(in0, null); + } + + /// + public void regSrvAsync(string in0, object userState) + { + if (regSrvOperationCompleted == null) + { + regSrvOperationCompleted = OnregSrvOperationCompleted; + } + InvokeAsync("regSrv", new object[] { in0 }, regSrvOperationCompleted, userState); + } + + private void OnregSrvOperationCompleted(object arg) + { + if (regSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + regSrvCompleted?.Invoke(this, new regSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getProdList() + { + object[] results = Invoke("getProdList", new object[0]); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetProdList(AsyncCallback callback, object asyncState) + { + return BeginInvoke("getProdList", new object[0], callback, asyncState); + } + + /// + public string EndgetProdList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getProdListAsync() + { + getProdListAsync(null); + } + + /// + public void getProdListAsync(object userState) + { + if (getProdListOperationCompleted == null) + { + getProdListOperationCompleted = OngetProdListOperationCompleted; + } + InvokeAsync("getProdList", new object[0], getProdListOperationCompleted, userState); + } + + private void OngetProdListOperationCompleted(object arg) + { + if (getProdListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getProdListCompleted?.Invoke(this, new getProdListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getProd(string in0) + { + object[] results = Invoke("getProd", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetProd(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("getProd", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndgetProd(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getProdAsync(string in0) + { + getProdAsync(in0, null); + } + + /// + public void getProdAsync(string in0, object userState) + { + if (getProdOperationCompleted == null) + { + getProdOperationCompleted = OngetProdOperationCompleted; + } + InvokeAsync("getProd", new object[] { in0 }, getProdOperationCompleted, userState); + } + + private void OngetProdOperationCompleted(object arg) + { + if (getProdCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getProdCompleted?.Invoke(this, new getProdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getSrv(string in0) + { + object[] results = Invoke("getSrv", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetSrv(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("getSrv", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndgetSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getSrvAsync(string in0) + { + getSrvAsync(in0, null); + } + + /// + public void getSrvAsync(string in0, object userState) + { + if (getSrvOperationCompleted == null) + { + getSrvOperationCompleted = OngetSrvOperationCompleted; + } + InvokeAsync("getSrv", new object[] { in0 }, getSrvOperationCompleted, userState); + } + + private void OngetSrvOperationCompleted(object arg) + { + if (getSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getSrvCompleted?.Invoke(this, new getSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeEtl(string in0) + { + object[] results = Invoke("invokeEtl", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeEtl(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeEtl", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndinvokeEtl(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeEtlAsync(string in0) + { + invokeEtlAsync(in0, null); + } + + /// + public void invokeEtlAsync(string in0, object userState) + { + if (invokeEtlOperationCompleted == null) + { + invokeEtlOperationCompleted = OninvokeEtlOperationCompleted; + } + InvokeAsync("invokeEtl", new object[] { in0 }, invokeEtlOperationCompleted, userState); + } + + private void OninvokeEtlOperationCompleted(object arg) + { + if (invokeEtlCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeEtlCompleted?.Invoke(this, new invokeEtlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv(string in0) + { + object[] results = Invoke("invokeSrv", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndinvokeSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrvAsync(string in0) + { + invokeSrvAsync(in0, null); + } + + /// + public void invokeSrvAsync(string in0, object userState) + { + if (invokeSrvOperationCompleted == null) + { + invokeSrvOperationCompleted = OninvokeSrvOperationCompleted; + } + InvokeAsync("invokeSrv", new object[] { in0 }, invokeSrvOperationCompleted, userState); + } + + private void OninvokeSrvOperationCompleted(object arg) + { + if (invokeSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrvCompleted?.Invoke(this, new invokeSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string getEtlJobList(string in0) + { + object[] results = Invoke("getEtlJobList", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegingetEtlJobList(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("getEtlJobList", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndgetEtlJobList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void getEtlJobListAsync(string in0) + { + getEtlJobListAsync(in0, null); + } + + /// + public void getEtlJobListAsync(string in0, object userState) + { + if (getEtlJobListOperationCompleted == null) + { + getEtlJobListOperationCompleted = OngetEtlJobListOperationCompleted; + } + InvokeAsync("getEtlJobList", new object[] { in0 }, getEtlJobListOperationCompleted, userState); + } + + private void OngetEtlJobListOperationCompleted(object arg) + { + if (getEtlJobListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + getEtlJobListCompleted?.Invoke(this, new getEtlJobListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeMdm(string in0) + { + object[] results = Invoke("invokeMdm", new object[] { in0 }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeMdm(string in0, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeMdm", new object[] { in0 }, callback, asyncState); + } + + /// + public string EndinvokeMdm(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeMdmAsync(string in0) + { + invokeMdmAsync(in0, null); + } + + /// + public void invokeMdmAsync(string in0, object userState) + { + if (invokeMdmOperationCompleted == null) + { + invokeMdmOperationCompleted = OninvokeMdmOperationCompleted; + } + InvokeAsync("invokeMdm", new object[] { in0 }, invokeMdmOperationCompleted, userState); + } + + private void OninvokeMdmOperationCompleted(object arg) + { + if (invokeMdmCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeMdmCompleted?.Invoke(this, new invokeMdmCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void regEAICompletedEventHandler(object sender, regEAICompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class regEAICompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal regEAICompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getParamListCompletedEventHandler(object sender, getParamListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getParamListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getParamListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void regProdAPCompletedEventHandler(object sender, regProdAPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class regProdAPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal regProdAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void regSrvCompletedEventHandler(object sender, regSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class regSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal regSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getProdListCompletedEventHandler(object sender, getProdListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getProdListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getProdListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getProdCompletedEventHandler(object sender, getProdCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getProdCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getProdCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getSrvCompletedEventHandler(object sender, getSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeEtlCompletedEventHandler(object sender, invokeEtlCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeEtlCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeEtlCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrvCompletedEventHandler(object sender, invokeSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void getEtlJobListCompletedEventHandler(object sender, getEtlJobListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class getEtlJobListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal getEtlJobListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeMdmCompletedEventHandler(object sender, invokeMdmCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeMdmCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeMdmCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.map new file mode 100644 index 0000000..4e46b66 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_EAI/Reference.map @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.cs new file mode 100644 index 0000000..fa8456e --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.cs @@ -0,0 +1,1899 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_MES +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "wsMESSoap", Namespace = "http://www.imestech.com/wsMES")] + public partial class wsMES : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback LoadWIPInventory_SEMIbyMO_TPOperationCompleted; + + private System.Threading.SendOrPostCallback loadWIP_SEMI_MO_TPOperationCompleted; + + private System.Threading.SendOrPostCallback loadWIP_SEMI_MO_WFOperationCompleted; + + private System.Threading.SendOrPostCallback ChkmesStockIn_LotOperationCompleted; + + private System.Threading.SendOrPostCallback updateINVBookingFlagOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_TPOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_E10OperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_Scrap_TPOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_WFOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_Check_WFOperationCompleted; + + private System.Threading.SendOrPostCallback MOStockIn_WF_CancelOperationCompleted; + + private System.Threading.SendOrPostCallback LoadWIPInventory_SEMIbyMO_WFOperationCompleted; + + private System.Threading.SendOrPostCallback LoadOEMOBasis_byLot_WFOperationCompleted; + + private System.Threading.SendOrPostCallback UpdOSBasisOperationCompleted; + + private System.Threading.SendOrPostCallback LoadMOMaterialStateOPOperationCompleted; + + private System.Threading.SendOrPostCallback LoadMOMaterialStateOperationCompleted; + + private System.Threading.SendOrPostCallback MOIssueReturnOperationCompleted; + + private System.Threading.SendOrPostCallback MOIssueReturn_CancelOperationCompleted; + + private System.Threading.SendOrPostCallback ExeMaterialScrapOperationCompleted; + + private System.Threading.SendOrPostCallback GetERPReferenceNoOperationCompleted; + + private System.Threading.SendOrPostCallback addTransactionLogOperationCompleted; + + private System.Threading.SendOrPostCallback addTransactionLog_ErrorCodeOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public wsMES() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_MES_wsMES; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event LoadWIPInventory_SEMIbyMO_TPCompletedEventHandler LoadWIPInventory_SEMIbyMO_TPCompleted; + + /// + public event loadWIP_SEMI_MO_TPCompletedEventHandler loadWIP_SEMI_MO_TPCompleted; + + /// + public event loadWIP_SEMI_MO_WFCompletedEventHandler loadWIP_SEMI_MO_WFCompleted; + + /// + public event ChkmesStockIn_LotCompletedEventHandler ChkmesStockIn_LotCompleted; + + /// + public event updateINVBookingFlagCompletedEventHandler updateINVBookingFlagCompleted; + + /// + public event MOStockIn_TPCompletedEventHandler MOStockIn_TPCompleted; + + /// + public event MOStockIn_E10CompletedEventHandler MOStockIn_E10Completed; + + /// + public event MOStockIn_Scrap_TPCompletedEventHandler MOStockIn_Scrap_TPCompleted; + + /// + public event MOStockIn_WFCompletedEventHandler MOStockIn_WFCompleted; + + /// + public event MOStockIn_Check_WFCompletedEventHandler MOStockIn_Check_WFCompleted; + + /// + public event MOStockIn_WF_CancelCompletedEventHandler MOStockIn_WF_CancelCompleted; + + /// + public event LoadWIPInventory_SEMIbyMO_WFCompletedEventHandler LoadWIPInventory_SEMIbyMO_WFCompleted; + + /// + public event LoadOEMOBasis_byLot_WFCompletedEventHandler LoadOEMOBasis_byLot_WFCompleted; + + /// + public event UpdOSBasisCompletedEventHandler UpdOSBasisCompleted; + + /// + public event LoadMOMaterialStateOPCompletedEventHandler LoadMOMaterialStateOPCompleted; + + /// + public event LoadMOMaterialStateCompletedEventHandler LoadMOMaterialStateCompleted; + + /// + public event MOIssueReturnCompletedEventHandler MOIssueReturnCompleted; + + /// + public event MOIssueReturn_CancelCompletedEventHandler MOIssueReturn_CancelCompleted; + + /// + public event ExeMaterialScrapCompletedEventHandler ExeMaterialScrapCompleted; + + /// + public event GetERPReferenceNoCompletedEventHandler GetERPReferenceNoCompleted; + + /// + public event addTransactionLogCompletedEventHandler addTransactionLogCompleted; + + /// + public event addTransactionLog_ErrorCodeCompletedEventHandler addTransactionLog_ErrorCodeCompleted; + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadWIPInventory_SEMIbyMO_TP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadWIPInventory_SEMIbyMO_TP(string InXml) + { + object[] results = Invoke("LoadWIPInventory_SEMIbyMO_TP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadWIPInventory_SEMIbyMO_TP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadWIPInventory_SEMIbyMO_TP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadWIPInventory_SEMIbyMO_TP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadWIPInventory_SEMIbyMO_TPAsync(string InXml) + { + LoadWIPInventory_SEMIbyMO_TPAsync(InXml, null); + } + + /// + public void LoadWIPInventory_SEMIbyMO_TPAsync(string InXml, object userState) + { + if (LoadWIPInventory_SEMIbyMO_TPOperationCompleted == null) + { + LoadWIPInventory_SEMIbyMO_TPOperationCompleted = OnLoadWIPInventory_SEMIbyMO_TPOperationCompleted; + } + InvokeAsync("LoadWIPInventory_SEMIbyMO_TP", new object[] { InXml }, LoadWIPInventory_SEMIbyMO_TPOperationCompleted, userState); + } + + private void OnLoadWIPInventory_SEMIbyMO_TPOperationCompleted(object arg) + { + if (LoadWIPInventory_SEMIbyMO_TPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadWIPInventory_SEMIbyMO_TPCompleted?.Invoke(this, new LoadWIPInventory_SEMIbyMO_TPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/loadWIP_SEMI_MO_TP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string loadWIP_SEMI_MO_TP(string InXml) + { + object[] results = Invoke("loadWIP_SEMI_MO_TP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginloadWIP_SEMI_MO_TP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("loadWIP_SEMI_MO_TP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndloadWIP_SEMI_MO_TP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void loadWIP_SEMI_MO_TPAsync(string InXml) + { + loadWIP_SEMI_MO_TPAsync(InXml, null); + } + + /// + public void loadWIP_SEMI_MO_TPAsync(string InXml, object userState) + { + if (loadWIP_SEMI_MO_TPOperationCompleted == null) + { + loadWIP_SEMI_MO_TPOperationCompleted = OnloadWIP_SEMI_MO_TPOperationCompleted; + } + InvokeAsync("loadWIP_SEMI_MO_TP", new object[] { InXml }, loadWIP_SEMI_MO_TPOperationCompleted, userState); + } + + private void OnloadWIP_SEMI_MO_TPOperationCompleted(object arg) + { + if (loadWIP_SEMI_MO_TPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + loadWIP_SEMI_MO_TPCompleted?.Invoke(this, new loadWIP_SEMI_MO_TPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/loadWIP_SEMI_MO_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string loadWIP_SEMI_MO_WF(string InXml) + { + object[] results = Invoke("loadWIP_SEMI_MO_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginloadWIP_SEMI_MO_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("loadWIP_SEMI_MO_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndloadWIP_SEMI_MO_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void loadWIP_SEMI_MO_WFAsync(string InXml) + { + loadWIP_SEMI_MO_WFAsync(InXml, null); + } + + /// + public void loadWIP_SEMI_MO_WFAsync(string InXml, object userState) + { + if (loadWIP_SEMI_MO_WFOperationCompleted == null) + { + loadWIP_SEMI_MO_WFOperationCompleted = OnloadWIP_SEMI_MO_WFOperationCompleted; + } + InvokeAsync("loadWIP_SEMI_MO_WF", new object[] { InXml }, loadWIP_SEMI_MO_WFOperationCompleted, userState); + } + + private void OnloadWIP_SEMI_MO_WFOperationCompleted(object arg) + { + if (loadWIP_SEMI_MO_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + loadWIP_SEMI_MO_WFCompleted?.Invoke(this, new loadWIP_SEMI_MO_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/ChkmesStockIn_Lot", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string ChkmesStockIn_Lot(string InXml) + { + object[] results = Invoke("ChkmesStockIn_Lot", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginChkmesStockIn_Lot(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("ChkmesStockIn_Lot", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndChkmesStockIn_Lot(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void ChkmesStockIn_LotAsync(string InXml) + { + ChkmesStockIn_LotAsync(InXml, null); + } + + /// + public void ChkmesStockIn_LotAsync(string InXml, object userState) + { + if (ChkmesStockIn_LotOperationCompleted == null) + { + ChkmesStockIn_LotOperationCompleted = OnChkmesStockIn_LotOperationCompleted; + } + InvokeAsync("ChkmesStockIn_Lot", new object[] { InXml }, ChkmesStockIn_LotOperationCompleted, userState); + } + + private void OnChkmesStockIn_LotOperationCompleted(object arg) + { + if (ChkmesStockIn_LotCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + ChkmesStockIn_LotCompleted?.Invoke(this, new ChkmesStockIn_LotCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/updateINVBookingFlag", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string updateINVBookingFlag(string InXml) + { + object[] results = Invoke("updateINVBookingFlag", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginupdateINVBookingFlag(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("updateINVBookingFlag", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndupdateINVBookingFlag(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void updateINVBookingFlagAsync(string InXml) + { + updateINVBookingFlagAsync(InXml, null); + } + + /// + public void updateINVBookingFlagAsync(string InXml, object userState) + { + if (updateINVBookingFlagOperationCompleted == null) + { + updateINVBookingFlagOperationCompleted = OnupdateINVBookingFlagOperationCompleted; + } + InvokeAsync("updateINVBookingFlag", new object[] { InXml }, updateINVBookingFlagOperationCompleted, userState); + } + + private void OnupdateINVBookingFlagOperationCompleted(object arg) + { + if (updateINVBookingFlagCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + updateINVBookingFlagCompleted?.Invoke(this, new updateINVBookingFlagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_TP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_TP(string InXml) + { + object[] results = Invoke("MOStockIn_TP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_TP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_TP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_TP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_TPAsync(string InXml) + { + MOStockIn_TPAsync(InXml, null); + } + + /// + public void MOStockIn_TPAsync(string InXml, object userState) + { + if (MOStockIn_TPOperationCompleted == null) + { + MOStockIn_TPOperationCompleted = OnMOStockIn_TPOperationCompleted; + } + InvokeAsync("MOStockIn_TP", new object[] { InXml }, MOStockIn_TPOperationCompleted, userState); + } + + private void OnMOStockIn_TPOperationCompleted(object arg) + { + if (MOStockIn_TPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_TPCompleted?.Invoke(this, new MOStockIn_TPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_E10", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_E10(string InXml) + { + object[] results = Invoke("MOStockIn_E10", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_E10(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_E10", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_E10(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_E10Async(string InXml) + { + MOStockIn_E10Async(InXml, null); + } + + /// + public void MOStockIn_E10Async(string InXml, object userState) + { + if (MOStockIn_E10OperationCompleted == null) + { + MOStockIn_E10OperationCompleted = OnMOStockIn_E10OperationCompleted; + } + InvokeAsync("MOStockIn_E10", new object[] { InXml }, MOStockIn_E10OperationCompleted, userState); + } + + private void OnMOStockIn_E10OperationCompleted(object arg) + { + if (MOStockIn_E10Completed != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_E10Completed?.Invoke(this, new MOStockIn_E10CompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_Scrap_TP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_Scrap_TP(string InXml) + { + object[] results = Invoke("MOStockIn_Scrap_TP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_Scrap_TP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_Scrap_TP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_Scrap_TP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_Scrap_TPAsync(string InXml) + { + MOStockIn_Scrap_TPAsync(InXml, null); + } + + /// + public void MOStockIn_Scrap_TPAsync(string InXml, object userState) + { + if (MOStockIn_Scrap_TPOperationCompleted == null) + { + MOStockIn_Scrap_TPOperationCompleted = OnMOStockIn_Scrap_TPOperationCompleted; + } + InvokeAsync("MOStockIn_Scrap_TP", new object[] { InXml }, MOStockIn_Scrap_TPOperationCompleted, userState); + } + + private void OnMOStockIn_Scrap_TPOperationCompleted(object arg) + { + if (MOStockIn_Scrap_TPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_Scrap_TPCompleted?.Invoke(this, new MOStockIn_Scrap_TPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_WF(string InXml) + { + object[] results = Invoke("MOStockIn_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_WFAsync(string InXml) + { + MOStockIn_WFAsync(InXml, null); + } + + /// + public void MOStockIn_WFAsync(string InXml, object userState) + { + if (MOStockIn_WFOperationCompleted == null) + { + MOStockIn_WFOperationCompleted = OnMOStockIn_WFOperationCompleted; + } + InvokeAsync("MOStockIn_WF", new object[] { InXml }, MOStockIn_WFOperationCompleted, userState); + } + + private void OnMOStockIn_WFOperationCompleted(object arg) + { + if (MOStockIn_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_WFCompleted?.Invoke(this, new MOStockIn_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_Check_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_Check_WF(string InXml) + { + object[] results = Invoke("MOStockIn_Check_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_Check_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_Check_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_Check_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_Check_WFAsync(string InXml) + { + MOStockIn_Check_WFAsync(InXml, null); + } + + /// + public void MOStockIn_Check_WFAsync(string InXml, object userState) + { + if (MOStockIn_Check_WFOperationCompleted == null) + { + MOStockIn_Check_WFOperationCompleted = OnMOStockIn_Check_WFOperationCompleted; + } + InvokeAsync("MOStockIn_Check_WF", new object[] { InXml }, MOStockIn_Check_WFOperationCompleted, userState); + } + + private void OnMOStockIn_Check_WFOperationCompleted(object arg) + { + if (MOStockIn_Check_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_Check_WFCompleted?.Invoke(this, new MOStockIn_Check_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOStockIn_WF_Cancel", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOStockIn_WF_Cancel(string InXml) + { + object[] results = Invoke("MOStockIn_WF_Cancel", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOStockIn_WF_Cancel(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOStockIn_WF_Cancel", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOStockIn_WF_Cancel(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOStockIn_WF_CancelAsync(string InXml) + { + MOStockIn_WF_CancelAsync(InXml, null); + } + + /// + public void MOStockIn_WF_CancelAsync(string InXml, object userState) + { + if (MOStockIn_WF_CancelOperationCompleted == null) + { + MOStockIn_WF_CancelOperationCompleted = OnMOStockIn_WF_CancelOperationCompleted; + } + InvokeAsync("MOStockIn_WF_Cancel", new object[] { InXml }, MOStockIn_WF_CancelOperationCompleted, userState); + } + + private void OnMOStockIn_WF_CancelOperationCompleted(object arg) + { + if (MOStockIn_WF_CancelCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOStockIn_WF_CancelCompleted?.Invoke(this, new MOStockIn_WF_CancelCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadWIPInventory_SEMIbyMO_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadWIPInventory_SEMIbyMO_WF(string InXml) + { + object[] results = Invoke("LoadWIPInventory_SEMIbyMO_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadWIPInventory_SEMIbyMO_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadWIPInventory_SEMIbyMO_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadWIPInventory_SEMIbyMO_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadWIPInventory_SEMIbyMO_WFAsync(string InXml) + { + LoadWIPInventory_SEMIbyMO_WFAsync(InXml, null); + } + + /// + public void LoadWIPInventory_SEMIbyMO_WFAsync(string InXml, object userState) + { + if (LoadWIPInventory_SEMIbyMO_WFOperationCompleted == null) + { + LoadWIPInventory_SEMIbyMO_WFOperationCompleted = OnLoadWIPInventory_SEMIbyMO_WFOperationCompleted; + } + InvokeAsync("LoadWIPInventory_SEMIbyMO_WF", new object[] { InXml }, LoadWIPInventory_SEMIbyMO_WFOperationCompleted, userState); + } + + private void OnLoadWIPInventory_SEMIbyMO_WFOperationCompleted(object arg) + { + if (LoadWIPInventory_SEMIbyMO_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadWIPInventory_SEMIbyMO_WFCompleted?.Invoke(this, new LoadWIPInventory_SEMIbyMO_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadOEMOBasis_byLot_WF", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadOEMOBasis_byLot_WF(string InXml) + { + object[] results = Invoke("LoadOEMOBasis_byLot_WF", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadOEMOBasis_byLot_WF(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadOEMOBasis_byLot_WF", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadOEMOBasis_byLot_WF(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadOEMOBasis_byLot_WFAsync(string InXml) + { + LoadOEMOBasis_byLot_WFAsync(InXml, null); + } + + /// + public void LoadOEMOBasis_byLot_WFAsync(string InXml, object userState) + { + if (LoadOEMOBasis_byLot_WFOperationCompleted == null) + { + LoadOEMOBasis_byLot_WFOperationCompleted = OnLoadOEMOBasis_byLot_WFOperationCompleted; + } + InvokeAsync("LoadOEMOBasis_byLot_WF", new object[] { InXml }, LoadOEMOBasis_byLot_WFOperationCompleted, userState); + } + + private void OnLoadOEMOBasis_byLot_WFOperationCompleted(object arg) + { + if (LoadOEMOBasis_byLot_WFCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadOEMOBasis_byLot_WFCompleted?.Invoke(this, new LoadOEMOBasis_byLot_WFCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/UpdOSBasis", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string UpdOSBasis(string InXml) + { + object[] results = Invoke("UpdOSBasis", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginUpdOSBasis(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("UpdOSBasis", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndUpdOSBasis(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void UpdOSBasisAsync(string InXml) + { + UpdOSBasisAsync(InXml, null); + } + + /// + public void UpdOSBasisAsync(string InXml, object userState) + { + if (UpdOSBasisOperationCompleted == null) + { + UpdOSBasisOperationCompleted = OnUpdOSBasisOperationCompleted; + } + InvokeAsync("UpdOSBasis", new object[] { InXml }, UpdOSBasisOperationCompleted, userState); + } + + private void OnUpdOSBasisOperationCompleted(object arg) + { + if (UpdOSBasisCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + UpdOSBasisCompleted?.Invoke(this, new UpdOSBasisCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadMOMaterialStateOP", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadMOMaterialStateOP(string InXml) + { + object[] results = Invoke("LoadMOMaterialStateOP", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadMOMaterialStateOP(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadMOMaterialStateOP", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadMOMaterialStateOP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadMOMaterialStateOPAsync(string InXml) + { + LoadMOMaterialStateOPAsync(InXml, null); + } + + /// + public void LoadMOMaterialStateOPAsync(string InXml, object userState) + { + if (LoadMOMaterialStateOPOperationCompleted == null) + { + LoadMOMaterialStateOPOperationCompleted = OnLoadMOMaterialStateOPOperationCompleted; + } + InvokeAsync("LoadMOMaterialStateOP", new object[] { InXml }, LoadMOMaterialStateOPOperationCompleted, userState); + } + + private void OnLoadMOMaterialStateOPOperationCompleted(object arg) + { + if (LoadMOMaterialStateOPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadMOMaterialStateOPCompleted?.Invoke(this, new LoadMOMaterialStateOPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/LoadMOMaterialState", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string LoadMOMaterialState(string InXml) + { + object[] results = Invoke("LoadMOMaterialState", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginLoadMOMaterialState(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("LoadMOMaterialState", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndLoadMOMaterialState(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void LoadMOMaterialStateAsync(string InXml) + { + LoadMOMaterialStateAsync(InXml, null); + } + + /// + public void LoadMOMaterialStateAsync(string InXml, object userState) + { + if (LoadMOMaterialStateOperationCompleted == null) + { + LoadMOMaterialStateOperationCompleted = OnLoadMOMaterialStateOperationCompleted; + } + InvokeAsync("LoadMOMaterialState", new object[] { InXml }, LoadMOMaterialStateOperationCompleted, userState); + } + + private void OnLoadMOMaterialStateOperationCompleted(object arg) + { + if (LoadMOMaterialStateCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + LoadMOMaterialStateCompleted?.Invoke(this, new LoadMOMaterialStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOIssueReturn", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOIssueReturn(string InXml) + { + object[] results = Invoke("MOIssueReturn", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOIssueReturn(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOIssueReturn", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOIssueReturn(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOIssueReturnAsync(string InXml) + { + MOIssueReturnAsync(InXml, null); + } + + /// + public void MOIssueReturnAsync(string InXml, object userState) + { + if (MOIssueReturnOperationCompleted == null) + { + MOIssueReturnOperationCompleted = OnMOIssueReturnOperationCompleted; + } + InvokeAsync("MOIssueReturn", new object[] { InXml }, MOIssueReturnOperationCompleted, userState); + } + + private void OnMOIssueReturnOperationCompleted(object arg) + { + if (MOIssueReturnCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOIssueReturnCompleted?.Invoke(this, new MOIssueReturnCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/MOIssueReturn_Cancel", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string MOIssueReturn_Cancel(string InXml) + { + object[] results = Invoke("MOIssueReturn_Cancel", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginMOIssueReturn_Cancel(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("MOIssueReturn_Cancel", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndMOIssueReturn_Cancel(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void MOIssueReturn_CancelAsync(string InXml) + { + MOIssueReturn_CancelAsync(InXml, null); + } + + /// + public void MOIssueReturn_CancelAsync(string InXml, object userState) + { + if (MOIssueReturn_CancelOperationCompleted == null) + { + MOIssueReturn_CancelOperationCompleted = OnMOIssueReturn_CancelOperationCompleted; + } + InvokeAsync("MOIssueReturn_Cancel", new object[] { InXml }, MOIssueReturn_CancelOperationCompleted, userState); + } + + private void OnMOIssueReturn_CancelOperationCompleted(object arg) + { + if (MOIssueReturn_CancelCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + MOIssueReturn_CancelCompleted?.Invoke(this, new MOIssueReturn_CancelCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/ExeMaterialScrap", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string ExeMaterialScrap(string InXml) + { + object[] results = Invoke("ExeMaterialScrap", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginExeMaterialScrap(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("ExeMaterialScrap", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndExeMaterialScrap(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void ExeMaterialScrapAsync(string InXml) + { + ExeMaterialScrapAsync(InXml, null); + } + + /// + public void ExeMaterialScrapAsync(string InXml, object userState) + { + if (ExeMaterialScrapOperationCompleted == null) + { + ExeMaterialScrapOperationCompleted = OnExeMaterialScrapOperationCompleted; + } + InvokeAsync("ExeMaterialScrap", new object[] { InXml }, ExeMaterialScrapOperationCompleted, userState); + } + + private void OnExeMaterialScrapOperationCompleted(object arg) + { + if (ExeMaterialScrapCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + ExeMaterialScrapCompleted?.Invoke(this, new ExeMaterialScrapCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/GetERPReferenceNo", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetERPReferenceNo(string InXml) + { + object[] results = Invoke("GetERPReferenceNo", new object[] { InXml }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetERPReferenceNo(string InXml, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetERPReferenceNo", new object[] { InXml }, callback, asyncState); + } + + /// + public string EndGetERPReferenceNo(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetERPReferenceNoAsync(string InXml) + { + GetERPReferenceNoAsync(InXml, null); + } + + /// + public void GetERPReferenceNoAsync(string InXml, object userState) + { + if (GetERPReferenceNoOperationCompleted == null) + { + GetERPReferenceNoOperationCompleted = OnGetERPReferenceNoOperationCompleted; + } + InvokeAsync("GetERPReferenceNo", new object[] { InXml }, GetERPReferenceNoOperationCompleted, userState); + } + + private void OnGetERPReferenceNoOperationCompleted(object arg) + { + if (GetERPReferenceNoCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetERPReferenceNoCompleted?.Invoke(this, new GetERPReferenceNoCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/addTransactionLog", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public bool addTransactionLog(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, ref string arrException) + { + object[] results = Invoke("addTransactionLog", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException }); + arrException = Conversions.ToString(results[1]); + return Conversions.ToBoolean(results[0]); + } + + /// + public IAsyncResult BeginaddTransactionLog(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, AsyncCallback callback, object asyncState) + { + return BeginInvoke("addTransactionLog", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException }, callback, asyncState); + } + + /// + public bool EndaddTransactionLog(IAsyncResult asyncResult, ref string arrException) + { + object[] results = EndInvoke(asyncResult); + arrException = Conversions.ToString(results[1]); + return Conversions.ToBoolean(results[0]); + } + + /// + public void addTransactionLogAsync(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException) + { + addTransactionLogAsync(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, null); + } + + /// + public void addTransactionLogAsync(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, object userState) + { + if (addTransactionLogOperationCompleted == null) + { + addTransactionLogOperationCompleted = OnaddTransactionLogOperationCompleted; + } + InvokeAsync("addTransactionLog", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException }, addTransactionLogOperationCompleted, userState); + } + + private void OnaddTransactionLogOperationCompleted(object arg) + { + if (addTransactionLogCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + addTransactionLogCompleted?.Invoke(this, new addTransactionLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsMES/addTransactionLog_ErrorCode", RequestNamespace = "http://www.imestech.com/wsMES", ResponseNamespace = "http://www.imestech.com/wsMES", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public bool addTransactionLog_ErrorCode(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, ref string arrException, string ErrorCode, string LogClass) + { + object[] results = Invoke("addTransactionLog_ErrorCode", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, ErrorCode, LogClass }); + arrException = Conversions.ToString(results[1]); + return Conversions.ToBoolean(results[0]); + } + + /// + public IAsyncResult BeginaddTransactionLog_ErrorCode(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, string ErrorCode, string LogClass, AsyncCallback callback, object asyncState) + + + + + + + + + + + + + + + + { + return BeginInvoke("addTransactionLog_ErrorCode", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, ErrorCode, LogClass }, callback, asyncState); + } + + /// + public bool EndaddTransactionLog_ErrorCode(IAsyncResult asyncResult, ref string arrException) + { + object[] results = EndInvoke(asyncResult); + arrException = Conversions.ToString(results[1]); + return Conversions.ToBoolean(results[0]); + } + + /// + public void addTransactionLog_ErrorCodeAsync(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, string ErrorCode, string LogClass) + { + addTransactionLog_ErrorCodeAsync(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, ErrorCode, LogClass, null); + } + + /// + public void addTransactionLog_ErrorCodeAsync(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string arrException, string ErrorCode, string LogClass, object userState) + { + if (addTransactionLog_ErrorCodeOperationCompleted == null) + { + addTransactionLog_ErrorCodeOperationCompleted = OnaddTransactionLog_ErrorCodeOperationCompleted; + } + InvokeAsync("addTransactionLog_ErrorCode", new object[] { InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, arrException, ErrorCode, LogClass }, addTransactionLog_ErrorCodeOperationCompleted, userState); + } + + private void OnaddTransactionLog_ErrorCodeOperationCompleted(object arg) + { + if (addTransactionLog_ErrorCodeCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + addTransactionLog_ErrorCodeCompleted?.Invoke(this, new addTransactionLog_ErrorCodeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadWIPInventory_SEMIbyMO_TPCompletedEventHandler(object sender, LoadWIPInventory_SEMIbyMO_TPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadWIPInventory_SEMIbyMO_TPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadWIPInventory_SEMIbyMO_TPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void loadWIP_SEMI_MO_TPCompletedEventHandler(object sender, loadWIP_SEMI_MO_TPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class loadWIP_SEMI_MO_TPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal loadWIP_SEMI_MO_TPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void loadWIP_SEMI_MO_WFCompletedEventHandler(object sender, loadWIP_SEMI_MO_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class loadWIP_SEMI_MO_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal loadWIP_SEMI_MO_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void ChkmesStockIn_LotCompletedEventHandler(object sender, ChkmesStockIn_LotCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class ChkmesStockIn_LotCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal ChkmesStockIn_LotCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void updateINVBookingFlagCompletedEventHandler(object sender, updateINVBookingFlagCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class updateINVBookingFlagCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal updateINVBookingFlagCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_TPCompletedEventHandler(object sender, MOStockIn_TPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_TPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_TPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_E10CompletedEventHandler(object sender, MOStockIn_E10CompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_E10CompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_E10CompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_Scrap_TPCompletedEventHandler(object sender, MOStockIn_Scrap_TPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_Scrap_TPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_Scrap_TPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_WFCompletedEventHandler(object sender, MOStockIn_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_Check_WFCompletedEventHandler(object sender, MOStockIn_Check_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_Check_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_Check_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOStockIn_WF_CancelCompletedEventHandler(object sender, MOStockIn_WF_CancelCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOStockIn_WF_CancelCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOStockIn_WF_CancelCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadWIPInventory_SEMIbyMO_WFCompletedEventHandler(object sender, LoadWIPInventory_SEMIbyMO_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadWIPInventory_SEMIbyMO_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadWIPInventory_SEMIbyMO_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadOEMOBasis_byLot_WFCompletedEventHandler(object sender, LoadOEMOBasis_byLot_WFCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadOEMOBasis_byLot_WFCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadOEMOBasis_byLot_WFCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void UpdOSBasisCompletedEventHandler(object sender, UpdOSBasisCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class UpdOSBasisCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal UpdOSBasisCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadMOMaterialStateOPCompletedEventHandler(object sender, LoadMOMaterialStateOPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadMOMaterialStateOPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadMOMaterialStateOPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void LoadMOMaterialStateCompletedEventHandler(object sender, LoadMOMaterialStateCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class LoadMOMaterialStateCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal LoadMOMaterialStateCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOIssueReturnCompletedEventHandler(object sender, MOIssueReturnCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOIssueReturnCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOIssueReturnCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void MOIssueReturn_CancelCompletedEventHandler(object sender, MOIssueReturn_CancelCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class MOIssueReturn_CancelCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal MOIssueReturn_CancelCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void ExeMaterialScrapCompletedEventHandler(object sender, ExeMaterialScrapCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class ExeMaterialScrapCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal ExeMaterialScrapCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void GetERPReferenceNoCompletedEventHandler(object sender, GetERPReferenceNoCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetERPReferenceNoCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetERPReferenceNoCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void addTransactionLogCompletedEventHandler(object sender, addTransactionLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class addTransactionLogCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal addTransactionLogCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public bool Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToBoolean(results[0]); + } + } + + /// + public string arrException + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[1]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + public delegate void addTransactionLog_ErrorCodeCompletedEventHandler(object sender, addTransactionLog_ErrorCodeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.4084.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class addTransactionLog_ErrorCodeCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal addTransactionLog_ErrorCodeCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public bool Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToBoolean(results[0]); + } + } + + /// + public string arrException + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[1]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.map new file mode 100644 index 0000000..16f5993 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.disco b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.disco new file mode 100644 index 0000000..fbbd6c7 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.wsdl new file mode 100644 index 0000000..5e22d85 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_MES/wsMES.wsdl @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Update OSBasis + + + + + Load MO Material State OP by MONo + + + + + Load MO Material State by MONo + + + + + MO Issue Return + + + + + MOIssueReturn_Cancel + + + + + Execute Matreial Scrap + + + + + Get ERP Reference No + + + + + Add Transaction Log + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.cs new file mode 100644 index 0000000..44b01d3 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.cs @@ -0,0 +1,9862 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using System.Xml; +using System.Xml.Serialization; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_TP +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "TIPTOPServiceGateWayBinding", Namespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public partial class TIPTOPServiceGateWay : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback CreateCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateQuotationDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDocumentNumberOperationCompleted; + + private System.Threading.SendOrPostCallback CreateItemMasterDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateVendorDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateEmployeeDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateAddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountSubjectDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAxmDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback GetAreaListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCostGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountryDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountryListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrencyDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrencyListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerProductDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDepartmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDepartmentListOperationCompleted; + + private System.Threading.SendOrPostCallback GetEmployeeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetEmployeeListOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemListOperationCompleted; + + private System.Threading.SendOrPostCallback GetOrganizationListOperationCompleted; + + private System.Threading.SendOrPostCallback GetOverdueAmtRankingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProdClassListOperationCompleted; + + private System.Threading.SendOrPostCallback GetSalesDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSalesStatisticsDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSOInfoDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSOInfoDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSupplierDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSupplierItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetOverdueAmtDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMonthListOperationCompleted; + + private System.Threading.SendOrPostCallback GetInspectionDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetOperationDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetUnitDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBasicCodeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetComponentrepsubDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAreaDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWarehouseDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetLocationDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProductClassDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateIssueReturnDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateStockInDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetUserTokenOperationCompleted; + + private System.Threading.SendOrPostCallback CheckUserAuthOperationCompleted; + + private System.Threading.SendOrPostCallback GetMenuDataOperationCompleted; + + private System.Threading.SendOrPostCallback CheckExecAuthorizationOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePurchaseStockInOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePurchaseStockOutOperationCompleted; + + private System.Threading.SendOrPostCallback CreateWOStockinDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountingLabelDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetFQCDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemStockListOperationCompleted; + + private System.Threading.SendOrPostCallback GetLabelTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMFGDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback GetPODataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPOReceivingInDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPOReceivingOutDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPurchaseStockInQtyOperationCompleted; + + private System.Threading.SendOrPostCallback GetPurchaseStockOutQtyOperationCompleted; + + private System.Threading.SendOrPostCallback GetReasonCodeOperationCompleted; + + private System.Threading.SendOrPostCallback GetReceivingQtyOperationCompleted; + + private System.Threading.SendOrPostCallback GetStockDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWODataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWOIssueDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWOStockQtyOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateCountingLabelDataOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateWOIssueDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateSalesReturnOperationCompleted; + + private System.Threading.SendOrPostCallback CreateShippingOrderOperationCompleted; + + private System.Threading.SendOrPostCallback CreateTransferNoteOperationCompleted; + + private System.Threading.SendOrPostCallback GetQtyConversionOperationCompleted; + + private System.Threading.SendOrPostCallback GetShippingNoticeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetShippingOrderDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePOReceivingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSalesDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback CreateMISCIssueDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateStockDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBOMMasterDataOperationCompleted; + + private System.Threading.SendOrPostCallback TIPTOPGateWayOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBOMDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateDepartmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback RunCommandOperationCompleted; + + private System.Threading.SendOrPostCallback EboGetCustDataOperationCompleted; + + private System.Threading.SendOrPostCallback EboGetOrderDataOperationCompleted; + + private System.Threading.SendOrPostCallback EboGetProdDataOperationCompleted; + + private System.Threading.SendOrPostCallback CheckApsExecutionOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerContactDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPackingMethodDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePotentialCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTaxTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetUnitConversionDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMFGSettingSmaDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerOtheraddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerContactDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerOtheraddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPotentialCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CRMGetCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTableAmendmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetReportDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateVoucherDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetVoucherDocumentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTransactionCategoryOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBillingAPOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMachineDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProdRoutingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWorkstationDataOperationCompleted; + + private System.Threading.SendOrPostCallback RollbackVoucherDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateRepSubPBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateSupplierItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateECNDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBrandDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateItemApprovalDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateWOWorkReportDataOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public TIPTOPServiceGateWay() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_TP_TIPTOPServiceGateWay; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event CreateCustomerDataCompletedEventHandler CreateCustomerDataCompleted; + + /// + public event CreateQuotationDataCompletedEventHandler CreateQuotationDataCompleted; + + /// + public event GetItemDataCompletedEventHandler GetItemDataCompleted; + + /// + public event GetBOMDataCompletedEventHandler GetBOMDataCompleted; + + /// + public event GetDocumentNumberCompletedEventHandler GetDocumentNumberCompleted; + + /// + public event CreateItemMasterDataCompletedEventHandler CreateItemMasterDataCompleted; + + /// + public event CreateVendorDataCompletedEventHandler CreateVendorDataCompleted; + + /// + public event CreateEmployeeDataCompletedEventHandler CreateEmployeeDataCompleted; + + /// + public event CreateAddressDataCompletedEventHandler CreateAddressDataCompleted; + + /// + public event GetAccountSubjectDataCompletedEventHandler GetAccountSubjectDataCompleted; + + /// + public event GetAxmDocumentCompletedEventHandler GetAxmDocumentCompleted; + + /// + public event GetAreaListCompletedEventHandler GetAreaListCompleted; + + /// + public event GetCostGroupDataCompletedEventHandler GetCostGroupDataCompleted; + + /// + public event GetCountryDataCompletedEventHandler GetCountryDataCompleted; + + /// + public event GetCountryListCompletedEventHandler GetCountryListCompleted; + + /// + public event GetCurrencyDataCompletedEventHandler GetCurrencyDataCompleted; + + /// + public event GetCurrencyListCompletedEventHandler GetCurrencyListCompleted; + + /// + public event GetCustListCompletedEventHandler GetCustListCompleted; + + /// + public event GetCustomerDataCompletedEventHandler GetCustomerDataCompleted; + + /// + public event GetCustomerProductDataCompletedEventHandler GetCustomerProductDataCompleted; + + /// + public event GetDepartmentDataCompletedEventHandler GetDepartmentDataCompleted; + + /// + public event GetDepartmentListCompletedEventHandler GetDepartmentListCompleted; + + /// + public event GetEmployeeDataCompletedEventHandler GetEmployeeDataCompleted; + + /// + public event GetEmployeeListCompletedEventHandler GetEmployeeListCompleted; + + /// + public event GetItemListCompletedEventHandler GetItemListCompleted; + + /// + public event GetOrganizationListCompletedEventHandler GetOrganizationListCompleted; + + /// + public event GetOverdueAmtRankingDataCompletedEventHandler GetOverdueAmtRankingDataCompleted; + + /// + public event GetProdClassListCompletedEventHandler GetProdClassListCompleted; + + /// + public event GetSalesDetailDataCompletedEventHandler GetSalesDetailDataCompleted; + + /// + public event GetSalesStatisticsDataCompletedEventHandler GetSalesStatisticsDataCompleted; + + /// + public event GetSOInfoDataCompletedEventHandler GetSOInfoDataCompleted; + + /// + public event GetSOInfoDetailDataCompletedEventHandler GetSOInfoDetailDataCompleted; + + /// + public event GetSupplierDataCompletedEventHandler GetSupplierDataCompleted; + + /// + public event GetSupplierItemDataCompletedEventHandler GetSupplierItemDataCompleted; + + /// + public event GetOverdueAmtDetailDataCompletedEventHandler GetOverdueAmtDetailDataCompleted; + + /// + public event GetMonthListCompletedEventHandler GetMonthListCompleted; + + /// + public event GetInspectionDataCompletedEventHandler GetInspectionDataCompleted; + + /// + public event CreateBOMDataCompletedEventHandler CreateBOMDataCompleted; + + /// + public event GetOperationDataCompletedEventHandler GetOperationDataCompleted; + + /// + public event GetUnitDataCompletedEventHandler GetUnitDataCompleted; + + /// + public event GetBasicCodeDataCompletedEventHandler GetBasicCodeDataCompleted; + + /// + public event GetComponentrepsubDataCompletedEventHandler GetComponentrepsubDataCompleted; + + /// + public event GetAreaDataCompletedEventHandler GetAreaDataCompleted; + + /// + public event GetWarehouseDataCompletedEventHandler GetWarehouseDataCompleted; + + /// + public event GetLocationDataCompletedEventHandler GetLocationDataCompleted; + + /// + public event GetProductClassDataCompletedEventHandler GetProductClassDataCompleted; + + /// + public event CreateIssueReturnDataCompletedEventHandler CreateIssueReturnDataCompleted; + + /// + public event CreateStockInDataCompletedEventHandler CreateStockInDataCompleted; + + /// + public event GetUserTokenCompletedEventHandler GetUserTokenCompleted; + + /// + public event CheckUserAuthCompletedEventHandler CheckUserAuthCompleted; + + /// + public event GetMenuDataCompletedEventHandler GetMenuDataCompleted; + + /// + public event CheckExecAuthorizationCompletedEventHandler CheckExecAuthorizationCompleted; + + /// + public event CreatePurchaseStockInCompletedEventHandler CreatePurchaseStockInCompleted; + + /// + public event CreatePurchaseStockOutCompletedEventHandler CreatePurchaseStockOutCompleted; + + /// + public event CreateWOStockinDataCompletedEventHandler CreateWOStockinDataCompleted; + + /// + public event GetCountingLabelDataCompletedEventHandler GetCountingLabelDataCompleted; + + /// + public event GetFQCDataCompletedEventHandler GetFQCDataCompleted; + + /// + public event GetItemStockListCompletedEventHandler GetItemStockListCompleted; + + /// + public event GetLabelTypeDataCompletedEventHandler GetLabelTypeDataCompleted; + + /// + public event GetMFGDocumentCompletedEventHandler GetMFGDocumentCompleted; + + /// + public event GetPODataCompletedEventHandler GetPODataCompleted; + + /// + public event GetPOReceivingInDataCompletedEventHandler GetPOReceivingInDataCompleted; + + /// + public event GetPOReceivingOutDataCompletedEventHandler GetPOReceivingOutDataCompleted; + + /// + public event GetPurchaseStockInQtyCompletedEventHandler GetPurchaseStockInQtyCompleted; + + /// + public event GetPurchaseStockOutQtyCompletedEventHandler GetPurchaseStockOutQtyCompleted; + + /// + public event GetReasonCodeCompletedEventHandler GetReasonCodeCompleted; + + /// + public event GetReceivingQtyCompletedEventHandler GetReceivingQtyCompleted; + + /// + public event GetStockDataCompletedEventHandler GetStockDataCompleted; + + /// + public event GetWODataCompletedEventHandler GetWODataCompleted; + + /// + public event GetWOIssueDataCompletedEventHandler GetWOIssueDataCompleted; + + /// + public event GetWOStockQtyCompletedEventHandler GetWOStockQtyCompleted; + + /// + public event UpdateCountingLabelDataCompletedEventHandler UpdateCountingLabelDataCompleted; + + /// + public event UpdateWOIssueDataCompletedEventHandler UpdateWOIssueDataCompleted; + + /// + public event CreateSalesReturnCompletedEventHandler CreateSalesReturnCompleted; + + /// + public event CreateShippingOrderCompletedEventHandler CreateShippingOrderCompleted; + + /// + public event CreateTransferNoteCompletedEventHandler CreateTransferNoteCompleted; + + /// + public event GetQtyConversionCompletedEventHandler GetQtyConversionCompleted; + + /// + public event GetShippingNoticeDataCompletedEventHandler GetShippingNoticeDataCompleted; + + /// + public event GetShippingOrderDataCompletedEventHandler GetShippingOrderDataCompleted; + + /// + public event CreatePOReceivingDataCompletedEventHandler CreatePOReceivingDataCompleted; + + /// + public event GetSalesDocumentCompletedEventHandler GetSalesDocumentCompleted; + + /// + public event CreateMISCIssueDataCompletedEventHandler CreateMISCIssueDataCompleted; + + /// + public event CreateStockDataCompletedEventHandler CreateStockDataCompleted; + + /// + public event CreateBOMMasterDataCompletedEventHandler CreateBOMMasterDataCompleted; + + /// + public event TIPTOPGateWayCompletedEventHandler TIPTOPGateWayCompleted; + + /// + public event CreateBOMDetailDataCompletedEventHandler CreateBOMDetailDataCompleted; + + /// + public event CreateDepartmentDataCompletedEventHandler CreateDepartmentDataCompleted; + + /// + public event RunCommandCompletedEventHandler RunCommandCompleted; + + /// + public event EboGetCustDataCompletedEventHandler EboGetCustDataCompleted; + + /// + public event EboGetOrderDataCompletedEventHandler EboGetOrderDataCompleted; + + /// + public event EboGetProdDataCompletedEventHandler EboGetProdDataCompleted; + + /// + public event CheckApsExecutionCompletedEventHandler CheckApsExecutionCompleted; + + /// + public event GetCustomerContactDataCompletedEventHandler GetCustomerContactDataCompleted; + + /// + public event GetPackingMethodDataCompletedEventHandler GetPackingMethodDataCompleted; + + /// + public event CreatePotentialCustomerDataCompletedEventHandler CreatePotentialCustomerDataCompleted; + + /// + public event GetTaxTypeDataCompletedEventHandler GetTaxTypeDataCompleted; + + /// + public event GetUnitConversionDataCompletedEventHandler GetUnitConversionDataCompleted; + + /// + public event GetMFGSettingSmaDataCompletedEventHandler GetMFGSettingSmaDataCompleted; + + /// + public event GetCustomerOtheraddressDataCompletedEventHandler GetCustomerOtheraddressDataCompleted; + + /// + public event CreateCustomerContactDataCompletedEventHandler CreateCustomerContactDataCompleted; + + /// + public event CreateCustomerOtheraddressDataCompletedEventHandler CreateCustomerOtheraddressDataCompleted; + + /// + public event GetPotentialCustomerDataCompletedEventHandler GetPotentialCustomerDataCompleted; + + /// + public event CRMGetCustomerDataCompletedEventHandler CRMGetCustomerDataCompleted; + + /// + public event GetTableAmendmentDataCompletedEventHandler GetTableAmendmentDataCompleted; + + /// + public event GetReportDataCompletedEventHandler GetReportDataCompleted; + + /// + public event GetAccountTypeDataCompletedEventHandler GetAccountTypeDataCompleted; + + /// + public event GetAccountDataCompletedEventHandler GetAccountDataCompleted; + + /// + public event CreateVoucherDataCompletedEventHandler CreateVoucherDataCompleted; + + /// + public event GetVoucherDocumentDataCompletedEventHandler GetVoucherDocumentDataCompleted; + + /// + public event GetTransactionCategoryCompletedEventHandler GetTransactionCategoryCompleted; + + /// + public event CreateBillingAPCompletedEventHandler CreateBillingAPCompleted; + + /// + public event GetItemGroupDataCompletedEventHandler GetItemGroupDataCompleted; + + /// + public event GetMachineDataCompletedEventHandler GetMachineDataCompleted; + + /// + public event GetProdRoutingDataCompletedEventHandler GetProdRoutingDataCompleted; + + /// + public event GetWorkstationDataCompletedEventHandler GetWorkstationDataCompleted; + + /// + public event RollbackVoucherDataCompletedEventHandler RollbackVoucherDataCompleted; + + /// + public event CreateRepSubPBOMDataCompletedEventHandler CreateRepSubPBOMDataCompleted; + + /// + public event CreateSupplierItemDataCompletedEventHandler CreateSupplierItemDataCompleted; + + /// + public event CreateECNDataCompletedEventHandler CreateECNDataCompleted; + + /// + public event GetBrandDataCompletedEventHandler GetBrandDataCompleted; + + /// + public event CreateItemApprovalDataCompletedEventHandler CreateItemApprovalDataCompleted; + + /// + public event CreateWOWorkReportDataCompletedEventHandler CreateWOWorkReportDataCompleted; + + /// + [SoapDocumentMethod("", RequestElementName = "CreateCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerDataAsync(string request) + { + CreateCustomerDataAsync(request, null); + } + + /// + public void CreateCustomerDataAsync(string request, object userState) + { + if (CreateCustomerDataOperationCompleted == null) + { + CreateCustomerDataOperationCompleted = OnCreateCustomerDataOperationCompleted; + } + InvokeAsync("CreateCustomerData", new object[] { request }, CreateCustomerDataOperationCompleted, userState); + } + + private void OnCreateCustomerDataOperationCompleted(object arg) + { + if (CreateCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerDataCompleted?.Invoke(this, new CreateCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateQuotationDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateQuotationData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateQuotationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateQuotationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateQuotationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateQuotationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateQuotationDataAsync(string request) + { + CreateQuotationDataAsync(request, null); + } + + /// + public void CreateQuotationDataAsync(string request, object userState) + { + if (CreateQuotationDataOperationCompleted == null) + { + CreateQuotationDataOperationCompleted = OnCreateQuotationDataOperationCompleted; + } + InvokeAsync("CreateQuotationData", new object[] { request }, CreateQuotationDataOperationCompleted, userState); + } + + private void OnCreateQuotationDataOperationCompleted(object arg) + { + if (CreateQuotationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateQuotationDataCompleted?.Invoke(this, new CreateQuotationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetItemDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetItemData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemDataAsync(string request) + { + GetItemDataAsync(request, null); + } + + /// + public void GetItemDataAsync(string request, object userState) + { + if (GetItemDataOperationCompleted == null) + { + GetItemDataOperationCompleted = OnGetItemDataOperationCompleted; + } + InvokeAsync("GetItemData", new object[] { request }, GetItemDataOperationCompleted, userState); + } + + private void OnGetItemDataOperationCompleted(object arg) + { + if (GetItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemDataCompleted?.Invoke(this, new GetItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetBOMDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetBOMData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBOMDataAsync(string request) + { + GetBOMDataAsync(request, null); + } + + /// + public void GetBOMDataAsync(string request, object userState) + { + if (GetBOMDataOperationCompleted == null) + { + GetBOMDataOperationCompleted = OnGetBOMDataOperationCompleted; + } + InvokeAsync("GetBOMData", new object[] { request }, GetBOMDataOperationCompleted, userState); + } + + private void OnGetBOMDataOperationCompleted(object arg) + { + if (GetBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBOMDataCompleted?.Invoke(this, new GetBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetDocumentNumberRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetDocumentNumber([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetDocumentNumber", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDocumentNumber(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDocumentNumber", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDocumentNumber(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDocumentNumberAsync(string request) + { + GetDocumentNumberAsync(request, null); + } + + /// + public void GetDocumentNumberAsync(string request, object userState) + { + if (GetDocumentNumberOperationCompleted == null) + { + GetDocumentNumberOperationCompleted = OnGetDocumentNumberOperationCompleted; + } + InvokeAsync("GetDocumentNumber", new object[] { request }, GetDocumentNumberOperationCompleted, userState); + } + + private void OnGetDocumentNumberOperationCompleted(object arg) + { + if (GetDocumentNumberCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDocumentNumberCompleted?.Invoke(this, new GetDocumentNumberCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateItemMasterDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateItemMasterData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateItemMasterData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateItemMasterData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateItemMasterData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateItemMasterData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateItemMasterDataAsync(string request) + { + CreateItemMasterDataAsync(request, null); + } + + /// + public void CreateItemMasterDataAsync(string request, object userState) + { + if (CreateItemMasterDataOperationCompleted == null) + { + CreateItemMasterDataOperationCompleted = OnCreateItemMasterDataOperationCompleted; + } + InvokeAsync("CreateItemMasterData", new object[] { request }, CreateItemMasterDataOperationCompleted, userState); + } + + private void OnCreateItemMasterDataOperationCompleted(object arg) + { + if (CreateItemMasterDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateItemMasterDataCompleted?.Invoke(this, new CreateItemMasterDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateVendorDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateVendorData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateVendorData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateVendorData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateVendorData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateVendorData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateVendorDataAsync(string request) + { + CreateVendorDataAsync(request, null); + } + + /// + public void CreateVendorDataAsync(string request, object userState) + { + if (CreateVendorDataOperationCompleted == null) + { + CreateVendorDataOperationCompleted = OnCreateVendorDataOperationCompleted; + } + InvokeAsync("CreateVendorData", new object[] { request }, CreateVendorDataOperationCompleted, userState); + } + + private void OnCreateVendorDataOperationCompleted(object arg) + { + if (CreateVendorDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateVendorDataCompleted?.Invoke(this, new CreateVendorDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateEmployeeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateEmployeeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateEmployeeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateEmployeeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateEmployeeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateEmployeeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateEmployeeDataAsync(string request) + { + CreateEmployeeDataAsync(request, null); + } + + /// + public void CreateEmployeeDataAsync(string request, object userState) + { + if (CreateEmployeeDataOperationCompleted == null) + { + CreateEmployeeDataOperationCompleted = OnCreateEmployeeDataOperationCompleted; + } + InvokeAsync("CreateEmployeeData", new object[] { request }, CreateEmployeeDataOperationCompleted, userState); + } + + private void OnCreateEmployeeDataOperationCompleted(object arg) + { + if (CreateEmployeeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateEmployeeDataCompleted?.Invoke(this, new CreateEmployeeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateAddressDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateAddressData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateAddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateAddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateAddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateAddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateAddressDataAsync(string request) + { + CreateAddressDataAsync(request, null); + } + + /// + public void CreateAddressDataAsync(string request, object userState) + { + if (CreateAddressDataOperationCompleted == null) + { + CreateAddressDataOperationCompleted = OnCreateAddressDataOperationCompleted; + } + InvokeAsync("CreateAddressData", new object[] { request }, CreateAddressDataOperationCompleted, userState); + } + + private void OnCreateAddressDataOperationCompleted(object arg) + { + if (CreateAddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateAddressDataCompleted?.Invoke(this, new CreateAddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAccountSubjectDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAccountSubjectData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAccountSubjectData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountSubjectData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountSubjectData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountSubjectData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountSubjectDataAsync(string request) + { + GetAccountSubjectDataAsync(request, null); + } + + /// + public void GetAccountSubjectDataAsync(string request, object userState) + { + if (GetAccountSubjectDataOperationCompleted == null) + { + GetAccountSubjectDataOperationCompleted = OnGetAccountSubjectDataOperationCompleted; + } + InvokeAsync("GetAccountSubjectData", new object[] { request }, GetAccountSubjectDataOperationCompleted, userState); + } + + private void OnGetAccountSubjectDataOperationCompleted(object arg) + { + if (GetAccountSubjectDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountSubjectDataCompleted?.Invoke(this, new GetAccountSubjectDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAxmDocumentRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAxmDocument([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAxmDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAxmDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAxmDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAxmDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAxmDocumentAsync(string request) + { + GetAxmDocumentAsync(request, null); + } + + /// + public void GetAxmDocumentAsync(string request, object userState) + { + if (GetAxmDocumentOperationCompleted == null) + { + GetAxmDocumentOperationCompleted = OnGetAxmDocumentOperationCompleted; + } + InvokeAsync("GetAxmDocument", new object[] { request }, GetAxmDocumentOperationCompleted, userState); + } + + private void OnGetAxmDocumentOperationCompleted(object arg) + { + if (GetAxmDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAxmDocumentCompleted?.Invoke(this, new GetAxmDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAreaListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAreaList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAreaList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAreaList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAreaList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAreaList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAreaListAsync(string request) + { + GetAreaListAsync(request, null); + } + + /// + public void GetAreaListAsync(string request, object userState) + { + if (GetAreaListOperationCompleted == null) + { + GetAreaListOperationCompleted = OnGetAreaListOperationCompleted; + } + InvokeAsync("GetAreaList", new object[] { request }, GetAreaListOperationCompleted, userState); + } + + private void OnGetAreaListOperationCompleted(object arg) + { + if (GetAreaListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAreaListCompleted?.Invoke(this, new GetAreaListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCostGroupDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCostGroupData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCostGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCostGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCostGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCostGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCostGroupDataAsync(string request) + { + GetCostGroupDataAsync(request, null); + } + + /// + public void GetCostGroupDataAsync(string request, object userState) + { + if (GetCostGroupDataOperationCompleted == null) + { + GetCostGroupDataOperationCompleted = OnGetCostGroupDataOperationCompleted; + } + InvokeAsync("GetCostGroupData", new object[] { request }, GetCostGroupDataOperationCompleted, userState); + } + + private void OnGetCostGroupDataOperationCompleted(object arg) + { + if (GetCostGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCostGroupDataCompleted?.Invoke(this, new GetCostGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCountryDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCountryData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCountryData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountryData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountryData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountryData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountryDataAsync(string request) + { + GetCountryDataAsync(request, null); + } + + /// + public void GetCountryDataAsync(string request, object userState) + { + if (GetCountryDataOperationCompleted == null) + { + GetCountryDataOperationCompleted = OnGetCountryDataOperationCompleted; + } + InvokeAsync("GetCountryData", new object[] { request }, GetCountryDataOperationCompleted, userState); + } + + private void OnGetCountryDataOperationCompleted(object arg) + { + if (GetCountryDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountryDataCompleted?.Invoke(this, new GetCountryDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCountryListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCountryList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCountryList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountryList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountryList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountryList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountryListAsync(string request) + { + GetCountryListAsync(request, null); + } + + /// + public void GetCountryListAsync(string request, object userState) + { + if (GetCountryListOperationCompleted == null) + { + GetCountryListOperationCompleted = OnGetCountryListOperationCompleted; + } + InvokeAsync("GetCountryList", new object[] { request }, GetCountryListOperationCompleted, userState); + } + + private void OnGetCountryListOperationCompleted(object arg) + { + if (GetCountryListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountryListCompleted?.Invoke(this, new GetCountryListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCurrencyDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCurrencyData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCurrencyData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCurrencyData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCurrencyData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCurrencyData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCurrencyDataAsync(string request) + { + GetCurrencyDataAsync(request, null); + } + + /// + public void GetCurrencyDataAsync(string request, object userState) + { + if (GetCurrencyDataOperationCompleted == null) + { + GetCurrencyDataOperationCompleted = OnGetCurrencyDataOperationCompleted; + } + InvokeAsync("GetCurrencyData", new object[] { request }, GetCurrencyDataOperationCompleted, userState); + } + + private void OnGetCurrencyDataOperationCompleted(object arg) + { + if (GetCurrencyDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCurrencyDataCompleted?.Invoke(this, new GetCurrencyDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCurrencyListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCurrencyList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCurrencyList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCurrencyList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCurrencyList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCurrencyList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCurrencyListAsync(string request) + { + GetCurrencyListAsync(request, null); + } + + /// + public void GetCurrencyListAsync(string request, object userState) + { + if (GetCurrencyListOperationCompleted == null) + { + GetCurrencyListOperationCompleted = OnGetCurrencyListOperationCompleted; + } + InvokeAsync("GetCurrencyList", new object[] { request }, GetCurrencyListOperationCompleted, userState); + } + + private void OnGetCurrencyListOperationCompleted(object arg) + { + if (GetCurrencyListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCurrencyListCompleted?.Invoke(this, new GetCurrencyListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustListAsync(string request) + { + GetCustListAsync(request, null); + } + + /// + public void GetCustListAsync(string request, object userState) + { + if (GetCustListOperationCompleted == null) + { + GetCustListOperationCompleted = OnGetCustListOperationCompleted; + } + InvokeAsync("GetCustList", new object[] { request }, GetCustListOperationCompleted, userState); + } + + private void OnGetCustListOperationCompleted(object arg) + { + if (GetCustListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustListCompleted?.Invoke(this, new GetCustListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerDataAsync(string request) + { + GetCustomerDataAsync(request, null); + } + + /// + public void GetCustomerDataAsync(string request, object userState) + { + if (GetCustomerDataOperationCompleted == null) + { + GetCustomerDataOperationCompleted = OnGetCustomerDataOperationCompleted; + } + InvokeAsync("GetCustomerData", new object[] { request }, GetCustomerDataOperationCompleted, userState); + } + + private void OnGetCustomerDataOperationCompleted(object arg) + { + if (GetCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerDataCompleted?.Invoke(this, new GetCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustomerProductDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustomerProductData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustomerProductData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerProductData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerProductData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerProductData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerProductDataAsync(string request) + { + GetCustomerProductDataAsync(request, null); + } + + /// + public void GetCustomerProductDataAsync(string request, object userState) + { + if (GetCustomerProductDataOperationCompleted == null) + { + GetCustomerProductDataOperationCompleted = OnGetCustomerProductDataOperationCompleted; + } + InvokeAsync("GetCustomerProductData", new object[] { request }, GetCustomerProductDataOperationCompleted, userState); + } + + private void OnGetCustomerProductDataOperationCompleted(object arg) + { + if (GetCustomerProductDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerProductDataCompleted?.Invoke(this, new GetCustomerProductDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetDepartmentDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetDepartmentData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetDepartmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDepartmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDepartmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDepartmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDepartmentDataAsync(string request) + { + GetDepartmentDataAsync(request, null); + } + + /// + public void GetDepartmentDataAsync(string request, object userState) + { + if (GetDepartmentDataOperationCompleted == null) + { + GetDepartmentDataOperationCompleted = OnGetDepartmentDataOperationCompleted; + } + InvokeAsync("GetDepartmentData", new object[] { request }, GetDepartmentDataOperationCompleted, userState); + } + + private void OnGetDepartmentDataOperationCompleted(object arg) + { + if (GetDepartmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDepartmentDataCompleted?.Invoke(this, new GetDepartmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetDepartmentListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetDepartmentList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetDepartmentList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDepartmentList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDepartmentList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDepartmentList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDepartmentListAsync(string request) + { + GetDepartmentListAsync(request, null); + } + + /// + public void GetDepartmentListAsync(string request, object userState) + { + if (GetDepartmentListOperationCompleted == null) + { + GetDepartmentListOperationCompleted = OnGetDepartmentListOperationCompleted; + } + InvokeAsync("GetDepartmentList", new object[] { request }, GetDepartmentListOperationCompleted, userState); + } + + private void OnGetDepartmentListOperationCompleted(object arg) + { + if (GetDepartmentListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDepartmentListCompleted?.Invoke(this, new GetDepartmentListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetEmployeeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetEmployeeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetEmployeeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetEmployeeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetEmployeeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetEmployeeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetEmployeeDataAsync(string request) + { + GetEmployeeDataAsync(request, null); + } + + /// + public void GetEmployeeDataAsync(string request, object userState) + { + if (GetEmployeeDataOperationCompleted == null) + { + GetEmployeeDataOperationCompleted = OnGetEmployeeDataOperationCompleted; + } + InvokeAsync("GetEmployeeData", new object[] { request }, GetEmployeeDataOperationCompleted, userState); + } + + private void OnGetEmployeeDataOperationCompleted(object arg) + { + if (GetEmployeeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetEmployeeDataCompleted?.Invoke(this, new GetEmployeeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetEmployeeListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetEmployeeList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetEmployeeList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetEmployeeList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetEmployeeList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetEmployeeList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetEmployeeListAsync(string request) + { + GetEmployeeListAsync(request, null); + } + + /// + public void GetEmployeeListAsync(string request, object userState) + { + if (GetEmployeeListOperationCompleted == null) + { + GetEmployeeListOperationCompleted = OnGetEmployeeListOperationCompleted; + } + InvokeAsync("GetEmployeeList", new object[] { request }, GetEmployeeListOperationCompleted, userState); + } + + private void OnGetEmployeeListOperationCompleted(object arg) + { + if (GetEmployeeListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetEmployeeListCompleted?.Invoke(this, new GetEmployeeListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetItemListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetItemList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetItemList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemListAsync(string request) + { + GetItemListAsync(request, null); + } + + /// + public void GetItemListAsync(string request, object userState) + { + if (GetItemListOperationCompleted == null) + { + GetItemListOperationCompleted = OnGetItemListOperationCompleted; + } + InvokeAsync("GetItemList", new object[] { request }, GetItemListOperationCompleted, userState); + } + + private void OnGetItemListOperationCompleted(object arg) + { + if (GetItemListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemListCompleted?.Invoke(this, new GetItemListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetOrganizationListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetOrganizationList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetOrganizationList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOrganizationList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOrganizationList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOrganizationList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOrganizationListAsync(string request) + { + GetOrganizationListAsync(request, null); + } + + /// + public void GetOrganizationListAsync(string request, object userState) + { + if (GetOrganizationListOperationCompleted == null) + { + GetOrganizationListOperationCompleted = OnGetOrganizationListOperationCompleted; + } + InvokeAsync("GetOrganizationList", new object[] { request }, GetOrganizationListOperationCompleted, userState); + } + + private void OnGetOrganizationListOperationCompleted(object arg) + { + if (GetOrganizationListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOrganizationListCompleted?.Invoke(this, new GetOrganizationListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetOverdueAmtRankingDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetOverdueAmtRankingData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetOverdueAmtRankingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOverdueAmtRankingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOverdueAmtRankingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOverdueAmtRankingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOverdueAmtRankingDataAsync(string request) + { + GetOverdueAmtRankingDataAsync(request, null); + } + + /// + public void GetOverdueAmtRankingDataAsync(string request, object userState) + { + if (GetOverdueAmtRankingDataOperationCompleted == null) + { + GetOverdueAmtRankingDataOperationCompleted = OnGetOverdueAmtRankingDataOperationCompleted; + } + InvokeAsync("GetOverdueAmtRankingData", new object[] { request }, GetOverdueAmtRankingDataOperationCompleted, userState); + } + + private void OnGetOverdueAmtRankingDataOperationCompleted(object arg) + { + if (GetOverdueAmtRankingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOverdueAmtRankingDataCompleted?.Invoke(this, new GetOverdueAmtRankingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetProdClassListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetProdClassList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetProdClassList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProdClassList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProdClassList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProdClassList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProdClassListAsync(string request) + { + GetProdClassListAsync(request, null); + } + + /// + public void GetProdClassListAsync(string request, object userState) + { + if (GetProdClassListOperationCompleted == null) + { + GetProdClassListOperationCompleted = OnGetProdClassListOperationCompleted; + } + InvokeAsync("GetProdClassList", new object[] { request }, GetProdClassListOperationCompleted, userState); + } + + private void OnGetProdClassListOperationCompleted(object arg) + { + if (GetProdClassListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProdClassListCompleted?.Invoke(this, new GetProdClassListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSalesDetailDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSalesDetailData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSalesDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSalesDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSalesDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSalesDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSalesDetailDataAsync(string request) + { + GetSalesDetailDataAsync(request, null); + } + + /// + public void GetSalesDetailDataAsync(string request, object userState) + { + if (GetSalesDetailDataOperationCompleted == null) + { + GetSalesDetailDataOperationCompleted = OnGetSalesDetailDataOperationCompleted; + } + InvokeAsync("GetSalesDetailData", new object[] { request }, GetSalesDetailDataOperationCompleted, userState); + } + + private void OnGetSalesDetailDataOperationCompleted(object arg) + { + if (GetSalesDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSalesDetailDataCompleted?.Invoke(this, new GetSalesDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSalesStatisticsDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSalesStatisticsData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSalesStatisticsData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSalesStatisticsData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSalesStatisticsData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSalesStatisticsData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSalesStatisticsDataAsync(string request) + { + GetSalesStatisticsDataAsync(request, null); + } + + /// + public void GetSalesStatisticsDataAsync(string request, object userState) + { + if (GetSalesStatisticsDataOperationCompleted == null) + { + GetSalesStatisticsDataOperationCompleted = OnGetSalesStatisticsDataOperationCompleted; + } + InvokeAsync("GetSalesStatisticsData", new object[] { request }, GetSalesStatisticsDataOperationCompleted, userState); + } + + private void OnGetSalesStatisticsDataOperationCompleted(object arg) + { + if (GetSalesStatisticsDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSalesStatisticsDataCompleted?.Invoke(this, new GetSalesStatisticsDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSOInfoDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSOInfoData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSOInfoData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSOInfoData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSOInfoData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSOInfoData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSOInfoDataAsync(string request) + { + GetSOInfoDataAsync(request, null); + } + + /// + public void GetSOInfoDataAsync(string request, object userState) + { + if (GetSOInfoDataOperationCompleted == null) + { + GetSOInfoDataOperationCompleted = OnGetSOInfoDataOperationCompleted; + } + InvokeAsync("GetSOInfoData", new object[] { request }, GetSOInfoDataOperationCompleted, userState); + } + + private void OnGetSOInfoDataOperationCompleted(object arg) + { + if (GetSOInfoDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSOInfoDataCompleted?.Invoke(this, new GetSOInfoDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSOInfoDetailDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSOInfoDetailData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSOInfoDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSOInfoDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSOInfoDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSOInfoDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSOInfoDetailDataAsync(string request) + { + GetSOInfoDetailDataAsync(request, null); + } + + /// + public void GetSOInfoDetailDataAsync(string request, object userState) + { + if (GetSOInfoDetailDataOperationCompleted == null) + { + GetSOInfoDetailDataOperationCompleted = OnGetSOInfoDetailDataOperationCompleted; + } + InvokeAsync("GetSOInfoDetailData", new object[] { request }, GetSOInfoDetailDataOperationCompleted, userState); + } + + private void OnGetSOInfoDetailDataOperationCompleted(object arg) + { + if (GetSOInfoDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSOInfoDetailDataCompleted?.Invoke(this, new GetSOInfoDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSupplierDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSupplierData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSupplierData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSupplierData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSupplierData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSupplierData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSupplierDataAsync(string request) + { + GetSupplierDataAsync(request, null); + } + + /// + public void GetSupplierDataAsync(string request, object userState) + { + if (GetSupplierDataOperationCompleted == null) + { + GetSupplierDataOperationCompleted = OnGetSupplierDataOperationCompleted; + } + InvokeAsync("GetSupplierData", new object[] { request }, GetSupplierDataOperationCompleted, userState); + } + + private void OnGetSupplierDataOperationCompleted(object arg) + { + if (GetSupplierDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSupplierDataCompleted?.Invoke(this, new GetSupplierDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSupplierItemDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSupplierItemData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSupplierItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSupplierItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSupplierItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSupplierItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSupplierItemDataAsync(string request) + { + GetSupplierItemDataAsync(request, null); + } + + /// + public void GetSupplierItemDataAsync(string request, object userState) + { + if (GetSupplierItemDataOperationCompleted == null) + { + GetSupplierItemDataOperationCompleted = OnGetSupplierItemDataOperationCompleted; + } + InvokeAsync("GetSupplierItemData", new object[] { request }, GetSupplierItemDataOperationCompleted, userState); + } + + private void OnGetSupplierItemDataOperationCompleted(object arg) + { + if (GetSupplierItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSupplierItemDataCompleted?.Invoke(this, new GetSupplierItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetOverdueAmtDetailDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetOverdueAmtDetailData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetOverdueAmtDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOverdueAmtDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOverdueAmtDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOverdueAmtDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOverdueAmtDetailDataAsync(string request) + { + GetOverdueAmtDetailDataAsync(request, null); + } + + /// + public void GetOverdueAmtDetailDataAsync(string request, object userState) + { + if (GetOverdueAmtDetailDataOperationCompleted == null) + { + GetOverdueAmtDetailDataOperationCompleted = OnGetOverdueAmtDetailDataOperationCompleted; + } + InvokeAsync("GetOverdueAmtDetailData", new object[] { request }, GetOverdueAmtDetailDataOperationCompleted, userState); + } + + private void OnGetOverdueAmtDetailDataOperationCompleted(object arg) + { + if (GetOverdueAmtDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOverdueAmtDetailDataCompleted?.Invoke(this, new GetOverdueAmtDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMonthListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMonthList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMonthList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMonthList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMonthList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMonthList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMonthListAsync(string request) + { + GetMonthListAsync(request, null); + } + + /// + public void GetMonthListAsync(string request, object userState) + { + if (GetMonthListOperationCompleted == null) + { + GetMonthListOperationCompleted = OnGetMonthListOperationCompleted; + } + InvokeAsync("GetMonthList", new object[] { request }, GetMonthListOperationCompleted, userState); + } + + private void OnGetMonthListOperationCompleted(object arg) + { + if (GetMonthListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMonthListCompleted?.Invoke(this, new GetMonthListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetInspectionDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetInspectionData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetInspectionData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetInspectionData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetInspectionData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetInspectionData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetInspectionDataAsync(string request) + { + GetInspectionDataAsync(request, null); + } + + /// + public void GetInspectionDataAsync(string request, object userState) + { + if (GetInspectionDataOperationCompleted == null) + { + GetInspectionDataOperationCompleted = OnGetInspectionDataOperationCompleted; + } + InvokeAsync("GetInspectionData", new object[] { request }, GetInspectionDataOperationCompleted, userState); + } + + private void OnGetInspectionDataOperationCompleted(object arg) + { + if (GetInspectionDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetInspectionDataCompleted?.Invoke(this, new GetInspectionDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateBOMDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateBOMData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBOMDataAsync(string request) + { + CreateBOMDataAsync(request, null); + } + + /// + public void CreateBOMDataAsync(string request, object userState) + { + if (CreateBOMDataOperationCompleted == null) + { + CreateBOMDataOperationCompleted = OnCreateBOMDataOperationCompleted; + } + InvokeAsync("CreateBOMData", new object[] { request }, CreateBOMDataOperationCompleted, userState); + } + + private void OnCreateBOMDataOperationCompleted(object arg) + { + if (CreateBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBOMDataCompleted?.Invoke(this, new CreateBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetOperationDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetOperationData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetOperationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOperationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOperationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOperationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOperationDataAsync(string request) + { + GetOperationDataAsync(request, null); + } + + /// + public void GetOperationDataAsync(string request, object userState) + { + if (GetOperationDataOperationCompleted == null) + { + GetOperationDataOperationCompleted = OnGetOperationDataOperationCompleted; + } + InvokeAsync("GetOperationData", new object[] { request }, GetOperationDataOperationCompleted, userState); + } + + private void OnGetOperationDataOperationCompleted(object arg) + { + if (GetOperationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOperationDataCompleted?.Invoke(this, new GetOperationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetUnitDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetUnitData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetUnitData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUnitData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUnitData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUnitData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUnitDataAsync(string request) + { + GetUnitDataAsync(request, null); + } + + /// + public void GetUnitDataAsync(string request, object userState) + { + if (GetUnitDataOperationCompleted == null) + { + GetUnitDataOperationCompleted = OnGetUnitDataOperationCompleted; + } + InvokeAsync("GetUnitData", new object[] { request }, GetUnitDataOperationCompleted, userState); + } + + private void OnGetUnitDataOperationCompleted(object arg) + { + if (GetUnitDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUnitDataCompleted?.Invoke(this, new GetUnitDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetBasicCodeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetBasicCodeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetBasicCodeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBasicCodeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBasicCodeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBasicCodeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBasicCodeDataAsync(string request) + { + GetBasicCodeDataAsync(request, null); + } + + /// + public void GetBasicCodeDataAsync(string request, object userState) + { + if (GetBasicCodeDataOperationCompleted == null) + { + GetBasicCodeDataOperationCompleted = OnGetBasicCodeDataOperationCompleted; + } + InvokeAsync("GetBasicCodeData", new object[] { request }, GetBasicCodeDataOperationCompleted, userState); + } + + private void OnGetBasicCodeDataOperationCompleted(object arg) + { + if (GetBasicCodeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBasicCodeDataCompleted?.Invoke(this, new GetBasicCodeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetComponentrepsubDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetComponentrepsubData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetComponentrepsubData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetComponentrepsubData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetComponentrepsubData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetComponentrepsubData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetComponentrepsubDataAsync(string request) + { + GetComponentrepsubDataAsync(request, null); + } + + /// + public void GetComponentrepsubDataAsync(string request, object userState) + { + if (GetComponentrepsubDataOperationCompleted == null) + { + GetComponentrepsubDataOperationCompleted = OnGetComponentrepsubDataOperationCompleted; + } + InvokeAsync("GetComponentrepsubData", new object[] { request }, GetComponentrepsubDataOperationCompleted, userState); + } + + private void OnGetComponentrepsubDataOperationCompleted(object arg) + { + if (GetComponentrepsubDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetComponentrepsubDataCompleted?.Invoke(this, new GetComponentrepsubDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAreaDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAreaData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAreaData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAreaData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAreaData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAreaData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAreaDataAsync(string request) + { + GetAreaDataAsync(request, null); + } + + /// + public void GetAreaDataAsync(string request, object userState) + { + if (GetAreaDataOperationCompleted == null) + { + GetAreaDataOperationCompleted = OnGetAreaDataOperationCompleted; + } + InvokeAsync("GetAreaData", new object[] { request }, GetAreaDataOperationCompleted, userState); + } + + private void OnGetAreaDataOperationCompleted(object arg) + { + if (GetAreaDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAreaDataCompleted?.Invoke(this, new GetAreaDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWarehouseDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWarehouseData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWarehouseData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWarehouseData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWarehouseData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWarehouseData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWarehouseDataAsync(string request) + { + GetWarehouseDataAsync(request, null); + } + + /// + public void GetWarehouseDataAsync(string request, object userState) + { + if (GetWarehouseDataOperationCompleted == null) + { + GetWarehouseDataOperationCompleted = OnGetWarehouseDataOperationCompleted; + } + InvokeAsync("GetWarehouseData", new object[] { request }, GetWarehouseDataOperationCompleted, userState); + } + + private void OnGetWarehouseDataOperationCompleted(object arg) + { + if (GetWarehouseDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWarehouseDataCompleted?.Invoke(this, new GetWarehouseDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetLocationDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetLocationData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetLocationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetLocationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetLocationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetLocationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetLocationDataAsync(string request) + { + GetLocationDataAsync(request, null); + } + + /// + public void GetLocationDataAsync(string request, object userState) + { + if (GetLocationDataOperationCompleted == null) + { + GetLocationDataOperationCompleted = OnGetLocationDataOperationCompleted; + } + InvokeAsync("GetLocationData", new object[] { request }, GetLocationDataOperationCompleted, userState); + } + + private void OnGetLocationDataOperationCompleted(object arg) + { + if (GetLocationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetLocationDataCompleted?.Invoke(this, new GetLocationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetProductClassDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetProductClassData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetProductClassData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProductClassData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProductClassData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProductClassData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProductClassDataAsync(string request) + { + GetProductClassDataAsync(request, null); + } + + /// + public void GetProductClassDataAsync(string request, object userState) + { + if (GetProductClassDataOperationCompleted == null) + { + GetProductClassDataOperationCompleted = OnGetProductClassDataOperationCompleted; + } + InvokeAsync("GetProductClassData", new object[] { request }, GetProductClassDataOperationCompleted, userState); + } + + private void OnGetProductClassDataOperationCompleted(object arg) + { + if (GetProductClassDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProductClassDataCompleted?.Invoke(this, new GetProductClassDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateIssueReturnDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateIssueReturnData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateIssueReturnData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateIssueReturnData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateIssueReturnData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateIssueReturnData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateIssueReturnDataAsync(string request) + { + CreateIssueReturnDataAsync(request, null); + } + + /// + public void CreateIssueReturnDataAsync(string request, object userState) + { + if (CreateIssueReturnDataOperationCompleted == null) + { + CreateIssueReturnDataOperationCompleted = OnCreateIssueReturnDataOperationCompleted; + } + InvokeAsync("CreateIssueReturnData", new object[] { request }, CreateIssueReturnDataOperationCompleted, userState); + } + + private void OnCreateIssueReturnDataOperationCompleted(object arg) + { + if (CreateIssueReturnDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateIssueReturnDataCompleted?.Invoke(this, new CreateIssueReturnDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateStockInDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateStockInData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateStockInData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateStockInData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateStockInData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateStockInData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateStockInDataAsync(string request) + { + CreateStockInDataAsync(request, null); + } + + /// + public void CreateStockInDataAsync(string request, object userState) + { + if (CreateStockInDataOperationCompleted == null) + { + CreateStockInDataOperationCompleted = OnCreateStockInDataOperationCompleted; + } + InvokeAsync("CreateStockInData", new object[] { request }, CreateStockInDataOperationCompleted, userState); + } + + private void OnCreateStockInDataOperationCompleted(object arg) + { + if (CreateStockInDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateStockInDataCompleted?.Invoke(this, new CreateStockInDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetUserTokenRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetUserToken([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetUserToken", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUserToken(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUserToken", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUserToken(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUserTokenAsync(string request) + { + GetUserTokenAsync(request, null); + } + + /// + public void GetUserTokenAsync(string request, object userState) + { + if (GetUserTokenOperationCompleted == null) + { + GetUserTokenOperationCompleted = OnGetUserTokenOperationCompleted; + } + InvokeAsync("GetUserToken", new object[] { request }, GetUserTokenOperationCompleted, userState); + } + + private void OnGetUserTokenOperationCompleted(object arg) + { + if (GetUserTokenCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUserTokenCompleted?.Invoke(this, new GetUserTokenCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CheckUserAuthRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CheckUserAuth([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CheckUserAuth", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckUserAuth(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckUserAuth", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckUserAuth(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckUserAuthAsync(string request) + { + CheckUserAuthAsync(request, null); + } + + /// + public void CheckUserAuthAsync(string request, object userState) + { + if (CheckUserAuthOperationCompleted == null) + { + CheckUserAuthOperationCompleted = OnCheckUserAuthOperationCompleted; + } + InvokeAsync("CheckUserAuth", new object[] { request }, CheckUserAuthOperationCompleted, userState); + } + + private void OnCheckUserAuthOperationCompleted(object arg) + { + if (CheckUserAuthCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckUserAuthCompleted?.Invoke(this, new CheckUserAuthCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMenuDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMenuData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMenuData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMenuData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMenuData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMenuData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMenuDataAsync(string request) + { + GetMenuDataAsync(request, null); + } + + /// + public void GetMenuDataAsync(string request, object userState) + { + if (GetMenuDataOperationCompleted == null) + { + GetMenuDataOperationCompleted = OnGetMenuDataOperationCompleted; + } + InvokeAsync("GetMenuData", new object[] { request }, GetMenuDataOperationCompleted, userState); + } + + private void OnGetMenuDataOperationCompleted(object arg) + { + if (GetMenuDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMenuDataCompleted?.Invoke(this, new GetMenuDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CheckExecAuthorizationRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CheckExecAuthorization([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CheckExecAuthorization", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckExecAuthorization(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckExecAuthorization", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckExecAuthorization(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckExecAuthorizationAsync(string request) + { + CheckExecAuthorizationAsync(request, null); + } + + /// + public void CheckExecAuthorizationAsync(string request, object userState) + { + if (CheckExecAuthorizationOperationCompleted == null) + { + CheckExecAuthorizationOperationCompleted = OnCheckExecAuthorizationOperationCompleted; + } + InvokeAsync("CheckExecAuthorization", new object[] { request }, CheckExecAuthorizationOperationCompleted, userState); + } + + private void OnCheckExecAuthorizationOperationCompleted(object arg) + { + if (CheckExecAuthorizationCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckExecAuthorizationCompleted?.Invoke(this, new CheckExecAuthorizationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreatePurchaseStockInRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreatePurchaseStockIn([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreatePurchaseStockIn", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePurchaseStockIn(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePurchaseStockIn", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePurchaseStockIn(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePurchaseStockInAsync(string request) + { + CreatePurchaseStockInAsync(request, null); + } + + /// + public void CreatePurchaseStockInAsync(string request, object userState) + { + if (CreatePurchaseStockInOperationCompleted == null) + { + CreatePurchaseStockInOperationCompleted = OnCreatePurchaseStockInOperationCompleted; + } + InvokeAsync("CreatePurchaseStockIn", new object[] { request }, CreatePurchaseStockInOperationCompleted, userState); + } + + private void OnCreatePurchaseStockInOperationCompleted(object arg) + { + if (CreatePurchaseStockInCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePurchaseStockInCompleted?.Invoke(this, new CreatePurchaseStockInCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreatePurchaseStockOutRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreatePurchaseStockOut([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreatePurchaseStockOut", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePurchaseStockOut(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePurchaseStockOut", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePurchaseStockOut(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePurchaseStockOutAsync(string request) + { + CreatePurchaseStockOutAsync(request, null); + } + + /// + public void CreatePurchaseStockOutAsync(string request, object userState) + { + if (CreatePurchaseStockOutOperationCompleted == null) + { + CreatePurchaseStockOutOperationCompleted = OnCreatePurchaseStockOutOperationCompleted; + } + InvokeAsync("CreatePurchaseStockOut", new object[] { request }, CreatePurchaseStockOutOperationCompleted, userState); + } + + private void OnCreatePurchaseStockOutOperationCompleted(object arg) + { + if (CreatePurchaseStockOutCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePurchaseStockOutCompleted?.Invoke(this, new CreatePurchaseStockOutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateWOStockinDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateWOStockinData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateWOStockinData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateWOStockinData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateWOStockinData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateWOStockinData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateWOStockinDataAsync(string request) + { + CreateWOStockinDataAsync(request, null); + } + + /// + public void CreateWOStockinDataAsync(string request, object userState) + { + if (CreateWOStockinDataOperationCompleted == null) + { + CreateWOStockinDataOperationCompleted = OnCreateWOStockinDataOperationCompleted; + } + InvokeAsync("CreateWOStockinData", new object[] { request }, CreateWOStockinDataOperationCompleted, userState); + } + + private void OnCreateWOStockinDataOperationCompleted(object arg) + { + if (CreateWOStockinDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateWOStockinDataCompleted?.Invoke(this, new CreateWOStockinDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCountingLabelDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCountingLabelData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCountingLabelData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountingLabelData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountingLabelData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountingLabelData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountingLabelDataAsync(string request) + { + GetCountingLabelDataAsync(request, null); + } + + /// + public void GetCountingLabelDataAsync(string request, object userState) + { + if (GetCountingLabelDataOperationCompleted == null) + { + GetCountingLabelDataOperationCompleted = OnGetCountingLabelDataOperationCompleted; + } + InvokeAsync("GetCountingLabelData", new object[] { request }, GetCountingLabelDataOperationCompleted, userState); + } + + private void OnGetCountingLabelDataOperationCompleted(object arg) + { + if (GetCountingLabelDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountingLabelDataCompleted?.Invoke(this, new GetCountingLabelDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetFQCDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetFQCData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetFQCData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetFQCData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetFQCData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetFQCData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetFQCDataAsync(string request) + { + GetFQCDataAsync(request, null); + } + + /// + public void GetFQCDataAsync(string request, object userState) + { + if (GetFQCDataOperationCompleted == null) + { + GetFQCDataOperationCompleted = OnGetFQCDataOperationCompleted; + } + InvokeAsync("GetFQCData", new object[] { request }, GetFQCDataOperationCompleted, userState); + } + + private void OnGetFQCDataOperationCompleted(object arg) + { + if (GetFQCDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetFQCDataCompleted?.Invoke(this, new GetFQCDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetItemStockListRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetItemStockList([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetItemStockList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemStockList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemStockList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemStockList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemStockListAsync(string request) + { + GetItemStockListAsync(request, null); + } + + /// + public void GetItemStockListAsync(string request, object userState) + { + if (GetItemStockListOperationCompleted == null) + { + GetItemStockListOperationCompleted = OnGetItemStockListOperationCompleted; + } + InvokeAsync("GetItemStockList", new object[] { request }, GetItemStockListOperationCompleted, userState); + } + + private void OnGetItemStockListOperationCompleted(object arg) + { + if (GetItemStockListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemStockListCompleted?.Invoke(this, new GetItemStockListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetLabelTypeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetLabelTypeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetLabelTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetLabelTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetLabelTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetLabelTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetLabelTypeDataAsync(string request) + { + GetLabelTypeDataAsync(request, null); + } + + /// + public void GetLabelTypeDataAsync(string request, object userState) + { + if (GetLabelTypeDataOperationCompleted == null) + { + GetLabelTypeDataOperationCompleted = OnGetLabelTypeDataOperationCompleted; + } + InvokeAsync("GetLabelTypeData", new object[] { request }, GetLabelTypeDataOperationCompleted, userState); + } + + private void OnGetLabelTypeDataOperationCompleted(object arg) + { + if (GetLabelTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetLabelTypeDataCompleted?.Invoke(this, new GetLabelTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMFGDocumentRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMFGDocument([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMFGDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMFGDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMFGDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMFGDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMFGDocumentAsync(string request) + { + GetMFGDocumentAsync(request, null); + } + + /// + public void GetMFGDocumentAsync(string request, object userState) + { + if (GetMFGDocumentOperationCompleted == null) + { + GetMFGDocumentOperationCompleted = OnGetMFGDocumentOperationCompleted; + } + InvokeAsync("GetMFGDocument", new object[] { request }, GetMFGDocumentOperationCompleted, userState); + } + + private void OnGetMFGDocumentOperationCompleted(object arg) + { + if (GetMFGDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMFGDocumentCompleted?.Invoke(this, new GetMFGDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPODataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPOData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPOData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPOData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPOData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPOData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPODataAsync(string request) + { + GetPODataAsync(request, null); + } + + /// + public void GetPODataAsync(string request, object userState) + { + if (GetPODataOperationCompleted == null) + { + GetPODataOperationCompleted = OnGetPODataOperationCompleted; + } + InvokeAsync("GetPOData", new object[] { request }, GetPODataOperationCompleted, userState); + } + + private void OnGetPODataOperationCompleted(object arg) + { + if (GetPODataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPODataCompleted?.Invoke(this, new GetPODataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPOReceivingInDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPOReceivingInData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPOReceivingInData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPOReceivingInData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPOReceivingInData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPOReceivingInData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPOReceivingInDataAsync(string request) + { + GetPOReceivingInDataAsync(request, null); + } + + /// + public void GetPOReceivingInDataAsync(string request, object userState) + { + if (GetPOReceivingInDataOperationCompleted == null) + { + GetPOReceivingInDataOperationCompleted = OnGetPOReceivingInDataOperationCompleted; + } + InvokeAsync("GetPOReceivingInData", new object[] { request }, GetPOReceivingInDataOperationCompleted, userState); + } + + private void OnGetPOReceivingInDataOperationCompleted(object arg) + { + if (GetPOReceivingInDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPOReceivingInDataCompleted?.Invoke(this, new GetPOReceivingInDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPOReceivingOutDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPOReceivingOutData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPOReceivingOutData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPOReceivingOutData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPOReceivingOutData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPOReceivingOutData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPOReceivingOutDataAsync(string request) + { + GetPOReceivingOutDataAsync(request, null); + } + + /// + public void GetPOReceivingOutDataAsync(string request, object userState) + { + if (GetPOReceivingOutDataOperationCompleted == null) + { + GetPOReceivingOutDataOperationCompleted = OnGetPOReceivingOutDataOperationCompleted; + } + InvokeAsync("GetPOReceivingOutData", new object[] { request }, GetPOReceivingOutDataOperationCompleted, userState); + } + + private void OnGetPOReceivingOutDataOperationCompleted(object arg) + { + if (GetPOReceivingOutDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPOReceivingOutDataCompleted?.Invoke(this, new GetPOReceivingOutDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPurchaseStockInQtyRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPurchaseStockInQty([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPurchaseStockInQty", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPurchaseStockInQty(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPurchaseStockInQty", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPurchaseStockInQty(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPurchaseStockInQtyAsync(string request) + { + GetPurchaseStockInQtyAsync(request, null); + } + + /// + public void GetPurchaseStockInQtyAsync(string request, object userState) + { + if (GetPurchaseStockInQtyOperationCompleted == null) + { + GetPurchaseStockInQtyOperationCompleted = OnGetPurchaseStockInQtyOperationCompleted; + } + InvokeAsync("GetPurchaseStockInQty", new object[] { request }, GetPurchaseStockInQtyOperationCompleted, userState); + } + + private void OnGetPurchaseStockInQtyOperationCompleted(object arg) + { + if (GetPurchaseStockInQtyCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPurchaseStockInQtyCompleted?.Invoke(this, new GetPurchaseStockInQtyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPurchaseStockOutQtyRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPurchaseStockOutQty([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPurchaseStockOutQty", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPurchaseStockOutQty(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPurchaseStockOutQty", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPurchaseStockOutQty(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPurchaseStockOutQtyAsync(string request) + { + GetPurchaseStockOutQtyAsync(request, null); + } + + /// + public void GetPurchaseStockOutQtyAsync(string request, object userState) + { + if (GetPurchaseStockOutQtyOperationCompleted == null) + { + GetPurchaseStockOutQtyOperationCompleted = OnGetPurchaseStockOutQtyOperationCompleted; + } + InvokeAsync("GetPurchaseStockOutQty", new object[] { request }, GetPurchaseStockOutQtyOperationCompleted, userState); + } + + private void OnGetPurchaseStockOutQtyOperationCompleted(object arg) + { + if (GetPurchaseStockOutQtyCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPurchaseStockOutQtyCompleted?.Invoke(this, new GetPurchaseStockOutQtyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetReasonCodeRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetReasonCode([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetReasonCode", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetReasonCode(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetReasonCode", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetReasonCode(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetReasonCodeAsync(string request) + { + GetReasonCodeAsync(request, null); + } + + /// + public void GetReasonCodeAsync(string request, object userState) + { + if (GetReasonCodeOperationCompleted == null) + { + GetReasonCodeOperationCompleted = OnGetReasonCodeOperationCompleted; + } + InvokeAsync("GetReasonCode", new object[] { request }, GetReasonCodeOperationCompleted, userState); + } + + private void OnGetReasonCodeOperationCompleted(object arg) + { + if (GetReasonCodeCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetReasonCodeCompleted?.Invoke(this, new GetReasonCodeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetReceivingQtyRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetReceivingQty([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetReceivingQty", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetReceivingQty(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetReceivingQty", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetReceivingQty(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetReceivingQtyAsync(string request) + { + GetReceivingQtyAsync(request, null); + } + + /// + public void GetReceivingQtyAsync(string request, object userState) + { + if (GetReceivingQtyOperationCompleted == null) + { + GetReceivingQtyOperationCompleted = OnGetReceivingQtyOperationCompleted; + } + InvokeAsync("GetReceivingQty", new object[] { request }, GetReceivingQtyOperationCompleted, userState); + } + + private void OnGetReceivingQtyOperationCompleted(object arg) + { + if (GetReceivingQtyCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetReceivingQtyCompleted?.Invoke(this, new GetReceivingQtyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetStockDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetStockData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetStockData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetStockData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetStockData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetStockData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetStockDataAsync(string request) + { + GetStockDataAsync(request, null); + } + + /// + public void GetStockDataAsync(string request, object userState) + { + if (GetStockDataOperationCompleted == null) + { + GetStockDataOperationCompleted = OnGetStockDataOperationCompleted; + } + InvokeAsync("GetStockData", new object[] { request }, GetStockDataOperationCompleted, userState); + } + + private void OnGetStockDataOperationCompleted(object arg) + { + if (GetStockDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetStockDataCompleted?.Invoke(this, new GetStockDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWODataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWOData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWOData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWOData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWOData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWOData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWODataAsync(string request) + { + GetWODataAsync(request, null); + } + + /// + public void GetWODataAsync(string request, object userState) + { + if (GetWODataOperationCompleted == null) + { + GetWODataOperationCompleted = OnGetWODataOperationCompleted; + } + InvokeAsync("GetWOData", new object[] { request }, GetWODataOperationCompleted, userState); + } + + private void OnGetWODataOperationCompleted(object arg) + { + if (GetWODataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWODataCompleted?.Invoke(this, new GetWODataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWOIssueDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWOIssueData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWOIssueData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWOIssueData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWOIssueData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWOIssueData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWOIssueDataAsync(string request) + { + GetWOIssueDataAsync(request, null); + } + + /// + public void GetWOIssueDataAsync(string request, object userState) + { + if (GetWOIssueDataOperationCompleted == null) + { + GetWOIssueDataOperationCompleted = OnGetWOIssueDataOperationCompleted; + } + InvokeAsync("GetWOIssueData", new object[] { request }, GetWOIssueDataOperationCompleted, userState); + } + + private void OnGetWOIssueDataOperationCompleted(object arg) + { + if (GetWOIssueDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWOIssueDataCompleted?.Invoke(this, new GetWOIssueDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWOStockQtyRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWOStockQty([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWOStockQty", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWOStockQty(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWOStockQty", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWOStockQty(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWOStockQtyAsync(string request) + { + GetWOStockQtyAsync(request, null); + } + + /// + public void GetWOStockQtyAsync(string request, object userState) + { + if (GetWOStockQtyOperationCompleted == null) + { + GetWOStockQtyOperationCompleted = OnGetWOStockQtyOperationCompleted; + } + InvokeAsync("GetWOStockQty", new object[] { request }, GetWOStockQtyOperationCompleted, userState); + } + + private void OnGetWOStockQtyOperationCompleted(object arg) + { + if (GetWOStockQtyCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWOStockQtyCompleted?.Invoke(this, new GetWOStockQtyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "UpdateCountingLabelDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string UpdateCountingLabelData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("UpdateCountingLabelData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginUpdateCountingLabelData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("UpdateCountingLabelData", new object[] { request }, callback, asyncState); + } + + /// + public string EndUpdateCountingLabelData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void UpdateCountingLabelDataAsync(string request) + { + UpdateCountingLabelDataAsync(request, null); + } + + /// + public void UpdateCountingLabelDataAsync(string request, object userState) + { + if (UpdateCountingLabelDataOperationCompleted == null) + { + UpdateCountingLabelDataOperationCompleted = OnUpdateCountingLabelDataOperationCompleted; + } + InvokeAsync("UpdateCountingLabelData", new object[] { request }, UpdateCountingLabelDataOperationCompleted, userState); + } + + private void OnUpdateCountingLabelDataOperationCompleted(object arg) + { + if (UpdateCountingLabelDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + UpdateCountingLabelDataCompleted?.Invoke(this, new UpdateCountingLabelDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "UpdateWOIssueDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string UpdateWOIssueData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("UpdateWOIssueData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginUpdateWOIssueData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("UpdateWOIssueData", new object[] { request }, callback, asyncState); + } + + /// + public string EndUpdateWOIssueData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void UpdateWOIssueDataAsync(string request) + { + UpdateWOIssueDataAsync(request, null); + } + + /// + public void UpdateWOIssueDataAsync(string request, object userState) + { + if (UpdateWOIssueDataOperationCompleted == null) + { + UpdateWOIssueDataOperationCompleted = OnUpdateWOIssueDataOperationCompleted; + } + InvokeAsync("UpdateWOIssueData", new object[] { request }, UpdateWOIssueDataOperationCompleted, userState); + } + + private void OnUpdateWOIssueDataOperationCompleted(object arg) + { + if (UpdateWOIssueDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + UpdateWOIssueDataCompleted?.Invoke(this, new UpdateWOIssueDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateSalesReturnRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateSalesReturn([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateSalesReturn", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateSalesReturn(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateSalesReturn", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateSalesReturn(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateSalesReturnAsync(string request) + { + CreateSalesReturnAsync(request, null); + } + + /// + public void CreateSalesReturnAsync(string request, object userState) + { + if (CreateSalesReturnOperationCompleted == null) + { + CreateSalesReturnOperationCompleted = OnCreateSalesReturnOperationCompleted; + } + InvokeAsync("CreateSalesReturn", new object[] { request }, CreateSalesReturnOperationCompleted, userState); + } + + private void OnCreateSalesReturnOperationCompleted(object arg) + { + if (CreateSalesReturnCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateSalesReturnCompleted?.Invoke(this, new CreateSalesReturnCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateShippingOrderRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateShippingOrder([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateShippingOrder", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateShippingOrder(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateShippingOrder", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateShippingOrder(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateShippingOrderAsync(string request) + { + CreateShippingOrderAsync(request, null); + } + + /// + public void CreateShippingOrderAsync(string request, object userState) + { + if (CreateShippingOrderOperationCompleted == null) + { + CreateShippingOrderOperationCompleted = OnCreateShippingOrderOperationCompleted; + } + InvokeAsync("CreateShippingOrder", new object[] { request }, CreateShippingOrderOperationCompleted, userState); + } + + private void OnCreateShippingOrderOperationCompleted(object arg) + { + if (CreateShippingOrderCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateShippingOrderCompleted?.Invoke(this, new CreateShippingOrderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateTransferNoteRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateTransferNote([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateTransferNote", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateTransferNote(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateTransferNote", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateTransferNote(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateTransferNoteAsync(string request) + { + CreateTransferNoteAsync(request, null); + } + + /// + public void CreateTransferNoteAsync(string request, object userState) + { + if (CreateTransferNoteOperationCompleted == null) + { + CreateTransferNoteOperationCompleted = OnCreateTransferNoteOperationCompleted; + } + InvokeAsync("CreateTransferNote", new object[] { request }, CreateTransferNoteOperationCompleted, userState); + } + + private void OnCreateTransferNoteOperationCompleted(object arg) + { + if (CreateTransferNoteCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateTransferNoteCompleted?.Invoke(this, new CreateTransferNoteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetQtyConversionRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetQtyConversion([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetQtyConversion", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetQtyConversion(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetQtyConversion", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetQtyConversion(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetQtyConversionAsync(string request) + { + GetQtyConversionAsync(request, null); + } + + /// + public void GetQtyConversionAsync(string request, object userState) + { + if (GetQtyConversionOperationCompleted == null) + { + GetQtyConversionOperationCompleted = OnGetQtyConversionOperationCompleted; + } + InvokeAsync("GetQtyConversion", new object[] { request }, GetQtyConversionOperationCompleted, userState); + } + + private void OnGetQtyConversionOperationCompleted(object arg) + { + if (GetQtyConversionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetQtyConversionCompleted?.Invoke(this, new GetQtyConversionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetShippingNoticeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetShippingNoticeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetShippingNoticeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetShippingNoticeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetShippingNoticeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetShippingNoticeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetShippingNoticeDataAsync(string request) + { + GetShippingNoticeDataAsync(request, null); + } + + /// + public void GetShippingNoticeDataAsync(string request, object userState) + { + if (GetShippingNoticeDataOperationCompleted == null) + { + GetShippingNoticeDataOperationCompleted = OnGetShippingNoticeDataOperationCompleted; + } + InvokeAsync("GetShippingNoticeData", new object[] { request }, GetShippingNoticeDataOperationCompleted, userState); + } + + private void OnGetShippingNoticeDataOperationCompleted(object arg) + { + if (GetShippingNoticeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetShippingNoticeDataCompleted?.Invoke(this, new GetShippingNoticeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetShippingOrderDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetShippingOrderData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetShippingOrderData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetShippingOrderData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetShippingOrderData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetShippingOrderData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetShippingOrderDataAsync(string request) + { + GetShippingOrderDataAsync(request, null); + } + + /// + public void GetShippingOrderDataAsync(string request, object userState) + { + if (GetShippingOrderDataOperationCompleted == null) + { + GetShippingOrderDataOperationCompleted = OnGetShippingOrderDataOperationCompleted; + } + InvokeAsync("GetShippingOrderData", new object[] { request }, GetShippingOrderDataOperationCompleted, userState); + } + + private void OnGetShippingOrderDataOperationCompleted(object arg) + { + if (GetShippingOrderDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetShippingOrderDataCompleted?.Invoke(this, new GetShippingOrderDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreatePOReceivingDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreatePOReceivingData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreatePOReceivingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePOReceivingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePOReceivingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePOReceivingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePOReceivingDataAsync(string request) + { + CreatePOReceivingDataAsync(request, null); + } + + /// + public void CreatePOReceivingDataAsync(string request, object userState) + { + if (CreatePOReceivingDataOperationCompleted == null) + { + CreatePOReceivingDataOperationCompleted = OnCreatePOReceivingDataOperationCompleted; + } + InvokeAsync("CreatePOReceivingData", new object[] { request }, CreatePOReceivingDataOperationCompleted, userState); + } + + private void OnCreatePOReceivingDataOperationCompleted(object arg) + { + if (CreatePOReceivingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePOReceivingDataCompleted?.Invoke(this, new CreatePOReceivingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetSalesDocumentRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetSalesDocument([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetSalesDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSalesDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSalesDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSalesDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSalesDocumentAsync(string request) + { + GetSalesDocumentAsync(request, null); + } + + /// + public void GetSalesDocumentAsync(string request, object userState) + { + if (GetSalesDocumentOperationCompleted == null) + { + GetSalesDocumentOperationCompleted = OnGetSalesDocumentOperationCompleted; + } + InvokeAsync("GetSalesDocument", new object[] { request }, GetSalesDocumentOperationCompleted, userState); + } + + private void OnGetSalesDocumentOperationCompleted(object arg) + { + if (GetSalesDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSalesDocumentCompleted?.Invoke(this, new GetSalesDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateMISCIssueDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateMISCIssueData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateMISCIssueData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateMISCIssueData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateMISCIssueData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateMISCIssueData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateMISCIssueDataAsync(string request) + { + CreateMISCIssueDataAsync(request, null); + } + + /// + public void CreateMISCIssueDataAsync(string request, object userState) + { + if (CreateMISCIssueDataOperationCompleted == null) + { + CreateMISCIssueDataOperationCompleted = OnCreateMISCIssueDataOperationCompleted; + } + InvokeAsync("CreateMISCIssueData", new object[] { request }, CreateMISCIssueDataOperationCompleted, userState); + } + + private void OnCreateMISCIssueDataOperationCompleted(object arg) + { + if (CreateMISCIssueDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateMISCIssueDataCompleted?.Invoke(this, new CreateMISCIssueDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateStockDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateStockData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateStockData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateStockData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateStockData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateStockData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateStockDataAsync(string request) + { + CreateStockDataAsync(request, null); + } + + /// + public void CreateStockDataAsync(string request, object userState) + { + if (CreateStockDataOperationCompleted == null) + { + CreateStockDataOperationCompleted = OnCreateStockDataOperationCompleted; + } + InvokeAsync("CreateStockData", new object[] { request }, CreateStockDataOperationCompleted, userState); + } + + private void OnCreateStockDataOperationCompleted(object arg) + { + if (CreateStockDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateStockDataCompleted?.Invoke(this, new CreateStockDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateBOMMasterDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateBOMMasterData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateBOMMasterData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBOMMasterData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBOMMasterData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBOMMasterData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBOMMasterDataAsync(string request) + { + CreateBOMMasterDataAsync(request, null); + } + + /// + public void CreateBOMMasterDataAsync(string request, object userState) + { + if (CreateBOMMasterDataOperationCompleted == null) + { + CreateBOMMasterDataOperationCompleted = OnCreateBOMMasterDataOperationCompleted; + } + InvokeAsync("CreateBOMMasterData", new object[] { request }, CreateBOMMasterDataOperationCompleted, userState); + } + + private void OnCreateBOMMasterDataOperationCompleted(object arg) + { + if (CreateBOMMasterDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBOMMasterDataCompleted?.Invoke(this, new CreateBOMMasterDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "TIPTOPGateWayRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string TIPTOPGateWay([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("TIPTOPGateWay", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginTIPTOPGateWay(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("TIPTOPGateWay", new object[] { request }, callback, asyncState); + } + + /// + public string EndTIPTOPGateWay(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void TIPTOPGateWayAsync(string request) + { + TIPTOPGateWayAsync(request, null); + } + + /// + public void TIPTOPGateWayAsync(string request, object userState) + { + if (TIPTOPGateWayOperationCompleted == null) + { + TIPTOPGateWayOperationCompleted = OnTIPTOPGateWayOperationCompleted; + } + InvokeAsync("TIPTOPGateWay", new object[] { request }, TIPTOPGateWayOperationCompleted, userState); + } + + private void OnTIPTOPGateWayOperationCompleted(object arg) + { + if (TIPTOPGateWayCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + TIPTOPGateWayCompleted?.Invoke(this, new TIPTOPGateWayCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateBOMDetailDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateBOMDetailData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateBOMDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBOMDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBOMDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBOMDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBOMDetailDataAsync(string request) + { + CreateBOMDetailDataAsync(request, null); + } + + /// + public void CreateBOMDetailDataAsync(string request, object userState) + { + if (CreateBOMDetailDataOperationCompleted == null) + { + CreateBOMDetailDataOperationCompleted = OnCreateBOMDetailDataOperationCompleted; + } + InvokeAsync("CreateBOMDetailData", new object[] { request }, CreateBOMDetailDataOperationCompleted, userState); + } + + private void OnCreateBOMDetailDataOperationCompleted(object arg) + { + if (CreateBOMDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBOMDetailDataCompleted?.Invoke(this, new CreateBOMDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateDepartmentDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateDepartmentData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateDepartmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateDepartmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateDepartmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateDepartmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateDepartmentDataAsync(string request) + { + CreateDepartmentDataAsync(request, null); + } + + /// + public void CreateDepartmentDataAsync(string request, object userState) + { + if (CreateDepartmentDataOperationCompleted == null) + { + CreateDepartmentDataOperationCompleted = OnCreateDepartmentDataOperationCompleted; + } + InvokeAsync("CreateDepartmentData", new object[] { request }, CreateDepartmentDataOperationCompleted, userState); + } + + private void OnCreateDepartmentDataOperationCompleted(object arg) + { + if (CreateDepartmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateDepartmentDataCompleted?.Invoke(this, new CreateDepartmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "RunCommandRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string RunCommand([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("RunCommand", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginRunCommand(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("RunCommand", new object[] { request }, callback, asyncState); + } + + /// + public string EndRunCommand(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void RunCommandAsync(string request) + { + RunCommandAsync(request, null); + } + + /// + public void RunCommandAsync(string request, object userState) + { + if (RunCommandOperationCompleted == null) + { + RunCommandOperationCompleted = OnRunCommandOperationCompleted; + } + InvokeAsync("RunCommand", new object[] { request }, RunCommandOperationCompleted, userState); + } + + private void OnRunCommandOperationCompleted(object arg) + { + if (RunCommandCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + RunCommandCompleted?.Invoke(this, new RunCommandCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "EboGetCustDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string EboGetCustData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("EboGetCustData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginEboGetCustData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("EboGetCustData", new object[] { request }, callback, asyncState); + } + + /// + public string EndEboGetCustData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void EboGetCustDataAsync(string request) + { + EboGetCustDataAsync(request, null); + } + + /// + public void EboGetCustDataAsync(string request, object userState) + { + if (EboGetCustDataOperationCompleted == null) + { + EboGetCustDataOperationCompleted = OnEboGetCustDataOperationCompleted; + } + InvokeAsync("EboGetCustData", new object[] { request }, EboGetCustDataOperationCompleted, userState); + } + + private void OnEboGetCustDataOperationCompleted(object arg) + { + if (EboGetCustDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + EboGetCustDataCompleted?.Invoke(this, new EboGetCustDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "EboGetOrderDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string EboGetOrderData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("EboGetOrderData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginEboGetOrderData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("EboGetOrderData", new object[] { request }, callback, asyncState); + } + + /// + public string EndEboGetOrderData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void EboGetOrderDataAsync(string request) + { + EboGetOrderDataAsync(request, null); + } + + /// + public void EboGetOrderDataAsync(string request, object userState) + { + if (EboGetOrderDataOperationCompleted == null) + { + EboGetOrderDataOperationCompleted = OnEboGetOrderDataOperationCompleted; + } + InvokeAsync("EboGetOrderData", new object[] { request }, EboGetOrderDataOperationCompleted, userState); + } + + private void OnEboGetOrderDataOperationCompleted(object arg) + { + if (EboGetOrderDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + EboGetOrderDataCompleted?.Invoke(this, new EboGetOrderDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "EboGetProdDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string EboGetProdData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("EboGetProdData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginEboGetProdData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("EboGetProdData", new object[] { request }, callback, asyncState); + } + + /// + public string EndEboGetProdData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void EboGetProdDataAsync(string request) + { + EboGetProdDataAsync(request, null); + } + + /// + public void EboGetProdDataAsync(string request, object userState) + { + if (EboGetProdDataOperationCompleted == null) + { + EboGetProdDataOperationCompleted = OnEboGetProdDataOperationCompleted; + } + InvokeAsync("EboGetProdData", new object[] { request }, EboGetProdDataOperationCompleted, userState); + } + + private void OnEboGetProdDataOperationCompleted(object arg) + { + if (EboGetProdDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + EboGetProdDataCompleted?.Invoke(this, new EboGetProdDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CheckApsExecutionRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CheckApsExecution([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CheckApsExecution", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckApsExecution(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckApsExecution", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckApsExecution(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckApsExecutionAsync(string request) + { + CheckApsExecutionAsync(request, null); + } + + /// + public void CheckApsExecutionAsync(string request, object userState) + { + if (CheckApsExecutionOperationCompleted == null) + { + CheckApsExecutionOperationCompleted = OnCheckApsExecutionOperationCompleted; + } + InvokeAsync("CheckApsExecution", new object[] { request }, CheckApsExecutionOperationCompleted, userState); + } + + private void OnCheckApsExecutionOperationCompleted(object arg) + { + if (CheckApsExecutionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckApsExecutionCompleted?.Invoke(this, new CheckApsExecutionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustomerContactDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustomerContactData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustomerContactData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerContactData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerContactData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerContactData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerContactDataAsync(string request) + { + GetCustomerContactDataAsync(request, null); + } + + /// + public void GetCustomerContactDataAsync(string request, object userState) + { + if (GetCustomerContactDataOperationCompleted == null) + { + GetCustomerContactDataOperationCompleted = OnGetCustomerContactDataOperationCompleted; + } + InvokeAsync("GetCustomerContactData", new object[] { request }, GetCustomerContactDataOperationCompleted, userState); + } + + private void OnGetCustomerContactDataOperationCompleted(object arg) + { + if (GetCustomerContactDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerContactDataCompleted?.Invoke(this, new GetCustomerContactDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPackingMethodDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPackingMethodData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPackingMethodData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPackingMethodData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPackingMethodData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPackingMethodData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPackingMethodDataAsync(string request) + { + GetPackingMethodDataAsync(request, null); + } + + /// + public void GetPackingMethodDataAsync(string request, object userState) + { + if (GetPackingMethodDataOperationCompleted == null) + { + GetPackingMethodDataOperationCompleted = OnGetPackingMethodDataOperationCompleted; + } + InvokeAsync("GetPackingMethodData", new object[] { request }, GetPackingMethodDataOperationCompleted, userState); + } + + private void OnGetPackingMethodDataOperationCompleted(object arg) + { + if (GetPackingMethodDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPackingMethodDataCompleted?.Invoke(this, new GetPackingMethodDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreatePotentialCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreatePotentialCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreatePotentialCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePotentialCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePotentialCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePotentialCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePotentialCustomerDataAsync(string request) + { + CreatePotentialCustomerDataAsync(request, null); + } + + /// + public void CreatePotentialCustomerDataAsync(string request, object userState) + { + if (CreatePotentialCustomerDataOperationCompleted == null) + { + CreatePotentialCustomerDataOperationCompleted = OnCreatePotentialCustomerDataOperationCompleted; + } + InvokeAsync("CreatePotentialCustomerData", new object[] { request }, CreatePotentialCustomerDataOperationCompleted, userState); + } + + private void OnCreatePotentialCustomerDataOperationCompleted(object arg) + { + if (CreatePotentialCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePotentialCustomerDataCompleted?.Invoke(this, new CreatePotentialCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetTaxTypeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetTaxTypeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetTaxTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTaxTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTaxTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTaxTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTaxTypeDataAsync(string request) + { + GetTaxTypeDataAsync(request, null); + } + + /// + public void GetTaxTypeDataAsync(string request, object userState) + { + if (GetTaxTypeDataOperationCompleted == null) + { + GetTaxTypeDataOperationCompleted = OnGetTaxTypeDataOperationCompleted; + } + InvokeAsync("GetTaxTypeData", new object[] { request }, GetTaxTypeDataOperationCompleted, userState); + } + + private void OnGetTaxTypeDataOperationCompleted(object arg) + { + if (GetTaxTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTaxTypeDataCompleted?.Invoke(this, new GetTaxTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetUnitConversionDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetUnitConversionData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetUnitConversionData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUnitConversionData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUnitConversionData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUnitConversionData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUnitConversionDataAsync(string request) + { + GetUnitConversionDataAsync(request, null); + } + + /// + public void GetUnitConversionDataAsync(string request, object userState) + { + if (GetUnitConversionDataOperationCompleted == null) + { + GetUnitConversionDataOperationCompleted = OnGetUnitConversionDataOperationCompleted; + } + InvokeAsync("GetUnitConversionData", new object[] { request }, GetUnitConversionDataOperationCompleted, userState); + } + + private void OnGetUnitConversionDataOperationCompleted(object arg) + { + if (GetUnitConversionDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUnitConversionDataCompleted?.Invoke(this, new GetUnitConversionDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMFGSettingSmaDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMFGSettingSmaData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMFGSettingSmaData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMFGSettingSmaData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMFGSettingSmaData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMFGSettingSmaData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMFGSettingSmaDataAsync(string request) + { + GetMFGSettingSmaDataAsync(request, null); + } + + /// + public void GetMFGSettingSmaDataAsync(string request, object userState) + { + if (GetMFGSettingSmaDataOperationCompleted == null) + { + GetMFGSettingSmaDataOperationCompleted = OnGetMFGSettingSmaDataOperationCompleted; + } + InvokeAsync("GetMFGSettingSmaData", new object[] { request }, GetMFGSettingSmaDataOperationCompleted, userState); + } + + private void OnGetMFGSettingSmaDataOperationCompleted(object arg) + { + if (GetMFGSettingSmaDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMFGSettingSmaDataCompleted?.Invoke(this, new GetMFGSettingSmaDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetCustomerOtheraddressDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetCustomerOtheraddressData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetCustomerOtheraddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerOtheraddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerOtheraddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerOtheraddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerOtheraddressDataAsync(string request) + { + GetCustomerOtheraddressDataAsync(request, null); + } + + /// + public void GetCustomerOtheraddressDataAsync(string request, object userState) + { + if (GetCustomerOtheraddressDataOperationCompleted == null) + { + GetCustomerOtheraddressDataOperationCompleted = OnGetCustomerOtheraddressDataOperationCompleted; + } + InvokeAsync("GetCustomerOtheraddressData", new object[] { request }, GetCustomerOtheraddressDataOperationCompleted, userState); + } + + private void OnGetCustomerOtheraddressDataOperationCompleted(object arg) + { + if (GetCustomerOtheraddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerOtheraddressDataCompleted?.Invoke(this, new GetCustomerOtheraddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateCustomerContactDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateCustomerContactData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateCustomerContactData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerContactData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerContactData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerContactData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerContactDataAsync(string request) + { + CreateCustomerContactDataAsync(request, null); + } + + /// + public void CreateCustomerContactDataAsync(string request, object userState) + { + if (CreateCustomerContactDataOperationCompleted == null) + { + CreateCustomerContactDataOperationCompleted = OnCreateCustomerContactDataOperationCompleted; + } + InvokeAsync("CreateCustomerContactData", new object[] { request }, CreateCustomerContactDataOperationCompleted, userState); + } + + private void OnCreateCustomerContactDataOperationCompleted(object arg) + { + if (CreateCustomerContactDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerContactDataCompleted?.Invoke(this, new CreateCustomerContactDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateCustomerOtheraddressDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateCustomerOtheraddressData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateCustomerOtheraddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerOtheraddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerOtheraddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerOtheraddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerOtheraddressDataAsync(string request) + { + CreateCustomerOtheraddressDataAsync(request, null); + } + + /// + public void CreateCustomerOtheraddressDataAsync(string request, object userState) + { + if (CreateCustomerOtheraddressDataOperationCompleted == null) + { + CreateCustomerOtheraddressDataOperationCompleted = OnCreateCustomerOtheraddressDataOperationCompleted; + } + InvokeAsync("CreateCustomerOtheraddressData", new object[] { request }, CreateCustomerOtheraddressDataOperationCompleted, userState); + } + + private void OnCreateCustomerOtheraddressDataOperationCompleted(object arg) + { + if (CreateCustomerOtheraddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerOtheraddressDataCompleted?.Invoke(this, new CreateCustomerOtheraddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetPotentialCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetPotentialCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetPotentialCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPotentialCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPotentialCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPotentialCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPotentialCustomerDataAsync(string request) + { + GetPotentialCustomerDataAsync(request, null); + } + + /// + public void GetPotentialCustomerDataAsync(string request, object userState) + { + if (GetPotentialCustomerDataOperationCompleted == null) + { + GetPotentialCustomerDataOperationCompleted = OnGetPotentialCustomerDataOperationCompleted; + } + InvokeAsync("GetPotentialCustomerData", new object[] { request }, GetPotentialCustomerDataOperationCompleted, userState); + } + + private void OnGetPotentialCustomerDataOperationCompleted(object arg) + { + if (GetPotentialCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPotentialCustomerDataCompleted?.Invoke(this, new GetPotentialCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CRMGetCustomerDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CRMGetCustomerData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CRMGetCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCRMGetCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CRMGetCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCRMGetCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CRMGetCustomerDataAsync(string request) + { + CRMGetCustomerDataAsync(request, null); + } + + /// + public void CRMGetCustomerDataAsync(string request, object userState) + { + if (CRMGetCustomerDataOperationCompleted == null) + { + CRMGetCustomerDataOperationCompleted = OnCRMGetCustomerDataOperationCompleted; + } + InvokeAsync("CRMGetCustomerData", new object[] { request }, CRMGetCustomerDataOperationCompleted, userState); + } + + private void OnCRMGetCustomerDataOperationCompleted(object arg) + { + if (CRMGetCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CRMGetCustomerDataCompleted?.Invoke(this, new CRMGetCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetTableAmendmentDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetTableAmendmentData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetTableAmendmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTableAmendmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTableAmendmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTableAmendmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTableAmendmentDataAsync(string request) + { + GetTableAmendmentDataAsync(request, null); + } + + /// + public void GetTableAmendmentDataAsync(string request, object userState) + { + if (GetTableAmendmentDataOperationCompleted == null) + { + GetTableAmendmentDataOperationCompleted = OnGetTableAmendmentDataOperationCompleted; + } + InvokeAsync("GetTableAmendmentData", new object[] { request }, GetTableAmendmentDataOperationCompleted, userState); + } + + private void OnGetTableAmendmentDataOperationCompleted(object arg) + { + if (GetTableAmendmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTableAmendmentDataCompleted?.Invoke(this, new GetTableAmendmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetReportDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetReportData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetReportData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetReportData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetReportData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetReportData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetReportDataAsync(string request) + { + GetReportDataAsync(request, null); + } + + /// + public void GetReportDataAsync(string request, object userState) + { + if (GetReportDataOperationCompleted == null) + { + GetReportDataOperationCompleted = OnGetReportDataOperationCompleted; + } + InvokeAsync("GetReportData", new object[] { request }, GetReportDataOperationCompleted, userState); + } + + private void OnGetReportDataOperationCompleted(object arg) + { + if (GetReportDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetReportDataCompleted?.Invoke(this, new GetReportDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAccountTypeDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAccountTypeData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAccountTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountTypeDataAsync(string request) + { + GetAccountTypeDataAsync(request, null); + } + + /// + public void GetAccountTypeDataAsync(string request, object userState) + { + if (GetAccountTypeDataOperationCompleted == null) + { + GetAccountTypeDataOperationCompleted = OnGetAccountTypeDataOperationCompleted; + } + InvokeAsync("GetAccountTypeData", new object[] { request }, GetAccountTypeDataOperationCompleted, userState); + } + + private void OnGetAccountTypeDataOperationCompleted(object arg) + { + if (GetAccountTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountTypeDataCompleted?.Invoke(this, new GetAccountTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetAccountDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetAccountData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetAccountData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountDataAsync(string request) + { + GetAccountDataAsync(request, null); + } + + /// + public void GetAccountDataAsync(string request, object userState) + { + if (GetAccountDataOperationCompleted == null) + { + GetAccountDataOperationCompleted = OnGetAccountDataOperationCompleted; + } + InvokeAsync("GetAccountData", new object[] { request }, GetAccountDataOperationCompleted, userState); + } + + private void OnGetAccountDataOperationCompleted(object arg) + { + if (GetAccountDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountDataCompleted?.Invoke(this, new GetAccountDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateVoucherDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateVoucherData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateVoucherData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateVoucherData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateVoucherData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateVoucherData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateVoucherDataAsync(string request) + { + CreateVoucherDataAsync(request, null); + } + + /// + public void CreateVoucherDataAsync(string request, object userState) + { + if (CreateVoucherDataOperationCompleted == null) + { + CreateVoucherDataOperationCompleted = OnCreateVoucherDataOperationCompleted; + } + InvokeAsync("CreateVoucherData", new object[] { request }, CreateVoucherDataOperationCompleted, userState); + } + + private void OnCreateVoucherDataOperationCompleted(object arg) + { + if (CreateVoucherDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateVoucherDataCompleted?.Invoke(this, new CreateVoucherDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetVoucherDocumentDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetVoucherDocumentData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetVoucherDocumentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetVoucherDocumentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetVoucherDocumentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetVoucherDocumentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetVoucherDocumentDataAsync(string request) + { + GetVoucherDocumentDataAsync(request, null); + } + + /// + public void GetVoucherDocumentDataAsync(string request, object userState) + { + if (GetVoucherDocumentDataOperationCompleted == null) + { + GetVoucherDocumentDataOperationCompleted = OnGetVoucherDocumentDataOperationCompleted; + } + InvokeAsync("GetVoucherDocumentData", new object[] { request }, GetVoucherDocumentDataOperationCompleted, userState); + } + + private void OnGetVoucherDocumentDataOperationCompleted(object arg) + { + if (GetVoucherDocumentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetVoucherDocumentDataCompleted?.Invoke(this, new GetVoucherDocumentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetTransactionCategoryRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetTransactionCategory([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetTransactionCategory", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTransactionCategory(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTransactionCategory", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTransactionCategory(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTransactionCategoryAsync(string request) + { + GetTransactionCategoryAsync(request, null); + } + + /// + public void GetTransactionCategoryAsync(string request, object userState) + { + if (GetTransactionCategoryOperationCompleted == null) + { + GetTransactionCategoryOperationCompleted = OnGetTransactionCategoryOperationCompleted; + } + InvokeAsync("GetTransactionCategory", new object[] { request }, GetTransactionCategoryOperationCompleted, userState); + } + + private void OnGetTransactionCategoryOperationCompleted(object arg) + { + if (GetTransactionCategoryCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTransactionCategoryCompleted?.Invoke(this, new GetTransactionCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateBillingAPRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateBillingAP([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateBillingAP", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBillingAP(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBillingAP", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBillingAP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBillingAPAsync(string request) + { + CreateBillingAPAsync(request, null); + } + + /// + public void CreateBillingAPAsync(string request, object userState) + { + if (CreateBillingAPOperationCompleted == null) + { + CreateBillingAPOperationCompleted = OnCreateBillingAPOperationCompleted; + } + InvokeAsync("CreateBillingAP", new object[] { request }, CreateBillingAPOperationCompleted, userState); + } + + private void OnCreateBillingAPOperationCompleted(object arg) + { + if (CreateBillingAPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBillingAPCompleted?.Invoke(this, new CreateBillingAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetItemGroupDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetItemGroupData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetItemGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemGroupDataAsync(string request) + { + GetItemGroupDataAsync(request, null); + } + + /// + public void GetItemGroupDataAsync(string request, object userState) + { + if (GetItemGroupDataOperationCompleted == null) + { + GetItemGroupDataOperationCompleted = OnGetItemGroupDataOperationCompleted; + } + InvokeAsync("GetItemGroupData", new object[] { request }, GetItemGroupDataOperationCompleted, userState); + } + + private void OnGetItemGroupDataOperationCompleted(object arg) + { + if (GetItemGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemGroupDataCompleted?.Invoke(this, new GetItemGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetMachineDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetMachineData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetMachineData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMachineData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMachineData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMachineData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMachineDataAsync(string request) + { + GetMachineDataAsync(request, null); + } + + /// + public void GetMachineDataAsync(string request, object userState) + { + if (GetMachineDataOperationCompleted == null) + { + GetMachineDataOperationCompleted = OnGetMachineDataOperationCompleted; + } + InvokeAsync("GetMachineData", new object[] { request }, GetMachineDataOperationCompleted, userState); + } + + private void OnGetMachineDataOperationCompleted(object arg) + { + if (GetMachineDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMachineDataCompleted?.Invoke(this, new GetMachineDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetProdRoutingDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetProdRoutingData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetProdRoutingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProdRoutingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProdRoutingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProdRoutingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProdRoutingDataAsync(string request) + { + GetProdRoutingDataAsync(request, null); + } + + /// + public void GetProdRoutingDataAsync(string request, object userState) + { + if (GetProdRoutingDataOperationCompleted == null) + { + GetProdRoutingDataOperationCompleted = OnGetProdRoutingDataOperationCompleted; + } + InvokeAsync("GetProdRoutingData", new object[] { request }, GetProdRoutingDataOperationCompleted, userState); + } + + private void OnGetProdRoutingDataOperationCompleted(object arg) + { + if (GetProdRoutingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProdRoutingDataCompleted?.Invoke(this, new GetProdRoutingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetWorkstationDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetWorkstationData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetWorkstationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWorkstationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWorkstationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWorkstationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWorkstationDataAsync(string request) + { + GetWorkstationDataAsync(request, null); + } + + /// + public void GetWorkstationDataAsync(string request, object userState) + { + if (GetWorkstationDataOperationCompleted == null) + { + GetWorkstationDataOperationCompleted = OnGetWorkstationDataOperationCompleted; + } + InvokeAsync("GetWorkstationData", new object[] { request }, GetWorkstationDataOperationCompleted, userState); + } + + private void OnGetWorkstationDataOperationCompleted(object arg) + { + if (GetWorkstationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWorkstationDataCompleted?.Invoke(this, new GetWorkstationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "RollbackVoucherDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string RollbackVoucherData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("RollbackVoucherData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginRollbackVoucherData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("RollbackVoucherData", new object[] { request }, callback, asyncState); + } + + /// + public string EndRollbackVoucherData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void RollbackVoucherDataAsync(string request) + { + RollbackVoucherDataAsync(request, null); + } + + /// + public void RollbackVoucherDataAsync(string request, object userState) + { + if (RollbackVoucherDataOperationCompleted == null) + { + RollbackVoucherDataOperationCompleted = OnRollbackVoucherDataOperationCompleted; + } + InvokeAsync("RollbackVoucherData", new object[] { request }, RollbackVoucherDataOperationCompleted, userState); + } + + private void OnRollbackVoucherDataOperationCompleted(object arg) + { + if (RollbackVoucherDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + RollbackVoucherDataCompleted?.Invoke(this, new RollbackVoucherDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateRepSubPBOMDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateRepSubPBOMData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateRepSubPBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateRepSubPBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateRepSubPBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateRepSubPBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateRepSubPBOMDataAsync(string request) + { + CreateRepSubPBOMDataAsync(request, null); + } + + /// + public void CreateRepSubPBOMDataAsync(string request, object userState) + { + if (CreateRepSubPBOMDataOperationCompleted == null) + { + CreateRepSubPBOMDataOperationCompleted = OnCreateRepSubPBOMDataOperationCompleted; + } + InvokeAsync("CreateRepSubPBOMData", new object[] { request }, CreateRepSubPBOMDataOperationCompleted, userState); + } + + private void OnCreateRepSubPBOMDataOperationCompleted(object arg) + { + if (CreateRepSubPBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateRepSubPBOMDataCompleted?.Invoke(this, new CreateRepSubPBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateSupplierItemDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateSupplierItemData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateSupplierItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateSupplierItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateSupplierItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateSupplierItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateSupplierItemDataAsync(string request) + { + CreateSupplierItemDataAsync(request, null); + } + + /// + public void CreateSupplierItemDataAsync(string request, object userState) + { + if (CreateSupplierItemDataOperationCompleted == null) + { + CreateSupplierItemDataOperationCompleted = OnCreateSupplierItemDataOperationCompleted; + } + InvokeAsync("CreateSupplierItemData", new object[] { request }, CreateSupplierItemDataOperationCompleted, userState); + } + + private void OnCreateSupplierItemDataOperationCompleted(object arg) + { + if (CreateSupplierItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateSupplierItemDataCompleted?.Invoke(this, new CreateSupplierItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateECNDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateECNData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateECNData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateECNData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateECNData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateECNData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateECNDataAsync(string request) + { + CreateECNDataAsync(request, null); + } + + /// + public void CreateECNDataAsync(string request, object userState) + { + if (CreateECNDataOperationCompleted == null) + { + CreateECNDataOperationCompleted = OnCreateECNDataOperationCompleted; + } + InvokeAsync("CreateECNData", new object[] { request }, CreateECNDataOperationCompleted, userState); + } + + private void OnCreateECNDataOperationCompleted(object arg) + { + if (CreateECNDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateECNDataCompleted?.Invoke(this, new CreateECNDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "GetBrandDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string GetBrandData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("GetBrandData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBrandData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBrandData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBrandData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBrandDataAsync(string request) + { + GetBrandDataAsync(request, null); + } + + /// + public void GetBrandDataAsync(string request, object userState) + { + if (GetBrandDataOperationCompleted == null) + { + GetBrandDataOperationCompleted = OnGetBrandDataOperationCompleted; + } + InvokeAsync("GetBrandData", new object[] { request }, GetBrandDataOperationCompleted, userState); + } + + private void OnGetBrandDataOperationCompleted(object arg) + { + if (GetBrandDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBrandDataCompleted?.Invoke(this, new GetBrandDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateItemApprovalDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateItemApprovalData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateItemApprovalData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateItemApprovalData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateItemApprovalData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateItemApprovalData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateItemApprovalDataAsync(string request) + { + CreateItemApprovalDataAsync(request, null); + } + + /// + public void CreateItemApprovalDataAsync(string request, object userState) + { + if (CreateItemApprovalDataOperationCompleted == null) + { + CreateItemApprovalDataOperationCompleted = OnCreateItemApprovalDataOperationCompleted; + } + InvokeAsync("CreateItemApprovalData", new object[] { request }, CreateItemApprovalDataOperationCompleted, userState); + } + + private void OnCreateItemApprovalDataOperationCompleted(object arg) + { + if (CreateItemApprovalDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateItemApprovalDataCompleted?.Invoke(this, new CreateItemApprovalDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("", RequestElementName = "CreateWOWorkReportDataRequest", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string CreateWOWorkReportData([XmlElement(IsNullable = true)] string request) + { + object[] results = Invoke("CreateWOWorkReportData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateWOWorkReportData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateWOWorkReportData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateWOWorkReportData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateWOWorkReportDataAsync(string request) + { + CreateWOWorkReportDataAsync(request, null); + } + + /// + public void CreateWOWorkReportDataAsync(string request, object userState) + { + if (CreateWOWorkReportDataOperationCompleted == null) + { + CreateWOWorkReportDataOperationCompleted = OnCreateWOWorkReportDataOperationCompleted; + } + InvokeAsync("CreateWOWorkReportData", new object[] { request }, CreateWOWorkReportDataOperationCompleted, userState); + } + + private void OnCreateWOWorkReportDataOperationCompleted(object arg) + { + if (CreateWOWorkReportDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateWOWorkReportDataCompleted?.Invoke(this, new CreateWOWorkReportDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerDataCompletedEventHandler(object sender, CreateCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateQuotationDataCompletedEventHandler(object sender, CreateQuotationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateQuotationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateQuotationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemDataCompletedEventHandler(object sender, GetItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBOMDataCompletedEventHandler(object sender, GetBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDocumentNumberCompletedEventHandler(object sender, GetDocumentNumberCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDocumentNumberCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDocumentNumberCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateItemMasterDataCompletedEventHandler(object sender, CreateItemMasterDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateItemMasterDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateItemMasterDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateVendorDataCompletedEventHandler(object sender, CreateVendorDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateVendorDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateVendorDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateEmployeeDataCompletedEventHandler(object sender, CreateEmployeeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateEmployeeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateEmployeeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateAddressDataCompletedEventHandler(object sender, CreateAddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateAddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateAddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountSubjectDataCompletedEventHandler(object sender, GetAccountSubjectDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountSubjectDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountSubjectDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAxmDocumentCompletedEventHandler(object sender, GetAxmDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAxmDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAxmDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAreaListCompletedEventHandler(object sender, GetAreaListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAreaListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAreaListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCostGroupDataCompletedEventHandler(object sender, GetCostGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCostGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCostGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountryDataCompletedEventHandler(object sender, GetCountryDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountryDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountryDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountryListCompletedEventHandler(object sender, GetCountryListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountryListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountryListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCurrencyDataCompletedEventHandler(object sender, GetCurrencyDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCurrencyDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCurrencyDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCurrencyListCompletedEventHandler(object sender, GetCurrencyListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCurrencyListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCurrencyListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustListCompletedEventHandler(object sender, GetCustListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerDataCompletedEventHandler(object sender, GetCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerProductDataCompletedEventHandler(object sender, GetCustomerProductDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerProductDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerProductDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDepartmentDataCompletedEventHandler(object sender, GetDepartmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDepartmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDepartmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDepartmentListCompletedEventHandler(object sender, GetDepartmentListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDepartmentListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDepartmentListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetEmployeeDataCompletedEventHandler(object sender, GetEmployeeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetEmployeeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetEmployeeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetEmployeeListCompletedEventHandler(object sender, GetEmployeeListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetEmployeeListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetEmployeeListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemListCompletedEventHandler(object sender, GetItemListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOrganizationListCompletedEventHandler(object sender, GetOrganizationListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOrganizationListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOrganizationListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOverdueAmtRankingDataCompletedEventHandler(object sender, GetOverdueAmtRankingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOverdueAmtRankingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOverdueAmtRankingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProdClassListCompletedEventHandler(object sender, GetProdClassListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProdClassListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProdClassListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSalesDetailDataCompletedEventHandler(object sender, GetSalesDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSalesDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSalesDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSalesStatisticsDataCompletedEventHandler(object sender, GetSalesStatisticsDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSalesStatisticsDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSalesStatisticsDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSOInfoDataCompletedEventHandler(object sender, GetSOInfoDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSOInfoDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSOInfoDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSOInfoDetailDataCompletedEventHandler(object sender, GetSOInfoDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSOInfoDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSOInfoDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSupplierDataCompletedEventHandler(object sender, GetSupplierDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSupplierDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSupplierDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSupplierItemDataCompletedEventHandler(object sender, GetSupplierItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSupplierItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSupplierItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOverdueAmtDetailDataCompletedEventHandler(object sender, GetOverdueAmtDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOverdueAmtDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOverdueAmtDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMonthListCompletedEventHandler(object sender, GetMonthListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMonthListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMonthListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetInspectionDataCompletedEventHandler(object sender, GetInspectionDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetInspectionDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetInspectionDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBOMDataCompletedEventHandler(object sender, CreateBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOperationDataCompletedEventHandler(object sender, GetOperationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOperationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOperationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUnitDataCompletedEventHandler(object sender, GetUnitDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUnitDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUnitDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBasicCodeDataCompletedEventHandler(object sender, GetBasicCodeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBasicCodeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBasicCodeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetComponentrepsubDataCompletedEventHandler(object sender, GetComponentrepsubDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetComponentrepsubDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetComponentrepsubDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAreaDataCompletedEventHandler(object sender, GetAreaDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAreaDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAreaDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWarehouseDataCompletedEventHandler(object sender, GetWarehouseDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWarehouseDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWarehouseDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetLocationDataCompletedEventHandler(object sender, GetLocationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetLocationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetLocationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProductClassDataCompletedEventHandler(object sender, GetProductClassDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProductClassDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProductClassDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateIssueReturnDataCompletedEventHandler(object sender, CreateIssueReturnDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateIssueReturnDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateIssueReturnDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateStockInDataCompletedEventHandler(object sender, CreateStockInDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateStockInDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateStockInDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUserTokenCompletedEventHandler(object sender, GetUserTokenCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUserTokenCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUserTokenCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckUserAuthCompletedEventHandler(object sender, CheckUserAuthCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckUserAuthCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckUserAuthCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMenuDataCompletedEventHandler(object sender, GetMenuDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMenuDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMenuDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckExecAuthorizationCompletedEventHandler(object sender, CheckExecAuthorizationCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckExecAuthorizationCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckExecAuthorizationCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePurchaseStockInCompletedEventHandler(object sender, CreatePurchaseStockInCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePurchaseStockInCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePurchaseStockInCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePurchaseStockOutCompletedEventHandler(object sender, CreatePurchaseStockOutCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePurchaseStockOutCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePurchaseStockOutCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateWOStockinDataCompletedEventHandler(object sender, CreateWOStockinDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateWOStockinDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateWOStockinDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountingLabelDataCompletedEventHandler(object sender, GetCountingLabelDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountingLabelDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountingLabelDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetFQCDataCompletedEventHandler(object sender, GetFQCDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetFQCDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetFQCDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemStockListCompletedEventHandler(object sender, GetItemStockListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemStockListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemStockListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetLabelTypeDataCompletedEventHandler(object sender, GetLabelTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetLabelTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetLabelTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMFGDocumentCompletedEventHandler(object sender, GetMFGDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMFGDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMFGDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPODataCompletedEventHandler(object sender, GetPODataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPODataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPODataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPOReceivingInDataCompletedEventHandler(object sender, GetPOReceivingInDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPOReceivingInDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPOReceivingInDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPOReceivingOutDataCompletedEventHandler(object sender, GetPOReceivingOutDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPOReceivingOutDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPOReceivingOutDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPurchaseStockInQtyCompletedEventHandler(object sender, GetPurchaseStockInQtyCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPurchaseStockInQtyCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPurchaseStockInQtyCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPurchaseStockOutQtyCompletedEventHandler(object sender, GetPurchaseStockOutQtyCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPurchaseStockOutQtyCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPurchaseStockOutQtyCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetReasonCodeCompletedEventHandler(object sender, GetReasonCodeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetReasonCodeCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetReasonCodeCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetReceivingQtyCompletedEventHandler(object sender, GetReceivingQtyCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetReceivingQtyCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetReceivingQtyCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetStockDataCompletedEventHandler(object sender, GetStockDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetStockDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetStockDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWODataCompletedEventHandler(object sender, GetWODataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWODataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWODataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWOIssueDataCompletedEventHandler(object sender, GetWOIssueDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWOIssueDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWOIssueDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWOStockQtyCompletedEventHandler(object sender, GetWOStockQtyCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWOStockQtyCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWOStockQtyCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void UpdateCountingLabelDataCompletedEventHandler(object sender, UpdateCountingLabelDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class UpdateCountingLabelDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal UpdateCountingLabelDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void UpdateWOIssueDataCompletedEventHandler(object sender, UpdateWOIssueDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class UpdateWOIssueDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal UpdateWOIssueDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateSalesReturnCompletedEventHandler(object sender, CreateSalesReturnCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateSalesReturnCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateSalesReturnCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateShippingOrderCompletedEventHandler(object sender, CreateShippingOrderCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateShippingOrderCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateShippingOrderCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateTransferNoteCompletedEventHandler(object sender, CreateTransferNoteCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateTransferNoteCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateTransferNoteCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetQtyConversionCompletedEventHandler(object sender, GetQtyConversionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetQtyConversionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetQtyConversionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetShippingNoticeDataCompletedEventHandler(object sender, GetShippingNoticeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetShippingNoticeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetShippingNoticeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetShippingOrderDataCompletedEventHandler(object sender, GetShippingOrderDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetShippingOrderDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetShippingOrderDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePOReceivingDataCompletedEventHandler(object sender, CreatePOReceivingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePOReceivingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePOReceivingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSalesDocumentCompletedEventHandler(object sender, GetSalesDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSalesDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSalesDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateMISCIssueDataCompletedEventHandler(object sender, CreateMISCIssueDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateMISCIssueDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateMISCIssueDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateStockDataCompletedEventHandler(object sender, CreateStockDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateStockDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateStockDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBOMMasterDataCompletedEventHandler(object sender, CreateBOMMasterDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBOMMasterDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBOMMasterDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void TIPTOPGateWayCompletedEventHandler(object sender, TIPTOPGateWayCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class TIPTOPGateWayCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal TIPTOPGateWayCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBOMDetailDataCompletedEventHandler(object sender, CreateBOMDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBOMDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBOMDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateDepartmentDataCompletedEventHandler(object sender, CreateDepartmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateDepartmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateDepartmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void RunCommandCompletedEventHandler(object sender, RunCommandCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class RunCommandCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal RunCommandCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void EboGetCustDataCompletedEventHandler(object sender, EboGetCustDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class EboGetCustDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal EboGetCustDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void EboGetOrderDataCompletedEventHandler(object sender, EboGetOrderDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class EboGetOrderDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal EboGetOrderDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void EboGetProdDataCompletedEventHandler(object sender, EboGetProdDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class EboGetProdDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal EboGetProdDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckApsExecutionCompletedEventHandler(object sender, CheckApsExecutionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckApsExecutionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckApsExecutionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerContactDataCompletedEventHandler(object sender, GetCustomerContactDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerContactDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerContactDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPackingMethodDataCompletedEventHandler(object sender, GetPackingMethodDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPackingMethodDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPackingMethodDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePotentialCustomerDataCompletedEventHandler(object sender, CreatePotentialCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePotentialCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePotentialCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTaxTypeDataCompletedEventHandler(object sender, GetTaxTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTaxTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTaxTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUnitConversionDataCompletedEventHandler(object sender, GetUnitConversionDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUnitConversionDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUnitConversionDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMFGSettingSmaDataCompletedEventHandler(object sender, GetMFGSettingSmaDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMFGSettingSmaDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMFGSettingSmaDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerOtheraddressDataCompletedEventHandler(object sender, GetCustomerOtheraddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerOtheraddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerOtheraddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerContactDataCompletedEventHandler(object sender, CreateCustomerContactDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerContactDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerContactDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerOtheraddressDataCompletedEventHandler(object sender, CreateCustomerOtheraddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerOtheraddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerOtheraddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPotentialCustomerDataCompletedEventHandler(object sender, GetPotentialCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPotentialCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPotentialCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CRMGetCustomerDataCompletedEventHandler(object sender, CRMGetCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CRMGetCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CRMGetCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTableAmendmentDataCompletedEventHandler(object sender, GetTableAmendmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTableAmendmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTableAmendmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetReportDataCompletedEventHandler(object sender, GetReportDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetReportDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetReportDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountTypeDataCompletedEventHandler(object sender, GetAccountTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountDataCompletedEventHandler(object sender, GetAccountDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateVoucherDataCompletedEventHandler(object sender, CreateVoucherDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateVoucherDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateVoucherDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetVoucherDocumentDataCompletedEventHandler(object sender, GetVoucherDocumentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetVoucherDocumentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetVoucherDocumentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTransactionCategoryCompletedEventHandler(object sender, GetTransactionCategoryCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTransactionCategoryCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTransactionCategoryCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBillingAPCompletedEventHandler(object sender, CreateBillingAPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBillingAPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBillingAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemGroupDataCompletedEventHandler(object sender, GetItemGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMachineDataCompletedEventHandler(object sender, GetMachineDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMachineDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMachineDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProdRoutingDataCompletedEventHandler(object sender, GetProdRoutingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProdRoutingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProdRoutingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWorkstationDataCompletedEventHandler(object sender, GetWorkstationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWorkstationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWorkstationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void RollbackVoucherDataCompletedEventHandler(object sender, RollbackVoucherDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class RollbackVoucherDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal RollbackVoucherDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateRepSubPBOMDataCompletedEventHandler(object sender, CreateRepSubPBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateRepSubPBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateRepSubPBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateSupplierItemDataCompletedEventHandler(object sender, CreateSupplierItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateSupplierItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateSupplierItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateECNDataCompletedEventHandler(object sender, CreateECNDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateECNDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateECNDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBrandDataCompletedEventHandler(object sender, GetBrandDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBrandDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBrandDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateItemApprovalDataCompletedEventHandler(object sender, CreateItemApprovalDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateItemApprovalDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateItemApprovalDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateWOWorkReportDataCompletedEventHandler(object sender, CreateWOWorkReportDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateWOWorkReportDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateWOWorkReportDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.map new file mode 100644 index 0000000..14aaaf9 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/Reference.map @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/TIPTOPServiceGateWay.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/TIPTOPServiceGateWay.wsdl new file mode 100644 index 0000000..8f17a3c --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP/TIPTOPServiceGateWay.wsdl @@ -0,0 +1,3799 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.cs new file mode 100644 index 0000000..b4140cd --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.cs @@ -0,0 +1,7460 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_TP_RPC +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "TIPTOPServiceGateWayBind", Namespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public partial class TIPTOPServiceGateWay : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback CRMGetCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CheckApsExecutionOperationCompleted; + + private System.Threading.SendOrPostCallback CheckUserAuthOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateBillingAPOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerContactDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateCustomerOtheraddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateDepartmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateECNDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateEmployeeDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateIssueReturnDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateItemApprovalDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateItemMasterDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateMISCIssueDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePLMBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePLMTempTableDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreatePotentialCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateQuotationDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateRepSubPBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateSalesOrderDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateShippingOrdersWithoutOrdersOperationCompleted; + + private System.Threading.SendOrPostCallback CreateStockInDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateSupplierItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateVoucherDataOperationCompleted; + + private System.Threading.SendOrPostCallback CreateWOWorkReportDataOperationCompleted; + + private System.Threading.SendOrPostCallback DeletePLMTempTableDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAPCategoryAccountCodeOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountSubjectDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAccountTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAreaDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetAreaListOperationCompleted; + + private System.Threading.SendOrPostCallback GetAxmDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback GetBOMDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetBrandDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetComponentrepsubDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCostGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountryDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCountryListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrencyDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrencyListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustClassificationDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustListOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerContactDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerOtheraddressDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetCustomerProductDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDepartmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetDepartmentListOperationCompleted; + + private System.Threading.SendOrPostCallback GetDocumentNumberOperationCompleted; + + private System.Threading.SendOrPostCallback GetEmployeeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetEmployeeListOperationCompleted; + + private System.Threading.SendOrPostCallback GetExchangeRateDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetInvoiceTypeListOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemListOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemOtherGroupDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetItemStockListOperationCompleted; + + private System.Threading.SendOrPostCallback GetMFGDocumentOperationCompleted; + + private System.Threading.SendOrPostCallback GetMFGSettingSmaDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMachineDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMemoDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetMonthListOperationCompleted; + + private System.Threading.SendOrPostCallback GetOrganizationListOperationCompleted; + + private System.Threading.SendOrPostCallback GetOverdueAmtDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetOverdueAmtRankingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPLMTempTableDataStatusOperationCompleted; + + private System.Threading.SendOrPostCallback GetPackingMethodDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPaymentTermsDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetPotentialCustomerDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProdClassListOperationCompleted; + + private System.Threading.SendOrPostCallback GetProdRoutingDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetProjectWBSDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetReasonCodeOperationCompleted; + + private System.Threading.SendOrPostCallback GetSOInfoDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSOInfoDetailDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSalesStatisticsDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetStockDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSupplierDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetSupplierItemDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTableAmendmentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTaxTypeDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTradeTermDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetTransactionCategoryOperationCompleted; + + private System.Threading.SendOrPostCallback GetUnitConversionDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetUserTokenOperationCompleted; + + private System.Threading.SendOrPostCallback GetVoucherDocumentDataOperationCompleted; + + private System.Threading.SendOrPostCallback GetWorkstationDataOperationCompleted; + + private System.Threading.SendOrPostCallback RollbackBillingAPOperationCompleted; + + private System.Threading.SendOrPostCallback RollbackVoucherDataOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public TIPTOPServiceGateWay() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event CRMGetCustomerDataCompletedEventHandler CRMGetCustomerDataCompleted; + + /// + public event CheckApsExecutionCompletedEventHandler CheckApsExecutionCompleted; + + /// + public event CheckUserAuthCompletedEventHandler CheckUserAuthCompleted; + + /// + public event CreateBOMDataCompletedEventHandler CreateBOMDataCompleted; + + /// + public event CreateBillingAPCompletedEventHandler CreateBillingAPCompleted; + + /// + public event CreateCustomerContactDataCompletedEventHandler CreateCustomerContactDataCompleted; + + /// + public event CreateCustomerDataCompletedEventHandler CreateCustomerDataCompleted; + + /// + public event CreateCustomerOtheraddressDataCompletedEventHandler CreateCustomerOtheraddressDataCompleted; + + /// + public event CreateDepartmentDataCompletedEventHandler CreateDepartmentDataCompleted; + + /// + public event CreateECNDataCompletedEventHandler CreateECNDataCompleted; + + /// + public event CreateEmployeeDataCompletedEventHandler CreateEmployeeDataCompleted; + + /// + public event CreateIssueReturnDataCompletedEventHandler CreateIssueReturnDataCompleted; + + /// + public event CreateItemApprovalDataCompletedEventHandler CreateItemApprovalDataCompleted; + + /// + public event CreateItemMasterDataCompletedEventHandler CreateItemMasterDataCompleted; + + /// + public event CreateMISCIssueDataCompletedEventHandler CreateMISCIssueDataCompleted; + + /// + public event CreatePLMBOMDataCompletedEventHandler CreatePLMBOMDataCompleted; + + /// + public event CreatePLMTempTableDataCompletedEventHandler CreatePLMTempTableDataCompleted; + + /// + public event CreatePotentialCustomerDataCompletedEventHandler CreatePotentialCustomerDataCompleted; + + /// + public event CreateQuotationDataCompletedEventHandler CreateQuotationDataCompleted; + + /// + public event CreateRepSubPBOMDataCompletedEventHandler CreateRepSubPBOMDataCompleted; + + /// + public event CreateSalesOrderDataCompletedEventHandler CreateSalesOrderDataCompleted; + + /// + public event CreateShippingOrdersWithoutOrdersCompletedEventHandler CreateShippingOrdersWithoutOrdersCompleted; + + /// + public event CreateStockInDataCompletedEventHandler CreateStockInDataCompleted; + + /// + public event CreateSupplierItemDataCompletedEventHandler CreateSupplierItemDataCompleted; + + /// + public event CreateVoucherDataCompletedEventHandler CreateVoucherDataCompleted; + + /// + public event CreateWOWorkReportDataCompletedEventHandler CreateWOWorkReportDataCompleted; + + /// + public event DeletePLMTempTableDataCompletedEventHandler DeletePLMTempTableDataCompleted; + + /// + public event GetAPCategoryAccountCodeCompletedEventHandler GetAPCategoryAccountCodeCompleted; + + /// + public event GetAccountDataCompletedEventHandler GetAccountDataCompleted; + + /// + public event GetAccountSubjectDataCompletedEventHandler GetAccountSubjectDataCompleted; + + /// + public event GetAccountTypeDataCompletedEventHandler GetAccountTypeDataCompleted; + + /// + public event GetAreaDataCompletedEventHandler GetAreaDataCompleted; + + /// + public event GetAreaListCompletedEventHandler GetAreaListCompleted; + + /// + public event GetAxmDocumentCompletedEventHandler GetAxmDocumentCompleted; + + /// + public event GetBOMDataCompletedEventHandler GetBOMDataCompleted; + + /// + public event GetBrandDataCompletedEventHandler GetBrandDataCompleted; + + /// + public event GetComponentrepsubDataCompletedEventHandler GetComponentrepsubDataCompleted; + + /// + public event GetCostGroupDataCompletedEventHandler GetCostGroupDataCompleted; + + /// + public event GetCountryDataCompletedEventHandler GetCountryDataCompleted; + + /// + public event GetCountryListCompletedEventHandler GetCountryListCompleted; + + /// + public event GetCurrencyDataCompletedEventHandler GetCurrencyDataCompleted; + + /// + public event GetCurrencyListCompletedEventHandler GetCurrencyListCompleted; + + /// + public event GetCustClassificationDataCompletedEventHandler GetCustClassificationDataCompleted; + + /// + public event GetCustListCompletedEventHandler GetCustListCompleted; + + /// + public event GetCustomerContactDataCompletedEventHandler GetCustomerContactDataCompleted; + + /// + public event GetCustomerDataCompletedEventHandler GetCustomerDataCompleted; + + /// + public event GetCustomerOtheraddressDataCompletedEventHandler GetCustomerOtheraddressDataCompleted; + + /// + public event GetCustomerProductDataCompletedEventHandler GetCustomerProductDataCompleted; + + /// + public event GetDepartmentDataCompletedEventHandler GetDepartmentDataCompleted; + + /// + public event GetDepartmentListCompletedEventHandler GetDepartmentListCompleted; + + /// + public event GetDocumentNumberCompletedEventHandler GetDocumentNumberCompleted; + + /// + public event GetEmployeeDataCompletedEventHandler GetEmployeeDataCompleted; + + /// + public event GetEmployeeListCompletedEventHandler GetEmployeeListCompleted; + + /// + public event GetExchangeRateDataCompletedEventHandler GetExchangeRateDataCompleted; + + /// + public event GetInvoiceTypeListCompletedEventHandler GetInvoiceTypeListCompleted; + + /// + public event GetItemDataCompletedEventHandler GetItemDataCompleted; + + /// + public event GetItemGroupDataCompletedEventHandler GetItemGroupDataCompleted; + + /// + public event GetItemListCompletedEventHandler GetItemListCompleted; + + /// + public event GetItemOtherGroupDataCompletedEventHandler GetItemOtherGroupDataCompleted; + + /// + public event GetItemStockListCompletedEventHandler GetItemStockListCompleted; + + /// + public event GetMFGDocumentCompletedEventHandler GetMFGDocumentCompleted; + + /// + public event GetMFGSettingSmaDataCompletedEventHandler GetMFGSettingSmaDataCompleted; + + /// + public event GetMachineDataCompletedEventHandler GetMachineDataCompleted; + + /// + public event GetMemoDataCompletedEventHandler GetMemoDataCompleted; + + /// + public event GetMonthListCompletedEventHandler GetMonthListCompleted; + + /// + public event GetOrganizationListCompletedEventHandler GetOrganizationListCompleted; + + /// + public event GetOverdueAmtDetailDataCompletedEventHandler GetOverdueAmtDetailDataCompleted; + + /// + public event GetOverdueAmtRankingDataCompletedEventHandler GetOverdueAmtRankingDataCompleted; + + /// + public event GetPLMTempTableDataStatusCompletedEventHandler GetPLMTempTableDataStatusCompleted; + + /// + public event GetPackingMethodDataCompletedEventHandler GetPackingMethodDataCompleted; + + /// + public event GetPaymentTermsDataCompletedEventHandler GetPaymentTermsDataCompleted; + + /// + public event GetPotentialCustomerDataCompletedEventHandler GetPotentialCustomerDataCompleted; + + /// + public event GetProdClassListCompletedEventHandler GetProdClassListCompleted; + + /// + public event GetProdRoutingDataCompletedEventHandler GetProdRoutingDataCompleted; + + /// + public event GetProjectWBSDataCompletedEventHandler GetProjectWBSDataCompleted; + + /// + public event GetReasonCodeCompletedEventHandler GetReasonCodeCompleted; + + /// + public event GetSOInfoDataCompletedEventHandler GetSOInfoDataCompleted; + + /// + public event GetSOInfoDetailDataCompletedEventHandler GetSOInfoDetailDataCompleted; + + /// + public event GetSalesStatisticsDataCompletedEventHandler GetSalesStatisticsDataCompleted; + + /// + public event GetStockDataCompletedEventHandler GetStockDataCompleted; + + /// + public event GetSupplierDataCompletedEventHandler GetSupplierDataCompleted; + + /// + public event GetSupplierItemDataCompletedEventHandler GetSupplierItemDataCompleted; + + /// + public event GetTableAmendmentDataCompletedEventHandler GetTableAmendmentDataCompleted; + + /// + public event GetTaxTypeDataCompletedEventHandler GetTaxTypeDataCompleted; + + /// + public event GetTradeTermDataCompletedEventHandler GetTradeTermDataCompleted; + + /// + public event GetTransactionCategoryCompletedEventHandler GetTransactionCategoryCompleted; + + /// + public event GetUnitConversionDataCompletedEventHandler GetUnitConversionDataCompleted; + + /// + public event GetUserTokenCompletedEventHandler GetUserTokenCompleted; + + /// + public event GetVoucherDocumentDataCompletedEventHandler GetVoucherDocumentDataCompleted; + + /// + public event GetWorkstationDataCompletedEventHandler GetWorkstationDataCompleted; + + /// + public event RollbackBillingAPCompletedEventHandler RollbackBillingAPCompleted; + + /// + public event RollbackVoucherDataCompletedEventHandler RollbackVoucherDataCompleted; + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CRMGetCustomerData(string request) + { + object[] results = Invoke("CRMGetCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCRMGetCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CRMGetCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCRMGetCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CRMGetCustomerDataAsync(string request) + { + CRMGetCustomerDataAsync(request, null); + } + + /// + public void CRMGetCustomerDataAsync(string request, object userState) + { + if (CRMGetCustomerDataOperationCompleted == null) + { + CRMGetCustomerDataOperationCompleted = OnCRMGetCustomerDataOperationCompleted; + } + InvokeAsync("CRMGetCustomerData", new object[] { request }, CRMGetCustomerDataOperationCompleted, userState); + } + + private void OnCRMGetCustomerDataOperationCompleted(object arg) + { + if (CRMGetCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CRMGetCustomerDataCompleted?.Invoke(this, new CRMGetCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CheckApsExecution(string request) + { + object[] results = Invoke("CheckApsExecution", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckApsExecution(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckApsExecution", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckApsExecution(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckApsExecutionAsync(string request) + { + CheckApsExecutionAsync(request, null); + } + + /// + public void CheckApsExecutionAsync(string request, object userState) + { + if (CheckApsExecutionOperationCompleted == null) + { + CheckApsExecutionOperationCompleted = OnCheckApsExecutionOperationCompleted; + } + InvokeAsync("CheckApsExecution", new object[] { request }, CheckApsExecutionOperationCompleted, userState); + } + + private void OnCheckApsExecutionOperationCompleted(object arg) + { + if (CheckApsExecutionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckApsExecutionCompleted?.Invoke(this, new CheckApsExecutionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CheckUserAuth(string request) + { + object[] results = Invoke("CheckUserAuth", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCheckUserAuth(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CheckUserAuth", new object[] { request }, callback, asyncState); + } + + /// + public string EndCheckUserAuth(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CheckUserAuthAsync(string request) + { + CheckUserAuthAsync(request, null); + } + + /// + public void CheckUserAuthAsync(string request, object userState) + { + if (CheckUserAuthOperationCompleted == null) + { + CheckUserAuthOperationCompleted = OnCheckUserAuthOperationCompleted; + } + InvokeAsync("CheckUserAuth", new object[] { request }, CheckUserAuthOperationCompleted, userState); + } + + private void OnCheckUserAuthOperationCompleted(object arg) + { + if (CheckUserAuthCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CheckUserAuthCompleted?.Invoke(this, new CheckUserAuthCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateBOMData(string request) + { + object[] results = Invoke("CreateBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBOMDataAsync(string request) + { + CreateBOMDataAsync(request, null); + } + + /// + public void CreateBOMDataAsync(string request, object userState) + { + if (CreateBOMDataOperationCompleted == null) + { + CreateBOMDataOperationCompleted = OnCreateBOMDataOperationCompleted; + } + InvokeAsync("CreateBOMData", new object[] { request }, CreateBOMDataOperationCompleted, userState); + } + + private void OnCreateBOMDataOperationCompleted(object arg) + { + if (CreateBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBOMDataCompleted?.Invoke(this, new CreateBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateBillingAP(string request) + { + object[] results = Invoke("CreateBillingAP", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateBillingAP(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateBillingAP", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateBillingAP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateBillingAPAsync(string request) + { + CreateBillingAPAsync(request, null); + } + + /// + public void CreateBillingAPAsync(string request, object userState) + { + if (CreateBillingAPOperationCompleted == null) + { + CreateBillingAPOperationCompleted = OnCreateBillingAPOperationCompleted; + } + InvokeAsync("CreateBillingAP", new object[] { request }, CreateBillingAPOperationCompleted, userState); + } + + private void OnCreateBillingAPOperationCompleted(object arg) + { + if (CreateBillingAPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateBillingAPCompleted?.Invoke(this, new CreateBillingAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateCustomerContactData(string request) + { + object[] results = Invoke("CreateCustomerContactData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerContactData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerContactData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerContactData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerContactDataAsync(string request) + { + CreateCustomerContactDataAsync(request, null); + } + + /// + public void CreateCustomerContactDataAsync(string request, object userState) + { + if (CreateCustomerContactDataOperationCompleted == null) + { + CreateCustomerContactDataOperationCompleted = OnCreateCustomerContactDataOperationCompleted; + } + InvokeAsync("CreateCustomerContactData", new object[] { request }, CreateCustomerContactDataOperationCompleted, userState); + } + + private void OnCreateCustomerContactDataOperationCompleted(object arg) + { + if (CreateCustomerContactDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerContactDataCompleted?.Invoke(this, new CreateCustomerContactDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateCustomerData(string request) + { + object[] results = Invoke("CreateCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerDataAsync(string request) + { + CreateCustomerDataAsync(request, null); + } + + /// + public void CreateCustomerDataAsync(string request, object userState) + { + if (CreateCustomerDataOperationCompleted == null) + { + CreateCustomerDataOperationCompleted = OnCreateCustomerDataOperationCompleted; + } + InvokeAsync("CreateCustomerData", new object[] { request }, CreateCustomerDataOperationCompleted, userState); + } + + private void OnCreateCustomerDataOperationCompleted(object arg) + { + if (CreateCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerDataCompleted?.Invoke(this, new CreateCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateCustomerOtheraddressData(string request) + { + object[] results = Invoke("CreateCustomerOtheraddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateCustomerOtheraddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateCustomerOtheraddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateCustomerOtheraddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateCustomerOtheraddressDataAsync(string request) + { + CreateCustomerOtheraddressDataAsync(request, null); + } + + /// + public void CreateCustomerOtheraddressDataAsync(string request, object userState) + { + if (CreateCustomerOtheraddressDataOperationCompleted == null) + { + CreateCustomerOtheraddressDataOperationCompleted = OnCreateCustomerOtheraddressDataOperationCompleted; + } + InvokeAsync("CreateCustomerOtheraddressData", new object[] { request }, CreateCustomerOtheraddressDataOperationCompleted, userState); + } + + private void OnCreateCustomerOtheraddressDataOperationCompleted(object arg) + { + if (CreateCustomerOtheraddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateCustomerOtheraddressDataCompleted?.Invoke(this, new CreateCustomerOtheraddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateDepartmentData(string request) + { + object[] results = Invoke("CreateDepartmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateDepartmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateDepartmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateDepartmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateDepartmentDataAsync(string request) + { + CreateDepartmentDataAsync(request, null); + } + + /// + public void CreateDepartmentDataAsync(string request, object userState) + { + if (CreateDepartmentDataOperationCompleted == null) + { + CreateDepartmentDataOperationCompleted = OnCreateDepartmentDataOperationCompleted; + } + InvokeAsync("CreateDepartmentData", new object[] { request }, CreateDepartmentDataOperationCompleted, userState); + } + + private void OnCreateDepartmentDataOperationCompleted(object arg) + { + if (CreateDepartmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateDepartmentDataCompleted?.Invoke(this, new CreateDepartmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateECNData(string request) + { + object[] results = Invoke("CreateECNData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateECNData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateECNData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateECNData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateECNDataAsync(string request) + { + CreateECNDataAsync(request, null); + } + + /// + public void CreateECNDataAsync(string request, object userState) + { + if (CreateECNDataOperationCompleted == null) + { + CreateECNDataOperationCompleted = OnCreateECNDataOperationCompleted; + } + InvokeAsync("CreateECNData", new object[] { request }, CreateECNDataOperationCompleted, userState); + } + + private void OnCreateECNDataOperationCompleted(object arg) + { + if (CreateECNDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateECNDataCompleted?.Invoke(this, new CreateECNDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateEmployeeData(string request) + { + object[] results = Invoke("CreateEmployeeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateEmployeeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateEmployeeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateEmployeeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateEmployeeDataAsync(string request) + { + CreateEmployeeDataAsync(request, null); + } + + /// + public void CreateEmployeeDataAsync(string request, object userState) + { + if (CreateEmployeeDataOperationCompleted == null) + { + CreateEmployeeDataOperationCompleted = OnCreateEmployeeDataOperationCompleted; + } + InvokeAsync("CreateEmployeeData", new object[] { request }, CreateEmployeeDataOperationCompleted, userState); + } + + private void OnCreateEmployeeDataOperationCompleted(object arg) + { + if (CreateEmployeeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateEmployeeDataCompleted?.Invoke(this, new CreateEmployeeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateIssueReturnData(string request) + { + object[] results = Invoke("CreateIssueReturnData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateIssueReturnData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateIssueReturnData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateIssueReturnData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateIssueReturnDataAsync(string request) + { + CreateIssueReturnDataAsync(request, null); + } + + /// + public void CreateIssueReturnDataAsync(string request, object userState) + { + if (CreateIssueReturnDataOperationCompleted == null) + { + CreateIssueReturnDataOperationCompleted = OnCreateIssueReturnDataOperationCompleted; + } + InvokeAsync("CreateIssueReturnData", new object[] { request }, CreateIssueReturnDataOperationCompleted, userState); + } + + private void OnCreateIssueReturnDataOperationCompleted(object arg) + { + if (CreateIssueReturnDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateIssueReturnDataCompleted?.Invoke(this, new CreateIssueReturnDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateItemApprovalData(string request) + { + object[] results = Invoke("CreateItemApprovalData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateItemApprovalData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateItemApprovalData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateItemApprovalData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateItemApprovalDataAsync(string request) + { + CreateItemApprovalDataAsync(request, null); + } + + /// + public void CreateItemApprovalDataAsync(string request, object userState) + { + if (CreateItemApprovalDataOperationCompleted == null) + { + CreateItemApprovalDataOperationCompleted = OnCreateItemApprovalDataOperationCompleted; + } + InvokeAsync("CreateItemApprovalData", new object[] { request }, CreateItemApprovalDataOperationCompleted, userState); + } + + private void OnCreateItemApprovalDataOperationCompleted(object arg) + { + if (CreateItemApprovalDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateItemApprovalDataCompleted?.Invoke(this, new CreateItemApprovalDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateItemMasterData(string request) + { + object[] results = Invoke("CreateItemMasterData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateItemMasterData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateItemMasterData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateItemMasterData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateItemMasterDataAsync(string request) + { + CreateItemMasterDataAsync(request, null); + } + + /// + public void CreateItemMasterDataAsync(string request, object userState) + { + if (CreateItemMasterDataOperationCompleted == null) + { + CreateItemMasterDataOperationCompleted = OnCreateItemMasterDataOperationCompleted; + } + InvokeAsync("CreateItemMasterData", new object[] { request }, CreateItemMasterDataOperationCompleted, userState); + } + + private void OnCreateItemMasterDataOperationCompleted(object arg) + { + if (CreateItemMasterDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateItemMasterDataCompleted?.Invoke(this, new CreateItemMasterDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateMISCIssueData(string request) + { + object[] results = Invoke("CreateMISCIssueData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateMISCIssueData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateMISCIssueData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateMISCIssueData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateMISCIssueDataAsync(string request) + { + CreateMISCIssueDataAsync(request, null); + } + + /// + public void CreateMISCIssueDataAsync(string request, object userState) + { + if (CreateMISCIssueDataOperationCompleted == null) + { + CreateMISCIssueDataOperationCompleted = OnCreateMISCIssueDataOperationCompleted; + } + InvokeAsync("CreateMISCIssueData", new object[] { request }, CreateMISCIssueDataOperationCompleted, userState); + } + + private void OnCreateMISCIssueDataOperationCompleted(object arg) + { + if (CreateMISCIssueDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateMISCIssueDataCompleted?.Invoke(this, new CreateMISCIssueDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreatePLMBOMData(string request) + { + object[] results = Invoke("CreatePLMBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePLMBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePLMBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePLMBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePLMBOMDataAsync(string request) + { + CreatePLMBOMDataAsync(request, null); + } + + /// + public void CreatePLMBOMDataAsync(string request, object userState) + { + if (CreatePLMBOMDataOperationCompleted == null) + { + CreatePLMBOMDataOperationCompleted = OnCreatePLMBOMDataOperationCompleted; + } + InvokeAsync("CreatePLMBOMData", new object[] { request }, CreatePLMBOMDataOperationCompleted, userState); + } + + private void OnCreatePLMBOMDataOperationCompleted(object arg) + { + if (CreatePLMBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePLMBOMDataCompleted?.Invoke(this, new CreatePLMBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreatePLMTempTableData(string request) + { + object[] results = Invoke("CreatePLMTempTableData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePLMTempTableData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePLMTempTableData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePLMTempTableData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePLMTempTableDataAsync(string request) + { + CreatePLMTempTableDataAsync(request, null); + } + + /// + public void CreatePLMTempTableDataAsync(string request, object userState) + { + if (CreatePLMTempTableDataOperationCompleted == null) + { + CreatePLMTempTableDataOperationCompleted = OnCreatePLMTempTableDataOperationCompleted; + } + InvokeAsync("CreatePLMTempTableData", new object[] { request }, CreatePLMTempTableDataOperationCompleted, userState); + } + + private void OnCreatePLMTempTableDataOperationCompleted(object arg) + { + if (CreatePLMTempTableDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePLMTempTableDataCompleted?.Invoke(this, new CreatePLMTempTableDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreatePotentialCustomerData(string request) + { + object[] results = Invoke("CreatePotentialCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreatePotentialCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreatePotentialCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreatePotentialCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreatePotentialCustomerDataAsync(string request) + { + CreatePotentialCustomerDataAsync(request, null); + } + + /// + public void CreatePotentialCustomerDataAsync(string request, object userState) + { + if (CreatePotentialCustomerDataOperationCompleted == null) + { + CreatePotentialCustomerDataOperationCompleted = OnCreatePotentialCustomerDataOperationCompleted; + } + InvokeAsync("CreatePotentialCustomerData", new object[] { request }, CreatePotentialCustomerDataOperationCompleted, userState); + } + + private void OnCreatePotentialCustomerDataOperationCompleted(object arg) + { + if (CreatePotentialCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreatePotentialCustomerDataCompleted?.Invoke(this, new CreatePotentialCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateQuotationData(string request) + { + object[] results = Invoke("CreateQuotationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateQuotationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateQuotationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateQuotationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateQuotationDataAsync(string request) + { + CreateQuotationDataAsync(request, null); + } + + /// + public void CreateQuotationDataAsync(string request, object userState) + { + if (CreateQuotationDataOperationCompleted == null) + { + CreateQuotationDataOperationCompleted = OnCreateQuotationDataOperationCompleted; + } + InvokeAsync("CreateQuotationData", new object[] { request }, CreateQuotationDataOperationCompleted, userState); + } + + private void OnCreateQuotationDataOperationCompleted(object arg) + { + if (CreateQuotationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateQuotationDataCompleted?.Invoke(this, new CreateQuotationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateRepSubPBOMData(string request) + { + object[] results = Invoke("CreateRepSubPBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateRepSubPBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateRepSubPBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateRepSubPBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateRepSubPBOMDataAsync(string request) + { + CreateRepSubPBOMDataAsync(request, null); + } + + /// + public void CreateRepSubPBOMDataAsync(string request, object userState) + { + if (CreateRepSubPBOMDataOperationCompleted == null) + { + CreateRepSubPBOMDataOperationCompleted = OnCreateRepSubPBOMDataOperationCompleted; + } + InvokeAsync("CreateRepSubPBOMData", new object[] { request }, CreateRepSubPBOMDataOperationCompleted, userState); + } + + private void OnCreateRepSubPBOMDataOperationCompleted(object arg) + { + if (CreateRepSubPBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateRepSubPBOMDataCompleted?.Invoke(this, new CreateRepSubPBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateSalesOrderData(string request) + { + object[] results = Invoke("CreateSalesOrderData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateSalesOrderData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateSalesOrderData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateSalesOrderData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateSalesOrderDataAsync(string request) + { + CreateSalesOrderDataAsync(request, null); + } + + /// + public void CreateSalesOrderDataAsync(string request, object userState) + { + if (CreateSalesOrderDataOperationCompleted == null) + { + CreateSalesOrderDataOperationCompleted = OnCreateSalesOrderDataOperationCompleted; + } + InvokeAsync("CreateSalesOrderData", new object[] { request }, CreateSalesOrderDataOperationCompleted, userState); + } + + private void OnCreateSalesOrderDataOperationCompleted(object arg) + { + if (CreateSalesOrderDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateSalesOrderDataCompleted?.Invoke(this, new CreateSalesOrderDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateShippingOrdersWithoutOrders(string request) + { + object[] results = Invoke("CreateShippingOrdersWithoutOrders", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateShippingOrdersWithoutOrders(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateShippingOrdersWithoutOrders", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateShippingOrdersWithoutOrders(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateShippingOrdersWithoutOrdersAsync(string request) + { + CreateShippingOrdersWithoutOrdersAsync(request, null); + } + + /// + public void CreateShippingOrdersWithoutOrdersAsync(string request, object userState) + { + if (CreateShippingOrdersWithoutOrdersOperationCompleted == null) + { + CreateShippingOrdersWithoutOrdersOperationCompleted = OnCreateShippingOrdersWithoutOrdersOperationCompleted; + } + InvokeAsync("CreateShippingOrdersWithoutOrders", new object[] { request }, CreateShippingOrdersWithoutOrdersOperationCompleted, userState); + } + + private void OnCreateShippingOrdersWithoutOrdersOperationCompleted(object arg) + { + if (CreateShippingOrdersWithoutOrdersCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateShippingOrdersWithoutOrdersCompleted?.Invoke(this, new CreateShippingOrdersWithoutOrdersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateStockInData(string request) + { + object[] results = Invoke("CreateStockInData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateStockInData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateStockInData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateStockInData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateStockInDataAsync(string request) + { + CreateStockInDataAsync(request, null); + } + + /// + public void CreateStockInDataAsync(string request, object userState) + { + if (CreateStockInDataOperationCompleted == null) + { + CreateStockInDataOperationCompleted = OnCreateStockInDataOperationCompleted; + } + InvokeAsync("CreateStockInData", new object[] { request }, CreateStockInDataOperationCompleted, userState); + } + + private void OnCreateStockInDataOperationCompleted(object arg) + { + if (CreateStockInDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateStockInDataCompleted?.Invoke(this, new CreateStockInDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateSupplierItemData(string request) + { + object[] results = Invoke("CreateSupplierItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateSupplierItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateSupplierItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateSupplierItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateSupplierItemDataAsync(string request) + { + CreateSupplierItemDataAsync(request, null); + } + + /// + public void CreateSupplierItemDataAsync(string request, object userState) + { + if (CreateSupplierItemDataOperationCompleted == null) + { + CreateSupplierItemDataOperationCompleted = OnCreateSupplierItemDataOperationCompleted; + } + InvokeAsync("CreateSupplierItemData", new object[] { request }, CreateSupplierItemDataOperationCompleted, userState); + } + + private void OnCreateSupplierItemDataOperationCompleted(object arg) + { + if (CreateSupplierItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateSupplierItemDataCompleted?.Invoke(this, new CreateSupplierItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateVoucherData(string request) + { + object[] results = Invoke("CreateVoucherData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateVoucherData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateVoucherData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateVoucherData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateVoucherDataAsync(string request) + { + CreateVoucherDataAsync(request, null); + } + + /// + public void CreateVoucherDataAsync(string request, object userState) + { + if (CreateVoucherDataOperationCompleted == null) + { + CreateVoucherDataOperationCompleted = OnCreateVoucherDataOperationCompleted; + } + InvokeAsync("CreateVoucherData", new object[] { request }, CreateVoucherDataOperationCompleted, userState); + } + + private void OnCreateVoucherDataOperationCompleted(object arg) + { + if (CreateVoucherDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateVoucherDataCompleted?.Invoke(this, new CreateVoucherDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string CreateWOWorkReportData(string request) + { + object[] results = Invoke("CreateWOWorkReportData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginCreateWOWorkReportData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("CreateWOWorkReportData", new object[] { request }, callback, asyncState); + } + + /// + public string EndCreateWOWorkReportData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void CreateWOWorkReportDataAsync(string request) + { + CreateWOWorkReportDataAsync(request, null); + } + + /// + public void CreateWOWorkReportDataAsync(string request, object userState) + { + if (CreateWOWorkReportDataOperationCompleted == null) + { + CreateWOWorkReportDataOperationCompleted = OnCreateWOWorkReportDataOperationCompleted; + } + InvokeAsync("CreateWOWorkReportData", new object[] { request }, CreateWOWorkReportDataOperationCompleted, userState); + } + + private void OnCreateWOWorkReportDataOperationCompleted(object arg) + { + if (CreateWOWorkReportDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + CreateWOWorkReportDataCompleted?.Invoke(this, new CreateWOWorkReportDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string DeletePLMTempTableData(string request) + { + object[] results = Invoke("DeletePLMTempTableData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginDeletePLMTempTableData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("DeletePLMTempTableData", new object[] { request }, callback, asyncState); + } + + /// + public string EndDeletePLMTempTableData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void DeletePLMTempTableDataAsync(string request) + { + DeletePLMTempTableDataAsync(request, null); + } + + /// + public void DeletePLMTempTableDataAsync(string request, object userState) + { + if (DeletePLMTempTableDataOperationCompleted == null) + { + DeletePLMTempTableDataOperationCompleted = OnDeletePLMTempTableDataOperationCompleted; + } + InvokeAsync("DeletePLMTempTableData", new object[] { request }, DeletePLMTempTableDataOperationCompleted, userState); + } + + private void OnDeletePLMTempTableDataOperationCompleted(object arg) + { + if (DeletePLMTempTableDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + DeletePLMTempTableDataCompleted?.Invoke(this, new DeletePLMTempTableDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAPCategoryAccountCode(string request) + { + object[] results = Invoke("GetAPCategoryAccountCode", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAPCategoryAccountCode(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAPCategoryAccountCode", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAPCategoryAccountCode(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAPCategoryAccountCodeAsync(string request) + { + GetAPCategoryAccountCodeAsync(request, null); + } + + /// + public void GetAPCategoryAccountCodeAsync(string request, object userState) + { + if (GetAPCategoryAccountCodeOperationCompleted == null) + { + GetAPCategoryAccountCodeOperationCompleted = OnGetAPCategoryAccountCodeOperationCompleted; + } + InvokeAsync("GetAPCategoryAccountCode", new object[] { request }, GetAPCategoryAccountCodeOperationCompleted, userState); + } + + private void OnGetAPCategoryAccountCodeOperationCompleted(object arg) + { + if (GetAPCategoryAccountCodeCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAPCategoryAccountCodeCompleted?.Invoke(this, new GetAPCategoryAccountCodeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAccountData(string request) + { + object[] results = Invoke("GetAccountData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountDataAsync(string request) + { + GetAccountDataAsync(request, null); + } + + /// + public void GetAccountDataAsync(string request, object userState) + { + if (GetAccountDataOperationCompleted == null) + { + GetAccountDataOperationCompleted = OnGetAccountDataOperationCompleted; + } + InvokeAsync("GetAccountData", new object[] { request }, GetAccountDataOperationCompleted, userState); + } + + private void OnGetAccountDataOperationCompleted(object arg) + { + if (GetAccountDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountDataCompleted?.Invoke(this, new GetAccountDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAccountSubjectData(string request) + { + object[] results = Invoke("GetAccountSubjectData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountSubjectData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountSubjectData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountSubjectData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountSubjectDataAsync(string request) + { + GetAccountSubjectDataAsync(request, null); + } + + /// + public void GetAccountSubjectDataAsync(string request, object userState) + { + if (GetAccountSubjectDataOperationCompleted == null) + { + GetAccountSubjectDataOperationCompleted = OnGetAccountSubjectDataOperationCompleted; + } + InvokeAsync("GetAccountSubjectData", new object[] { request }, GetAccountSubjectDataOperationCompleted, userState); + } + + private void OnGetAccountSubjectDataOperationCompleted(object arg) + { + if (GetAccountSubjectDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountSubjectDataCompleted?.Invoke(this, new GetAccountSubjectDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAccountTypeData(string request) + { + object[] results = Invoke("GetAccountTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAccountTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAccountTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAccountTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAccountTypeDataAsync(string request) + { + GetAccountTypeDataAsync(request, null); + } + + /// + public void GetAccountTypeDataAsync(string request, object userState) + { + if (GetAccountTypeDataOperationCompleted == null) + { + GetAccountTypeDataOperationCompleted = OnGetAccountTypeDataOperationCompleted; + } + InvokeAsync("GetAccountTypeData", new object[] { request }, GetAccountTypeDataOperationCompleted, userState); + } + + private void OnGetAccountTypeDataOperationCompleted(object arg) + { + if (GetAccountTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAccountTypeDataCompleted?.Invoke(this, new GetAccountTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAreaData(string request) + { + object[] results = Invoke("GetAreaData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAreaData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAreaData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAreaData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAreaDataAsync(string request) + { + GetAreaDataAsync(request, null); + } + + /// + public void GetAreaDataAsync(string request, object userState) + { + if (GetAreaDataOperationCompleted == null) + { + GetAreaDataOperationCompleted = OnGetAreaDataOperationCompleted; + } + InvokeAsync("GetAreaData", new object[] { request }, GetAreaDataOperationCompleted, userState); + } + + private void OnGetAreaDataOperationCompleted(object arg) + { + if (GetAreaDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAreaDataCompleted?.Invoke(this, new GetAreaDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAreaList(string request) + { + object[] results = Invoke("GetAreaList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAreaList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAreaList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAreaList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAreaListAsync(string request) + { + GetAreaListAsync(request, null); + } + + /// + public void GetAreaListAsync(string request, object userState) + { + if (GetAreaListOperationCompleted == null) + { + GetAreaListOperationCompleted = OnGetAreaListOperationCompleted; + } + InvokeAsync("GetAreaList", new object[] { request }, GetAreaListOperationCompleted, userState); + } + + private void OnGetAreaListOperationCompleted(object arg) + { + if (GetAreaListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAreaListCompleted?.Invoke(this, new GetAreaListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetAxmDocument(string request) + { + object[] results = Invoke("GetAxmDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetAxmDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetAxmDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetAxmDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetAxmDocumentAsync(string request) + { + GetAxmDocumentAsync(request, null); + } + + /// + public void GetAxmDocumentAsync(string request, object userState) + { + if (GetAxmDocumentOperationCompleted == null) + { + GetAxmDocumentOperationCompleted = OnGetAxmDocumentOperationCompleted; + } + InvokeAsync("GetAxmDocument", new object[] { request }, GetAxmDocumentOperationCompleted, userState); + } + + private void OnGetAxmDocumentOperationCompleted(object arg) + { + if (GetAxmDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetAxmDocumentCompleted?.Invoke(this, new GetAxmDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetBOMData(string request) + { + object[] results = Invoke("GetBOMData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBOMData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBOMData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBOMData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBOMDataAsync(string request) + { + GetBOMDataAsync(request, null); + } + + /// + public void GetBOMDataAsync(string request, object userState) + { + if (GetBOMDataOperationCompleted == null) + { + GetBOMDataOperationCompleted = OnGetBOMDataOperationCompleted; + } + InvokeAsync("GetBOMData", new object[] { request }, GetBOMDataOperationCompleted, userState); + } + + private void OnGetBOMDataOperationCompleted(object arg) + { + if (GetBOMDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBOMDataCompleted?.Invoke(this, new GetBOMDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetBrandData(string request) + { + object[] results = Invoke("GetBrandData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetBrandData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetBrandData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetBrandData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetBrandDataAsync(string request) + { + GetBrandDataAsync(request, null); + } + + /// + public void GetBrandDataAsync(string request, object userState) + { + if (GetBrandDataOperationCompleted == null) + { + GetBrandDataOperationCompleted = OnGetBrandDataOperationCompleted; + } + InvokeAsync("GetBrandData", new object[] { request }, GetBrandDataOperationCompleted, userState); + } + + private void OnGetBrandDataOperationCompleted(object arg) + { + if (GetBrandDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetBrandDataCompleted?.Invoke(this, new GetBrandDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetComponentrepsubData(string request) + { + object[] results = Invoke("GetComponentrepsubData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetComponentrepsubData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetComponentrepsubData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetComponentrepsubData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetComponentrepsubDataAsync(string request) + { + GetComponentrepsubDataAsync(request, null); + } + + /// + public void GetComponentrepsubDataAsync(string request, object userState) + { + if (GetComponentrepsubDataOperationCompleted == null) + { + GetComponentrepsubDataOperationCompleted = OnGetComponentrepsubDataOperationCompleted; + } + InvokeAsync("GetComponentrepsubData", new object[] { request }, GetComponentrepsubDataOperationCompleted, userState); + } + + private void OnGetComponentrepsubDataOperationCompleted(object arg) + { + if (GetComponentrepsubDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetComponentrepsubDataCompleted?.Invoke(this, new GetComponentrepsubDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCostGroupData(string request) + { + object[] results = Invoke("GetCostGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCostGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCostGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCostGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCostGroupDataAsync(string request) + { + GetCostGroupDataAsync(request, null); + } + + /// + public void GetCostGroupDataAsync(string request, object userState) + { + if (GetCostGroupDataOperationCompleted == null) + { + GetCostGroupDataOperationCompleted = OnGetCostGroupDataOperationCompleted; + } + InvokeAsync("GetCostGroupData", new object[] { request }, GetCostGroupDataOperationCompleted, userState); + } + + private void OnGetCostGroupDataOperationCompleted(object arg) + { + if (GetCostGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCostGroupDataCompleted?.Invoke(this, new GetCostGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCountryData(string request) + { + object[] results = Invoke("GetCountryData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountryData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountryData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountryData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountryDataAsync(string request) + { + GetCountryDataAsync(request, null); + } + + /// + public void GetCountryDataAsync(string request, object userState) + { + if (GetCountryDataOperationCompleted == null) + { + GetCountryDataOperationCompleted = OnGetCountryDataOperationCompleted; + } + InvokeAsync("GetCountryData", new object[] { request }, GetCountryDataOperationCompleted, userState); + } + + private void OnGetCountryDataOperationCompleted(object arg) + { + if (GetCountryDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountryDataCompleted?.Invoke(this, new GetCountryDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCountryList(string request) + { + object[] results = Invoke("GetCountryList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCountryList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCountryList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCountryList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCountryListAsync(string request) + { + GetCountryListAsync(request, null); + } + + /// + public void GetCountryListAsync(string request, object userState) + { + if (GetCountryListOperationCompleted == null) + { + GetCountryListOperationCompleted = OnGetCountryListOperationCompleted; + } + InvokeAsync("GetCountryList", new object[] { request }, GetCountryListOperationCompleted, userState); + } + + private void OnGetCountryListOperationCompleted(object arg) + { + if (GetCountryListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCountryListCompleted?.Invoke(this, new GetCountryListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCurrencyData(string request) + { + object[] results = Invoke("GetCurrencyData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCurrencyData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCurrencyData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCurrencyData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCurrencyDataAsync(string request) + { + GetCurrencyDataAsync(request, null); + } + + /// + public void GetCurrencyDataAsync(string request, object userState) + { + if (GetCurrencyDataOperationCompleted == null) + { + GetCurrencyDataOperationCompleted = OnGetCurrencyDataOperationCompleted; + } + InvokeAsync("GetCurrencyData", new object[] { request }, GetCurrencyDataOperationCompleted, userState); + } + + private void OnGetCurrencyDataOperationCompleted(object arg) + { + if (GetCurrencyDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCurrencyDataCompleted?.Invoke(this, new GetCurrencyDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCurrencyList(string request) + { + object[] results = Invoke("GetCurrencyList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCurrencyList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCurrencyList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCurrencyList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCurrencyListAsync(string request) + { + GetCurrencyListAsync(request, null); + } + + /// + public void GetCurrencyListAsync(string request, object userState) + { + if (GetCurrencyListOperationCompleted == null) + { + GetCurrencyListOperationCompleted = OnGetCurrencyListOperationCompleted; + } + InvokeAsync("GetCurrencyList", new object[] { request }, GetCurrencyListOperationCompleted, userState); + } + + private void OnGetCurrencyListOperationCompleted(object arg) + { + if (GetCurrencyListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCurrencyListCompleted?.Invoke(this, new GetCurrencyListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustClassificationData(string request) + { + object[] results = Invoke("GetCustClassificationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustClassificationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustClassificationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustClassificationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustClassificationDataAsync(string request) + { + GetCustClassificationDataAsync(request, null); + } + + /// + public void GetCustClassificationDataAsync(string request, object userState) + { + if (GetCustClassificationDataOperationCompleted == null) + { + GetCustClassificationDataOperationCompleted = OnGetCustClassificationDataOperationCompleted; + } + InvokeAsync("GetCustClassificationData", new object[] { request }, GetCustClassificationDataOperationCompleted, userState); + } + + private void OnGetCustClassificationDataOperationCompleted(object arg) + { + if (GetCustClassificationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustClassificationDataCompleted?.Invoke(this, new GetCustClassificationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustList(string request) + { + object[] results = Invoke("GetCustList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustListAsync(string request) + { + GetCustListAsync(request, null); + } + + /// + public void GetCustListAsync(string request, object userState) + { + if (GetCustListOperationCompleted == null) + { + GetCustListOperationCompleted = OnGetCustListOperationCompleted; + } + InvokeAsync("GetCustList", new object[] { request }, GetCustListOperationCompleted, userState); + } + + private void OnGetCustListOperationCompleted(object arg) + { + if (GetCustListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustListCompleted?.Invoke(this, new GetCustListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustomerContactData(string request) + { + object[] results = Invoke("GetCustomerContactData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerContactData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerContactData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerContactData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerContactDataAsync(string request) + { + GetCustomerContactDataAsync(request, null); + } + + /// + public void GetCustomerContactDataAsync(string request, object userState) + { + if (GetCustomerContactDataOperationCompleted == null) + { + GetCustomerContactDataOperationCompleted = OnGetCustomerContactDataOperationCompleted; + } + InvokeAsync("GetCustomerContactData", new object[] { request }, GetCustomerContactDataOperationCompleted, userState); + } + + private void OnGetCustomerContactDataOperationCompleted(object arg) + { + if (GetCustomerContactDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerContactDataCompleted?.Invoke(this, new GetCustomerContactDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustomerData(string request) + { + object[] results = Invoke("GetCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerDataAsync(string request) + { + GetCustomerDataAsync(request, null); + } + + /// + public void GetCustomerDataAsync(string request, object userState) + { + if (GetCustomerDataOperationCompleted == null) + { + GetCustomerDataOperationCompleted = OnGetCustomerDataOperationCompleted; + } + InvokeAsync("GetCustomerData", new object[] { request }, GetCustomerDataOperationCompleted, userState); + } + + private void OnGetCustomerDataOperationCompleted(object arg) + { + if (GetCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerDataCompleted?.Invoke(this, new GetCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustomerOtheraddressData(string request) + { + object[] results = Invoke("GetCustomerOtheraddressData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerOtheraddressData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerOtheraddressData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerOtheraddressData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerOtheraddressDataAsync(string request) + { + GetCustomerOtheraddressDataAsync(request, null); + } + + /// + public void GetCustomerOtheraddressDataAsync(string request, object userState) + { + if (GetCustomerOtheraddressDataOperationCompleted == null) + { + GetCustomerOtheraddressDataOperationCompleted = OnGetCustomerOtheraddressDataOperationCompleted; + } + InvokeAsync("GetCustomerOtheraddressData", new object[] { request }, GetCustomerOtheraddressDataOperationCompleted, userState); + } + + private void OnGetCustomerOtheraddressDataOperationCompleted(object arg) + { + if (GetCustomerOtheraddressDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerOtheraddressDataCompleted?.Invoke(this, new GetCustomerOtheraddressDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetCustomerProductData(string request) + { + object[] results = Invoke("GetCustomerProductData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetCustomerProductData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetCustomerProductData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetCustomerProductData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetCustomerProductDataAsync(string request) + { + GetCustomerProductDataAsync(request, null); + } + + /// + public void GetCustomerProductDataAsync(string request, object userState) + { + if (GetCustomerProductDataOperationCompleted == null) + { + GetCustomerProductDataOperationCompleted = OnGetCustomerProductDataOperationCompleted; + } + InvokeAsync("GetCustomerProductData", new object[] { request }, GetCustomerProductDataOperationCompleted, userState); + } + + private void OnGetCustomerProductDataOperationCompleted(object arg) + { + if (GetCustomerProductDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetCustomerProductDataCompleted?.Invoke(this, new GetCustomerProductDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetDepartmentData(string request) + { + object[] results = Invoke("GetDepartmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDepartmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDepartmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDepartmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDepartmentDataAsync(string request) + { + GetDepartmentDataAsync(request, null); + } + + /// + public void GetDepartmentDataAsync(string request, object userState) + { + if (GetDepartmentDataOperationCompleted == null) + { + GetDepartmentDataOperationCompleted = OnGetDepartmentDataOperationCompleted; + } + InvokeAsync("GetDepartmentData", new object[] { request }, GetDepartmentDataOperationCompleted, userState); + } + + private void OnGetDepartmentDataOperationCompleted(object arg) + { + if (GetDepartmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDepartmentDataCompleted?.Invoke(this, new GetDepartmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetDepartmentList(string request) + { + object[] results = Invoke("GetDepartmentList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDepartmentList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDepartmentList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDepartmentList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDepartmentListAsync(string request) + { + GetDepartmentListAsync(request, null); + } + + /// + public void GetDepartmentListAsync(string request, object userState) + { + if (GetDepartmentListOperationCompleted == null) + { + GetDepartmentListOperationCompleted = OnGetDepartmentListOperationCompleted; + } + InvokeAsync("GetDepartmentList", new object[] { request }, GetDepartmentListOperationCompleted, userState); + } + + private void OnGetDepartmentListOperationCompleted(object arg) + { + if (GetDepartmentListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDepartmentListCompleted?.Invoke(this, new GetDepartmentListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetDocumentNumber(string request) + { + object[] results = Invoke("GetDocumentNumber", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetDocumentNumber(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetDocumentNumber", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetDocumentNumber(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetDocumentNumberAsync(string request) + { + GetDocumentNumberAsync(request, null); + } + + /// + public void GetDocumentNumberAsync(string request, object userState) + { + if (GetDocumentNumberOperationCompleted == null) + { + GetDocumentNumberOperationCompleted = OnGetDocumentNumberOperationCompleted; + } + InvokeAsync("GetDocumentNumber", new object[] { request }, GetDocumentNumberOperationCompleted, userState); + } + + private void OnGetDocumentNumberOperationCompleted(object arg) + { + if (GetDocumentNumberCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetDocumentNumberCompleted?.Invoke(this, new GetDocumentNumberCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetEmployeeData(string request) + { + object[] results = Invoke("GetEmployeeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetEmployeeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetEmployeeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetEmployeeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetEmployeeDataAsync(string request) + { + GetEmployeeDataAsync(request, null); + } + + /// + public void GetEmployeeDataAsync(string request, object userState) + { + if (GetEmployeeDataOperationCompleted == null) + { + GetEmployeeDataOperationCompleted = OnGetEmployeeDataOperationCompleted; + } + InvokeAsync("GetEmployeeData", new object[] { request }, GetEmployeeDataOperationCompleted, userState); + } + + private void OnGetEmployeeDataOperationCompleted(object arg) + { + if (GetEmployeeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetEmployeeDataCompleted?.Invoke(this, new GetEmployeeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetEmployeeList(string request) + { + object[] results = Invoke("GetEmployeeList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetEmployeeList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetEmployeeList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetEmployeeList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetEmployeeListAsync(string request) + { + GetEmployeeListAsync(request, null); + } + + /// + public void GetEmployeeListAsync(string request, object userState) + { + if (GetEmployeeListOperationCompleted == null) + { + GetEmployeeListOperationCompleted = OnGetEmployeeListOperationCompleted; + } + InvokeAsync("GetEmployeeList", new object[] { request }, GetEmployeeListOperationCompleted, userState); + } + + private void OnGetEmployeeListOperationCompleted(object arg) + { + if (GetEmployeeListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetEmployeeListCompleted?.Invoke(this, new GetEmployeeListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetExchangeRateData(string request) + { + object[] results = Invoke("GetExchangeRateData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetExchangeRateData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetExchangeRateData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetExchangeRateData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetExchangeRateDataAsync(string request) + { + GetExchangeRateDataAsync(request, null); + } + + /// + public void GetExchangeRateDataAsync(string request, object userState) + { + if (GetExchangeRateDataOperationCompleted == null) + { + GetExchangeRateDataOperationCompleted = OnGetExchangeRateDataOperationCompleted; + } + InvokeAsync("GetExchangeRateData", new object[] { request }, GetExchangeRateDataOperationCompleted, userState); + } + + private void OnGetExchangeRateDataOperationCompleted(object arg) + { + if (GetExchangeRateDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetExchangeRateDataCompleted?.Invoke(this, new GetExchangeRateDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetInvoiceTypeList(string request) + { + object[] results = Invoke("GetInvoiceTypeList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetInvoiceTypeList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetInvoiceTypeList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetInvoiceTypeList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetInvoiceTypeListAsync(string request) + { + GetInvoiceTypeListAsync(request, null); + } + + /// + public void GetInvoiceTypeListAsync(string request, object userState) + { + if (GetInvoiceTypeListOperationCompleted == null) + { + GetInvoiceTypeListOperationCompleted = OnGetInvoiceTypeListOperationCompleted; + } + InvokeAsync("GetInvoiceTypeList", new object[] { request }, GetInvoiceTypeListOperationCompleted, userState); + } + + private void OnGetInvoiceTypeListOperationCompleted(object arg) + { + if (GetInvoiceTypeListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetInvoiceTypeListCompleted?.Invoke(this, new GetInvoiceTypeListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemData(string request) + { + object[] results = Invoke("GetItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemDataAsync(string request) + { + GetItemDataAsync(request, null); + } + + /// + public void GetItemDataAsync(string request, object userState) + { + if (GetItemDataOperationCompleted == null) + { + GetItemDataOperationCompleted = OnGetItemDataOperationCompleted; + } + InvokeAsync("GetItemData", new object[] { request }, GetItemDataOperationCompleted, userState); + } + + private void OnGetItemDataOperationCompleted(object arg) + { + if (GetItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemDataCompleted?.Invoke(this, new GetItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemGroupData(string request) + { + object[] results = Invoke("GetItemGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemGroupDataAsync(string request) + { + GetItemGroupDataAsync(request, null); + } + + /// + public void GetItemGroupDataAsync(string request, object userState) + { + if (GetItemGroupDataOperationCompleted == null) + { + GetItemGroupDataOperationCompleted = OnGetItemGroupDataOperationCompleted; + } + InvokeAsync("GetItemGroupData", new object[] { request }, GetItemGroupDataOperationCompleted, userState); + } + + private void OnGetItemGroupDataOperationCompleted(object arg) + { + if (GetItemGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemGroupDataCompleted?.Invoke(this, new GetItemGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemList(string request) + { + object[] results = Invoke("GetItemList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemListAsync(string request) + { + GetItemListAsync(request, null); + } + + /// + public void GetItemListAsync(string request, object userState) + { + if (GetItemListOperationCompleted == null) + { + GetItemListOperationCompleted = OnGetItemListOperationCompleted; + } + InvokeAsync("GetItemList", new object[] { request }, GetItemListOperationCompleted, userState); + } + + private void OnGetItemListOperationCompleted(object arg) + { + if (GetItemListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemListCompleted?.Invoke(this, new GetItemListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemOtherGroupData(string request) + { + object[] results = Invoke("GetItemOtherGroupData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemOtherGroupData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemOtherGroupData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemOtherGroupData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemOtherGroupDataAsync(string request) + { + GetItemOtherGroupDataAsync(request, null); + } + + /// + public void GetItemOtherGroupDataAsync(string request, object userState) + { + if (GetItemOtherGroupDataOperationCompleted == null) + { + GetItemOtherGroupDataOperationCompleted = OnGetItemOtherGroupDataOperationCompleted; + } + InvokeAsync("GetItemOtherGroupData", new object[] { request }, GetItemOtherGroupDataOperationCompleted, userState); + } + + private void OnGetItemOtherGroupDataOperationCompleted(object arg) + { + if (GetItemOtherGroupDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemOtherGroupDataCompleted?.Invoke(this, new GetItemOtherGroupDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetItemStockList(string request) + { + object[] results = Invoke("GetItemStockList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetItemStockList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetItemStockList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetItemStockList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetItemStockListAsync(string request) + { + GetItemStockListAsync(request, null); + } + + /// + public void GetItemStockListAsync(string request, object userState) + { + if (GetItemStockListOperationCompleted == null) + { + GetItemStockListOperationCompleted = OnGetItemStockListOperationCompleted; + } + InvokeAsync("GetItemStockList", new object[] { request }, GetItemStockListOperationCompleted, userState); + } + + private void OnGetItemStockListOperationCompleted(object arg) + { + if (GetItemStockListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetItemStockListCompleted?.Invoke(this, new GetItemStockListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMFGDocument(string request) + { + object[] results = Invoke("GetMFGDocument", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMFGDocument(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMFGDocument", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMFGDocument(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMFGDocumentAsync(string request) + { + GetMFGDocumentAsync(request, null); + } + + /// + public void GetMFGDocumentAsync(string request, object userState) + { + if (GetMFGDocumentOperationCompleted == null) + { + GetMFGDocumentOperationCompleted = OnGetMFGDocumentOperationCompleted; + } + InvokeAsync("GetMFGDocument", new object[] { request }, GetMFGDocumentOperationCompleted, userState); + } + + private void OnGetMFGDocumentOperationCompleted(object arg) + { + if (GetMFGDocumentCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMFGDocumentCompleted?.Invoke(this, new GetMFGDocumentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMFGSettingSmaData(string request) + { + object[] results = Invoke("GetMFGSettingSmaData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMFGSettingSmaData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMFGSettingSmaData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMFGSettingSmaData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMFGSettingSmaDataAsync(string request) + { + GetMFGSettingSmaDataAsync(request, null); + } + + /// + public void GetMFGSettingSmaDataAsync(string request, object userState) + { + if (GetMFGSettingSmaDataOperationCompleted == null) + { + GetMFGSettingSmaDataOperationCompleted = OnGetMFGSettingSmaDataOperationCompleted; + } + InvokeAsync("GetMFGSettingSmaData", new object[] { request }, GetMFGSettingSmaDataOperationCompleted, userState); + } + + private void OnGetMFGSettingSmaDataOperationCompleted(object arg) + { + if (GetMFGSettingSmaDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMFGSettingSmaDataCompleted?.Invoke(this, new GetMFGSettingSmaDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMachineData(string request) + { + object[] results = Invoke("GetMachineData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMachineData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMachineData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMachineData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMachineDataAsync(string request) + { + GetMachineDataAsync(request, null); + } + + /// + public void GetMachineDataAsync(string request, object userState) + { + if (GetMachineDataOperationCompleted == null) + { + GetMachineDataOperationCompleted = OnGetMachineDataOperationCompleted; + } + InvokeAsync("GetMachineData", new object[] { request }, GetMachineDataOperationCompleted, userState); + } + + private void OnGetMachineDataOperationCompleted(object arg) + { + if (GetMachineDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMachineDataCompleted?.Invoke(this, new GetMachineDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMemoData(string request) + { + object[] results = Invoke("GetMemoData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMemoData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMemoData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMemoData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMemoDataAsync(string request) + { + GetMemoDataAsync(request, null); + } + + /// + public void GetMemoDataAsync(string request, object userState) + { + if (GetMemoDataOperationCompleted == null) + { + GetMemoDataOperationCompleted = OnGetMemoDataOperationCompleted; + } + InvokeAsync("GetMemoData", new object[] { request }, GetMemoDataOperationCompleted, userState); + } + + private void OnGetMemoDataOperationCompleted(object arg) + { + if (GetMemoDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMemoDataCompleted?.Invoke(this, new GetMemoDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetMonthList(string request) + { + object[] results = Invoke("GetMonthList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetMonthList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetMonthList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetMonthList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetMonthListAsync(string request) + { + GetMonthListAsync(request, null); + } + + /// + public void GetMonthListAsync(string request, object userState) + { + if (GetMonthListOperationCompleted == null) + { + GetMonthListOperationCompleted = OnGetMonthListOperationCompleted; + } + InvokeAsync("GetMonthList", new object[] { request }, GetMonthListOperationCompleted, userState); + } + + private void OnGetMonthListOperationCompleted(object arg) + { + if (GetMonthListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetMonthListCompleted?.Invoke(this, new GetMonthListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetOrganizationList(string request) + { + object[] results = Invoke("GetOrganizationList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOrganizationList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOrganizationList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOrganizationList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOrganizationListAsync(string request) + { + GetOrganizationListAsync(request, null); + } + + /// + public void GetOrganizationListAsync(string request, object userState) + { + if (GetOrganizationListOperationCompleted == null) + { + GetOrganizationListOperationCompleted = OnGetOrganizationListOperationCompleted; + } + InvokeAsync("GetOrganizationList", new object[] { request }, GetOrganizationListOperationCompleted, userState); + } + + private void OnGetOrganizationListOperationCompleted(object arg) + { + if (GetOrganizationListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOrganizationListCompleted?.Invoke(this, new GetOrganizationListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetOverdueAmtDetailData(string request) + { + object[] results = Invoke("GetOverdueAmtDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOverdueAmtDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOverdueAmtDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOverdueAmtDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOverdueAmtDetailDataAsync(string request) + { + GetOverdueAmtDetailDataAsync(request, null); + } + + /// + public void GetOverdueAmtDetailDataAsync(string request, object userState) + { + if (GetOverdueAmtDetailDataOperationCompleted == null) + { + GetOverdueAmtDetailDataOperationCompleted = OnGetOverdueAmtDetailDataOperationCompleted; + } + InvokeAsync("GetOverdueAmtDetailData", new object[] { request }, GetOverdueAmtDetailDataOperationCompleted, userState); + } + + private void OnGetOverdueAmtDetailDataOperationCompleted(object arg) + { + if (GetOverdueAmtDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOverdueAmtDetailDataCompleted?.Invoke(this, new GetOverdueAmtDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetOverdueAmtRankingData(string request) + { + object[] results = Invoke("GetOverdueAmtRankingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetOverdueAmtRankingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetOverdueAmtRankingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetOverdueAmtRankingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetOverdueAmtRankingDataAsync(string request) + { + GetOverdueAmtRankingDataAsync(request, null); + } + + /// + public void GetOverdueAmtRankingDataAsync(string request, object userState) + { + if (GetOverdueAmtRankingDataOperationCompleted == null) + { + GetOverdueAmtRankingDataOperationCompleted = OnGetOverdueAmtRankingDataOperationCompleted; + } + InvokeAsync("GetOverdueAmtRankingData", new object[] { request }, GetOverdueAmtRankingDataOperationCompleted, userState); + } + + private void OnGetOverdueAmtRankingDataOperationCompleted(object arg) + { + if (GetOverdueAmtRankingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetOverdueAmtRankingDataCompleted?.Invoke(this, new GetOverdueAmtRankingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetPLMTempTableDataStatus(string request) + { + object[] results = Invoke("GetPLMTempTableDataStatus", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPLMTempTableDataStatus(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPLMTempTableDataStatus", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPLMTempTableDataStatus(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPLMTempTableDataStatusAsync(string request) + { + GetPLMTempTableDataStatusAsync(request, null); + } + + /// + public void GetPLMTempTableDataStatusAsync(string request, object userState) + { + if (GetPLMTempTableDataStatusOperationCompleted == null) + { + GetPLMTempTableDataStatusOperationCompleted = OnGetPLMTempTableDataStatusOperationCompleted; + } + InvokeAsync("GetPLMTempTableDataStatus", new object[] { request }, GetPLMTempTableDataStatusOperationCompleted, userState); + } + + private void OnGetPLMTempTableDataStatusOperationCompleted(object arg) + { + if (GetPLMTempTableDataStatusCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPLMTempTableDataStatusCompleted?.Invoke(this, new GetPLMTempTableDataStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetPackingMethodData(string request) + { + object[] results = Invoke("GetPackingMethodData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPackingMethodData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPackingMethodData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPackingMethodData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPackingMethodDataAsync(string request) + { + GetPackingMethodDataAsync(request, null); + } + + /// + public void GetPackingMethodDataAsync(string request, object userState) + { + if (GetPackingMethodDataOperationCompleted == null) + { + GetPackingMethodDataOperationCompleted = OnGetPackingMethodDataOperationCompleted; + } + InvokeAsync("GetPackingMethodData", new object[] { request }, GetPackingMethodDataOperationCompleted, userState); + } + + private void OnGetPackingMethodDataOperationCompleted(object arg) + { + if (GetPackingMethodDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPackingMethodDataCompleted?.Invoke(this, new GetPackingMethodDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetPaymentTermsData(string request) + { + object[] results = Invoke("GetPaymentTermsData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPaymentTermsData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPaymentTermsData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPaymentTermsData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPaymentTermsDataAsync(string request) + { + GetPaymentTermsDataAsync(request, null); + } + + /// + public void GetPaymentTermsDataAsync(string request, object userState) + { + if (GetPaymentTermsDataOperationCompleted == null) + { + GetPaymentTermsDataOperationCompleted = OnGetPaymentTermsDataOperationCompleted; + } + InvokeAsync("GetPaymentTermsData", new object[] { request }, GetPaymentTermsDataOperationCompleted, userState); + } + + private void OnGetPaymentTermsDataOperationCompleted(object arg) + { + if (GetPaymentTermsDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPaymentTermsDataCompleted?.Invoke(this, new GetPaymentTermsDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetPotentialCustomerData(string request) + { + object[] results = Invoke("GetPotentialCustomerData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetPotentialCustomerData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetPotentialCustomerData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetPotentialCustomerData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetPotentialCustomerDataAsync(string request) + { + GetPotentialCustomerDataAsync(request, null); + } + + /// + public void GetPotentialCustomerDataAsync(string request, object userState) + { + if (GetPotentialCustomerDataOperationCompleted == null) + { + GetPotentialCustomerDataOperationCompleted = OnGetPotentialCustomerDataOperationCompleted; + } + InvokeAsync("GetPotentialCustomerData", new object[] { request }, GetPotentialCustomerDataOperationCompleted, userState); + } + + private void OnGetPotentialCustomerDataOperationCompleted(object arg) + { + if (GetPotentialCustomerDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetPotentialCustomerDataCompleted?.Invoke(this, new GetPotentialCustomerDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetProdClassList(string request) + { + object[] results = Invoke("GetProdClassList", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProdClassList(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProdClassList", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProdClassList(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProdClassListAsync(string request) + { + GetProdClassListAsync(request, null); + } + + /// + public void GetProdClassListAsync(string request, object userState) + { + if (GetProdClassListOperationCompleted == null) + { + GetProdClassListOperationCompleted = OnGetProdClassListOperationCompleted; + } + InvokeAsync("GetProdClassList", new object[] { request }, GetProdClassListOperationCompleted, userState); + } + + private void OnGetProdClassListOperationCompleted(object arg) + { + if (GetProdClassListCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProdClassListCompleted?.Invoke(this, new GetProdClassListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetProdRoutingData(string request) + { + object[] results = Invoke("GetProdRoutingData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProdRoutingData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProdRoutingData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProdRoutingData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProdRoutingDataAsync(string request) + { + GetProdRoutingDataAsync(request, null); + } + + /// + public void GetProdRoutingDataAsync(string request, object userState) + { + if (GetProdRoutingDataOperationCompleted == null) + { + GetProdRoutingDataOperationCompleted = OnGetProdRoutingDataOperationCompleted; + } + InvokeAsync("GetProdRoutingData", new object[] { request }, GetProdRoutingDataOperationCompleted, userState); + } + + private void OnGetProdRoutingDataOperationCompleted(object arg) + { + if (GetProdRoutingDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProdRoutingDataCompleted?.Invoke(this, new GetProdRoutingDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetProjectWBSData(string request) + { + object[] results = Invoke("GetProjectWBSData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetProjectWBSData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetProjectWBSData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetProjectWBSData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetProjectWBSDataAsync(string request) + { + GetProjectWBSDataAsync(request, null); + } + + /// + public void GetProjectWBSDataAsync(string request, object userState) + { + if (GetProjectWBSDataOperationCompleted == null) + { + GetProjectWBSDataOperationCompleted = OnGetProjectWBSDataOperationCompleted; + } + InvokeAsync("GetProjectWBSData", new object[] { request }, GetProjectWBSDataOperationCompleted, userState); + } + + private void OnGetProjectWBSDataOperationCompleted(object arg) + { + if (GetProjectWBSDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetProjectWBSDataCompleted?.Invoke(this, new GetProjectWBSDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetReasonCode(string request) + { + object[] results = Invoke("GetReasonCode", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetReasonCode(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetReasonCode", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetReasonCode(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetReasonCodeAsync(string request) + { + GetReasonCodeAsync(request, null); + } + + /// + public void GetReasonCodeAsync(string request, object userState) + { + if (GetReasonCodeOperationCompleted == null) + { + GetReasonCodeOperationCompleted = OnGetReasonCodeOperationCompleted; + } + InvokeAsync("GetReasonCode", new object[] { request }, GetReasonCodeOperationCompleted, userState); + } + + private void OnGetReasonCodeOperationCompleted(object arg) + { + if (GetReasonCodeCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetReasonCodeCompleted?.Invoke(this, new GetReasonCodeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSOInfoData(string request) + { + object[] results = Invoke("GetSOInfoData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSOInfoData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSOInfoData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSOInfoData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSOInfoDataAsync(string request) + { + GetSOInfoDataAsync(request, null); + } + + /// + public void GetSOInfoDataAsync(string request, object userState) + { + if (GetSOInfoDataOperationCompleted == null) + { + GetSOInfoDataOperationCompleted = OnGetSOInfoDataOperationCompleted; + } + InvokeAsync("GetSOInfoData", new object[] { request }, GetSOInfoDataOperationCompleted, userState); + } + + private void OnGetSOInfoDataOperationCompleted(object arg) + { + if (GetSOInfoDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSOInfoDataCompleted?.Invoke(this, new GetSOInfoDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSOInfoDetailData(string request) + { + object[] results = Invoke("GetSOInfoDetailData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSOInfoDetailData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSOInfoDetailData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSOInfoDetailData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSOInfoDetailDataAsync(string request) + { + GetSOInfoDetailDataAsync(request, null); + } + + /// + public void GetSOInfoDetailDataAsync(string request, object userState) + { + if (GetSOInfoDetailDataOperationCompleted == null) + { + GetSOInfoDetailDataOperationCompleted = OnGetSOInfoDetailDataOperationCompleted; + } + InvokeAsync("GetSOInfoDetailData", new object[] { request }, GetSOInfoDetailDataOperationCompleted, userState); + } + + private void OnGetSOInfoDetailDataOperationCompleted(object arg) + { + if (GetSOInfoDetailDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSOInfoDetailDataCompleted?.Invoke(this, new GetSOInfoDetailDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSalesStatisticsData(string request) + { + object[] results = Invoke("GetSalesStatisticsData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSalesStatisticsData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSalesStatisticsData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSalesStatisticsData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSalesStatisticsDataAsync(string request) + { + GetSalesStatisticsDataAsync(request, null); + } + + /// + public void GetSalesStatisticsDataAsync(string request, object userState) + { + if (GetSalesStatisticsDataOperationCompleted == null) + { + GetSalesStatisticsDataOperationCompleted = OnGetSalesStatisticsDataOperationCompleted; + } + InvokeAsync("GetSalesStatisticsData", new object[] { request }, GetSalesStatisticsDataOperationCompleted, userState); + } + + private void OnGetSalesStatisticsDataOperationCompleted(object arg) + { + if (GetSalesStatisticsDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSalesStatisticsDataCompleted?.Invoke(this, new GetSalesStatisticsDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetStockData(string request) + { + object[] results = Invoke("GetStockData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetStockData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetStockData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetStockData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetStockDataAsync(string request) + { + GetStockDataAsync(request, null); + } + + /// + public void GetStockDataAsync(string request, object userState) + { + if (GetStockDataOperationCompleted == null) + { + GetStockDataOperationCompleted = OnGetStockDataOperationCompleted; + } + InvokeAsync("GetStockData", new object[] { request }, GetStockDataOperationCompleted, userState); + } + + private void OnGetStockDataOperationCompleted(object arg) + { + if (GetStockDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetStockDataCompleted?.Invoke(this, new GetStockDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSupplierData(string request) + { + object[] results = Invoke("GetSupplierData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSupplierData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSupplierData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSupplierData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSupplierDataAsync(string request) + { + GetSupplierDataAsync(request, null); + } + + /// + public void GetSupplierDataAsync(string request, object userState) + { + if (GetSupplierDataOperationCompleted == null) + { + GetSupplierDataOperationCompleted = OnGetSupplierDataOperationCompleted; + } + InvokeAsync("GetSupplierData", new object[] { request }, GetSupplierDataOperationCompleted, userState); + } + + private void OnGetSupplierDataOperationCompleted(object arg) + { + if (GetSupplierDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSupplierDataCompleted?.Invoke(this, new GetSupplierDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetSupplierItemData(string request) + { + object[] results = Invoke("GetSupplierItemData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetSupplierItemData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetSupplierItemData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetSupplierItemData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetSupplierItemDataAsync(string request) + { + GetSupplierItemDataAsync(request, null); + } + + /// + public void GetSupplierItemDataAsync(string request, object userState) + { + if (GetSupplierItemDataOperationCompleted == null) + { + GetSupplierItemDataOperationCompleted = OnGetSupplierItemDataOperationCompleted; + } + InvokeAsync("GetSupplierItemData", new object[] { request }, GetSupplierItemDataOperationCompleted, userState); + } + + private void OnGetSupplierItemDataOperationCompleted(object arg) + { + if (GetSupplierItemDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetSupplierItemDataCompleted?.Invoke(this, new GetSupplierItemDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetTableAmendmentData(string request) + { + object[] results = Invoke("GetTableAmendmentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTableAmendmentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTableAmendmentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTableAmendmentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTableAmendmentDataAsync(string request) + { + GetTableAmendmentDataAsync(request, null); + } + + /// + public void GetTableAmendmentDataAsync(string request, object userState) + { + if (GetTableAmendmentDataOperationCompleted == null) + { + GetTableAmendmentDataOperationCompleted = OnGetTableAmendmentDataOperationCompleted; + } + InvokeAsync("GetTableAmendmentData", new object[] { request }, GetTableAmendmentDataOperationCompleted, userState); + } + + private void OnGetTableAmendmentDataOperationCompleted(object arg) + { + if (GetTableAmendmentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTableAmendmentDataCompleted?.Invoke(this, new GetTableAmendmentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetTaxTypeData(string request) + { + object[] results = Invoke("GetTaxTypeData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTaxTypeData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTaxTypeData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTaxTypeData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTaxTypeDataAsync(string request) + { + GetTaxTypeDataAsync(request, null); + } + + /// + public void GetTaxTypeDataAsync(string request, object userState) + { + if (GetTaxTypeDataOperationCompleted == null) + { + GetTaxTypeDataOperationCompleted = OnGetTaxTypeDataOperationCompleted; + } + InvokeAsync("GetTaxTypeData", new object[] { request }, GetTaxTypeDataOperationCompleted, userState); + } + + private void OnGetTaxTypeDataOperationCompleted(object arg) + { + if (GetTaxTypeDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTaxTypeDataCompleted?.Invoke(this, new GetTaxTypeDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetTradeTermData(string request) + { + object[] results = Invoke("GetTradeTermData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTradeTermData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTradeTermData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTradeTermData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTradeTermDataAsync(string request) + { + GetTradeTermDataAsync(request, null); + } + + /// + public void GetTradeTermDataAsync(string request, object userState) + { + if (GetTradeTermDataOperationCompleted == null) + { + GetTradeTermDataOperationCompleted = OnGetTradeTermDataOperationCompleted; + } + InvokeAsync("GetTradeTermData", new object[] { request }, GetTradeTermDataOperationCompleted, userState); + } + + private void OnGetTradeTermDataOperationCompleted(object arg) + { + if (GetTradeTermDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTradeTermDataCompleted?.Invoke(this, new GetTradeTermDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetTransactionCategory(string request) + { + object[] results = Invoke("GetTransactionCategory", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetTransactionCategory(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetTransactionCategory", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetTransactionCategory(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetTransactionCategoryAsync(string request) + { + GetTransactionCategoryAsync(request, null); + } + + /// + public void GetTransactionCategoryAsync(string request, object userState) + { + if (GetTransactionCategoryOperationCompleted == null) + { + GetTransactionCategoryOperationCompleted = OnGetTransactionCategoryOperationCompleted; + } + InvokeAsync("GetTransactionCategory", new object[] { request }, GetTransactionCategoryOperationCompleted, userState); + } + + private void OnGetTransactionCategoryOperationCompleted(object arg) + { + if (GetTransactionCategoryCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetTransactionCategoryCompleted?.Invoke(this, new GetTransactionCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetUnitConversionData(string request) + { + object[] results = Invoke("GetUnitConversionData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUnitConversionData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUnitConversionData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUnitConversionData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUnitConversionDataAsync(string request) + { + GetUnitConversionDataAsync(request, null); + } + + /// + public void GetUnitConversionDataAsync(string request, object userState) + { + if (GetUnitConversionDataOperationCompleted == null) + { + GetUnitConversionDataOperationCompleted = OnGetUnitConversionDataOperationCompleted; + } + InvokeAsync("GetUnitConversionData", new object[] { request }, GetUnitConversionDataOperationCompleted, userState); + } + + private void OnGetUnitConversionDataOperationCompleted(object arg) + { + if (GetUnitConversionDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUnitConversionDataCompleted?.Invoke(this, new GetUnitConversionDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetUserToken(string request) + { + object[] results = Invoke("GetUserToken", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetUserToken(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetUserToken", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetUserToken(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetUserTokenAsync(string request) + { + GetUserTokenAsync(request, null); + } + + /// + public void GetUserTokenAsync(string request, object userState) + { + if (GetUserTokenOperationCompleted == null) + { + GetUserTokenOperationCompleted = OnGetUserTokenOperationCompleted; + } + InvokeAsync("GetUserToken", new object[] { request }, GetUserTokenOperationCompleted, userState); + } + + private void OnGetUserTokenOperationCompleted(object arg) + { + if (GetUserTokenCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetUserTokenCompleted?.Invoke(this, new GetUserTokenCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetVoucherDocumentData(string request) + { + object[] results = Invoke("GetVoucherDocumentData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetVoucherDocumentData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetVoucherDocumentData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetVoucherDocumentData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetVoucherDocumentDataAsync(string request) + { + GetVoucherDocumentDataAsync(request, null); + } + + /// + public void GetVoucherDocumentDataAsync(string request, object userState) + { + if (GetVoucherDocumentDataOperationCompleted == null) + { + GetVoucherDocumentDataOperationCompleted = OnGetVoucherDocumentDataOperationCompleted; + } + InvokeAsync("GetVoucherDocumentData", new object[] { request }, GetVoucherDocumentDataOperationCompleted, userState); + } + + private void OnGetVoucherDocumentDataOperationCompleted(object arg) + { + if (GetVoucherDocumentDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetVoucherDocumentDataCompleted?.Invoke(this, new GetVoucherDocumentDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string GetWorkstationData(string request) + { + object[] results = Invoke("GetWorkstationData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginGetWorkstationData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("GetWorkstationData", new object[] { request }, callback, asyncState); + } + + /// + public string EndGetWorkstationData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void GetWorkstationDataAsync(string request) + { + GetWorkstationDataAsync(request, null); + } + + /// + public void GetWorkstationDataAsync(string request, object userState) + { + if (GetWorkstationDataOperationCompleted == null) + { + GetWorkstationDataOperationCompleted = OnGetWorkstationDataOperationCompleted; + } + InvokeAsync("GetWorkstationData", new object[] { request }, GetWorkstationDataOperationCompleted, userState); + } + + private void OnGetWorkstationDataOperationCompleted(object arg) + { + if (GetWorkstationDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + GetWorkstationDataCompleted?.Invoke(this, new GetWorkstationDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string RollbackBillingAP(string request) + { + object[] results = Invoke("RollbackBillingAP", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginRollbackBillingAP(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("RollbackBillingAP", new object[] { request }, callback, asyncState); + } + + /// + public string EndRollbackBillingAP(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void RollbackBillingAPAsync(string request) + { + RollbackBillingAPAsync(request, null); + } + + /// + public void RollbackBillingAPAsync(string request, object userState) + { + if (RollbackBillingAPOperationCompleted == null) + { + RollbackBillingAPOperationCompleted = OnRollbackBillingAPOperationCompleted; + } + InvokeAsync("RollbackBillingAP", new object[] { request }, RollbackBillingAPOperationCompleted, userState); + } + + private void OnRollbackBillingAPOperationCompleted(object arg) + { + if (RollbackBillingAPCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + RollbackBillingAPCompleted?.Invoke(this, new RollbackBillingAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapRpcMethod("", RequestNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay", ResponseNamespace = "http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay")] + public string RollbackVoucherData(string request) + { + object[] results = Invoke("RollbackVoucherData", new object[] { request }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginRollbackVoucherData(string request, AsyncCallback callback, object asyncState) + { + return BeginInvoke("RollbackVoucherData", new object[] { request }, callback, asyncState); + } + + /// + public string EndRollbackVoucherData(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void RollbackVoucherDataAsync(string request) + { + RollbackVoucherDataAsync(request, null); + } + + /// + public void RollbackVoucherDataAsync(string request, object userState) + { + if (RollbackVoucherDataOperationCompleted == null) + { + RollbackVoucherDataOperationCompleted = OnRollbackVoucherDataOperationCompleted; + } + InvokeAsync("RollbackVoucherData", new object[] { request }, RollbackVoucherDataOperationCompleted, userState); + } + + private void OnRollbackVoucherDataOperationCompleted(object arg) + { + if (RollbackVoucherDataCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + RollbackVoucherDataCompleted?.Invoke(this, new RollbackVoucherDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CRMGetCustomerDataCompletedEventHandler(object sender, CRMGetCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CRMGetCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CRMGetCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckApsExecutionCompletedEventHandler(object sender, CheckApsExecutionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckApsExecutionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckApsExecutionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CheckUserAuthCompletedEventHandler(object sender, CheckUserAuthCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CheckUserAuthCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CheckUserAuthCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBOMDataCompletedEventHandler(object sender, CreateBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateBillingAPCompletedEventHandler(object sender, CreateBillingAPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateBillingAPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateBillingAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerContactDataCompletedEventHandler(object sender, CreateCustomerContactDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerContactDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerContactDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerDataCompletedEventHandler(object sender, CreateCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateCustomerOtheraddressDataCompletedEventHandler(object sender, CreateCustomerOtheraddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateCustomerOtheraddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateCustomerOtheraddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateDepartmentDataCompletedEventHandler(object sender, CreateDepartmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateDepartmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateDepartmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateECNDataCompletedEventHandler(object sender, CreateECNDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateECNDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateECNDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateEmployeeDataCompletedEventHandler(object sender, CreateEmployeeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateEmployeeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateEmployeeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateIssueReturnDataCompletedEventHandler(object sender, CreateIssueReturnDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateIssueReturnDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateIssueReturnDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateItemApprovalDataCompletedEventHandler(object sender, CreateItemApprovalDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateItemApprovalDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateItemApprovalDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateItemMasterDataCompletedEventHandler(object sender, CreateItemMasterDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateItemMasterDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateItemMasterDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateMISCIssueDataCompletedEventHandler(object sender, CreateMISCIssueDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateMISCIssueDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateMISCIssueDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePLMBOMDataCompletedEventHandler(object sender, CreatePLMBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePLMBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePLMBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePLMTempTableDataCompletedEventHandler(object sender, CreatePLMTempTableDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePLMTempTableDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePLMTempTableDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreatePotentialCustomerDataCompletedEventHandler(object sender, CreatePotentialCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreatePotentialCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreatePotentialCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateQuotationDataCompletedEventHandler(object sender, CreateQuotationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateQuotationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateQuotationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateRepSubPBOMDataCompletedEventHandler(object sender, CreateRepSubPBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateRepSubPBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateRepSubPBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateSalesOrderDataCompletedEventHandler(object sender, CreateSalesOrderDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateSalesOrderDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateSalesOrderDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateShippingOrdersWithoutOrdersCompletedEventHandler(object sender, CreateShippingOrdersWithoutOrdersCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateShippingOrdersWithoutOrdersCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateShippingOrdersWithoutOrdersCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateStockInDataCompletedEventHandler(object sender, CreateStockInDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateStockInDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateStockInDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateSupplierItemDataCompletedEventHandler(object sender, CreateSupplierItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateSupplierItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateSupplierItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateVoucherDataCompletedEventHandler(object sender, CreateVoucherDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateVoucherDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateVoucherDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void CreateWOWorkReportDataCompletedEventHandler(object sender, CreateWOWorkReportDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class CreateWOWorkReportDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal CreateWOWorkReportDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void DeletePLMTempTableDataCompletedEventHandler(object sender, DeletePLMTempTableDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class DeletePLMTempTableDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal DeletePLMTempTableDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAPCategoryAccountCodeCompletedEventHandler(object sender, GetAPCategoryAccountCodeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAPCategoryAccountCodeCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAPCategoryAccountCodeCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountDataCompletedEventHandler(object sender, GetAccountDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountSubjectDataCompletedEventHandler(object sender, GetAccountSubjectDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountSubjectDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountSubjectDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAccountTypeDataCompletedEventHandler(object sender, GetAccountTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAccountTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAccountTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAreaDataCompletedEventHandler(object sender, GetAreaDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAreaDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAreaDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAreaListCompletedEventHandler(object sender, GetAreaListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAreaListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAreaListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetAxmDocumentCompletedEventHandler(object sender, GetAxmDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetAxmDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetAxmDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBOMDataCompletedEventHandler(object sender, GetBOMDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBOMDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBOMDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetBrandDataCompletedEventHandler(object sender, GetBrandDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetBrandDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetBrandDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetComponentrepsubDataCompletedEventHandler(object sender, GetComponentrepsubDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetComponentrepsubDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetComponentrepsubDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCostGroupDataCompletedEventHandler(object sender, GetCostGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCostGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCostGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountryDataCompletedEventHandler(object sender, GetCountryDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountryDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountryDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCountryListCompletedEventHandler(object sender, GetCountryListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCountryListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCountryListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCurrencyDataCompletedEventHandler(object sender, GetCurrencyDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCurrencyDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCurrencyDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCurrencyListCompletedEventHandler(object sender, GetCurrencyListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCurrencyListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCurrencyListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustClassificationDataCompletedEventHandler(object sender, GetCustClassificationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustClassificationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustClassificationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustListCompletedEventHandler(object sender, GetCustListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerContactDataCompletedEventHandler(object sender, GetCustomerContactDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerContactDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerContactDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerDataCompletedEventHandler(object sender, GetCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerOtheraddressDataCompletedEventHandler(object sender, GetCustomerOtheraddressDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerOtheraddressDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerOtheraddressDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetCustomerProductDataCompletedEventHandler(object sender, GetCustomerProductDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetCustomerProductDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetCustomerProductDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDepartmentDataCompletedEventHandler(object sender, GetDepartmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDepartmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDepartmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDepartmentListCompletedEventHandler(object sender, GetDepartmentListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDepartmentListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDepartmentListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetDocumentNumberCompletedEventHandler(object sender, GetDocumentNumberCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetDocumentNumberCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetDocumentNumberCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetEmployeeDataCompletedEventHandler(object sender, GetEmployeeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetEmployeeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetEmployeeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetEmployeeListCompletedEventHandler(object sender, GetEmployeeListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetEmployeeListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetEmployeeListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetExchangeRateDataCompletedEventHandler(object sender, GetExchangeRateDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetExchangeRateDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetExchangeRateDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetInvoiceTypeListCompletedEventHandler(object sender, GetInvoiceTypeListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetInvoiceTypeListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetInvoiceTypeListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemDataCompletedEventHandler(object sender, GetItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemGroupDataCompletedEventHandler(object sender, GetItemGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemListCompletedEventHandler(object sender, GetItemListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemOtherGroupDataCompletedEventHandler(object sender, GetItemOtherGroupDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemOtherGroupDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemOtherGroupDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetItemStockListCompletedEventHandler(object sender, GetItemStockListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetItemStockListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetItemStockListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMFGDocumentCompletedEventHandler(object sender, GetMFGDocumentCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMFGDocumentCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMFGDocumentCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMFGSettingSmaDataCompletedEventHandler(object sender, GetMFGSettingSmaDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMFGSettingSmaDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMFGSettingSmaDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMachineDataCompletedEventHandler(object sender, GetMachineDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMachineDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMachineDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMemoDataCompletedEventHandler(object sender, GetMemoDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMemoDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMemoDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetMonthListCompletedEventHandler(object sender, GetMonthListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetMonthListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetMonthListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOrganizationListCompletedEventHandler(object sender, GetOrganizationListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOrganizationListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOrganizationListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOverdueAmtDetailDataCompletedEventHandler(object sender, GetOverdueAmtDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOverdueAmtDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOverdueAmtDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetOverdueAmtRankingDataCompletedEventHandler(object sender, GetOverdueAmtRankingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetOverdueAmtRankingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetOverdueAmtRankingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPLMTempTableDataStatusCompletedEventHandler(object sender, GetPLMTempTableDataStatusCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPLMTempTableDataStatusCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPLMTempTableDataStatusCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPackingMethodDataCompletedEventHandler(object sender, GetPackingMethodDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPackingMethodDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPackingMethodDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPaymentTermsDataCompletedEventHandler(object sender, GetPaymentTermsDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPaymentTermsDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPaymentTermsDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetPotentialCustomerDataCompletedEventHandler(object sender, GetPotentialCustomerDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetPotentialCustomerDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetPotentialCustomerDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProdClassListCompletedEventHandler(object sender, GetProdClassListCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProdClassListCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProdClassListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProdRoutingDataCompletedEventHandler(object sender, GetProdRoutingDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProdRoutingDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProdRoutingDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetProjectWBSDataCompletedEventHandler(object sender, GetProjectWBSDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetProjectWBSDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetProjectWBSDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetReasonCodeCompletedEventHandler(object sender, GetReasonCodeCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetReasonCodeCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetReasonCodeCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSOInfoDataCompletedEventHandler(object sender, GetSOInfoDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSOInfoDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSOInfoDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSOInfoDetailDataCompletedEventHandler(object sender, GetSOInfoDetailDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSOInfoDetailDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSOInfoDetailDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSalesStatisticsDataCompletedEventHandler(object sender, GetSalesStatisticsDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSalesStatisticsDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSalesStatisticsDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetStockDataCompletedEventHandler(object sender, GetStockDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetStockDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetStockDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSupplierDataCompletedEventHandler(object sender, GetSupplierDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSupplierDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSupplierDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetSupplierItemDataCompletedEventHandler(object sender, GetSupplierItemDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetSupplierItemDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetSupplierItemDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTableAmendmentDataCompletedEventHandler(object sender, GetTableAmendmentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTableAmendmentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTableAmendmentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTaxTypeDataCompletedEventHandler(object sender, GetTaxTypeDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTaxTypeDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTaxTypeDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTradeTermDataCompletedEventHandler(object sender, GetTradeTermDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTradeTermDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTradeTermDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetTransactionCategoryCompletedEventHandler(object sender, GetTransactionCategoryCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetTransactionCategoryCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetTransactionCategoryCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUnitConversionDataCompletedEventHandler(object sender, GetUnitConversionDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUnitConversionDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUnitConversionDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetUserTokenCompletedEventHandler(object sender, GetUserTokenCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetUserTokenCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetUserTokenCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetVoucherDocumentDataCompletedEventHandler(object sender, GetVoucherDocumentDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetVoucherDocumentDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetVoucherDocumentDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void GetWorkstationDataCompletedEventHandler(object sender, GetWorkstationDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class GetWorkstationDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal GetWorkstationDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void RollbackBillingAPCompletedEventHandler(object sender, RollbackBillingAPCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class RollbackBillingAPCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal RollbackBillingAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void RollbackVoucherDataCompletedEventHandler(object sender, RollbackVoucherDataCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class RollbackVoucherDataCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal RollbackVoucherDataCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.map new file mode 100644 index 0000000..19834ab --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/Reference.map @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/TIPTOPServiceGateWay.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/TIPTOPServiceGateWay.wsdl new file mode 100644 index 0000000..d240a3c --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_TP_RPC/TIPTOPServiceGateWay.wsdl @@ -0,0 +1,1762 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.cs new file mode 100644 index 0000000..2b928d2 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.cs @@ -0,0 +1,180 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsERP_WorkFlow +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "WFMESServiceSoap", Namespace = "http://tempuri.org/")] + public partial class WFMESService : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback XMLAdapterOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public WFMESService() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsERP_WorkFlow_WFMESService; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event XMLAdapterCompletedEventHandler XMLAdapterCompleted; + + /// + [SoapDocumentMethod("http://tempuri.org/XMLAdapter", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string XMLAdapter(string sXML) + { + object[] results = Invoke("XMLAdapter", new object[] { sXML }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginXMLAdapter(string sXML, AsyncCallback callback, object asyncState) + { + return BeginInvoke("XMLAdapter", new object[] { sXML }, callback, asyncState); + } + + /// + public string EndXMLAdapter(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void XMLAdapterAsync(string sXML) + { + XMLAdapterAsync(sXML, null); + } + + /// + public void XMLAdapterAsync(string sXML, object userState) + { + if (XMLAdapterOperationCompleted == null) + { + XMLAdapterOperationCompleted = OnXMLAdapterOperationCompleted; + } + InvokeAsync("XMLAdapter", new object[] { sXML }, XMLAdapterOperationCompleted, userState); + } + + private void OnXMLAdapterOperationCompleted(object arg) + { + if (XMLAdapterCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + XMLAdapterCompleted?.Invoke(this, new XMLAdapterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void XMLAdapterCompletedEventHandler(object sender, XMLAdapterCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class XMLAdapterCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal XMLAdapterCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.map new file mode 100644 index 0000000..0aacda6 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.disco b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.disco new file mode 100644 index 0000000..032f9f9 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.wsdl new file mode 100644 index 0000000..851ed7a --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsERP_WorkFlow/WFMESService.wsdl @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.cs new file mode 100644 index 0000000..f47916a --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.cs @@ -0,0 +1,1535 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Web.Services; +using System.Web.Services.Protocols; +using System.Xml.Serialization; +using Microsoft.VisualBasic.CompilerServices; + +// +// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。 +// +namespace AutoRunLib_C.wsInvoke +{ + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + [WebServiceBinding(Name = "wsInvokeSoap", Namespace = "http://www.imestech.com/wsInvoke")] + [XmlInclude(typeof(object[]))] + public partial class wsInvoke : SoapHttpClientProtocol + { + + private System.Threading.SendOrPostCallback invokeSrvOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_EnableLogOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_XmlOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Xml_SessionOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataTableParameterOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataTableOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_DataSetOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_SessionOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Session_jsonOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_jsonOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Session_plainjsonOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_plainjsonOperationCompleted; + + private System.Threading.SendOrPostCallback TestOperationCompleted; + + private System.Threading.SendOrPostCallback invoke_SignalROperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_ModuleOperationCompleted; + + private System.Threading.SendOrPostCallback invokeSrv_Module_DataSetOperationCompleted; + + private System.Threading.SendOrPostCallback Invoke_GuardServer_ProcessOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// + public wsInvoke() : base() + { + Url = My.MySettings.Default.AutoRunLib_wsInvoke_wsInvoke; + if (IsLocalFileSystemWebService(Url) == true) + { + UseDefaultCredentials = true; + useDefaultCredentialsSetExplicitly = false; + } + else + { + useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url + { + get + { + return base.Url; + } + set + { + if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false) + + { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials + { + get + { + return base.UseDefaultCredentials; + } + set + { + base.UseDefaultCredentials = value; + useDefaultCredentialsSetExplicitly = true; + } + } + + /// + public event invokeSrvCompletedEventHandler invokeSrvCompleted; + + /// + public event invokeSrv_EnableLogCompletedEventHandler invokeSrv_EnableLogCompleted; + + /// + public event invokeSrv_XmlCompletedEventHandler invokeSrv_XmlCompleted; + + /// + public event invokeSrv_Xml_SessionCompletedEventHandler invokeSrv_Xml_SessionCompleted; + + /// + public event invokeSrv_DataTableParameterCompletedEventHandler invokeSrv_DataTableParameterCompleted; + + /// + public event invokeSrv_DataTableCompletedEventHandler invokeSrv_DataTableCompleted; + + /// + public event invokeSrv_DataSetCompletedEventHandler invokeSrv_DataSetCompleted; + + /// + public event invokeSrv_SessionCompletedEventHandler invokeSrv_SessionCompleted; + + /// + public event invokeSrv_Session_jsonCompletedEventHandler invokeSrv_Session_jsonCompleted; + + /// + public event invokeSrv_jsonCompletedEventHandler invokeSrv_jsonCompleted; + + /// + public event invokeSrv_Session_plainjsonCompletedEventHandler invokeSrv_Session_plainjsonCompleted; + + /// + public event invokeSrv_plainjsonCompletedEventHandler invokeSrv_plainjsonCompleted; + + /// + public event TestCompletedEventHandler TestCompleted; + + /// + public event invoke_SignalRCompletedEventHandler invoke_SignalRCompleted; + + /// + public event invokeSrv_ModuleCompletedEventHandler invokeSrv_ModuleCompleted; + + /// + public event invokeSrv_Module_DataSetCompletedEventHandler invokeSrv_Module_DataSetCompleted; + + /// + public event Invoke_GuardServer_ProcessCompletedEventHandler Invoke_GuardServer_ProcessCompleted; + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv(string method, object[] parameters) + { + object[] results = Invoke("invokeSrv", new object[] { method, parameters }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv(string method, object[] parameters, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv", new object[] { method, parameters }, callback, asyncState); + } + + /// + public object EndinvokeSrv(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrvAsync(string method, object[] parameters) + { + invokeSrvAsync(method, parameters, null); + } + + /// + public void invokeSrvAsync(string method, object[] parameters, object userState) + { + if (invokeSrvOperationCompleted == null) + { + invokeSrvOperationCompleted = OninvokeSrvOperationCompleted; + } + InvokeAsync("invokeSrv", new object[] { method, parameters }, invokeSrvOperationCompleted, userState); + } + + private void OninvokeSrvOperationCompleted(object arg) + { + if (invokeSrvCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrvCompleted?.Invoke(this, new invokeSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_EnableLog", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_EnableLog(string method, object[] parameters, bool LogOn) + { + object[] results = Invoke("invokeSrv_EnableLog", new object[] { method, parameters, LogOn }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_EnableLog(string method, object[] parameters, bool LogOn, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_EnableLog", new object[] { method, parameters, LogOn }, callback, asyncState); + } + + /// + public object EndinvokeSrv_EnableLog(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_EnableLogAsync(string method, object[] parameters, bool LogOn) + { + invokeSrv_EnableLogAsync(method, parameters, LogOn, null); + } + + /// + public void invokeSrv_EnableLogAsync(string method, object[] parameters, bool LogOn, object userState) + { + if (invokeSrv_EnableLogOperationCompleted == null) + { + invokeSrv_EnableLogOperationCompleted = OninvokeSrv_EnableLogOperationCompleted; + } + InvokeAsync("invokeSrv_EnableLog", new object[] { method, parameters, LogOn }, invokeSrv_EnableLogOperationCompleted, userState); + } + + private void OninvokeSrv_EnableLogOperationCompleted(object arg) + { + if (invokeSrv_EnableLogCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_EnableLogCompleted?.Invoke(this, new invokeSrv_EnableLogCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Xml(string method, string inXMl) + { + object[] results = Invoke("invokeSrv_Xml", new object[] { method, inXMl }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Xml(string method, string inXMl, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Xml", new object[] { method, inXMl }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Xml(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_XmlAsync(string method, string inXMl) + { + invokeSrv_XmlAsync(method, inXMl, null); + } + + /// + public void invokeSrv_XmlAsync(string method, string inXMl, object userState) + { + if (invokeSrv_XmlOperationCompleted == null) + { + invokeSrv_XmlOperationCompleted = OninvokeSrv_XmlOperationCompleted; + } + InvokeAsync("invokeSrv_Xml", new object[] { method, inXMl }, invokeSrv_XmlOperationCompleted, userState); + } + + private void OninvokeSrv_XmlOperationCompleted(object arg) + { + if (invokeSrv_XmlCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_XmlCompleted?.Invoke(this, new invokeSrv_XmlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Xml_Session(string method, string inXMl) + { + object[] results = Invoke("invokeSrv_Xml_Session", new object[] { method, inXMl }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Xml_Session(string method, string inXMl, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Xml_Session", new object[] { method, inXMl }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Xml_Session(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_Xml_SessionAsync(string method, string inXMl) + { + invokeSrv_Xml_SessionAsync(method, inXMl, null); + } + + /// + public void invokeSrv_Xml_SessionAsync(string method, string inXMl, object userState) + { + if (invokeSrv_Xml_SessionOperationCompleted == null) + { + invokeSrv_Xml_SessionOperationCompleted = OninvokeSrv_Xml_SessionOperationCompleted; + } + InvokeAsync("invokeSrv_Xml_Session", new object[] { method, inXMl }, invokeSrv_Xml_SessionOperationCompleted, userState); + } + + private void OninvokeSrv_Xml_SessionOperationCompleted(object arg) + { + if (invokeSrv_Xml_SessionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Xml_SessionCompleted?.Invoke(this, new invokeSrv_Xml_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataTableParameter(string method, object[] parameters, ref DataTable pDataTable) + { + object[] results = Invoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataTableParameter(string method, object[] parameters, DataTable pDataTable, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataTableParameter(IAsyncResult asyncResult, ref DataTable pDataTable) + { + object[] results = EndInvoke(asyncResult); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable) + { + invokeSrv_DataTableParameterAsync(method, parameters, pDataTable, null); + } + + /// + public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable, object userState) + { + if (invokeSrv_DataTableParameterOperationCompleted == null) + { + invokeSrv_DataTableParameterOperationCompleted = OninvokeSrv_DataTableParameterOperationCompleted; + } + InvokeAsync("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, invokeSrv_DataTableParameterOperationCompleted, userState); + } + + private void OninvokeSrv_DataTableParameterOperationCompleted(object arg) + { + if (invokeSrv_DataTableParameterCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataTableParameterCompleted?.Invoke(this, new invokeSrv_DataTableParameterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTable", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataTable(string method, string InXml, ref DataTable pDataTable) + { + object[] results = Invoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataTable(string method, string InXml, DataTable pDataTable, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataTable(IAsyncResult asyncResult, ref DataTable pDataTable) + { + object[] results = EndInvoke(asyncResult); + pDataTable = (DataTable)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable) + { + invokeSrv_DataTableAsync(method, InXml, pDataTable, null); + } + + /// + public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable, object userState) + { + if (invokeSrv_DataTableOperationCompleted == null) + { + invokeSrv_DataTableOperationCompleted = OninvokeSrv_DataTableOperationCompleted; + } + InvokeAsync("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, invokeSrv_DataTableOperationCompleted, userState); + } + + private void OninvokeSrv_DataTableOperationCompleted(object arg) + { + if (invokeSrv_DataTableCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataTableCompleted?.Invoke(this, new invokeSrv_DataTableCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataSet", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_DataSet(string method, string InXml, ref DataSet pDataSet) + { + object[] results = Invoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }); + pDataSet = (DataSet)results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_DataSet(string method, string InXml, DataSet pDataSet, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, callback, asyncState); + } + + /// + public object EndinvokeSrv_DataSet(IAsyncResult asyncResult, ref DataSet pDataSet) + { + object[] results = EndInvoke(asyncResult); + pDataSet = (DataSet)results[1]; + return results[0]; + } + + /// + public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet) + { + invokeSrv_DataSetAsync(method, InXml, pDataSet, null); + } + + /// + public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet, object userState) + { + if (invokeSrv_DataSetOperationCompleted == null) + { + invokeSrv_DataSetOperationCompleted = OninvokeSrv_DataSetOperationCompleted; + } + InvokeAsync("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, invokeSrv_DataSetOperationCompleted, userState); + } + + private void OninvokeSrv_DataSetOperationCompleted(object arg) + { + if (invokeSrv_DataSetCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_DataSetCompleted?.Invoke(this, new invokeSrv_DataSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Session(string method, object[] parameters) + { + object[] results = Invoke("invokeSrv_Session", new object[] { method, parameters }); + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Session(string method, object[] parameters, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Session", new object[] { method, parameters }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Session(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invokeSrv_SessionAsync(string method, object[] parameters) + { + invokeSrv_SessionAsync(method, parameters, null); + } + + /// + public void invokeSrv_SessionAsync(string method, object[] parameters, object userState) + { + if (invokeSrv_SessionOperationCompleted == null) + { + invokeSrv_SessionOperationCompleted = OninvokeSrv_SessionOperationCompleted; + } + InvokeAsync("invokeSrv_Session", new object[] { method, parameters }, invokeSrv_SessionOperationCompleted, userState); + } + + private void OninvokeSrv_SessionOperationCompleted(object arg) + { + if (invokeSrv_SessionCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_SessionCompleted?.Invoke(this, new invokeSrv_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session_json", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv_Session_json(string metadata, string parameter) + { + object[] results = Invoke("invokeSrv_Session_json", new object[] { metadata, parameter }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv_Session_json(string metadata, string parameter, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Session_json", new object[] { metadata, parameter }, callback, asyncState); + } + + /// + public string EndinvokeSrv_Session_json(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrv_Session_jsonAsync(string metadata, string parameter) + { + invokeSrv_Session_jsonAsync(metadata, parameter, null); + } + + /// + public void invokeSrv_Session_jsonAsync(string metadata, string parameter, object userState) + { + if (invokeSrv_Session_jsonOperationCompleted == null) + { + invokeSrv_Session_jsonOperationCompleted = OninvokeSrv_Session_jsonOperationCompleted; + } + InvokeAsync("invokeSrv_Session_json", new object[] { metadata, parameter }, invokeSrv_Session_jsonOperationCompleted, userState); + } + + private void OninvokeSrv_Session_jsonOperationCompleted(object arg) + { + if (invokeSrv_Session_jsonCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Session_jsonCompleted?.Invoke(this, new invokeSrv_Session_jsonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_json", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv_json(string uri, string content) + { + object[] results = Invoke("invokeSrv_json", new object[] { uri, content }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv_json(string uri, string content, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_json", new object[] { uri, content }, callback, asyncState); + } + + /// + public string EndinvokeSrv_json(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrv_jsonAsync(string uri, string content) + { + invokeSrv_jsonAsync(uri, content, null); + } + + /// + public void invokeSrv_jsonAsync(string uri, string content, object userState) + { + if (invokeSrv_jsonOperationCompleted == null) + { + invokeSrv_jsonOperationCompleted = OninvokeSrv_jsonOperationCompleted; + } + InvokeAsync("invokeSrv_json", new object[] { uri, content }, invokeSrv_jsonOperationCompleted, userState); + } + + private void OninvokeSrv_jsonOperationCompleted(object arg) + { + if (invokeSrv_jsonCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_jsonCompleted?.Invoke(this, new invokeSrv_jsonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session_plainjson", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv_Session_plainjson(string uri, string content) + { + object[] results = Invoke("invokeSrv_Session_plainjson", new object[] { uri, content }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv_Session_plainjson(string uri, string content, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Session_plainjson", new object[] { uri, content }, callback, asyncState); + } + + /// + public string EndinvokeSrv_Session_plainjson(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrv_Session_plainjsonAsync(string uri, string content) + { + invokeSrv_Session_plainjsonAsync(uri, content, null); + } + + /// + public void invokeSrv_Session_plainjsonAsync(string uri, string content, object userState) + { + if (invokeSrv_Session_plainjsonOperationCompleted == null) + { + invokeSrv_Session_plainjsonOperationCompleted = OninvokeSrv_Session_plainjsonOperationCompleted; + } + InvokeAsync("invokeSrv_Session_plainjson", new object[] { uri, content }, invokeSrv_Session_plainjsonOperationCompleted, userState); + } + + private void OninvokeSrv_Session_plainjsonOperationCompleted(object arg) + { + if (invokeSrv_Session_plainjsonCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Session_plainjsonCompleted?.Invoke(this, new invokeSrv_Session_plainjsonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_plainjson", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string invokeSrv_plainjson(string uri, string content) + { + object[] results = Invoke("invokeSrv_plainjson", new object[] { uri, content }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BegininvokeSrv_plainjson(string uri, string content, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_plainjson", new object[] { uri, content }, callback, asyncState); + } + + /// + public string EndinvokeSrv_plainjson(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void invokeSrv_plainjsonAsync(string uri, string content) + { + invokeSrv_plainjsonAsync(uri, content, null); + } + + /// + public void invokeSrv_plainjsonAsync(string uri, string content, object userState) + { + if (invokeSrv_plainjsonOperationCompleted == null) + { + invokeSrv_plainjsonOperationCompleted = OninvokeSrv_plainjsonOperationCompleted; + } + InvokeAsync("invokeSrv_plainjson", new object[] { uri, content }, invokeSrv_plainjsonOperationCompleted, userState); + } + + private void OninvokeSrv_plainjsonOperationCompleted(object arg) + { + if (invokeSrv_plainjsonCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_plainjsonCompleted?.Invoke(this, new invokeSrv_plainjsonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/Test", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public string Test(string UserNo) + { + object[] results = Invoke("Test", new object[] { UserNo }); + return Conversions.ToString(results[0]); + } + + /// + public IAsyncResult BeginTest(string UserNo, AsyncCallback callback, object asyncState) + { + return BeginInvoke("Test", new object[] { UserNo }, callback, asyncState); + } + + /// + public string EndTest(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return Conversions.ToString(results[0]); + } + + /// + public void TestAsync(string UserNo) + { + TestAsync(UserNo, null); + } + + /// + public void TestAsync(string UserNo, object userState) + { + if (TestOperationCompleted == null) + { + TestOperationCompleted = OnTestOperationCompleted; + } + InvokeAsync("Test", new object[] { UserNo }, TestOperationCompleted, userState); + } + + private void OnTestOperationCompleted(object arg) + { + if (TestCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + TestCompleted?.Invoke(this, new TestCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invoke_SignalR", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invoke_SignalR(string mseContent) + { + object[] results = Invoke("invoke_SignalR", new object[] { mseContent }); + return results[0]; + } + + /// + public IAsyncResult Begininvoke_SignalR(string mseContent, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invoke_SignalR", new object[] { mseContent }, callback, asyncState); + } + + /// + public object Endinvoke_SignalR(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void invoke_SignalRAsync(string mseContent) + { + invoke_SignalRAsync(mseContent, null); + } + + /// + public void invoke_SignalRAsync(string mseContent, object userState) + { + if (invoke_SignalROperationCompleted == null) + { + invoke_SignalROperationCompleted = Oninvoke_SignalROperationCompleted; + } + InvokeAsync("invoke_SignalR", new object[] { mseContent }, invoke_SignalROperationCompleted, userState); + } + + private void Oninvoke_SignalROperationCompleted(object arg) + { + if (invoke_SignalRCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invoke_SignalRCompleted?.Invoke(this, new invoke_SignalRCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Module", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Module(string method, ref object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn) + { + object[] results = Invoke("invokeSrv_Module", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn }); + parameters = (object[])results[1]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Module(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Module", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Module(IAsyncResult asyncResult, ref object[] parameters) + { + object[] results = EndInvoke(asyncResult); + parameters = (object[])results[1]; + return results[0]; + } + + /// + public void invokeSrv_ModuleAsync(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn) + { + invokeSrv_ModuleAsync(method, parameters, pInvokeType, pLogKeyFields, blnLogOn, null); + } + + /// + public void invokeSrv_ModuleAsync(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, object userState) + { + if (invokeSrv_ModuleOperationCompleted == null) + { + invokeSrv_ModuleOperationCompleted = OninvokeSrv_ModuleOperationCompleted; + } + InvokeAsync("invokeSrv_Module", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn }, invokeSrv_ModuleOperationCompleted, userState); + } + + private void OninvokeSrv_ModuleOperationCompleted(object arg) + { + if (invokeSrv_ModuleCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_ModuleCompleted?.Invoke(this, new invokeSrv_ModuleCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Module_DataSet", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object invokeSrv_Module_DataSet(string method, ref object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, ref DataSet pDataSet) + { + object[] results = Invoke("invokeSrv_Module_DataSet", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn, pDataSet }); + parameters = (object[])results[1]; + pDataSet = (DataSet)results[2]; + return results[0]; + } + + /// + public IAsyncResult BegininvokeSrv_Module_DataSet(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, DataSet pDataSet, AsyncCallback callback, object asyncState) + { + return BeginInvoke("invokeSrv_Module_DataSet", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn, pDataSet }, callback, asyncState); + } + + /// + public object EndinvokeSrv_Module_DataSet(IAsyncResult asyncResult, ref object[] parameters, ref DataSet pDataSet) + { + object[] results = EndInvoke(asyncResult); + parameters = (object[])results[1]; + pDataSet = (DataSet)results[2]; + return results[0]; + } + + /// + public void invokeSrv_Module_DataSetAsync(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, DataSet pDataSet) + { + invokeSrv_Module_DataSetAsync(method, parameters, pInvokeType, pLogKeyFields, blnLogOn, pDataSet, null); + } + + /// + public void invokeSrv_Module_DataSetAsync(string method, object[] parameters, object pInvokeType, string[] pLogKeyFields, bool blnLogOn, DataSet pDataSet, object userState) + { + if (invokeSrv_Module_DataSetOperationCompleted == null) + { + invokeSrv_Module_DataSetOperationCompleted = OninvokeSrv_Module_DataSetOperationCompleted; + } + InvokeAsync("invokeSrv_Module_DataSet", new object[] { method, parameters, pInvokeType, pLogKeyFields, blnLogOn, pDataSet }, invokeSrv_Module_DataSetOperationCompleted, userState); + } + + private void OninvokeSrv_Module_DataSetOperationCompleted(object arg) + { + if (invokeSrv_Module_DataSetCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + invokeSrv_Module_DataSetCompleted?.Invoke(this, new invokeSrv_Module_DataSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [SoapDocumentMethod("http://www.imestech.com/wsInvoke/Invoke_GuardServer_Process", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)] + public object Invoke_GuardServer_Process() + { + object[] results = Invoke("Invoke_GuardServer_Process", new object[0]); + return results[0]; + } + + /// + public IAsyncResult BeginInvoke_GuardServer_Process(AsyncCallback callback, object asyncState) + { + return BeginInvoke("Invoke_GuardServer_Process", new object[0], callback, asyncState); + } + + /// + public object EndInvoke_GuardServer_Process(IAsyncResult asyncResult) + { + object[] results = EndInvoke(asyncResult); + return results[0]; + } + + /// + public void Invoke_GuardServer_ProcessAsync() + { + Invoke_GuardServer_ProcessAsync(null); + } + + /// + public void Invoke_GuardServer_ProcessAsync(object userState) + { + if (Invoke_GuardServer_ProcessOperationCompleted == null) + { + Invoke_GuardServer_ProcessOperationCompleted = OnInvoke_GuardServer_ProcessOperationCompleted; + } + InvokeAsync("Invoke_GuardServer_Process", new object[0], Invoke_GuardServer_ProcessOperationCompleted, userState); + } + + private void OnInvoke_GuardServer_ProcessOperationCompleted(object arg) + { + if (Invoke_GuardServer_ProcessCompleted != null) + { + InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg; + Invoke_GuardServer_ProcessCompleted?.Invoke(this, new Invoke_GuardServer_ProcessCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) + { + base.CancelAsync(userState); + } + + private bool IsLocalFileSystemWebService(string url) + { + if (url == null || ReferenceEquals(url, string.Empty)) + { + return false; + } + var wsUri = new Uri(url); + if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + return false; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrvCompletedEventHandler(object sender, invokeSrvCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrvCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_EnableLogCompletedEventHandler(object sender, invokeSrv_EnableLogCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_EnableLogCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_EnableLogCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_XmlCompletedEventHandler(object sender, invokeSrv_XmlCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_XmlCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_XmlCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Xml_SessionCompletedEventHandler(object sender, invokeSrv_Xml_SessionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Xml_SessionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Xml_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataTableParameterCompletedEventHandler(object sender, invokeSrv_DataTableParameterCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataTableParameterCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataTableParameterCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataTable pDataTable + { + get + { + RaiseExceptionIfNecessary(); + return (DataTable)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataTableCompletedEventHandler(object sender, invokeSrv_DataTableCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataTableCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataTableCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataTable pDataTable + { + get + { + RaiseExceptionIfNecessary(); + return (DataTable)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_DataSetCompletedEventHandler(object sender, invokeSrv_DataSetCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_DataSetCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_DataSetCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public DataSet pDataSet + { + get + { + RaiseExceptionIfNecessary(); + return (DataSet)results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_SessionCompletedEventHandler(object sender, invokeSrv_SessionCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_SessionCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Session_jsonCompletedEventHandler(object sender, invokeSrv_Session_jsonCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Session_jsonCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Session_jsonCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_jsonCompletedEventHandler(object sender, invokeSrv_jsonCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_jsonCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_jsonCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Session_plainjsonCompletedEventHandler(object sender, invokeSrv_Session_plainjsonCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Session_plainjsonCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Session_plainjsonCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_plainjsonCompletedEventHandler(object sender, invokeSrv_plainjsonCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_plainjsonCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_plainjsonCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void TestCompletedEventHandler(object sender, TestCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class TestCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal TestCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public string Result + { + get + { + RaiseExceptionIfNecessary(); + return Conversions.ToString(results[0]); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invoke_SignalRCompletedEventHandler(object sender, invoke_SignalRCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invoke_SignalRCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invoke_SignalRCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_ModuleCompletedEventHandler(object sender, invokeSrv_ModuleCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_ModuleCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_ModuleCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public object[] parameters + { + get + { + RaiseExceptionIfNecessary(); + return (object[])results[1]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void invokeSrv_Module_DataSetCompletedEventHandler(object sender, invokeSrv_Module_DataSetCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class invokeSrv_Module_DataSetCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal invokeSrv_Module_DataSetCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + + /// + public object[] parameters + { + get + { + RaiseExceptionIfNecessary(); + return (object[])results[1]; + } + } + + /// + public DataSet pDataSet + { + get + { + RaiseExceptionIfNecessary(); + return (DataSet)results[2]; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + public delegate void Invoke_GuardServer_ProcessCompletedEventHandler(object sender, Invoke_GuardServer_ProcessCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")] + [DebuggerStepThrough()] + [DesignerCategory("code")] + public partial class Invoke_GuardServer_ProcessCompletedEventArgs : AsyncCompletedEventArgs + { + + private object[] results; + + internal Invoke_GuardServer_ProcessCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) + { + this.results = results; + } + + /// + public object Result + { + get + { + RaiseExceptionIfNecessary(); + return results[0]; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.map b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.map new file mode 100644 index 0000000..45b6d58 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.disco b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.disco new file mode 100644 index 0000000..58b19cf --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.wsdl b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.wsdl new file mode 100644 index 0000000..bd1c187 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/Web References/wsInvoke/wsInvoke.wsdl @@ -0,0 +1,847 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invoke with objects and Return XML + + + + + Invoke with objects and Return XML, And Enable Performance Log + + + + + Invoke with Xml String and Return XML + + + + + EnableSession, Invoke with Xml String and Return XML + + + + + Invoke with DataTable and Object Return XML + + + + + Invoke with DataTable and Return XML + + + + + Invoke with DataSet and Return XML + + + + + EnableSession, Invoke and Return XML + + + + + EnableSession, Invoke Web Service Resolved json + + + + + Invoke Web Service Resolved json + + + + + EnableSession, Invoke Web Service Resolved json + + + + + Invoke Web Service Resolved json + + + + + Web service and database connection test + + + + + Call SignalR, Invoke and Return XML + + + + + Invoke Module with InXml + + + + + Invoke Module with InXml and DataSet Parameter + + + + + return hysical directory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/app.config b/SRC/MESAgent/MESAutoRun/AutoRunLib/app.config new file mode 100644 index 0000000..7ecc033 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/app.config @@ -0,0 +1,35 @@ + + + + +
+ + + + + + + + + + http://localhost/ERPws_DSC/wsMES.asmx + + + http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o + + + http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o + + + http://10.40.41.197:9999/IntegrationEntry + + + http://localhost/MESws_STD/wsInvoke.asmx + + + http://10.40.30.73/WFMES/WFMESService.asmx + + + + diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/clsAutoRunLibrary.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/clsAutoRunLibrary.cs new file mode 100644 index 0000000..379e6b8 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/clsAutoRunLibrary.cs @@ -0,0 +1,1189 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Data.OracleClient; +using System.Data.SqlClient; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Xml; +using iMESCIO.SCI.ERP.Request; +using iMESCIO.SCI.ERP.Response; +using iMESCIO.SCI.ERP.Request_E10ICD; +using iMESCIO.SCI.ERP.Response_E10ICD; +using iMESCIO.SCI.Base; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using iMESCore.Settings; +using static iMESCore.DataBase.iMESSql; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESConst; +using static iMESCore.Base.iMESComSubroutine; +using System.Data.Common; + +namespace AutoRunLib_C +{ + + + + + public class clsAutoRunLibrary + { + + // 2016/06/23 YF, 原呼叫標準各模組的WebService, 改統一呼叫wsInvoke + + public enum ERPName + { + TIPTOP = 0, + Workflow = 1, + T100 = 2, + HMI = 3, + APS = 4 + } + + private DataTable dtERPSetting = null; + + private IDbCommand cmmTemp; + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strConnectionString; // Connection string + private string strReportDataBaseType; + private string strReportConnectionString; // Report DB Connection string + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + + private IDbCommand cmmTempERP; + private string strERPconnectionString; + private string strERPDataBaseType; + private string strERPReportConnectionString; + + private string strERPCreator = "ERP"; // 取得Config設定之defCreator. + private string strDefLanguage; // 取得Config設定之LanguageMode. + private string strLanguage_T100; // MES對應ERP T100語系 + + private AppSettings objSetting = new AppSettings(); + private clsDBCom objDBcom = new clsDBCom(); + + public string strComputerName, strERPUnitNo; + public string strAppPath; + + public string gERPUser; // ERP使用者名稱 + public string gERPPassword; // ERP密碼 + public string gERPWSURL; // ERP Web服務網址 + public string gERPOraganization; // ERP營運中心代碼 + public string gERPLanguage; // ERP語系 + public string gERPVersion; // ERP版本 + + // //Web Service相關變數 + private XmlDocument XmlDoc = new XmlDocument(); + private StringReader tmpStringReader; + private string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; + + private string ExceptionXML; // ===== + + private string ERP_EntID; + private string ERP_Site; + private string ERP_URL; + private string results; + private string strLanguageMode = "zh-cht"; + private string strResourceDir = "Resources"; + + // Dim objkcWIP As New kcWIP.clsOperatorState '宣告Sys的物件 + + // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- + public clsAutoRunLibrary() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + + strReportDataBaseType = objSetting.GetReportDataBaseType(); + // //Get connection string + strReportConnectionString = objSetting.GetReportConnectionString(strReportDataBaseType); + + // ERP + // //Get ERP database type + strERPDataBaseType = objSetting.GetDataBaseType_ERP(); + // //Get ERP connection string + strERPconnectionString = objSetting.GetConnectionString_ERP(strERPDataBaseType); + + try + { + strResourceDir = objSetting["ResourceDir"].ToString(); + } + catch (Exception) + { } + try + { + strLanguageMode = objSetting["LanguageMode"].ToString(); + } + catch (Exception) + { + } + + // T100 整合項目增加, 取得 Web.Config 設定項目, 2015/12/15 Add. + + try + { + // 從Web.config取出目前的DatabaseType + strERPCreator = System.Configuration.ConfigurationSettings.AppSettings.Get("defCreator"); + // 2016-03-09, Joe, 取出預設ERP單位屬性編號 + strERPUnitNo = System.Configuration.ConfigurationSettings.AppSettings.Get("defERPUnitNoProperty"); + // 2016-03-02, Joe, 取出預設語系並轉換成ERP對應語系,後續T100多語系資料需用到 + strDefLanguage = System.Configuration.ConfigurationSettings.AppSettings.Get("LanguageMode"); + switch (strDefLanguage.ToUpper() ?? "") + { + case "ZH-CHS": + { + strLanguage_T100 = "zh_CN"; + break; + } + case "EN": + { + strLanguage_T100 = "en_US"; + break; + } + + default: + { + strLanguage_T100 = "zh_TW"; + break; + } + } + } + catch (Exception ex) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + } + + + } + + + // //Property-------------------------------------------------------------------------------------------------------------------------------- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + // Public ReadOnly Property ERPConnectionString() + // Get + // ERPConnectionString = strERPconnectionString + // End Get + // End Property + + // Public ReadOnly Property ERPDataBaseType() + // Get + // ERPDataBaseType = strERPDataBaseType + // End Get + // End Property + + public string MQType + { + get + { + return strMQType; + } + } + + + // //Function-------------------------------------------------------------------------------------------------------------------------------- + #region 共用的function (不可刪除) + + // //Public function---------------------------------------------------------------------------------------------------- + public string ExecuteFunction(string FunctionName, Collection colParameters = null) + { + string ExecuteFunctionRet = default(string); + // 此 Function 將執行傳入之FunctionName + // 傳入值: FunctionName,colParameters + // 傳回值: DataSet(成功), nothing(失敗) + + // colParameters的資料範例如下 + // colParameters.Add("C1", "CustomerNo") + // colParameters.Add("P1", "ProductNo") + + int i; + + try + { + // 2019/07/26 OwenLiu, Mantis:0060463, AutoRunService 支持行業包共用架構 + // -------------------------------------------------------------------------------------------------- + // 半導體芯片製造行業包(SEMI_WAFER):S, AutoRunLib_SEMI_WAFER.dll, Job Function固定以 fun_S_ 開頭 + // 半導體芯片測試行業包(IC_CP_PKG):P, AutoRunLib_IC_CP_PKG.dll, Job Function固定以 fun_P_ 開頭 + // 集成電路封測行業包(IC_FT_PKG):I, AutoRunLib_IC_FT_PKG.dll, Job Function固定以 fun_I_ 開頭 + // 分立器件封測行業包(DISCRETE_PKG):D, AutoRunLib_DISCRETE_PKG.dll, Job Function固定以 fun_D_ 開頭 + // LED封測行業包(LED_PKG):L, AutoRunLib_LED_PKG.dll, Job Function固定以 fun_L_ 開頭 + // 序號組裝行業包(ASM):A, AutoRunLib_ASM.dll, Job Function固定以 fun_A_ 開頭 + // -------------------------------------------------------------------------------------------------- + // 1.處理 FunctionName 大小寫問題 + // 本機執行:將DLL放在執行檔編譯後的位置底下(AutoRunService) + string strFilePath = AppDomain.CurrentDomain.BaseDirectory + @"\"; + string strLibFileName = ""; + string strLibraryName = ""; + if (FunctionName.ToUpper().StartsWith("FUN_S_")) // SEMI_WAFER + { + strLibFileName = "AutoRunLib_SEMI_WAFER.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_P_")) // IC_CP_PKG + { + strLibFileName = "AutoRunLib_IC_CP_PKG.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_I_")) // IC_FT_PKG + { + strLibFileName = "AutoRunLib_IC_FT_PKG.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_D_")) // DISCRETE_PKG + { + strLibFileName = "AutoRunLib_DISCRETE_PKG.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_L_")) // LED_PKG + { + strLibFileName = "AutoRunLib_LED_PKG.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_A_")) // ASM + { + strLibFileName = "AutoRunLib_ASM.dll"; + } + else if (FunctionName.ToUpper().StartsWith("FUN_C_")) // 個案 + { + strLibFileName = "AutoRunLib_C.dll"; + } + else + { + strLibFileName = "AutoRunLib.dll"; + } + strLibraryName = strLibFileName.Substring(0, strLibFileName.LastIndexOf(".dll")) + ".clsAutoRunLibrary"; + strFilePath += strLibFileName; + var mainAssembly = System.Reflection.Assembly.LoadFrom(strFilePath); + System.Reflection.MethodInfo[] MyMethodInfos = mainAssembly.GetType(strLibraryName).GetMethods(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); // 取出Private的Function + + var loopTo = MyMethodInfos.Length - 1; + for (i = 0; i <= loopTo; i++) + { + if ((MyMethodInfos[i].Name.ToUpper() ?? "") == (FunctionName.ToUpper() ?? "")) + { + FunctionName = MyMethodInfos[i].Name; + break; + } + } + + // 2.執行Private Function,傳出DataSet + object objArgs = new object[] { colParameters }; + string strClassName = "clsAutoRunLibrary"; + Type t; + System.Reflection.MethodInfo mi; + Type[] argumentTypes; + System.Reflection.ConstructorInfo ctor; + object obj; + + try + { + t = mainAssembly.GetType(mainAssembly.GetName().Name + "." + strClassName, true, true); + } + catch (Exception ex) + { + throw; + } + + argumentTypes = Type.EmptyTypes; + ctor = t.GetConstructor(argumentTypes); + obj = ctor.Invoke(new object[] { }); + mi = t.GetMethod(FunctionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); + + ExecuteFunctionRet = Conversions.ToString(mi.Invoke(obj, (object[])objArgs)); + } + + + catch (Exception e1) + { + // 2016-08-25, Joe, 加.InnerException將exception傳出 + if (e1.InnerException == null) + { + ExecuteFunctionRet = "fail;" + e1.Message; + } + else + { + ExecuteFunctionRet = "fail;" + e1.InnerException.Message; + } + } + + finally + { + + } + + return ExecuteFunctionRet; + + } + + private string SendMultiEmailNonGroup(ref string EmailSubject, string EmailBody = defString, string EmailAddress = defString, string AttachFileName = defString, byte[] AttachFile = null, string EmailAddressCC = defString) + { + string SendMultiEmailNonGroupRet = default(string); + + // 將發Mail給非群組收件者 多人可用 , 隔開 + + string[] aryAddress, aryAddressCC; + string tmpXML = default(string), tmpXMLCC = default(string); + aryAddress = Strings.Split(EmailAddress, ","); + + // 子收件者包幾個child tag + foreach (string StrTemp in aryAddress) + { + string argTagName = "address"; + string argValue = CombineXMLValue(argTagName, StrTemp); + tmpXML += CombineXMLValueTag(argValue); + } + + if ((EmailAddressCC ?? "") != defString && !string.IsNullOrEmpty(EmailAddressCC)) + { + aryAddressCC = Strings.Split(EmailAddressCC, ","); + foreach (string StrTemp in aryAddressCC) + { + string argTagName1 = "address"; + string argValue1 = CombineXMLValue(argTagName1, StrTemp); + tmpXMLCC += CombineXMLValueTag(argValue1); + } + } + + + try + { + string argCurUserNo = "AUTORUN"; + string argSendTime = Conversions.ToString(DateTime.Now); + strIdentity = CombineXMLIdentity(modWIN.gComputerName, argCurUserNo, argSendTime); + string argvalue_name = "emailaddress"; + string argname = "EmailAddress"; + string argtype = "String"; + string argdesc = ""; + strParameter = CombineXMLParameterMultiValue(argvalue_name, argname, argtype, tmpXML, argdesc); + string argvalue_name1 = "emailsubject"; + string argname1 = "EmailSubject"; + string argtype1 = "String"; + string argdesc1 = ""; + strParameter += CombineXMLParameter(argvalue_name1, argname1, argtype1, EmailSubject, argdesc1); + string argvalue_name2 = "emailbody"; + string argname2 = "EmailBody"; + string argtype2 = "String"; + string argvalue = CInput(EmailBody); + string argdesc2 = ""; + strParameter += CombineXMLParameter(argvalue_name2, argname2, argtype2, argvalue, argdesc2); + + if (!string.IsNullOrEmpty(tmpXMLCC)) + { + string argvalue_name3 = "emailaddresscc"; + string argname3 = "EmailAddressCC"; + string argtype3 = "String"; + string argdesc3 = ""; + strParameter += CombineXMLParameterMultiValue(argvalue_name3, argname3, argtype3, tmpXMLCC, argdesc3); + } + + if ((AttachFileName ?? "") != defString) + { + string argvalue_name4 = "attachfilename"; + string argname4 = "AttachFileName"; + string argtype4 = "String"; + string argdesc4 = ""; + strParameter += CombineXMLParameter(argvalue_name4, argname4, argtype4, AttachFileName, argdesc4); + } + + var XmlDoc = new XmlDocument(); + InXml = CombineXMLRequest(strIdentity, strParameter); + + if ((AttachFileName ?? "") != defString) + { + OutXml = modAutoRunLibrary.InvokeSrv("wsSYS.SendMultiEmailAndAttachFile", InXml, AttachFile); + } + else + { + OutXml = modAutoRunLibrary.InvokeSrv("wsSYS.SendMultiEmail", InXml); + } + + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) // 找出Exception訊並顯示出來 + { + SendMultiEmailNonGroupRet = "success"; + } + else + { + // 20220901,13871,0118251: 【度亘】描述性语言报表,排程执行失败,調整錯誤訊息 + SendMultiEmailNonGroupRet = "fail;" + GetExceptionMesMsg(XmlDoc) + ";" + GetExceptionSysMsg(XmlDoc); + } + + XmlDoc = null; + } + + catch (Exception ex) + { + SendMultiEmailNonGroupRet = "fail;" + ex.Message; + } + + return SendMultiEmailNonGroupRet; + + } + + private void SendJobFailEmail(Collection colParameters) + { + // 發送Email前置作業, 可判別群組與非群組寄送 + + var dsGroup = new DataSet(); + var strGroupBasis = default(string); + + string[] aryEmailAddress; + string strEmailAddress, strNonGroup = default(string), strGroup = default(string), strEmailBody, strEmailTitle; // EmailInfo + + // 取出參數EmailAddress 取不到則不發送 + // 2013/10/18, Hank, 修改若無EmailAddress欄位會crash + if (colParameters.Contains("EmailAddress") == false || colParameters["EmailAddress"] == null || string.IsNullOrEmpty(Strings.Trim(Conversions.ToString(colParameters["EmailAddress"])))) + { + return; + } + else + { + strEmailAddress = Strings.Trim(Conversions.ToString(colParameters["EmailAddress"])); + } + strEmailTitle = "MES AutoRun-" + Strings.Trim(Conversions.ToString(colParameters["JobNo"])) + " Fail"; + strEmailBody = Strings.Trim(Conversions.ToString(colParameters["EmailBody"])); + + LoadGroupBasis(ref dsGroup); + + // 切出 有效群組與非群組 + aryEmailAddress = Strings.Split(strEmailAddress, ","); + for (int i = 0, loopTo = aryEmailAddress.Length - 1; i <= loopTo; i++) + { + if (System.Text.RegularExpressions.Regex.Matches(aryEmailAddress[i], "@").Count == 1) // Non Group + { + strNonGroup += Strings.Trim(aryEmailAddress[i]) + ","; + } + else if (dsGroup.Tables[strGroupBasis].Select("GroupNo ='" + Strings.Trim(aryEmailAddress[i]) + "'").Length > 0) // Group + { + strGroup += Strings.Trim(aryEmailAddress[i]) + ","; + } + } + + // 去掉最後字元為 , + if (Strings.Right(strGroup, 1) == ",") + strGroup = Strings.Mid(strGroup, 1, Strings.Len(strGroup) - 1); + if (Strings.Right(strNonGroup, 1) == ",") + strNonGroup = Strings.Mid(strNonGroup, 1, Strings.Len(strNonGroup) - 1); + + // 群組寄送 + if (!string.IsNullOrEmpty(strGroup)) + { + string argFileName = "N/A"; + modAutoRunLibrary.SendMultiEmail(ref argFileName, ref strEmailTitle, strEmailBody, strGroup); + } + // 非群組寄送 + if (!string.IsNullOrEmpty(strNonGroup)) + { + SendMultiEmailNonGroup(ref strEmailTitle, strEmailBody, strNonGroup); + } + + } + + private string ChgTranslateName(Collection ColSaveControl, string LanguageMode = "en") + { + // 目的: + // 將 Collection 上所有的 Object 都做語系切換 + // 語系檔命名為 MESResource.XX.Resx + // zh-CHS(簡體)、zh-CHT(繁體)、en(英文) + + string strResourceFile; + + if (string.IsNullOrEmpty(LanguageMode)) + { + return default(string); + } + else + { + strResourceFile = "MESResource." + LanguageMode; + } + + string strResourcePath; + strResourcePath = AppDomain.CurrentDomain.BaseDirectory + "Resources"; + + // 檢查檔案是否存在 + if (string.IsNullOrEmpty(FileSystem.Dir(strResourcePath + @"\" + strResourceFile + ".resources"))) // File not exist + { + return default(string); + } + + var rm = System.Resources.ResourceManager.CreateFileBasedResourceManager(strResourceFile, strResourcePath, null); + string TmpString; + int i; + + foreach (var objControl in ColSaveControl) + { + if (objControl is iMESUltraGrid.iMESUltraGridControl) + { + TmpString = Conversions.ToString((objControl as iMESUltraGrid.iMESUltraGridControl).Name.Substring(3, (Strings.Len((objControl as iMESUltraGrid.iMESUltraGridControl).Name) - 3))); + TmpString = rm.GetString(TmpString.ToUpper()); + if (Conversions.ToBoolean(Operators.AndObject(!string.IsNullOrEmpty(TmpString), Operators.ConditionalCompareObjectNotEqual((objControl as iMESUltraGrid.iMESUltraGridControl).iMESUltraGrid.Text, "", false)))) + { + (objControl as iMESUltraGrid.iMESUltraGridControl).iMESUltraGrid.Text = TmpString; + } + } + + else if (objControl is Infragistics.Win.UltraWinGrid.UltraGrid) + { + + int bandCount; + int colCount; + + var loopTo = ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands.Count - 1; + for (bandCount = 0; bandCount <= loopTo; bandCount++) + { + + var loopTo1 = ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns.Count - 1; + for (colCount = 0; colCount <= loopTo1; colCount++) + ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns[colCount].Header.Caption = Conversions.ToString(Interaction.IIf(string.IsNullOrEmpty(rm.GetString(((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns[colCount].Key.ToUpper())), ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns[colCount].Header.Caption, rm.GetString(((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.Bands[bandCount].Columns[colCount].Key.ToUpper()))); + + // 20120911, Aaron, Group By Box + } ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.GroupByBox.ResetPrompt(); + TmpString = ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.GroupByBox.Prompt; + TmpString = rm.GetString(TmpString.ToUpper()); + + if (!string.IsNullOrEmpty(TmpString)) + { + ((Infragistics.Win.UltraWinGrid.UltraGrid)objControl).DisplayLayout.GroupByBox.Prompt = TmpString; + } + } + TmpString = ""; + } + + return default(string); + + } + public string ChgTranslateName_Content(string ErrorName) + { + string ChgTranslateName_ContentRet = default(string); + + // 1.Check LanguageMode + string strMsgFile, strGenFile; + if (string.IsNullOrEmpty(modWIN.gLanguageMode)) + { + strMsgFile = "msg_name" + "en"; + strGenFile = "mesresource" + "en"; + } + else + { + strMsgFile = "msg_name." + modWIN.gLanguageMode; + strGenFile = "mesresource." + modWIN.gLanguageMode; + } + + // 2.Get File Path + string strResourcePath = AppDomain.CurrentDomain.BaseDirectory + "Resources"; + + // 檢查檔案是否存在 + if (string.IsNullOrEmpty(FileSystem.Dir(strResourcePath + @"\" + strMsgFile + ".resources"))) // File not exist + { + ChgTranslateName_ContentRet = ErrorName; + return ChgTranslateName_ContentRet; + } + if (string.IsNullOrEmpty(FileSystem.Dir(strResourcePath + @"\" + strGenFile + ".resources"))) // File not exist + { + ChgTranslateName_ContentRet = ErrorName; + return ChgTranslateName_ContentRet; + } + + // 4.Replace原始訊息. + string strErrName_Rep = ""; + if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0) + { + // Replace[%%] + var rmGen = System.Resources.ResourceManager.CreateFileBasedResourceManager(strGenFile, strResourcePath, null); + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart); + } + else + { + k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(ErrorName, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart); + strKey = Strings.Mid(ErrorName, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = rmGen.GetString(strKey.ToUpper()); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart); + strKey = Strings.Mid(ErrorName, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = rmGen.GetString(strKey.ToUpper()); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + + rmGen = null; + } + + // 5.Final Message. + string strFinalMsg; + // 原始訊息 + if (string.IsNullOrEmpty(strErrName_Rep)) + { + strFinalMsg = ErrorName; + } + else + { + strFinalMsg = strErrName_Rep; + } + + ChgTranslateName_ContentRet = strFinalMsg; + return ChgTranslateName_ContentRet; + + + } + + ~clsAutoRunLibrary() + { + + if (objSetting != null) + objSetting = null; + + } + + /// + /// 向資料庫取得使用TipTop時的ERP整合設定資訊。 + /// + /// + /// + public void funGetERPSetting(string pERPName) + { + // Gary Lu 20120614:ERP整合設定統一由此函數取得 + StringReader tmpStringReader; // 將字串轉換成可讀入DataSet的物件 + string strERPSettingTableName; + string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; // 呼叫WS的字串參數 + var XmlDoc = new XmlDocument(); + try + { + var dsERPSetting_TP = new DataSet(); + + // 組InXml + string argSendTime = Conversions.ToString(DateTime.Now); + strIdentity = CombineXMLIdentity(modWIN.gComputerName, modWIN.gUserNo, argSendTime); + string argvalue_name = "erpname"; + string argname = "ERPName"; + string argtype = "String"; + string argdesc = ""; + strParameter = CombineXMLParameter(argvalue_name, argname, argtype, pERPName, argdesc); + InXml = CombineXMLRequest(strIdentity, strParameter); + + // 呼叫Web服務執行 + OutXml = modAutoRunLibrary.InvokeSrv("wsSYS.LoadERPSetting", InXml); + + // 解讀Web服務的執行結果 + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) + { + + // 讀取取出資料表的名稱 + strERPSettingTableName = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loaderpsetting").Item(0).SelectNodes("name").Item(0).InnerXml; + + // 取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題 + + XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loaderpsetting").Item(0).SelectNodes("schema").Item(0).InnerXml; + if (!string.IsNullOrEmpty(XmlSchema)) + { + // 將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件 + tmpStringReader = new StringReader(XmlSchema); + dsERPSetting_TP.ReadXmlSchema(tmpStringReader); + tmpStringReader.Close(); + } + + // 取出Data + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loaderpsetting").Item(0).SelectNodes("value").Item(0).InnerXml; + if (!string.IsNullOrEmpty(XmlData)) + { + tmpStringReader = new StringReader(XmlData); + dsERPSetting_TP.ReadXml(tmpStringReader, XmlReadMode.InferSchema); + tmpStringReader.Close(); + } + + if (dsERPSetting_TP.Tables[strERPSettingTableName].Rows.Count > 0) + { + gERPUser = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_USER"].ToString(); + gERPPassword = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_PWD"].ToString(); + gERPWSURL = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_WSURL"].ToString(); + gERPOraganization = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_ORG"].ToString(); + gERPLanguage = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_LANG"].ToString(); + gERPVersion = dsERPSetting_TP.Tables[strERPSettingTableName].Rows[0]["ERP_VERSION"].ToString(); + } + else + { + throw new Exception("[%ERPWSURL%] not found!"); + } + } + else + { + throw new Exception("[%ERPWSURL%] not found!"); + } + } + + catch (Exception ex) + { + throw; + } + } + + /// + /// 取得ERP整合的設定資料 + /// + /// + /// + /// + private bool GetERPSetting(ref DataTable pTable, string pERPName = defString, int pEAIType = 0) + { + + bool blnResult = false; + var XmlDoc = new XmlDocument(); + var dsTemp = new DataSet(); + + try + { + + // 組InXml + string argSendTime = Conversions.ToString(DateTime.Now); + strIdentity = CombineXMLIdentity(modWIN.gComputerName, modWIN.gUserNo, argSendTime); + strParameter = ""; + if ((pERPName ?? "") != defString) + { + string argvalue_name = "erpname"; + string argname = "ERPName"; + string argtype = "String"; + string argdesc = ""; + strParameter += CombineXMLParameter(argvalue_name, argname, argtype, pERPName, argdesc); + } + if (pEAIType != 0) + { + string argstrAdditional = CombineAddXML_Condition("EAI_Type = " + pEAIType); + strParameter += CombineXMLAdditional(argstrAdditional); + } + + + + InXml = CombineXMLRequest(strIdentity, strParameter); + + // 呼叫Web服務執行 + OutXml = modAutoRunLibrary.InvokeSrv("wsSYS.LoadERPSetting", InXml); + + // 解讀Web服務的執行結果 + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) + { + + XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loaderpsetting").Item(0).SelectNodes("schema").Item(0).InnerXml; + + if (!string.IsNullOrEmpty(XmlSchema)) + { + // 將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件 + tmpStringReader = new StringReader(XmlSchema); + dsTemp.ReadXmlSchema(tmpStringReader); + tmpStringReader.Close(); + } + + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loaderpsetting").Item(0).SelectNodes("value").Item(0).InnerXml; + + if (!string.IsNullOrEmpty(XmlData)) + { + tmpStringReader = new StringReader(XmlData); + dsTemp.ReadXml(tmpStringReader, XmlReadMode.InferSchema); + tmpStringReader.Close(); + } + + if (dsTemp.Tables.Count > 0 && dsTemp.Tables[0].Rows.Count > 0) + { + pTable = dsTemp.Tables[0].Copy(); + blnResult = true; + } + else + { + throw new Exception("[%GetERPSetting%] not found!"); + } + + dtERPSetting = dsTemp.Tables[0]; + var row = dtERPSetting.Rows[0]; + + ERP_EntID = row["ERP_ENTID"].ToString(); + ERP_Site = row["ERP_ORG"].ToString(); + ERP_URL = row["ERP_WSURL"].ToString(); + } + + + else + { + throw new Exception("[%GetERPSetting%] not found!"); + } + } + catch (Exception ex) + { + throw; + } + finally + { + XmlDoc = null; + dsTemp = null; + } + + return blnResult; + + } + + #region ProcessAbout + + private int[] GetProcessID(string Str_ProcessName) + { + int[] GetProcessIDRet = default(int[]); + int[] IntArray; + int i; + Process[] allRelationalProcs = Process.GetProcessesByName(Str_ProcessName); + i = 0; + IntArray = new int[1]; + + foreach (var thisProcess in allRelationalProcs) + { + try + { + Array.Resize(ref IntArray, i + 1); + IntArray[i] = thisProcess.Id; + i += 1; + } + catch (Exception ex) + { + // MessageBox.Show(ex.GetBaseException.ToString, "GetProcessID Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + } + } + + GetProcessIDRet = IntArray; + return GetProcessIDRet; + + } + + private int[] GetNewPID(int[] OldPID, int[] AllPID) + { + int[] GetNewPIDRet = default(int[]); + int i, j, k; + int[] IntArray; + j = 0; + IntArray = new int[1]; + + var loopTo = Information.UBound(AllPID); + for (i = 0; i <= loopTo; i++) + { + k = Array.IndexOf(OldPID, AllPID[i]); + if (k == -1) + { + Array.Resize(ref IntArray, j + 1); + IntArray[j] = AllPID[i]; + j += 1; + } + } + GetNewPIDRet = IntArray; + return GetNewPIDRet; + + } + + private bool KillProcess(int Str_ProcessID) + { + try + { + var Process = System.Diagnostics.Process.GetProcessById(Str_ProcessID); + + if (Conversions.ToBoolean(!Process.CloseMainWindow())) + { + Process.Kill(); + } + } + catch (Exception ex) + { + // MessageBox.Show(ex.GetBaseException.ToString, "Close Process Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + } + + return default(Boolean); + + } + + #endregion + + private void LoadGroupBasis(ref DataSet dsGroup) + { + // 讀取使用者群組主檔 + var strGroupBasis = default(string); + + // 先判斷是否dataset中已有equipmenttype之datatable,若有,需先remove否則會有錯誤 + if (!(dsGroup.Tables[strGroupBasis] == null)) + { + dsGroup.Tables.Remove(strGroupBasis); + } + + // 組InXml的字串 + string argSendTime = Conversions.ToString(DateTime.Now); + strIdentity = CombineXMLIdentity(modWIN.gComputerName, modWIN.gUserNo, argSendTime); + // 加上IssueState要求取出所有資料 + string argvalue_name = "issuestate"; + string argname = "issuestate"; + string argtype = "Integer"; + string argvalue = defInteger.ToString(); + string argdesc = ""; + strParameter = CombineXMLParameter(argvalue_name, argname, argtype, argvalue, argdesc); + int modAutoRundefTmp = defInteger; + modAutoRundefTmp = Conversions.ToInteger(argvalue); + InXml = CombineXMLRequest(strIdentity, strParameter); + + try + { + // OutXml = wsUSR.LoadGroupBasis(InXml) + OutXml = modAutoRunLibrary.InvokeSrv("wsUSR.LoadGroupBasis", InXml); + + // 利用XmlDoc物件處理ReturnValue + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) + { + strGroupBasis = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadgroupbasis").Item(0).SelectNodes("name").Item(0).InnerXml; + // 取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題 + + XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadgroupbasis").Item(0).SelectNodes("schema").Item(0).InnerXml; + if (!string.IsNullOrEmpty(XmlSchema)) + { + // 將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件 + tmpStringReader = new StringReader(XmlSchema); + dsGroup.ReadXmlSchema(tmpStringReader); + tmpStringReader.Close(); + } + // 取出Data + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadgroupbasis").Item(0).SelectNodes("value").Item(0).InnerXml; + if (!string.IsNullOrEmpty(XmlData)) + { + tmpStringReader = new StringReader(XmlData); + dsGroup.ReadXml(tmpStringReader); + tmpStringReader.Close(); + } + else + { + throw new Exception(GetExceptionSysMsg(XmlDoc)); + } + } + } + catch (Exception ex) + { + throw; + } + + } + + public string CombineRequestXMLbyCDO(ref object SCI_Object, string pService, string pUserNo, string pServiceName, string pCalledID = defString, string pRequestKey = defString) + { + string CombineRequestXMLbyCDORet = default(string); + + DataRow[] drERPSetting; + string strFilter = ""; + + do + { + try + { + strFilter = "ERP_Name ='" + pService + "' "; + if ((pCalledID ?? "") != defString && string.IsNullOrEmpty(pCalledID) == false) + strFilter += " And CalledID ='" + pCalledID + "' "; + // 取得服務資訊 + drERPSetting = dtERPSetting.Select(strFilter); + if (drERPSetting == null) + break; + if (drERPSetting.Length != 1) + break; + if ((pCalledID ?? "") == defString) + { + pCalledID = drERPSetting[0]["CalledID"].ToString(); + } + + // 2017-03-17, Joe, 加Parameter for E10 + (SCI_Object as iMESCIO.SCI.ERP.ERPRequestBase).enterprise_no = drERPSetting[0]["ERP_ENTID"].ToString(); + (SCI_Object as iMESCIO.SCI.ERP.ERPRequestBase).site_no = drERPSetting[0]["ERP_ORG"].ToString(); + + // 轉XML + string RequestHead = ""; + RequestHead += ""; + string RequestDataKey = "" + drERPSetting[0]["ERP_ENTID"].ToString() + "" + drERPSetting[0]["ERP_ORG"].ToString() + ""; + string RequestXML_Body = Conversions.ToString((SCI_Object as iMESCIO.SCI.ERP.ERPResponseBase).ParseXml()); + pRequestKey = modAutoRunLibrary.GetRequestKey(RequestHead); + string RequestHeader = "" + RequestHead + RequestDataKey + "" + RequestXML_Body + ""; + // CDO to XML + CombineRequestXMLbyCDORet = RequestHeader; + } + + catch (Exception ex) + { + throw; + } + } + while (false); + return CombineRequestXMLbyCDORet; + + } + + /// + /// EAI 檢核編碼(MD5) + /// + /// + /// + // Private Function GetRequestKey(ByVal input As String) As String + + // Const ID As String = "28682266" ' 鼎新統編 + + // Dim key As String = "" + // Dim md5Hasher As MD5 = MD5.Create() ' 建立MD5物件 + + // Try + + // input += ID + + // ' 將input轉換成MD5,並且以Bytes傳回,由於ComputeHash只接受Bytes型別參數,所以要先轉型別為Bytes + // Dim data As Byte() = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(input)) + + // ' 建立StringBuilder物件 + // Dim sb As New StringBuilder() + + // ' 將Bytes轉型別為String,並且以16進位存放 + // For i As Integer = 0 To data.Length - 1 + // sb.Append(data(i).ToString("x2")) + // Next i + + // key = sb.ToString + + // Catch ex As Exception + // Throw + // Finally + // md5Hasher = Nothing + // End Try + + // Return key + + // End Function + + #endregion + + #region 客製JobName + + + #endregion + + #region 測試用JobName + + // Add by Martin 2009/03/03 for testing the Url get by using gMESWebServiceHost and GetAppSettings mathod. + // Private Function funTestFuncton(Optional ByVal colParameters As Collection = Nothing) As String + // Dim cnnTemp As OleDb.OleDbConnection + // Dim drTemp As OleDb.OleDbDataReader + // Dim wsSPC As New wsSPC.wsSPC + // wsSPC.Url = LocalizeWebService(wsSPC.Url.ToString) + // wsSPC.EnableDecompression = True + + // strIdentity = CombineXMLIdentity("Autorun", "Autorun", Now) + // InXml = CombineXMLRequest(strIdentity, strParameter) + + // Try + // '開始執行 + // OutXml = wsSPC.LoadOQCForm(InXml) + // 'MsgBox(OutXml, , "Test Function Response!") '2012/08/21,Even,由於該msgbox造成錯誤(程式不允許auto 回復為msgbox形式) + + // funTestFuncton = "success" + + // Catch e1 As Exception + // funTestFuncton = "fail;" & e1.Message + // '發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // 'Throw New Exception("clsAutoRunLibary.funTestFuncton: " & e1.Message) + + // '2013/02/05, Hank, Send Email + // colParameters.Add(funTestFuncton, "EmailBody") + // SendJobFailEmail(colParameters) + + // Finally + // Call objSetting.CloseConnection(cnnTemp) + // If Not wsSPC Is Nothing Then wsSPC.Dispose() + // End Try + + // End Function + + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/modAutoRunLibrary.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/modAutoRunLibrary.cs new file mode 100644 index 0000000..67d238b --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/modAutoRunLibrary.cs @@ -0,0 +1,712 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Resources; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System.Text; +using System.Xml; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESConst; + +namespace AutoRunLib_C +{ + + static class modAutoRunLibrary + { + public enum GroupType + { + UserGroup = 0, // 使用者群組 + IssueGroup = 1, // 簽核群組 + EquipmentGroup = 2, // 設備工程師群組 + InventoryGroup = 3, // 庫房工程師群組 + ReportGroup = 4, // 報表使用群組 + ERFDispositionGroup = 5, // 異常處理群組 + ERFMailccGroup = 6 // 附件收件人群組 + } + + private static string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema; + + + #region Invoke + + /// + /// 叫用Web Service, 並回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 是否客製的WebService + /// + /// + /// 2019/08/22 OwenLiu, Mantis:0061402, 修正WS加上CI/CO執行時間紀錄 運作邏輯後AutoRun Servive呼叫WS失敗的問題 + /// + public static string InvokeSrv(string Method, string InXml, bool Customize = false, int TimeOut = defInteger, bool LogOn = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + + if (TimeOut != defInteger) + { + ws.Timeout = TimeOut; + } + + result = ws.invokeSrv(Method, new object[] { InXml, LogOn }); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + /// + /// 叫用Web Service, 回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 用來取回byte資料或傳入byte資料 + /// 是否客製的WebService + /// + /// 2019/08/22 OwenLiu, Mantis:0061402, 修正WS加上CI/CO執行時間紀錄 運作邏輯後AutoRun Servive呼叫WS失敗的問題 + /// + public static string InvokeSrv(string Method, string InXml, byte[] buffer, bool Customize = false, int TimeOut = defInteger, bool LogOn = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + + if (TimeOut != defInteger) + { + ws.Timeout = TimeOut; + } + + result = ws.invokeSrv(Method, new object[] { InXml, buffer, LogOn }); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + /// + /// 叫用Web Service, 並回傳Response XML + /// + /// 要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis + /// InXml + /// 接收結果的DataSet + /// 是否客製的WebService + /// + public static string InvokeSrv(string Method, string InXml, ref DataSet pDataSet, bool Customize = false) + { + + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.invokeSrv_DataSet(Method, InXml, ref pDataSet); + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + + } + + public static string InvokeSrv_GuardServer(bool Customize = false) + { + object result; + + try + { + + using (var ws = new wsInvoke.wsInvoke()) + { + ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize); + ws.EnableDecompression = true; + result = ws.Invoke_GuardServer_Process(); + + } + } + + catch (Exception ex) + { + throw; + } + + return Conversions.ToString(result); + } + + #endregion + + + /// + /// EAI 檢核編碼(MD5) + /// + /// + /// + public static string GetRequestKey(string input) + { + + const string ID = "28682266"; // 鼎新統編 + + string key = ""; + var md5Hasher = MD5.Create(); // 建立MD5物件 + + try + { + + input += ID; + + // 將input轉換成MD5,並且以Bytes傳回,由於ComputeHash只接受Bytes型別參數,所以要先轉型別為Bytes + byte[] data = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(input)); + + // 建立StringBuilder物件 + var sb = new StringBuilder(); + + // 將Bytes轉型別為String,並且以16進位存放 + for (int i = 0, loopTo = data.Length - 1; i <= loopTo; i++) + sb.Append(data[i].ToString("x2")); + + key = sb.ToString(); + } + + catch (Exception ex) + { + throw; + } + finally + { + md5Hasher = null; + } + + return key; + + } + + + /// + /// 紀錄Transaction + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static bool addTransactionLog(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string strException = null) + { + bool addTransactionLogRet = default(bool); + try + { + using (var wsERP = new wsERP_MES.wsMES()) + { + wsERP.Url = modWIN.LocalizeWebService_ERP(wsERP.Url.ToString()); + wsERP.EnableDecompression = true; + if (wsERP.addTransactionLog(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, ref strException) == true) + { + addTransactionLogRet = true; + } + else + { + addTransactionLogRet = false; + } + } + } + catch (Exception ex) + { + addTransactionLogRet = false; + } + + return addTransactionLogRet; + } + /// + /// 紀錄Transaction + /// + public static bool addTransactionLog_ErrorCode(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string strException = null, string ErrorCode = "0000-999999", string LogClass = null) + { + bool addTransactionLog_ErrorCodeRet = default(bool); + try + { + using (var wsERP = new wsERP_MES.wsMES()) + { + wsERP.Url = modWIN.LocalizeWebService_ERP(wsERP.Url.ToString()); + wsERP.EnableDecompression = true; + if (wsERP.addTransactionLog_ErrorCode(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, ref strException, ErrorCode, LogClass) == true) + { + addTransactionLog_ErrorCodeRet = true; + } + else + { + addTransactionLog_ErrorCodeRet = false; + } + } + } + catch (Exception ex) + { + addTransactionLog_ErrorCodeRet = false; + } + + return addTransactionLog_ErrorCodeRet; + } + + + // =====Elvis ,0091128: [605][CP+FT] E10ICD整合問題_AutoRun主檔拋轉的ERP交易紀錄exception時紀錄不正確 + #region --- Combine (Exception, Message) --- + + public static bool ChgTranslateException(ref List Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack) + { + bool ChgTranslateExceptionRet = default(bool); + + try + { + foreach (ArrayList al in Exception) + { + // If strExceptionSysmsg <> String.Empty Then strExceptionSysmsg += Chr(10) + if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false) + strExceptionSysmsg += al[1].ToString(); + // If String.IsNullOrEmpty(strExceptionMesmsg) = False Then strExceptionMesmsg += Chr(10) + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯錯誤訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0) + { + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart); + } + else + { + k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(ErrorName, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart); + strKey = Strings.Mid(ErrorName, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + } + // strKeyValue = Resources.Resource.ResourceManager.GetString(strKey) + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart); + strKey = Strings.Mid(ErrorName, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + } + // strKeyValue = Resources.Resource.ResourceManager.GetString(strKey) + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + } + // strExceptionMesmsg += Chr(9) & Chr(9) & Chr(9) & Resources.Resource.ResourceManager.GetString(al.Item(2).ToString) & "(" & al.Item(2).ToString & ")" + strExceptionMesmsg += strErrName_Rep; + } + + // If strExceptionStack <> String.Empty Then strExceptionStack += Chr(10) + if (string.IsNullOrEmpty(Conversions.ToString(al[3])) == false) + strExceptionStack += al[3].ToString(); + } + + ChgTranslateExceptionRet = true; + } + + catch (Exception e1) + { + throw; + ChgTranslateExceptionRet = false; + } + + return ChgTranslateExceptionRet; + + } + + + public static string CombineXMLResponse(string Identity, string ReturnValue = null, List Exception = null, string Result = null, List Message = null) + { + string CombineXMLResponseRet = default(string); + + try + { + // + CombineXMLResponseRet = ""; + + // + if (string.IsNullOrEmpty(Identity)) + { + CombineXMLResponseRet += ""; + } + else + { + CombineXMLResponseRet += ""; + CombineXMLResponseRet += Identity; + CombineXMLResponseRet += ""; + } + + // + if (string.IsNullOrEmpty(ReturnValue)) + { + CombineXMLResponseRet += ""; + } + else + { + CombineXMLResponseRet += ""; + CombineXMLResponseRet += ReturnValue; + CombineXMLResponseRet += ""; + } + + // + if (string.IsNullOrEmpty(Result)) + { + CombineXMLResponseRet += ""; + } + else + { + CombineXMLResponseRet += "" + Result + ""; + } + + // + string strExceptionSysmsg = string.Empty; + string strExceptionMesmsg = string.Empty; + string strExceptionStack = string.Empty; + + if (Exception.Count == 0) + { + CombineXMLResponseRet += ""; + } + else + { + // 2016-12-01, Joe, Exception轉語系 + ChgTranslateException(ref Exception, ref strExceptionSysmsg, ref strExceptionMesmsg, ref strExceptionStack); + + CombineXMLResponseRet += ""; + CombineXMLResponseRet += ""; + if (string.IsNullOrEmpty(strExceptionSysmsg) == true) + { + CombineXMLResponseRet += ""; + } + else + { + CombineXMLResponseRet += "" + strExceptionSysmsg + '\n' + "" + '\n'; + } + if (string.IsNullOrEmpty(strExceptionMesmsg) == true) + { + CombineXMLResponseRet += "" + strExceptionMesmsg + "" + '\n'; + } + else + { + CombineXMLResponseRet += "" + strExceptionMesmsg + "" + '\n'; + } + if (string.IsNullOrEmpty(strExceptionStack)) + { + CombineXMLResponseRet += ""; + } + else + { + // CombineXMLResponse += Chr(9) & Chr(9) & "" & Chr(10) & strExceptionStack & Chr(10) & Chr(9) & Chr(9) & "" & Chr(10) + CombineXMLResponseRet += ""; + } + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + // + string strMmsg = string.Empty; + + if (Message.Count == 0) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + '\n'; + // 2016-12-01, Joe, Message轉語系 + // Call ChgTranslateMessage(Message, strMmsg) + + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + strMmsg + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + CombineXMLResponseRet += "" + '\n'; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // Throw 'New Exception("modWS.CombineXMLResponse: " & e1.Message) + CombineXMLResponseRet = "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + e1.Message + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + "CombineXMLResponse;Fail" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += e1.StackTrace + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += ""; + } + + return CombineXMLResponseRet; + + } + + public static bool combineException(ref List arrException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null) + { + bool result = false; + try + { + var al = new ArrayList(); + + al.Add(code); + al.Add(sysmsg); + al.Add(mesmsg); + al.Add(stack); + arrException.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + + return default(Boolean); + + } + + // Public Function combineMessage( + // ByRef strMessage As List(Of ArrayList), + // Optional ByVal mcode As String = Nothing, + // Optional ByVal mtype As String = Nothing, + // Optional ByVal mmsg As String = Nothing + // ) As Boolean + // Dim result As Boolean = False + // Try + // Dim al As New ArrayList + // al.Add(mcode) + // al.Add(mtype) + // al.Add(mmsg) + // strMessage.Add(al) + // result = True + // Catch ex As Exception + // result = False + // End Try + // End Function + + #endregion + // ===== + + // 發Mail功能 非群組與群組發送 + public static string SendMultiEmail(ref string FileName, ref string EmailSubject, string EmailBody = defString, string GroupNo = defString, byte[] AttachFile = null, GroupType GroupType = GroupType.UserGroup) + { + string SendMultiEmailRet = default(string); + // GroupType + // 0:User Group (使用者群組) + // 1:Issue Group (簽核群組) + // 2:Equipment Group(設備工程師群組) + // 3:Inventory Group(庫房工程師群組) + // 4:Report Group(報表使用群組) + // 5:ERF Disposition Group(異常處理群組) + // 6:ERF Mail ccGroup(附件收件人群組) + + try + { + + strIdentity = CombineXMLIdentity(modWIN.gComputerName, "AUTORUN", DateTime.Now.ToString()); + strParameter = CombineXMLParameter("groupno", "GroupNo", "String", CInput(GroupNo), ""); + strParameter = strParameter + CombineXMLParameter("emailsubject", "EmailSubject", "String", EmailSubject, ""); + strParameter = strParameter + CombineXMLParameter("emailbody", "EmailBody", "String", EmailBody, ""); + strParameter = strParameter + CombineXMLParameter("grouptype", "GroupType", "Integer", GroupType.ToString(), ""); + strParameter = strParameter + CombineXMLParameter("attachfilename", "AttachFileName", "String", FileName, ""); + + var XmlDoc = new XmlDocument(); + + InXml = CombineXMLRequest(strIdentity, strParameter); + + // OutXml = wsWIP.SendEmailAndAttachFileToGroup(InXml, AttachFile) + OutXml = InvokeSrv("wsWIP.SendEmailAndAttachFileToGroup", InXml, AttachFile); + + XmlDoc.LoadXml(OutXml); + + if (chkExecutionSuccess(XmlDoc)) // 找出Exception訊並顯示出來 + { + SendMultiEmailRet = "success"; + } + else + { + SendMultiEmailRet = "fail"; + } + + XmlDoc = null; + } + + catch (Exception ex) + { + SendMultiEmailRet = "fail;" + ex.Message; + } + + return SendMultiEmailRet; + + } + + #region --- 數值查核 --- + + public static bool funChkNumericIsValid(string pSourceText, bool AllowFloat = true, bool AllowContainsDot = true, bool AllowZeroValue = true, bool AllowMinus = true) + { + + bool blnExecResult = false; + decimal decInputValue = 0m; + + try + { + + if (!Information.IsNumeric(pSourceText)) + { + blnExecResult = false; + return blnExecResult; + } + decInputValue = Convert.ToDecimal(pSourceText); + + if (!AllowMinus && decInputValue < 0m) + { + blnExecResult = false; + return blnExecResult; + } + if (!AllowZeroValue && decInputValue == 0m) + { + blnExecResult = false; + return blnExecResult; + } + if (!AllowFloat) + { + if (decInputValue % 1m > 0m) + { + blnExecResult = false; + return blnExecResult; + } + } + + if (!AllowContainsDot && !pSourceText.IndexOf(".").Equals(-1)) + { + blnExecResult = false; + return blnExecResult; + } + + blnExecResult = true; + } + catch (Exception ex) + { + throw; + } + + return blnExecResult; + + } + + #endregion + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/AutoRunLib/modWIN.cs b/SRC/MESAgent/MESAutoRun/AutoRunLib/modWIN.cs new file mode 100644 index 0000000..19ff128 --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/AutoRunLib/modWIN.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections; +using static System.Configuration.ConfigurationSettings; +using System.Data; +using System.Runtime.InteropServices; +using System.Xml; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + +namespace AutoRunLib_C +{ + + static class modWIN + { + + // ReviseDate : 2003/08/07,修改處理AdditionalXML + // ReviseDate : 2003/08/05,新增Public gReturnArray + // ReviseDate : 2003/07/01,更改AddFlow產生的Error(CInput) + // ReviseDate : 2002/11/04,新增CUnInput function + + public static string gComputerName = System.Environment.MachineName; + public static string gUserNo = "AUTService"; + public static string gMESWebServiceHost = GetAppSettings("MesWebServiceHost"); + public static string gCUSWebServiceHost = GetAppSettings("CusWebServiceHost"); + public static string gERPWebServiceHost = GetAppSettings("ERPWebServiceHost"); + public static string gLanguageMode = GetAppSettings("LanguageMode"); + + // Add By Peter 2005/6/20 + public static string gSettingMode = ""; + + + public static string PasswordEncoding(ref string Password) + { + string PasswordEncodingRet = default(string); + // 此 Function 將傳入值加以編碼後傳出,編碼後長度不變 + // 傳入值: 密碼 + // 傳回值: 編碼後密碼 + + // Vernam密碼是由Gilbert Vernam在1918年發明的 + string g_Key = "xNDFz6LH67LOv7xKbWFpbMu1wejrM7SzvV4tLRvq3X47m708O1xMHLoaMNCqGhoaEN"; + string strChar, iCryptChar, strEncrypted = default(string); + int i, iKeyChar, iStringChar; + + var loopTo = Strings.Len(Password); + for (i = 1; i <= loopTo; i++) + { + iKeyChar = Strings.Asc(Strings.Mid(g_Key, i, 1)); + iStringChar = Strings.Asc(Strings.Mid(Password, i, 1)); + iCryptChar = (iKeyChar ^ iStringChar).ToString(); + strEncrypted = strEncrypted + Strings.Chr(Conversions.ToInteger(iCryptChar)); + } + + PasswordEncodingRet = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(strEncrypted)); + return PasswordEncodingRet; + + } + + + // 2017-06-05, Joe, 依XML標準定義轉換特殊字元 + public static string CInputWithXMLStandard(ref string strInput) + { + string CInputWithXMLStandardRet = default(string); + + // 轉換 ' 為 ' + CInputWithXMLStandardRet = Strings.Replace(strInput, "'", "'"); + + // 轉換 & 為 & + CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "&", "&"); + + // 轉換 " 為 quot; + CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "\"", """); + + // 轉換 > 為 > + CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, ">", ">"); + + // 轉換 < 為 < + CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "<", "<"); + return CInputWithXMLStandardRet; + + } + + // 2017-06-05, Joe, 依XML標準定義反轉換特殊字元 + public static string CUnInputWithXMLStandard(ref string strInput) + { + string CUnInputWithXMLStandardRet = default(string); + + // 轉換 ' 為 "'" + CUnInputWithXMLStandardRet = Strings.Replace(strInput, "'", "'"); + + // 轉換 " 為 quot; + CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, """, "\""); + + // 轉換 & 為 & + CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "&", "&"); + + // 轉換 > 為 > + CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, ">", ">"); + + // 轉換 < 為 < + CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "<", "<"); + return CUnInputWithXMLStandardRet; + + } + + // **Add by py 2003/12/04,Gary Lu 20120911:以MESWin1~Win4的版本進行替換 + public static string LocalizeWebService(string wsUrl, bool Customize = false) + { + + string[] tmpString; + int i; + tmpString = wsUrl.Split('/'); + if (Customize == true) + { + if (!string.IsNullOrEmpty(Strings.Trim(gCUSWebServiceHost))) + { + if (tmpString.Length == 6) + { + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gCUSWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString(); + } + else if (tmpString.Length == 5) + { + wsUrl = "http://" + gCUSWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString(); + } + } + } + else if (!string.IsNullOrEmpty(Strings.Trim(gMESWebServiceHost))) + { + if (tmpString.Length == 6) + { + // wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 2).ToString & "/" & tmpString(tmpString.Length - 1).ToString + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString(); + } + else if (tmpString.Length == 5) + { + wsUrl = "http://" + gMESWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString(); + } + } + + return wsUrl; + // Have to assume the web service is on the machine that this application came from + } // LocalizeWebService + + public static string LocalizeWebService_ERP(string wsUrl) + { + + string[] tmpString; + int i; + tmpString = wsUrl.Split('/'); + + if (!string.IsNullOrEmpty(Strings.Trim(gERPWebServiceHost))) + { + wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gERPWebServiceHost + "/" + tmpString[4].ToString(); + } + + return wsUrl; + + } + + // Add By Peter 2005/6/20 + public static string GetAppSettings(string key, string section = "") + { + string result = string.Empty; + + try + { + + if (!string.IsNullOrEmpty(section)) + { + result = Conversions.ToString(((Hashtable)GetConfig(section))[key]); + } + else if (string.IsNullOrEmpty(gSettingMode) || string.IsNullOrEmpty(gSettingMode) || gSettingMode.Length == 0) + { + result = AppSettings[key]; + } + else + { + Hashtable ht = (Hashtable)GetConfig(gSettingMode); + if (ht != null) + { + result = Conversions.ToString(ht[key]); + if (string.IsNullOrEmpty(result)) + { + result = AppSettings[key]; + if (string.IsNullOrEmpty(result)) + { + result = ""; + } + } + } + else + { + result = AppSettings[key]; + } + } + } + + catch (Exception ex) + { + throw ex; + } + + return result; + + } + + + public static string GetSubString(string strValue, int intLength) + { + int intLen; + string strReturn; + + // Dim byteValue As Byte() = System.Text.Encoding.UTF8.GetBytes(strValue) + // If intLength > byteValue.Length - 1 Then + // intLen = byteValue.Length - 1 + // End If + // Dim strReturn As String = System.Text.Encoding.UTF8.GetString(byteValue, 0, intLen) + intLen = (int)Math.Round(Conversion.Int(intLength / 3d)); + strReturn = Strings.Left(strValue, intLen); + + return strReturn; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESAgent/MESAutoRun/MESAutoRun.sln b/SRC/MESAgent/MESAutoRun/MESAutoRun.sln new file mode 100644 index 0000000..e1749dc --- /dev/null +++ b/SRC/MESAgent/MESAutoRun/MESAutoRun.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoRunLib_C", "AutoRunLib\AutoRunLib_C.csproj", "{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|x86.ActiveCfg = Debug|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|x86.Build.0 = Debug|Any CPU + {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = AutoRunLib\\AutoRunLib_C.vbproj + SccProjectName1 = AutoRunLib + SccLocalPath1 = AutoRunLib + EndGlobalSection +EndGlobal diff --git a/SRC/MESEAI/EAICws/EAICws/EAIws_C.csproj b/SRC/MESEAI/EAICws/EAICws/EAIws_C.csproj new file mode 100644 index 0000000..bf80049 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/EAIws_C.csproj @@ -0,0 +1,143 @@ + + + + + Debug + AnyCPU + {74B7676A-6420-0784-301F-696024D2A8D7} + Library + EAIws_C + EAIws_C + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\..\MES_S_DLL\ + ..\..\..\MES_S_DLL\EAIws_C.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + pdbonly + false + true + true + bin\Release\ + bin\Release\EAIws_C.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + + False + ..\..\..\MES_S_DLL\Apache.NMS.dll + False + + + False + ..\..\..\MES_S_DLL\Apache.NMS.ActiveMQ.dll + False + + + False + ..\..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\..\MES_S_DLL\iMESConst.dll + False + + + + False + ..\..\..\MES_S_DLL\iMESCIO.dll + False + + + False + ..\..\..\MES_S_DLL\iMESException.dll + + + + + + + + + + + False + ..\..\..\MES_S_DLL\tcEAI_C.dll + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + Settings.settings + True + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + EAIws_C.My + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Application.Designer.cs b/SRC/MESEAI/EAICws/EAICws/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Application.myapp b/SRC/MESEAI/EAICws/EAICws/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/AssemblyInfo.cs b/SRC/MESEAI/EAICws/EAICws/My Project/AssemblyInfo.cs new file mode 100644 index 0000000..eca4b74 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 + +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("EAIws_C")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EAICws")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] + +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("968ccd3c-116a-41ae-97a1-bd5dafb45d36")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +// 指定為預設值: +// + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Resources.resx b/SRC/MESEAI/EAICws/EAICws/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/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/SRC/MESEAI/EAICws/EAICws/My Project/Settings.Designer.cs b/SRC/MESEAI/EAICws/EAICws/My Project/Settings.Designer.cs new file mode 100644 index 0000000..e8b6167 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Settings.Designer.cs @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; + + +namespace EAIws_C.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + 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 + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + } +} + +namespace EAIws_C.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/My Project/Settings.settings b/SRC/MESEAI/EAICws/EAICws/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/MESEAI/EAICws/EAICws/modEAP.cs b/SRC/MESEAI/EAICws/EAICws/modEAP.cs new file mode 100644 index 0000000..28a466b --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modEAP.cs @@ -0,0 +1,28 @@ +using System; +using System.Xml; +using Apache.NMS; +using Apache.NMS.Util; +using tcEAI_C; + +namespace EAIws_C +{ + + static class modEAP + { + + private static XmlDocument xmlDoc = new XmlDocument(); // 用以讀取Xml字串 + private static DateTime ArriveTime; // 送達時間 + private static string strIdentity; // Identity XML字串 + private static string strReturnValue; // ReturnValue XML字串 + private static string strException; // Exception XML字串 + private static string strResult; // Result XML字串 + private static string strMessage; // Message XML字串 + private static object strServiceName = "modEAP"; + private static int i = 0; + + #region EAP 客制接口 + + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/modERP.cs b/SRC/MESEAI/EAICws/EAICws/modERP.cs new file mode 100644 index 0000000..8034ece --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modERP.cs @@ -0,0 +1,120 @@ +using System; +using tcEAI_C; +using iMESCore.Settings; +using System.Collections; +using System.Collections.Generic; +using static iMESCore.Base.iMESConst; + +namespace EAIws_C +{ + + static class modERP + { + + public static string strService = "ERP"; + public static string strDataBaseType; + public static string strConnectionString; + + public static string funCreateOperation(string InXml) + { + string funCreateOperationRet = default(string); + System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串 + string OutXml = null; + + string strIdentity = string.Empty; // Identity XML字串 + string strResult = "fail"; // Result XML字串 + List strException = new List(); // Exception XML字串 + List strMessage = new List(); // Message XML字串 + string strKeyValue = string.Empty; // TransactionLot KeyValue + string strMode = string.Empty; // Mode + + try + { + try + { + // 讀取InXml字串 + xmlDoc.LoadXml(InXml); + } + catch (Exception ex) + { + clsERP.combineException(ref strException, null, ex.Message, "[%InXmlError%]", ex.StackTrace); + goto exitFun; + } + + // 組Identity字串 + try + { + strIdentity = modWS.CombineXMLIdentity(xmlDoc); + } + catch (Exception ex) + { + clsERP.combineException(ref strException, null, ex.Message, "[%IndentityError%]", ex.StackTrace); + goto exitFun; + } + + + // 2019/05/09 OwenLiu, Mantis:0057304 作業站整合若資料已存在, + // 且ERP未傳值的狀況, 不更新OPType, OPClass, OPShortName, OPOrder + string OPNo = string.Empty; + string OPName = string.Empty; + string OPType = defString; + string PSNo = defString; + int OPClass = defInteger; // Default 0 : General OP + string OPShortName = defString; + int OPOrder = defInteger; // Default 0 + string Description = string.Empty; + string Creator = string.Empty; + DateTime CreateDate = DateTime.Now; // Default Today + int PrintOutOnRunCard = 1; // Default 1 + double StdUnitRunTime = 0; // Default 0 + long CountOpUnitQty = 1; // Default 1 + double StdQueueTime = 0; // Default 0 + decimal decStdUnitRunTime = defInteger; + decimal decCountOpUnitQty = defInteger; + decimal decStdQueueTime = defInteger; + int OSOption = defInteger; + int OSOptionTemp = defInteger; + string ERPPDLineNo = defString; + // Dim OldERPPDLineNo As String = defString '存放作業站修改前的群組資料 + + // OPNo + if (xmlDoc.DocumentElement.GetElementsByTagName("opno").Count > 0 && xmlDoc.GetElementsByTagName("opno").Item(0).SelectNodes("value").Count > 0) + OPNo = modWS.CInput(xmlDoc.DocumentElement.GetElementsByTagName("opno").Item(0).SelectNodes("value").Item(0).InnerText); + + // OPName + if (xmlDoc.DocumentElement.GetElementsByTagName("opname").Count > 0 && xmlDoc.GetElementsByTagName("opname").Item(0).SelectNodes("value").Count > 0) + OPName = modWS.CInput(xmlDoc.DocumentElement.GetElementsByTagName("opname").Item(0).SelectNodes("value").Item(0).InnerText); + + + + // 判斷成功與否 + if (strException.Count > 0) + goto exitFun; + + strResult = "success"; + + exitFun: + ; + } + + catch (Exception ex) + { + clsERP.combineException(ref strException, null, ex.Message, "[%CreateOPFail%]", ex.StackTrace); + } + + finally + { + + // 將各部份之XML字串組起來並傳出 + OutXml = modWS.CombineXMLResponse(strIdentity, null, strException, strResult, strMessage); + + funCreateOperationRet = OutXml; + } + + return funCreateOperationRet; + } + + + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/modERPIntegrate.cs b/SRC/MESEAI/EAICws/EAICws/modERPIntegrate.cs new file mode 100644 index 0000000..740f816 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modERPIntegrate.cs @@ -0,0 +1,16 @@ +using tcEAI_C; +using iMESCore.Settings; + +namespace EAIws_C +{ + + static class modERPIntegrate + { + + public static string strService = "ERPIntegrate"; + public static string strDataBaseType; + public static string strConnectionString; + + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/modKMI.cs b/SRC/MESEAI/EAICws/EAICws/modKMI.cs new file mode 100644 index 0000000..4ce0867 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modKMI.cs @@ -0,0 +1,37 @@ +using System; +using System.Xml; + +namespace EAIws_C +{ + + /// +/// +/// + static class modKMI + { + + private static string strService = "KMI"; + + private static string RequestKey = string.Empty; + private static string AccountID = string.Empty; + private static string SeesionID = string.Empty; + public const string SuccessCode = "0"; + + public static void GetXMLHeaderNode(XmlDocument xmlDoc) + { + + if (xmlDoc.SelectNodes("request").Item(0).SelectNodes("host").Count != 0) + { + AccountID = ((XmlElement)xmlDoc.SelectNodes("request").Item(0).SelectNodes("host").Item(0)).GetAttribute("acct"); + if (string.IsNullOrEmpty(AccountID)) + throw new Exception("GetXMLHeaderNode fail!", new Exception("acct is Empty!")); + } + else + { + throw new Exception("GetXMLHeaderNode fail!", new Exception("acct is not found!")); + } + + } + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAICws/EAICws/modWS.cs b/SRC/MESEAI/EAICws/EAICws/modWS.cs new file mode 100644 index 0000000..a642f68 --- /dev/null +++ b/SRC/MESEAI/EAICws/EAICws/modWS.cs @@ -0,0 +1,1473 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using static System.Configuration.ConfigurationManager; +using System.Data; +using System.IO; +using System.Resources; +using System.Runtime.InteropServices; +using System.Web; +using System.Xml; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESConst; + +namespace EAIws_C +{ + + static class modWS + { + #region --- Get Xml Value --- + + + public static string GetXMLIdentityNode(XmlDocument xmlDoc, string SelectNode) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes(SelectNode).Item(0).InnerXml; + } + catch (Exception e1) + { + return "IdentityError"; + } + + } + + public static string GetXMLTransactionID(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("transactionid").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLModuleID(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("moduleid").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLFunctionID(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("functionid").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLComputerName(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("computername").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLCurUserNo(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("curuserno").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetXMLSendTime(ref XmlDocument xmlDoc) + { + try + { + return xmlDoc.GetElementsByTagName("identity").Item(0).SelectNodes("sendtime").Item(0).InnerXml; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + } // New Exception("modWS.GetXMLCurUserNo: " & e1.Message) + } + + public static string GetExceptionSysMsg(ref XmlDocument Xmldoc) + { + string GetExceptionSysMsgRet = default(string); + GetExceptionSysMsgRet = CInput(Xmldoc.DocumentElement.GetElementsByTagName("sysmsg").Item(0).InnerXml); + return GetExceptionSysMsgRet; + } + + public static string GetExceptionMesMsg(ref XmlDocument Xmldoc) + { + string GetExceptionMesMsgRet = default(string); + GetExceptionMesMsgRet = CInput(Xmldoc.DocumentElement.GetElementsByTagName("mesmsg").Item(0).InnerXml); + return GetExceptionMesMsgRet; + } + + public static bool chkExecutionSuccess(ref XmlDocument Xmldoc) + { + bool chkExecutionSuccessRet = default(bool); + if (Xmldoc.DocumentElement["result"].InnerXml == "success") + { + chkExecutionSuccessRet = true; + } + else + { + chkExecutionSuccessRet = false; + } + + return chkExecutionSuccessRet; + } + + + #endregion + + #region --- Combine Indentity Xml --- + + public static string CombineXMLIdentity(XmlDocument XMLDoc) + { + string CombineXMLIdentityRet = default(string); + CombineXMLIdentityRet = Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "transactionid") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "moduleid") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "functionid") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "computername") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "curuserno") + "" + '\n'; + CombineXMLIdentityRet += Conversions.ToString('\t') + '\t' + "" + GetXMLIdentityNode(XMLDoc, "sendtime") + ""; + return CombineXMLIdentityRet; + } + + public static string CombineXMLIdentity(ref string ComputerName, ref string CurUserNo, ref string SendTime) + { + string CombineXMLIdentityRet = default(string); + CombineXMLIdentityRet = "" + ComputerName + "" + "" + CurUserNo + "" + "" + SendTime + ""; + return CombineXMLIdentityRet; + } + + #endregion + + #region --- Combine Input Xml --- + + + public static string CombineXMLIdentity(ref string TransactionID, ref string ModuleID, ref string FunctionID, ref string ComputerName, ref string CurUserNo, ref string SendTime) + { + string CombineXMLIdentityRet = default(string); + CombineXMLIdentityRet = "" + TransactionID + "" + "" + ModuleID + "" + "" + FunctionID + "" + "" + ComputerName + "" + "" + CurUserNo + "" + "" + SendTime + ""; + return CombineXMLIdentityRet; + } + + public static string CombineXMLParameter(ref string value_name, ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterRet = default(string); + + CombineXMLParameterRet = "<" + value_name.ToLower() + ">" + "" + name + "" + "" + type + "" + "" + value + "" + "" + desc + "" + ""; + return CombineXMLParameterRet; + + } + + public static string CombineXMLParameter(ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterRet = default(string); + CombineXMLParameterRet = "<" + name.ToLower() + ">" + "" + name + "" + "" + type + "" + "" + value + "" + "" + desc + "" + ""; + return CombineXMLParameterRet; + } + + public static string CombineXMLValue(ref string TagName, ref string Value) + { + string CombineXMLValueRet = default(string); + CombineXMLValueRet = "<" + TagName + ">" + Value + ""; + return CombineXMLValueRet; + } + + public static string CombineXMLValueTag(ref string Value) + { + string CombineXMLValueTagRet = default(string); + CombineXMLValueTagRet = "" + Value + ""; + return CombineXMLValueTagRet; + } + + public static string CombineXMLRequest(ref string strIdentity, ref string strParameter) + { + string CombineXMLRequestRet = default(string); + + CombineXMLRequestRet = "" + "" + strIdentity + ""; + if (!string.IsNullOrEmpty(strParameter)) + { + CombineXMLRequestRet = CombineXMLRequestRet + "" + strParameter + ""; + } + CombineXMLRequestRet = CombineXMLRequestRet + ""; + return CombineXMLRequestRet; + + } + + public static string CombineXMLParameterMultiValue(ref string value_name, ref string name, ref string type, ref string value, ref string desc) + { + string CombineXMLParameterMultiValueRet = default(string); + // Value不用加上Tag + CombineXMLParameterMultiValueRet = "<" + value_name.ToLower() + ">" + "" + name + "" + "" + type + "" + value + "" + desc + "" + ""; + return CombineXMLParameterMultiValueRet; + } + + public static string CombineXMLAdditional(ref string strAdditional) + { + string CombineXMLAdditionalRet = default(string); + CombineXMLAdditionalRet = "" + strAdditional; + CombineXMLAdditionalRet = CombineXMLAdditionalRet + ""; + return CombineXMLAdditionalRet; + } + + public static string CombineAddXML_Add(ref string name, ref string type, ref string value) + { + string CombineAddXML_AddRet = default(string); + CombineAddXML_AddRet = "" + "" + name + "" + "" + type + "" + "" + value + "" + ""; + return CombineAddXML_AddRet; + } + + public static string CombineAddXML_Edit(ref string name, ref string type, ref string value) + { + string CombineAddXML_EditRet = default(string); + CombineAddXML_EditRet = "" + "" + name + "" + "" + type + "" + "" + value + "" + ""; + return CombineAddXML_EditRet; + } + + public static string CombineAddXML_Field(ref string name) + { + string CombineAddXML_FieldRet = default(string); + CombineAddXML_FieldRet = "" + "" + name + "" + ""; + return CombineAddXML_FieldRet; + } + + public static string CombineAddXML_Condition(string condition) + { + string CombineAddXML_ConditionRet = default(string); + + // 2007/03/22,sammi.呼叫CombineAddXML_Condition時,不可加CInput. + // 因CInput會將單引號轉成二個單引號,若Condition為下述範例時,會Error. + // strAdditional = CombineXMLAdditional(CombineAddXML_Condition("ModuleType in ('REWORK','SLR')")) + // strParameter += strAdditional + + CombineAddXML_ConditionRet = "" + condition + ""; + return CombineAddXML_ConditionRet; + + } + + public static string CInput(string strInput) + { + string CInputRet = default(string); + // 將傳入值內的單引號轉換為可存入資料庫的格式 + // 將傳入值內的 &, >, < 三個特殊字元轉換為XmlDocument可解譯之代替符號 + // 傳入值: strInput包含特殊字元的字串 + // 傳回值: 將特殊字元變更為代替符號的字串 + + // 轉換 ' 為 '' (單引號轉為兩個單引號) + CInputRet = Strings.Replace(strInput, "'", "''"); + + // 轉換 & 為 & + CInputRet = Strings.Replace(CInputRet, "&", "&"); + + // CInput = Replace(CInput, """", "''") 'AddFlow的Xml字串不可將雙引號轉為兩個單引號,XMLToFlow會Error + + // 轉換 > 為 > + CInputRet = Strings.Replace(CInputRet, ">", ">"); + + // 轉換 < 為 < + CInputRet = Strings.Replace(CInputRet, "<", "<"); + return CInputRet; + + } + + #endregion + + #region --- Combine Output Xml --- + + public static bool ChgTranslateException(List Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack) + { + bool ChgTranslateExceptionRet = default(bool); + + try + { + foreach (ArrayList al in Exception) + { + if (!string.IsNullOrEmpty(strExceptionSysmsg)) + strExceptionSysmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false) + strExceptionSysmsg += Conversions.ToString('\t') + '\t' + '\t' + al[1].ToString(); + if (string.IsNullOrEmpty(strExceptionMesmsg) == false) + strExceptionMesmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯錯誤訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0) + { + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart); + } + else + { + k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(ErrorName, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart); + strKey = Strings.Mid(ErrorName, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + strKeyValue = TranslateMsg(strKey); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart); + strKey = Strings.Mid(ErrorName, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + strKeyValue = TranslateMsg(strKey); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + } + // strExceptionMesmsg += Chr(9) & Chr(9) & Chr(9) & Resources.Resource.ResourceManager.GetString(al.Item(2).ToString) & "(" & al.Item(2).ToString & ")" + strExceptionMesmsg += Conversions.ToString('\t') + '\t' + '\t' + strErrName_Rep; + } + + if (!string.IsNullOrEmpty(strExceptionStack)) + strExceptionStack += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[3])) == false) + strExceptionStack += Conversions.ToString('\t') + '\t' + '\t' + al[3].ToString(); + } + + ChgTranslateExceptionRet = true; + } + + catch (Exception e1) + { + throw; + ChgTranslateExceptionRet = false; + } + + return ChgTranslateExceptionRet; + + } + + public static bool ChgTranslateException_ByLanguage(ref List Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack, bool ShowStack) + { + bool ChgTranslateException_ByLanguageRet = default(bool); + + try + { + // item content>> 0:code, 1:sysmsg, 2:mesmsg, 3:stack + foreach (ArrayList al in Exception) + { + if (!string.IsNullOrEmpty(strExceptionSysmsg)) + strExceptionSysmsg += Conversions.ToString(ControlChars.Cr); + if (!string.IsNullOrEmpty(strExceptionStack)) + strExceptionStack += Conversions.ToString(ControlChars.Cr); + // code + if (string.IsNullOrEmpty(Conversions.ToString(al[0])) == false) + { + strExceptionSysmsg += string.Format("[{0}]", TranslateMsg(al[0].ToString())); + } + if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false) + { + strExceptionSysmsg += "," + TranslateMsg(al[1].ToString()); + } + if (string.IsNullOrEmpty(strExceptionMesmsg) == false) + strExceptionMesmsg += Conversions.ToString(ControlChars.Cr); + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯錯誤訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + strErrName_Rep = TranslateMsg(ErrorName); + strExceptionMesmsg += "," + strErrName_Rep; + } + // stack + if (ShowStack == true && string.IsNullOrEmpty(Conversions.ToString(al[3])) == false) + { + strExceptionStack += ControlChars.Tab + al[3].ToString(); + } + } + + ChgTranslateException_ByLanguageRet = true; + } + + catch (Exception ex) + { + throw; + ChgTranslateException_ByLanguageRet = false; + } + + return ChgTranslateException_ByLanguageRet; + + } + + public static bool ChgTranslateException_ByLanguage(ref List Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack) + { + bool ChgTranslateException_ByLanguageRet = default(bool); + + try + { + foreach (ArrayList al in Exception) + { + if (!string.IsNullOrEmpty(strExceptionSysmsg)) + strExceptionSysmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false) + strExceptionSysmsg += Conversions.ToString('\t') + '\t' + '\t' + TranslateMsg(al[1].ToString()); + if (string.IsNullOrEmpty(strExceptionMesmsg) == false) + strExceptionMesmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯錯誤訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + strErrName_Rep = TranslateMsg(ErrorName); + strExceptionMesmsg += Conversions.ToString('\t') + '\t' + '\t' + strErrName_Rep; + } + + if (!string.IsNullOrEmpty(strExceptionStack)) + strExceptionStack += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[3])) == false) + strExceptionStack += Conversions.ToString('\t') + '\t' + '\t' + al[3].ToString(); + } + + ChgTranslateException_ByLanguageRet = true; + } + + catch (Exception e1) + { + throw; + ChgTranslateException_ByLanguageRet = false; + } + + return ChgTranslateException_ByLanguageRet; + + } + + public static bool ChgTranslateMessage(ref List Message, ref string strMmsg) + { + bool ChgTranslateMessageRet = default(bool); + + try + { + foreach (ArrayList al in Message) + { + if (!string.IsNullOrEmpty(strMmsg)) + strMmsg += Conversions.ToString('\n'); + if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false) + { + // 翻譯訊息 + string strErrName_Rep = ""; + string ErrorName = al[2].ToString(); + if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0) + { + // Replace[%%] + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart); + } + else + { + k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(ErrorName, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart); + strKey = Strings.Mid(ErrorName, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + strKeyValue = TranslateMsg(strKey); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart); + strKey = Strings.Mid(ErrorName, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + strKeyValue = ""; + strKeyValue = TranslateMsg(strKey); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } // & "(" & strKey & ")" + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + } + + // strMmsg += Resources.Resource.ResourceManager.GetString(al.Item(2).ToString) & "(" & al.Item(2).ToString & ")" + strMmsg += strErrName_Rep; + } + + } + + ChgTranslateMessageRet = true; + } + + catch (Exception e1) + { + throw; + + ChgTranslateMessageRet = false; + } + + return ChgTranslateMessageRet; + + } + + public static string CombineXMLReturnValue(ref string value_name, ref string name, ref string type, ref string schema, ref string value, ref string desc) + { + string CombineXMLReturnValueRet = default(string); + + try + { + CombineXMLReturnValueRet = "<" + value_name.Trim().ToLower() + ">" + "" + name + "" + "" + type + "" + "" + schema + "" + "" + value + "" + "" + desc + "" + ""; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.CombineXMLReturnValue: " & e1.Message) + + return CombineXMLReturnValueRet; + + } + + public static string CombineXMLException(ref string code, ref string sysmsg, ref string mesmsg, string stack = "") + { + string CombineXMLExceptionRet = default(string); + + // Edit by Yun 2006.8.9 加上 CInput + try + { + CombineXMLExceptionRet = "" + code + "" + "" + CInput(sysmsg) + "" + "" + CInput(mesmsg) + "" + "" + CInput(stack) + ""; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.CombineXMLException: " & e1.Message) + + return CombineXMLExceptionRet; + + } + + public static string CombineXMLMessage(string code, string type, string msg) + { + string CombineXMLMessageRet = default(string); + + try + { + CombineXMLMessageRet = "" + "" + code + "" + "" + type + "" + "" + msg + "" + ""; + } + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.CombineXMLMessage: " & e1.Message) + + return CombineXMLMessageRet; + + } + + public static string CombineXMLResponse(string Identity, string ReturnValue = null, List Exception = null, string Result = null, List Message = null) + { + string CombineXMLResponseRet = default(string); + + try + { + // + CombineXMLResponseRet = "" + '\n'; + + // + if (string.IsNullOrEmpty(Identity)) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Identity + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + // + if (string.IsNullOrEmpty(ReturnValue)) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + ReturnValue + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + // + if (string.IsNullOrEmpty(Result)) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + Result + "" + '\n'; + } + + // + string strExceptionSysmsg = string.Empty; + string strExceptionMesmsg = string.Empty; + string strExceptionStack = string.Empty; + + if (Exception.Count == 0) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + // 2016-12-01, Joe, Exception轉語系 + ChgTranslateException(Exception, ref strExceptionSysmsg, ref strExceptionMesmsg, ref strExceptionStack); + + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + AppSettings["defWSErrCode"] + "" + '\n'; + if (string.IsNullOrEmpty(strExceptionSysmsg) == true) + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n' + strExceptionSysmsg + '\n' + '\t' + '\t' + "" + '\n'; + } + if (string.IsNullOrEmpty(strExceptionMesmsg) == true) + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + strExceptionMesmsg + "" + '\n'; + } + else + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n' + strExceptionMesmsg + '\n' + '\t' + '\t' + "" + '\n'; + } + if (string.IsNullOrEmpty(strExceptionStack)) + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n' + strExceptionStack + '\n' + '\t' + '\t' + "" + '\n'; + } + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + // + string strMmsg = string.Empty; + + if (Message.Count == 0) + { + CombineXMLResponseRet += '\t' + "" + '\n'; + } + else + { + CombineXMLResponseRet += '\t' + "" + '\n'; + // 2016-12-01, Joe, Message轉語系 + // Call ChgTranslateMessage(Message, strMmsg) + + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + AppSettings["defMSGCode"] + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + AppSettings["defMSGType"] + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + strMmsg + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + } + + CombineXMLResponseRet += "" + '\n'; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + // Throw 'New Exception("modWS.CombineXMLResponse: " & e1.Message) + CombineXMLResponseRet = "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + e1.Message + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + "CombineXMLResponse;Fail" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += e1.StackTrace + '\n'; + CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += '\t' + "" + '\n'; + CombineXMLResponseRet += ""; + } + + return CombineXMLResponseRet; + + } + + public static string CombineXMLResponse(ref string Identity, ref string ReturnValue, ref string Exception, ref string Result, ref string Message) + { + string CombineXMLResponseRet = default(string); + + try + { + CombineXMLResponseRet = "" + Identity + ""; + + if (!string.IsNullOrEmpty(ReturnValue)) + { + CombineXMLResponseRet = CombineXMLResponseRet + "" + ReturnValue + ""; + } + + if (!string.IsNullOrEmpty(Exception)) + { + CombineXMLResponseRet = CombineXMLResponseRet + "" + Exception + ""; + } + + CombineXMLResponseRet = CombineXMLResponseRet + "" + Result + ""; + + if (!string.IsNullOrEmpty(Message)) + { + CombineXMLResponseRet = CombineXMLResponseRet + "" + Message + ""; + } + + CombineXMLResponseRet = CombineXMLResponseRet + ""; + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.CombineXMLResponse: " & e1.Message) + + return CombineXMLResponseRet; + + } + + // 2016-02-03, Joe, 調整Response XML架構 + + public static string CombineXMLResponse_Parameter(string key = defString, string type = defString, DataTable[] dtTemp = null, bool IsDetail = false) + { + string CombineXMLResponse_ParameterRet = default(string); + + int i = 0; + var XmlDoc = new XmlDocument(); + XmlElement nodeParameter = null; + if ((key ?? "") != defString | (type ?? "") != defString) + { + nodeParameter = XmlDoc.CreateElement("parameter"); + if ((key ?? "") != defString) + nodeParameter.SetAttribute("key", key); + if ((type ?? "") != defString) + nodeParameter.SetAttribute("type", type); + XmlDoc.AppendChild(nodeParameter); + } + + if (!(dtTemp[0] == null)) + { + // For iTable As Integer = 0 To dtTemp.Length - 1 + // If dtTemp(iTable) Is Nothing Then Continue For + i = 0; + + XmlElement nodeData; + XmlElement nodeDetail = null; + XmlElement nodeTemp; + if (IsDetail == false) + { + nodeData = XmlDoc.CreateElement("data"); + nodeTemp = nodeData; + } + else + { + nodeDetail = XmlDoc.CreateElement("detail"); + nodeTemp = nodeDetail; + } + + // 除第一個table外其他視為第二階 + nodeTemp.SetAttribute("name", dtTemp[0].TableName); + XmlElement nodeField; + foreach (DataRow dr in dtTemp[0].Rows) + { + + var nodeRow = XmlDoc.CreateElement("row"); + i = i + 1; + nodeRow.SetAttribute("seq", i.ToString()); + foreach (DataColumn dc in dtTemp[0].Columns) + { + nodeField = XmlDoc.CreateElement("field"); + nodeField.SetAttribute("name", dc.ColumnName.ToLower()); + nodeField.SetAttribute("type", "string"); + nodeField.InnerText = dr[dc].ToString(); + nodeRow.AppendChild(nodeField); + } + if (IsDetail == false) + { + for (int iTable = 1, loopTo = dtTemp.Length - 1; iTable <= loopTo; iTable++) + CombineXMLResponse_Parameter(dtTemp: new DataTable[] { dtTemp[iTable] }, IsDetail: true); + } + nodeTemp.AppendChild(nodeRow); + } + if (IsDetail == false) + { + nodeParameter.AppendChild(nodeTemp); + } + else + { + nodeDetail.AppendChild(nodeTemp); + } + // Next + } + + CombineXMLResponse_ParameterRet = XmlDoc.InnerXml; + return CombineXMLResponse_ParameterRet; + + } + + public static string FormatXMLSchema(ref string XmlSchema) + { + string FormatXMLSchemaRet = default(string); + + int intTruncateLength; + + try + { + FormatXMLSchemaRet = ""; + + // 將Schema字串的前面一行刪除,以符合XML格式 + intTruncateLength = Strings.InStr(XmlSchema, "?>") + 1; + if (intTruncateLength != 1) + { + FormatXMLSchemaRet = Strings.Right(XmlSchema, Strings.Len(XmlSchema) - intTruncateLength); + } + else + { + FormatXMLSchemaRet = XmlSchema; + } + } + + catch (Exception e1) + { + // 發生錯誤時丟回本身的Function Name及系統錯誤訊息 + throw; + + } // New Exception("modWS.FormatXMLSchema: " & e1.Message) + + return FormatXMLSchemaRet; + + } + + #endregion + + #region --- for Message Change Resource use--- + + /// + /// 2020/05/17 OwenLiu, Mantis:0071895, 讀取語系檔案到 Dictionary + /// + /// + /// + private static Dictionary funReadResourceFile_Dictionary(string ResourceFilePath) + { + + var oReturnResource = new Dictionary(); + + try + { + var reader = new ResourceReader(ResourceFilePath); + var en = reader.GetEnumerator(); + + while (en.MoveNext()) + oReturnResource.Add(Conversions.ToString(en.Key), Conversions.ToString(en.Value)); + reader.Close(); + } + catch (Exception ex) + { + throw; + } + + return oReturnResource; + + } + + /// + /// 2020/05/15 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + /// + /// + /// + /// + /// + private static bool funGetResouceValueText(string sourceFile, string pKey, ref string pResValue) + { + + bool blnResult = false; + ResourceSet rmGen = null; + + try + { + using (var fs = new FileStream(sourceFile, FileMode.Open, FileAccess.Read, FileShare.Read)) + { + rmGen = new ResourceSet(fs); + fs.Close(); + } + + pResValue = rmGen.GetString(pKey.ToUpper()); + if (!string.IsNullOrEmpty(pResValue)) + blnResult = true; + } + catch (Exception ex) + { + throw; + } + + return blnResult; + + } + + /// + /// 2020/05/15 OwenLiu, Mantis:0071895, 取回所有語系檔案的 ResourceManager Array + /// + /// + /// + /// + /// + private static bool funGetMultiResourceManager(string pResourcePath, string pLanguageMode, ref ResourceManager oResourceManager, ref Dictionary[] oResourceDictionary) + { + + bool blnResult = false; + string strResourceFile = "mesresource"; + + try + { + + if (!string.IsNullOrEmpty(pLanguageMode)) + { + strResourceFile += "." + pLanguageMode; + } + else + { + strResourceFile += ".en"; + } + + if (new DirectoryInfo(pResourcePath).Exists == false) + { + oResourceManager = null; + return blnResult; + } + + // 一次性建立多個ResourceManager, 以節省控制項的語系轉換須多次開檔的時間(控制項一定會有多個) + int intIndex = 0; + short intResouceFileQty = 2; + if (intResouceFileQty == 1) + { + oResourceDictionary = null; + } + else if (intResouceFileQty > 1) + { + oResourceDictionary = new Dictionary[intResouceFileQty - 2 + 1]; + } + oResourceManager = ResourceManager.CreateFileBasedResourceManager(strResourceFile, pResourcePath, null); + oResourceDictionary[0] = funReadResourceFile_Dictionary(pResourcePath + @"\" + strResourceFile + ".resources91"); + + blnResult = true; + } + + catch (Exception ex) + { + throw; + } + + return blnResult; + + } + + + /// + /// 2020/05/15 OwenLiu, Mantis:0071895, 從所有語系檔案的 ResourceManager Array 取出對應的語系值 + /// + /// + /// + /// + private static string funGetResourceManager_Text(string pKey, ref ResourceManager oResourceManager, ref Dictionary[] oResourceDictionary) + { + string strResult = ""; + bool blnKeyExists = false; + + do + { + try + { + + // 先搜尋Dictionary 是否有對應的Key + if (oResourceDictionary != null) + { + foreach (Dictionary ResourceDic in oResourceDictionary) + { + if (ResourceDic.ContainsKey(pKey)) + { + strResult = ResourceDic[pKey]; + blnKeyExists = true; + break; + } + } + } + + if (!blnKeyExists) + { + // 未找到Key, 搜尋ResourceManager + strResult = oResourceManager.GetString(pKey); + if (!string.IsNullOrEmpty(strResult)) + break; + } + } + + catch (Exception ex) + { + } + } + // Throw + while (false); + + return strResult; + + } + + public static string TranslateMsg(string Message) + { + string TranslateMsgRet = default(string); + + // 1.Check LanguageMode + string strFileName, strGenFile; + string LanguageMode = AppSettings.Get("LanguageMode"); + if (string.IsNullOrEmpty(LanguageMode)) + { + strFileName = "mesresource.en"; + strGenFile = "mesresource.en"; + } + else + { + strFileName = "mesresource." + LanguageMode; + strGenFile = "mesresource." + LanguageMode; + } + + // 2.Get File Path + string strResourcePath = ""; + string strResourceDirectory = AppSettings.Get("ResourceDir"); + + // 2016/05/13 YF, 修改Server.MapPath取得實體路徑 + if (HttpContext.Current != null && HttpContext.Current.Server != null) + { + strResourcePath = HttpContext.Current.Server.MapPath("./" + strResourceDirectory); + } + + string strErrName_Rep = ""; + + // 檢查檔案是否存在 + if (File.Exists(strResourcePath + "/" + strFileName + ".resources") == true) + { + // 4.Replace原始訊息. + if (Strings.InStr(Message, "[%", CompareMethod.Text) > 0) + { + // Replace[%%] + // Dim rmGen As ResourceManager = ResourceManager.CreateFileBasedResourceManager(strGenFile, strResourcePath, Nothing) + // 2014/03/20 Hank, 修正讀取Resources檔造成佔用的情形 + // Dim fs As New FileStream(strResourcePath.ToString & "/" & strFileName & ".resources", FileMode.Open, FileAccess.Read, FileShare.Read) + // Dim rmGen As New ResourceSet(fs) + // fs.Close() + + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + ResourceManager ResourceMgr = null; + Dictionary[] ResourceDictionary = null; + funGetMultiResourceManager(strResourcePath, LanguageMode, ref ResourceMgr, ref ResourceDictionary); + + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, Message, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(Message, intStart); + } + else + { + k = Strings.InStr(j + 2, Message, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(Message, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, Message, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(Message, intStart, j - intStart); + strKey = Strings.Mid(Message, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + strKeyValue = funGetResourceManager_Text(strKey.ToUpper(), oResourceManager: ref ResourceMgr, oResourceDictionary: ref ResourceDictionary); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(Message, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(Message, intStart, m - intStart); + strKey = Strings.Mid(Message, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + strKeyValue = funGetResourceManager_Text(strKey.ToUpper(), oResourceManager: ref ResourceMgr, oResourceDictionary: ref ResourceDictionary); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + + ResourceMgr = null; + ResourceDictionary = null; + } + else + { + strErrName_Rep = Message; + } + } + else + { + strErrName_Rep = Message.Replace("[%", "").Replace("%]", ""); + } + + TranslateMsgRet = strErrName_Rep; + return TranslateMsgRet; + + } + + public static string TranslateMsg(string Message, string pLanguage) + { + string TranslateMsgRet = default(string); + + // 1.Check LanguageMode + string strFileName, strGenFile; + string LanguageMode = pLanguage; + if (string.IsNullOrEmpty(LanguageMode)) + { + strFileName = "mesresource.en"; + strGenFile = "mesresource.en"; + } + else + { + strFileName = "mesresource." + LanguageMode; + strGenFile = "mesresource." + LanguageMode; + } + + // 2.Get File Path + string strResourcePath = ""; + string strResourceDirectory = AppSettings.Get("ResourceDir"); + + string strErrName_Rep = ""; + + if (HttpContext.Current != null && HttpContext.Current.Server != null) + { + strResourcePath = HttpContext.Current.Server.MapPath("./" + strResourceDirectory); + } + + // 檢查檔案是否存在 + if (File.Exists(strResourcePath + "/" + strFileName + ".resources") == true) + { + // 4.Replace原始訊息. + if (Strings.InStr(Message, "[%", CompareMethod.Text) > 0) + { + // Replace[%%] + // Dim rmGen As ResourceManager = ResourceManager.CreateFileBasedResourceManager(strGenFile, strResourcePath, Nothing) + // 2014/03/20 Hank, 修正讀取Resources檔造成佔用的情形 + // Dim fs As New FileStream(strResourcePath.ToString & "/" & strFileName & ".resources", FileMode.Open, FileAccess.Read, FileShare.Read) + // Dim rmGen As New ResourceSet(fs) + // fs.Close() + + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + ResourceManager ResourceMgr = null; + Dictionary[] ResourceDictionary = null; + funGetMultiResourceManager(strResourcePath, pLanguage, ref ResourceMgr, ref ResourceDictionary); + + string strKey, strKeyValue; + int intStart, j, k, l; + + intStart = 1; + j = 1; + + while (j != 0) + { + j = Strings.InStr(intStart, Message, "[%", CompareMethod.Text); + if (j == 0) + { + strErrName_Rep += Strings.Mid(Message, intStart); + } + else + { + k = Strings.InStr(j + 2, Message, "%]", CompareMethod.Text); + if (k == 0) + { + // 找不到對應的結束字元. + strErrName_Rep += Strings.Mid(Message, intStart); + j = 0; + } + else + { + // 檢查是否有不對稱的情況. + l = Strings.InStr(j + 2, Message, "[%", CompareMethod.Text); + if (l == 0 || l > k) + { + strErrName_Rep += Strings.Mid(Message, intStart, j - intStart); + strKey = Strings.Mid(Message, j + 2, k - j - 2); + // 將Key執行語系轉換 + try + { + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + strKeyValue = funGetResourceManager_Text(strKey.ToUpper(), oResourceManager: ref ResourceMgr, oResourceDictionary: ref ResourceDictionary); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + else + { + // 不對稱,找到最內層的[%%] + int m; + // 在前面的條件下,一定找得到. + m = Strings.InStrRev(Message, "[%", k, CompareMethod.Text); + // 擷出不轉換的字串. + strErrName_Rep += Strings.Mid(Message, intStart, m - intStart); + strKey = Strings.Mid(Message, m + 2, k - m - 2); + // 將Key執行語系轉換 + try + { + // 2020/05/20 OwenLiu, Mantis:0071895, 增加多語系檔案的語系轉換機制 + strKeyValue = funGetResourceManager_Text(strKey.ToUpper(), oResourceManager: ref ResourceMgr, oResourceDictionary: ref ResourceDictionary); + } + catch (Exception ex) + { + strKeyValue = strKey; + } + if (string.IsNullOrEmpty(strKeyValue)) + { + strErrName_Rep += strKey; + } + else + { + strErrName_Rep += strKeyValue; + } + // 下次截取字串的起始位置 + intStart = k + 2; + } + } + } + } + + ResourceMgr = null; + ResourceDictionary = null; + } + else + { + strErrName_Rep = Message; + } + } + else + { + strErrName_Rep = Message.Replace("[%", "").Replace("%]", ""); + } + + TranslateMsgRet = strErrName_Rep; + return TranslateMsgRet; + + } + + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/EAItc_C.csproj b/SRC/MESEAI/EAItc/EAItc_C.csproj new file mode 100644 index 0000000..5c2cb85 --- /dev/null +++ b/SRC/MESEAI/EAItc/EAItc_C.csproj @@ -0,0 +1,182 @@ + + + + + Debug + AnyCPU + {443394E0-F618-0D60-04C0-E207199604A2} + Library + tcEAI_C + tcEAI_C + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\tcEAI_C.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + AnyCPU + false + + + pdbonly + false + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\tcEAI_C.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + + False + ..\..\MES_S_DLL\Apache.NMS.dll + False + + + False + ..\..\MES_S_DLL\Apache.NMS.ActiveMQ.dll + False + + + False + ..\..\MES_S_DLL\data_access_service.dll + False + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\..\MES_S_DLL\iMESConst.dll + False + + + + ..\..\MES_S_DLL\iMESCIO.dll + False + + + ..\..\MES_S_DLL\iMESDataObject.dll + False + + + ..\..\MES_S_DLL\iMESException.dll + False + + + False + ..\..\MES_S_DLL\iMESLog.dll + + + ..\..\MES_S_DLL\kcMTL.dll + False + + + ..\..\MES_S_DLL\kcPRD.dll + False + + + ..\..\MES_S_DLL\kcQC.dll + False + + + ..\..\MES_S_DLL\kcSPC.dll + + + + + + + + + + + False + ..\..\MES_S_DLL\udReverse.dll + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + Settings.settings + True + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + tcEAI_C.My + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/My Project/Application.Designer.cs b/SRC/MESEAI/EAItc/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/MESEAI/EAItc/My Project/Application.myapp b/SRC/MESEAI/EAItc/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESEAI/EAItc/My Project/AssemblyInfo.cs b/SRC/MESEAI/EAItc/My Project/AssemblyInfo.cs new file mode 100644 index 0000000..805a6dd --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 + +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("EAItc_C")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EAItc")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] + +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("c6f5bc9b-8482-4694-8df4-0b0a3f7b9707")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +// 指定為預設值: +// + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SRC/MESEAI/EAItc/My Project/Resources.resx b/SRC/MESEAI/EAItc/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESEAI/EAItc/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/SRC/MESEAI/EAItc/My Project/Settings.Designer.cs b/SRC/MESEAI/EAItc/My Project/Settings.Designer.cs new file mode 100644 index 0000000..d651d7b --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Settings.Designer.cs @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; + + +namespace tcEAI_C.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + 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 + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + } +} + +namespace tcEAI_C.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/My Project/Settings.settings b/SRC/MESEAI/EAItc/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/MESEAI/EAItc/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/MESEAI/EAItc/clsCom.cs b/SRC/MESEAI/EAItc/clsCom.cs new file mode 100644 index 0000000..60eedca --- /dev/null +++ b/SRC/MESEAI/EAItc/clsCom.cs @@ -0,0 +1,195 @@ +using System; +using System.Reflection; +using Apache.NMS; +using Microsoft.VisualBasic; + +namespace tcEAI_C +{ + + /// +/// 20211027 13871,共用功能 +/// + public class clsCom + { + + /// + /// 20211027 13871,Reflection方法 + /// + /// DLL Name + /// Class Name + /// Function Name + /// + /// + /// + public static bool DetermineCustomized_Constructor(string strComponent, string strClassName, string strMethodName, ref MethodInfo mi, ref object obj) + { + bool DetermineCustomized_ConstructorRet = default(bool); + bool blnResult = false; + + DetermineCustomized_ConstructorRet = false; + try + { + blnResult = DetermineMethod_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj); + } + catch (Exception ex) + { + } + + finally + { + DetermineCustomized_ConstructorRet = blnResult; + } + + return DetermineCustomized_ConstructorRet; + + } + + /// + /// 20211027 13871,Reflection找出Method + /// + public static bool DetermineMethod_Constructor(string strComponent, string strClassName, string strMethodName, ref MethodInfo mi, ref object obj) + { + string strAppBase = AppDomain.CurrentDomain.BaseDirectory; + string strFilePath = ""; + Assembly mainAssembly; + Type t; + Type[] argumentTypes; + ConstructorInfo ctor; + + MethodInfo[] aryMethos; + + try + { + strFilePath = strAppBase.TrimEnd('\\') + @"\bin\" + strComponent; + mainAssembly = Assembly.LoadFrom(strFilePath); + t = mainAssembly.GetType(mainAssembly.GetName().Name + "." + strClassName, true, true); + // 20211211 13871,支援Module + if (t.GetConstructors().Length > 0) + { + argumentTypes = Type.EmptyTypes; + ctor = t.GetConstructor(argumentTypes); + obj = ctor.Invoke(new object[] { }); + } + strMethodName = Strings.Replace(strMethodName, ".", "_"); + aryMethos = t.GetMethods(); + foreach (MethodInfo item in aryMethos) + { + if ((strMethodName.ToUpper() ?? "") == (item.Name.ToUpper() ?? "")) + { + mi = item; + return true; + } + } + + if (mi == null) + { + return false; + } + else + { + return true; + } + } + catch (Exception ex) + { + return false; + } + } + + /// + /// 20211027 13871,取得Method的參數預設值陣列 + /// + /// DLL Name,可不傳副檔名,會自動補.dll + /// Class Name + /// Method Name + /// + public static object[] funGetMethodParameters(string strComponent, string strClassName, string strMethodName) + { + object[] funGetMethodParametersRet = default(object[]); + try + { + var mi = default(MethodInfo); + var obj = default(object); + if (!strComponent.ToUpper().Contains(".DLL")) + { + strComponent = strComponent + ".dll"; + } + + if (!DetermineCustomized_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj)) + { + throw new iMESException.MESException("0000-200003", strComponent + "." + strClassName + "," + strMethodName + " [%METHOD%] [%NOT FOUND%]"); + } + + int iParameterLength = mi.GetParameters().Length; + var aryParameter = new object[iParameterLength]; + for (int i = 0, loopTo = mi.GetParameters().Length - 1; i <= loopTo; i++) + aryParameter[i] = mi.GetParameters()[i].DefaultValue; + funGetMethodParametersRet = aryParameter; + } + catch (Exception ex) + { + throw; + } + + return funGetMethodParametersRet; + } + + /// + /// 20211027 13871,執行指定DLL、Class、Method,無法執行多載Method + /// + /// DLL Name,可不傳副檔名,會自動補.dll + /// Class Name + /// Method Name + /// + public static object funExecuteMethod(string strComponent, string strClassName, string strMethodName, ref object[] aryParameters) + { + object funExecuteMethodRet = default(object); + try + { + var mi = default(MethodInfo); + var obj = default(object); + if (!strComponent.ToUpper().Contains(".DLL")) + { + strComponent = strComponent + ".dll"; + } + + if (!DetermineCustomized_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj)) + { + throw new iMESException.MESException("0000-200003", strComponent + "." + strClassName + "," + strMethodName + " [%METHOD%] [%NOT FOUND%]"); + } + + funExecuteMethodRet = mi.Invoke(obj, aryParameters); + } + + catch (Exception ex) + { + ex = funGetRealException(ex); + throw ex; + } + + return funExecuteMethodRet; + } + + // 20211208 13871,從clsEAP移植 + public static Exception funGetRealException(Exception ex) + { + Exception funGetRealExceptionRet = default(Exception); + try + { + funGetRealExceptionRet = ex; + + if (ex is TargetInvocationException && ex.InnerException != null) + { + funGetRealExceptionRet = funGetRealException(ex.InnerException); + } + } + catch (Exception ex2) + { + throw; + } + + return funGetRealExceptionRet; + } + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/clsEAP.cs b/SRC/MESEAI/EAItc/clsEAP.cs new file mode 100644 index 0000000..54c3bfe --- /dev/null +++ b/SRC/MESEAI/EAItc/clsEAP.cs @@ -0,0 +1,99 @@ +using System; +using System.Data; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using static iMESCore.Base.iMESConst; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESComSubroutine; + +namespace tcEAI_C +{ + + public class clsEAP + { + + public static string strDataBaseType; + public static string strConnectionString; + + #region EAP 客制接口 + + + #endregion + + #region 共用功能 ConbineXMLFunction + + public static string CombineXMLRequest_AutoExecutionLot(string InXml, string functionid, string computername, DataTable dtLotInfo, string OPNo, string CurUserNo, string SendTime, bool blnRuleChk = true) + { + string CombineXMLRequest_AutoExecutionLotRet = default(string); + + string strLotXML = ""; + string strLotNoColumnName = ""; + if (dtLotInfo.Columns.Contains("Lot_ID")) + { + strLotNoColumnName = "Lot_ID"; + } + else if (dtLotInfo.Columns.Contains("LotNo")) + { + strLotNoColumnName = "LotNo"; + } + + string strrulecheckTag = ""; + if (!blnRuleChk) + { + strrulecheckTag = "false"; + } + + foreach (DataRow drTemp in dtLotInfo.Rows) + strLotXML = Conversions.ToString(strLotXML + Operators.ConcatenateObject(Operators.ConcatenateObject("", drTemp[strLotNoColumnName]), "")); + strLotXML += ""; + CombineXMLRequest_AutoExecutionLotRet = "" + " " + "" + Strings.Format(DateTime.Now, "yyyyMMddHHmmssfff") + "" + "" + functionid + "" + strLotXML + "" + computername + "" + "" + OPNo + "" + "" + CurUserNo + "" + "" + SendTime + "" + strrulecheckTag + "" + "" + InXml + "" + ""; + return CombineXMLRequest_AutoExecutionLotRet; + } + + #endregion + + #region ReverseTriggerOP + + public static bool ExeReverseTriggerOP_NotUseUndo(string pUserNo, string pLotNo, string pLotSerial = defString, int pLotStamp = defInteger, string ComputreName = "EAI") + { + + string InXml, OutXml, strIdentity, strParameter; + bool blnExecResult = false; + + // 2020/3/17 Ning, Mantis: 0068960, WIP_Kit 增加ExeReverseTriggerOP_NotUseUndo共用函式 + try + { + // 檢查此 BR 是否此站第一次執行,若是第一次執行則以刪除Temp, Cont, LotLog...的方式取消Trigger OP的動作 + strIdentity = CombineXMLIdentity(ComputreName, pUserNo, DateTime.Now.ToString(defDateTimeFormat)); + + strParameter = CombineXMLParameter("lotno", "LotNo", "String", CInput(pLotNo), ""); + // 因FormLoad不見得會成功取得Lot的資料,有可能失敗,故使用變數來決定是否傳出參數. + if ((pLotSerial ?? "") != defString) + { + strParameter += CombineXMLParameter("lotserial", "LotSerial", "String", CInput(pLotSerial), ""); + } + if (pLotStamp != defInteger) + { + strParameter += CombineXMLParameter("lotstamp", "LotStamp", "Long", pLotStamp.ToString(), ""); + } + InXml = CombineXMLRequest(strIdentity, strParameter); + // OutXml = InvokeSrv("wsWIP.ReverseTriggerOP_NotUseUndo", InXml) + + object[] aryPars = clsCom.funGetMethodParameters("wsSTD", "wsWIP", "ReverseTriggerOP_NotUseUndo"); + aryPars[0] = InXml; + OutXml = clsCom.funExecuteMethod("wsSTD", "wsWIP", "ReverseTriggerOP_NotUseUndo", ref aryPars) as string; + + blnExecResult = true; + } + catch (Exception ex) + { + + } + + return blnExecResult; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/clsERP.cs b/SRC/MESEAI/EAItc/clsERP.cs new file mode 100644 index 0000000..16420f5 --- /dev/null +++ b/SRC/MESEAI/EAItc/clsERP.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace tcEAI_C +{ + public class clsERP + { + #region --- Combine (Exception, Message) --- + + public static bool combineException(ref List strException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null) + { + bool result = false; + try + { + var al = new ArrayList(); + al.Add(code); + al.Add(sysmsg); + al.Add(mesmsg); + al.Add(stack); + strException.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + + return default(bool); + + } + + public static bool combineMessage(ref List strMessage, string mcode = null, string mtype = null, string mmsg = null) + { + bool result = false; + try + { + var al = new ArrayList(); + al.Add(mcode); + al.Add(mtype); + al.Add(mmsg); + strMessage.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + + return default(bool); + } + + public static bool combineFileMessage(ref List aryFileMessage, string mmsg) + { + bool result = false; + + try + { + var al = new ArrayList(); + al.Add(mmsg); + aryFileMessage.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + + return result; + } + #endregion + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/clsMDS.cs b/SRC/MESEAI/EAItc/clsMDS.cs new file mode 100644 index 0000000..5eb33d4 --- /dev/null +++ b/SRC/MESEAI/EAItc/clsMDS.cs @@ -0,0 +1,25 @@ + +namespace tcEAI_C +{ + + public class clsMDS + { + + public string strDataBaseType; + public string strConnectionString; + private udReverse.clsReverse objReverse = new udReverse.clsReverse(); + + // 2003/03/22,sammi. + // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆. + // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD. + public udReverse.clsReverse ReverseObj + { + get + { + return objReverse; + } + } + + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/EAItc/clsSPC.cs b/SRC/MESEAI/EAItc/clsSPC.cs new file mode 100644 index 0000000..b79d1ff --- /dev/null +++ b/SRC/MESEAI/EAItc/clsSPC.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using Microsoft.VisualBasic; + +namespace tcEAI_C +{ + + public class clsSPC + { + public static string strDataBaseType; + public static string strConnectionString; + + private string Filepath_E = @"D:\Log\EAI_TC\"; // 指定Log + + public void SaveLog(string msg) + { + if (!Directory.Exists(Filepath_E)) + { + Directory.CreateDirectory(Filepath_E); + } + //{ + // var withBlock = My.MyProject.Application.Log.DefaultFileLogWriter; + // // If CInt(Format(Now, "mm")) >= 20 And CInt(Format(Now, "mm")) < 40 Then + // // .BaseFileName = "Log" & "_20" 'Log檔的檔名 + // // ElseIf CInt(Format(Now, "mm")) >= 40 Then + // // .BaseFileName = "Log" & "_40" 'Log檔的檔名 + // // Else + // withBlock.BaseFileName = "Log"; // & Format(Now, "mm") 'Log檔的檔名 + // // End If + // withBlock.CustomLocation = Filepath_E; // 自訂Log檔的存放路徑 + // withBlock.AutoFlush = true; // Log檔寫完後自動清除緩衝 + // withBlock.LogFileCreationSchedule = Microsoft.VisualBasic.Logging.LogFileCreationScheduleOption.Daily; // 設定一天產生一個Log檔 + // withBlock.MaxFileSize = long.MaxValue; // 預設容量5M 改為 最大容量 + //} + + //My.MyProject.Application.Log.WriteEntry(string.Format("{0} {1}", Strings.Format(DateTime.Now, "yy/MM/dd HH:mm:ss ffff,"), msg)); + } + + public void combineException(ref List strException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null) + { + bool result = false; + try + { + var al = new ArrayList(); + al.Add(code); + al.Add(sysmsg); + al.Add(mesmsg); + al.Add(stack); + strException.Add(al); + result = true; + } + catch (Exception ex) + { + result = false; + } + } + + + } +} \ No newline at end of file diff --git a/SRC/MESEAI/MESEAI.sln b/SRC/MESEAI/MESEAI.sln new file mode 100644 index 0000000..d2e37de --- /dev/null +++ b/SRC/MESEAI/MESEAI.sln @@ -0,0 +1,156 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EAIws_C", "EAICws\EAICws\EAIws_C.csproj", "{74B7676A-6420-0784-301F-696024D2A8D7}" + ProjectSection(ProjectDependencies) = postProject + {443394E0-F618-0D60-04C0-E207199604A2} = {443394E0-F618-0D60-04C0-E207199604A2} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EAItc_C", "EAItc\EAItc_C.csproj", "{443394E0-F618-0D60-04C0-E207199604A2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + C++Buile|Any CPU = C++Buile|Any CPU + C++Buile|Mixed Platforms = C++Buile|Mixed Platforms + C++Buile|x64 = C++Buile|x64 + C++Buile|x86 = C++Buile|x86 + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Quick|Any CPU = Quick|Any CPU + Quick|Mixed Platforms = Quick|Mixed Platforms + Quick|x64 = Quick|x64 + Quick|x86 = Quick|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x64 = Release|x64 + Release|x86 = Release|x86 + StorageBuild|Any CPU = StorageBuild|Any CPU + StorageBuild|Mixed Platforms = StorageBuild|Mixed Platforms + StorageBuild|x64 = StorageBuild|x64 + StorageBuild|x86 = StorageBuild|x86 + UnitTest|Any CPU = UnitTest|Any CPU + UnitTest|Mixed Platforms = UnitTest|Mixed Platforms + UnitTest|x64 = UnitTest|x64 + UnitTest|x86 = UnitTest|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x86.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x64.ActiveCfg = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x64.Build.0 = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x86.ActiveCfg = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x86.Build.0 = Debug|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x86.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.Release|x86.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x86.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Any CPU.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Any CPU.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Mixed Platforms.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x64.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x64.Build.0 = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x86.ActiveCfg = Release|Any CPU + {74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|x64.ActiveCfg = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|x64.Build.0 = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|x86.ActiveCfg = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Debug|x86.Build.0 = Debug|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Quick|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.Release|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x86.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Any CPU.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Any CPU.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Mixed Platforms.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x64.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x64.Build.0 = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x86.ActiveCfg = Release|Any CPU + {443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8C4647D6-0300-48B8-9394-09E4BF0D878A} + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 3 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = EAICws\\EAICws\\EAIws_C.vbproj + SccProjectName1 = EAICws/EAICws + SccLocalPath1 = EAICws\\EAICws + SccProjectUniqueName2 = EAItc\\EAItc_C.vbproj + SccProjectName2 = EAItc + SccLocalPath2 = EAItc + EndGlobalSection +EndGlobal diff --git a/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.csproj b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.csproj new file mode 100644 index 0000000..ea44882 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.csproj @@ -0,0 +1,119 @@ + + + + + Debug + AnyCPU + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A} + Library + MESPI_BusinessRule + MESPI_BusinessRule + 512 + Windows + v4.6.2 + + SAK + SAK + SAK + SAK + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\MES_S_DLL\plugin\ + ..\..\MES_S_DLL\plugin\MESPI_BusinessRule.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + pdbonly + false + true + true + bin\Release\ + bin\Release\ + + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + true + + + iMES.snk + + + + + False + ..\..\MES_S_DLL\iMESCIO.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + Settings.settings + True + + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + MESPI_BusinessRule.My + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.sln b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.sln new file mode 100644 index 0000000..4f0a0e2 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MESPI_BusinessRule", "MESPI_BusinessRule.csproj", "{6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = MESPI_BusinessRule.vbproj + SccLocalPath1 = . + EndGlobalSection +EndGlobal diff --git a/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.vssscc b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.vssscc new file mode 100644 index 0000000..6cb031b --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/MESPI_BusinessRule.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.Designer.cs b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.myapp b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/AssemblyInfo.cs b/SRC/MESPlugin/MESPI_BusinessRule/My Project/AssemblyInfo.cs new file mode 100644 index 0000000..6648594 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 + +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("MESPI_BusinessRule")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MESPI_BusinessRule")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] + +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("ad5034de-f368-4373-8f98-36aec3edf64e")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +// 指定為預設值: +// + +[assembly: AssemblyVersion("6.0.0.0")] +[assembly: AssemblyFileVersion("6.0.0.0")] diff --git a/SRC/MESPlugin/MESPI_BusinessRule/My Project/Resources.resx b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/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/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.Designer.cs b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.Designer.cs new file mode 100644 index 0000000..77191f5 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +//------------------------------------------------------------------------------ + +namespace MESPI_BusinessRule.My { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.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/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.settings b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/MESPlugin/MESPI_BusinessRule/clsBusinessRule.cs b/SRC/MESPlugin/MESPI_BusinessRule/clsBusinessRule.cs new file mode 100644 index 0000000..7ef3087 --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/clsBusinessRule.cs @@ -0,0 +1,16 @@ +using iMESCIO.PIO.Plugin; +using Microsoft.VisualBasic; + +namespace MESPI_BusinessRule +{ + + public class clsBusinessRule : IBusinessRule + { + + private string funBR_Test(Collection colParameters) + { + return "Pass"; + } + + } +} \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_BusinessRule/clsGetFunctionBR.cs b/SRC/MESPlugin/MESPI_BusinessRule/clsGetFunctionBR.cs new file mode 100644 index 0000000..435204b --- /dev/null +++ b/SRC/MESPlugin/MESPI_BusinessRule/clsGetFunctionBR.cs @@ -0,0 +1,96 @@ +using System; +using System.Data; +using System.IO; +using System.Linq; +using System.Reflection; +using iMESCIO.PIO.Plugin; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + +namespace MESPI_BusinessRule +{ + + public class clsGetFunctionBR : ICommonPlugin + { + + public string PlugInPoint + { + get + { + return "wsOP.LoadBRFunctionName"; + } + } + + public object AfterExecut(params object[] Parameters) + { + + string strAppBase = AppDomain.CurrentDomain.BaseDirectory; + string strFilePath = strAppBase.TrimEnd('\\') + @"\Plugin\BusinessRule"; + Assembly mainAssembly; + MethodInfo[] MyMethodInfos; + string strFunction; + string strResult = ""; + + try + { + + foreach (string file in Directory.GetFiles(strFilePath)) + { + + if (new System.IO.FileInfo(file).Extension.ToUpper() != ".DLL") + { + continue; + } + + mainAssembly = Assembly.LoadFrom(file); + + foreach (Type item in mainAssembly.GetTypes()) + { + + var InterfaceTemp = item.GetInterfaces().Where(x => (x.Name ?? "") == (typeof(IBusinessRule).Name.ToString() ?? "")).FirstOrDefault(); + + if (InterfaceTemp == null == false) + { + + MyMethodInfos = item.GetMethods(BindingFlags.NonPublic | BindingFlags.Instance); + + for (int i = 0, loopTo = MyMethodInfos.Length - 1; i <= loopTo; i++) + { + + strFunction = MyMethodInfos[i].Name; + + if (Conversions.ToBoolean(Strings.InStr(strFunction.ToUpper(), "FUNBR"))) + { + strResult += "" + "FunctionName" + "String" + "" + "" + strFunction + "" + "" + "" + new System.IO.FileInfo(file).Name + "" + ""; + } + + } + + } + + } + + } + } + + catch (Exception ex) + { + throw; + } + finally + { + mainAssembly = null; + MyMethodInfos = null; + } + + return strResult; + + } + + public object BeforeExecut(ref bool paramIsCancel, params object[] Parameters) + { + throw new NotImplementedException(); + } + + } +} \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_BusinessRule/iMES.snk b/SRC/MESPlugin/MESPI_BusinessRule/iMES.snk new file mode 100644 index 0000000000000000000000000000000000000000..4206cdc36eceddde7f30ac484d1852eb3f9be236 GIT binary patch literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50097#g3R+{UF+SWBpq3jKsGz4Rg)jp;sR@& z9YKT-w@gNp-L~38+1NJ=1XDRJDW25AI*NovDaNnzDN>{Bkv1jod=Ji9)a&FRUaAtf zi1{sH^ycmTE>;(=WPI@cVijY>( z68QMK9TPTAYPREpfq+h^Nne$)zO;6bx%j96AK_A|B+TR7U>0P)(eEk{J#@4Mx&M05 zCmJxuxSLKS802l^7))Rwj&-Awxzy zL|h&Z8u5{hxZ#i*aB?roJ=(>%lFM~AM)K&^89a(nzv>UkL3%^1E^(B=&$CpC*k&Uu zoWIXD#zo%*oEY3D5w(^p%? zO5a)yp9j|(odT|vi) x=2V4i$!>r`bocbgd;9#&HU{hI|N6Z$Mk4?^qLlWtab5 z>NP5P^SUu%0a4(t?J}R)?1B(lBxj+?ehgOdZcWno8ix^tn9J&06) + + + Debug + AnyCPU + + + + + {F9051601-B027-0745-17C2-D36A87ABB6A1} + Library + MESPI_WIP + MESPI_WIP + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\MES_S_DLL\plugin\WIP\ + ..\..\MES_S_DLL\plugin\WIP\MESPI_WIP.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + 0 + + + pdbonly + false + true + true + bin\Release\ + bin\Release\MESPI_WIP.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + 0 + + + On + + + Binary + + + Off + + + On + + + + + False + ..\..\MES_S_DLL\iMESException.dll + True + + + ..\..\MES_S_DLL\iMESLog.dll + + + False + ..\..\MES_S_DLL\kcPRD.dll + + + ..\..\MES_S_DLL\kcWIP.dll + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + Settings.settings + True + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + MESPI_WIP.My + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.sln b/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.sln new file mode 100644 index 0000000..29ee868 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/MESPI_WIP.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MESPI_WIP", "MESPI_WIP.csproj", "{F9051601-B027-0745-17C2-D36A87ABB6A1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F9051601-B027-0745-17C2-D36A87ABB6A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9051601-B027-0745-17C2-D36A87ABB6A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9051601-B027-0745-17C2-D36A87ABB6A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9051601-B027-0745-17C2-D36A87ABB6A1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 1 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccProjectUniqueName0 = MESPI_WIP.csproj + SccProjectName0 = . + SccAuxPath0 = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProvider0 = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + EndGlobalSection +EndGlobal diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Application.Designer.cs b/SRC/MESPlugin/MESPI_WIP/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Application.myapp b/SRC/MESPlugin/MESPI_WIP/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/AssemblyInfo.cs b/SRC/MESPlugin/MESPI_WIP/My Project/AssemblyInfo.cs new file mode 100644 index 0000000..0d0d221 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 + +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("MESPI_WIP")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MESPI_WIP")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] + +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("438509c2-63aa-45a9-955b-b76a4ad092ac")] + +// 組件的版本資訊是由下列四項值構成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +// 指定為預設值: +// + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Resources.resx b/SRC/MESPlugin/MESPI_WIP/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/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/SRC/MESPlugin/MESPI_WIP/My Project/Settings.Designer.cs b/SRC/MESPlugin/MESPI_WIP/My Project/Settings.Designer.cs new file mode 100644 index 0000000..ecde249 --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Settings.Designer.cs @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; + + +namespace MESPI_WIP.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + 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 + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + } +} + +namespace MESPI_WIP.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESPlugin/MESPI_WIP/My Project/Settings.settings b/SRC/MESPlugin/MESPI_WIP/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/MESPlugin/MESPI_WIP/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/MESWin/Resources/AUT.png b/SRC/MESWin/Resources/AUT.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b4091326605c32d1c3fbb481187492831024db GIT binary patch literal 3414 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/AutoRPTMeasureData.xls b/SRC/MESWin/Resources/AutoRPTMeasureData.xls new file mode 100644 index 0000000000000000000000000000000000000000..471b5c5806691d602f55cae0d53e6b174c488fab GIT binary patch literal 19456 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 S$z?nM0000~q literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/DT.png b/SRC/MESWin/Resources/DT.png new file mode 100644 index 0000000000000000000000000000000000000000..38f72310dc4c8f04e1289fe8c19e4b9d9bbe66b3 GIT binary patch literal 1593 zcmV-92FCe`P)pG`=-#28FVM1oP1CcgRNi~6D>0STHAgaTp_1fnej zkq|U;>26!t>wou~^Y8w&Yq$L+^d!?c`=2>8bH2HpQ;BNEp1u19!1`%^#*V(;Edx_O zsI?Nl=k<4XK0=EZFS@UmuV24GqoWu2VAC9sYXu$GrA3P#B;WV%E3r=2T|54RfMeU_ zRsz_Q4$Y~anF59O9i-5WbdRb`MuDo#CeB^!i_ zW#EA0z%dI1?=0JeLk>xXB-X3?Sa+llgo3ObiXA9CapDR>U;utyghAC*81_Xjz(>H$ zF$NlrjPEkJUf`G{$)P?gDgsqO-pr@;Jef9hFC$e^NKs@`fB-{({=ztQt!k!Uf6vhB z&Q{2IA{@t#UloqHsw5J&sxKM>mI~M}NKpf4hR;m^0hxY2 zlYvneM!1R?0Y*Y1Sv5j^tb0xeIC(5H5R_yEAppECd(XddB9M>v;rnbv3CquejK~9< zV=e{Z00OeCh5A@`Bm~Oka>W5nAixTr*z_1-_-P#uTa<>_HsQcq5Zo#ku zlHm+zf1snPFERp!LLo$e;pLuk_|V_z1#yG`VbBd4K3#-ED(9(K=USI!Lo^}ZcfnQB z0VP=t^+iJfaD@(V9jiLEv?NdgF)|WyiotKzo`@$X7BfHy1LuII z1Ac@-3GM=}f5&x13EC(ZHpGcnE}K*=6{(0&WNzLRx}zYlb#!Fpvw3=uY_0t;)1^u~ zckO-*3ug^99TpHLM3yr*(NvgTe(A+&dp`f-OVZJx3|$wf@I9ics1nRM`%xWT+uwQn z+?)uAd)sja+wg!$ryGUg?D#n4#&UG~&K(hgR4PUL_U)gxCz(hf)_IzooWy#PTAG_h z$QCSEfbRwR=f=%Jh;5n^f$i`1_ck;%e7muGy=bAiT#gPMI!r59uB7(%rPSKmD&*4X z^pvm#@n(Me_8q!*?Jv4`@dB+`(?!j21p4UonX|0xxt;Ir*gMyIU~t3wb;3}oR3aUa z+O|nULr4EtuoM{SS=7-nt09{>GaFD^@J;f4;9TXz}P|90I-( z`7yzWRC#bqdO{|AU?Se!t~JgDZdh=hxgu^+g}&Ldhb~?EW5>rIeK;^90+wZOdv?nf z0oi;E*8Tpj-P@+VjMWAE?pZM}{KjK;>1$cAcpXFkjB`;eM{6hc_VO841pKZmmm}E}_;3TBxI= z9o=nV@IqFVu*QSmYUSmuh#X;k9{L4e#r#Bf@oXFueuJ{wu%$&oHlC@YpIS00000NkvXXu0mjfcFyMr literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/DirectionDown.png b/SRC/MESWin/Resources/DirectionDown.png new file mode 100644 index 0000000000000000000000000000000000000000..8f895330520aa5537b0f1a56b35b982cc36283a3 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^3xGJ9gAGW2nbr3lNJ*BsMwA5Sri7Xz0ACpO6sLZ#)KSMB;H^PWLxd*xd0EzS9i2|IbsxkHo>$<{bCD7Nq)kl`?X zu==Z3MRx(0e8WVJ=d~^~IOESUl&|kw{(-UL<*{1#8G`X`vKz!XHa|MevLT{n=Eqd# z2$@4~ei$*`QL1U#q1+pub6kF~S}MU`aM_`7+XM3yecJU|56n~W z>D1>va7b|3(dk?X3pu9i?)$A)xU#P2g5I}Xn$NR$rxyQN=2dp!RQaKP2L}5eyUbY{ zB47Xe{}JfsNP$D_2@=?SV9)~eUz>m(!(m*CWDcr(PEz^1KcA6}!N8MgkNknGG+;7f N@O1TaS?83{1OQo=^D6)V literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/DirectionLeft.png b/SRC/MESWin/Resources/DirectionLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..80ea854d234a6fb0f9496a15e4056a1daf59ade2 GIT binary patch literal 512 zcmeAS@N?(olHy`uVBq!ia0vp^3xGI=gAGW&oWIW>NJ*BsMwA5SrEaktaqG>Ujk!#Q3=Vvux z(8_y5A%)q#?X2Z&LA`goJi|edlv<&>~WI&J4)u`ARtgf+i^*}!ba(EZ@{ zkz_9Uh7XJ!@-+;7jPbjknK$zv2>Nm9)b~~~knnsdHV&ZtN?S1J7V`|w_*c4*q8~B? zO*yo@jqwnBf@ckX;{W6SdF&XxA9!ouuX(VrEb)i$YRgyIf3Dg!zE66&dapF&fy`d{ zS8{ehdm27)I{aX0@n-;PRbBg#c|%I=kKZYpj5F3Bp8A{5i9s=BHiIIIfD!O6^B$e2O@r-N?SuC1OrQPwFVdQ&MBb@0O9b% ACjbBd literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/DirectionRight.png b/SRC/MESWin/Resources/DirectionRight.png new file mode 100644 index 0000000000000000000000000000000000000000..cc26c41bdd8e5b7498bbdf368c355aeae2722a16 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^^MN>qgAGU)q^JJ^Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07#L4^x;TbZ+TD zamG(gv)3mxq-t%;18(0o>a9$B(9H7T-kIgK7VnCfbEeBnD%3C>Vo$JX_`t{^-|!L0 z1_~Tw2C_deO7IhuEKhi>t7Tx}v6%b8&xgN_>aTHsxMa3^S>dh7`45FbX3l45;dl7K zlJGdhd&<4b66@3#`y0>ii`{>+ev!1@+buWGRcZeSVY=7O%-6^+U-3aRoPRkV|2`{e z^$PvxADkXCua8(>=l^Uwm&2Fs%zNU0O4S~#+I;kE8T+dykn&Le_q%@XoX0hfxo`2I z-Cq3bAI$vebs+nG7W;#P>~b{^z-Bgz%L19AXIDzopr0FYPcu>b%7 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/DirectionUp.png b/SRC/MESWin/Resources/DirectionUp.png new file mode 100644 index 0000000000000000000000000000000000000000..1f2c2ab35b54b49fce9f5852c963a649e98ae6de GIT binary patch literal 606 zcmeAS@N?(olHy`uVBq!ia0vp^3xGJ5gAGV39nO6Pq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfcKAx;TbZ+3~YZvxX1whfFjJErp*C{0z`5n%en{M&Dp)!V%a=dE!mx??g)#dFe|p+oMQSsvW@@$0Pcq3F%5 z2`qLTj6BEL6&oJ@P+&2Tk#AvWd)zE=prA&8NurM*sOh64M}h^qB2(rwEb=X;OlNq2 zB;y&8`^!?DDi{@NCax7a6wL4tXn@wo(9R95Km#7G7E9y?8ha>Q_mCLSoIA4jPd@k6 z`ct^lqh)eXo*%1zkL$X3liipC7`zy`9C*JvZO+)&mnYm1y*HDO^@C=wW(&hVsrwhK zC-0sd%x~SpRA5tM+p_+y7l&fQ<43O*YvdUoN;&*c60~FFi09K*Z1~{F@xcBF&__3G zSnfGjuq)Iga$L5^dv(Jv%=EyT{{1h^X02mr0lMt<;c(+aoIsCq#Bb$L|B%}IfeU2L zJoBe@uVZ8mDEUjhU6;w1aPO>_-Lq}Gx3M<-ytm-@rTJ5L-MtESDyIXZ2BQXpDg)~R zmIVw`7(^O`8khp0{s2iLOI@13J)NuW%cNsP3;s_8#@Ls&{ETc2k&oFIsdqUo0wx#+ MPgg&ebxsLQ06CE8CjbBd literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/EMS.png b/SRC/MESWin/Resources/EMS.png new file mode 100644 index 0000000000000000000000000000000000000000..80b96c73dc20c29b057056ef988fe5a1748a70b1 GIT binary patch literal 1534 zcmVk5LjGSY5J8>WSY$;eBW35j4=d3paPH> z29wVMOifMU!i5W<7#kZK=r>7;3$|ysStqEG%GTWF)a;0xAQfX){hMXT8WFQIN%~3m1!{N6z)W0;rTn4n%J++KWl6-s9 zG!hxw$!7cgz40h*H>NVE5=Q`p*db*;hs1k#1NIOjzVp)9Ey2L~7;)kAKC!}UDXP#$T| zCryq?D?~Pro<%?qoli1A4cllmu)VzvlC}(x;SRX4Ugp4X0AtHSt_$GfO+d>fqbJ=f zY0y?^gz$PjfJ2on*bPuFl~o2NCnr^TT-Qw#fSxAcKkuM$LV&L@)`KHp?$H9_4(iMDE|m`tDa z3t;aI=nV~e?a81q0gVf=4F*2ppghpP_^gS>_ZoPXVc<1}2dkSHKa;_sQaAXD1>IAn zQUr8U`f@ddl@RUHxd&8ALpy@lk-93NJ=S0p1pMhb@_%I^wgG)ZLuHZU^yfwN{ho*O zlYp>8h3K=&5+MhMOYgb$b%hVd7( zD1FVLH+4l`yT$Owf(KSJq5;HYus}cwDMKJ|02SLmix_ZAOGTJQsk7KJPYNOdXw8=W@9mefuPMl7Y1G;Rhe%#*G{Ct5ZiU-yg}L zLh1@9LTOMBB-(KtB0#~_wM^1hf;d2}R>M9*4&xV)Gy&R+ktUMZ@*NNZ0|P`r#YvYS zl+5zBZ423<8r5n)k!O>Pq$K@@lqQnwojZ4q2veWXy8$szhCxpLJU%^p_UuJ@Wj=er zKO!9o96*SW7#tkDb^iSM_W*2BFv6g8@Pb5l>WbFl_1<Hb-G`oCyN6Z|j#0P-Sf6zsfUpa1{>07*qoM6N<$f(DV(7ytkO literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/ENT.png b/SRC/MESWin/Resources/ENT.png new file mode 100644 index 0000000000000000000000000000000000000000..fa35ea84397c3593ca2781e9fef104d76dfcead8 GIT binary patch literal 2974 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/IEW.png b/SRC/MESWin/Resources/IEW.png new file mode 100644 index 0000000000000000000000000000000000000000..4268fb07ed9b1f4dfed59938a74fc8fbeeacb492 GIT binary patch literal 1849 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 e94xkZMED1QEqss;16pAK0000 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/ISU.png b/SRC/MESWin/Resources/ISU.png new file mode 100644 index 0000000000000000000000000000000000000000..19933048c5cc548933a70de84187a1992a53aaa5 GIT binary patch literal 1485 zcmV;;1v2`HP)0^o}N8>RzET_GU_a=L|CO-U0tQ_?rwrN=v8YgO*S@?ZE1eLsKK%;y-VzcL5=#G~jE|2KtiP3$lk<&gZf?#1 zi*G%8^r+2XFbF!GE*2${G&ME#<+W?q&ZE3sISkX&)AA1|Cnm^ZGVLS@2}x~3*k9sl z74belHa6B$R8+J8mz+Cu=1gW{Vq#cYTAJUzd-r}{T3Yg%pP#2c9zLYt&`=si5+2CR zBu#MecJn~8SS)irJw1KQMR|ie5OMVA(M;6nxum2dT~JVv?cKX~5(tQMMk8tO-=`rc z{p|8(LMd|H{P8FO=U_3aQ*L0}Q+LKV!S%?@T~XMdHNnwl6B6C z9wdt5rmRQkKKKsT&vbTnPV-r`4-a7M>+7q(apT6Q$z(d8m6eqa62hTFhxh`nfGtl& zD7GiGf@)jg!-sCN0poCeGhAPfh9P%BkRg`ks?*4DB&HsgV<5jb(;gg@f1 zV*+eBdjjvo$yi=qP9R5^9aK_MLWPBegx1OmoK^$QTm?=E2#3vPAQlN z)z#IMk&z+iMpac6UAc0FkhrWs31xE1?^dgouw(qmJIqE&$SwH*tX88H|6`bd7)3`% z6H1j1A3iKUu`kM&DXrz-GGPcSW=L4`j0FV+KNFEJ^l_uaOcjQX`n!>)h4vGv|Pnd^4n~`M`$<% zY&9$A4VWS$BiSe$h;(u@1;`NrsgeNEO z6N{*rUZwTUTJZ`nfh@m@XQ;FP5NOvT+O{?#BElbgW+2A--h&4ZdLuM$s16ktoKfV# zFmv9@9}^Mq1vJi5;62oUC!qE9_1zm578VFHp-9qTl&%pC>pT3j8s7?m?R-~wPu%rA naWB9dSO83bl|F)~997(3z9agUG1$DC00000NkvXXu0mjfJVd?W literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/ImportSample-AttributesQCItem.xls b/SRC/MESWin/Resources/ImportSample-AttributesQCItem.xls new file mode 100644 index 0000000000000000000000000000000000000000..0ddf7e02f7c0cdc5c1ae098bafe1f7afe5f39262 GIT binary patch literal 33280 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/ImportSample-SPCData.xls b/SRC/MESWin/Resources/ImportSample-SPCData.xls new file mode 100644 index 0000000000000000000000000000000000000000..d44a766a86b693945675f310053fd87b3d2a730e GIT binary patch literal 23552 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 b`8l)dJUAqLe|dF!^}&a9r``T~kN*Dv{%ieD literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/ImportSample-VariablesQCItem.xls b/SRC/MESWin/Resources/ImportSample-VariablesQCItem.xls new file mode 100644 index 0000000000000000000000000000000000000000..e345d8047d3d776026216b5788785d11ead4279a GIT binary patch literal 33792 zcmeHQ3vis(bw0aVNh`^+9=3(Cjl7m$@HU>ZRw2>T1yOv~Z7lBwyzaFsKRd-iL z3aBUvNrNGQ2r7{AOiEH3N+{ux07)R2PMc(=O4G@ZNq7u(Iw6xZX&y9b8-`^2oqPZL z@4x^4E7mS_8nRdOKhC-5o^$TG=br!G```Wb&)+UN|KJm=en6IVfU@ZKu{_E#;T^bd zRB$mNKNe$9T^n!@R3`laSs>4ihRn&P;o5KIzC7cg95nb3$Vrd8Uc{N`Uvc!&IOP%@ z9`y%CgTtQxlhiD9@H<$Cb8x)=UX9qna%Df^lHMEMp3HqgUH@iASXFHlGOrzwd0KJ#FW%NY| zjNK~aW__Hp9M#iHhh91(Wx8mI(1=w{*2qO0QskDIYm>y4DDR@`xsrYfUG=h#k8gE3 z9@mt%GOtYXwawd?GS2~?&vA3xmMdALT>T>D>Qk0;(j_VKMjQ@0kb>v-Mee z7OXVoUDK@%UTY>ON07KQPOzieTpm!lYdyKCJdwh}MUd^HtyE3a&%(EQgeLt}QkOWW z=T=lzAg{lwvA?R^wVk%mW-b^f>oeUmK7oEeZ6|~Xvmhv7ktH#4aSaV|f%UYFcA5mL z(z<+ARERZ~^T793!w^S%bW8Vd+1pnc2m7{^yEekw9t(}MmW6N=tiH}n$YK-u0mCe} zA;4`)rcC0hldqx2p{L;ulBcdPvs*_`(3*sN#mPieK~K_UaUw%EokSP4nVzBwE0u+t zPI@_FWi4!8Y4VOOdv&m{Qn*W>f#CLLps^nc@1QTiLr_%t2j^_{m&4HmoU89Y1ULREP~t}3jFjo@M(_A@x;_^;He_c}A`r8|(8l zb?)?amb+HamkCeriW6F-Vy}Mg3RRT5R?$~z1u}ZW6B=^#%OQUtq9J!VeU*xk>kT4L zo`!~i&!^|m{i%9Kb-$li~5xrZxg5Z5=f3MzN4rWX)_=$Z{x z_0{#)3bmjkD|uxk!W_>r$FZG*dmGDLOX)>~cp5_us<=*EfxqJlFt8IuvU+?w9ZDo5QS}VNA zOmE;V{PFye^hSG0e}fw@DrCS}pi6B;wfh?}XoJq6eRGCpB`BBtCX{maFh)J|3d$?eNfl z+*#2`jUIB<2)TFw%6h%c;~hJ^qF<7NUgE(<@|je8DiiB9>5%ox*`A0W=aNVXc&IXN zN6&akuIQ8PzteMzdpX_08Aj@+uAfXjJne3x=>$CY{wylQa~wkp=#TLQ2Btg+TZ(~# z(}Y{%4^aCc9G z3432^CL9Cak;y{G;;q90BMl~tw+?suG?*;jIvk49V6u4YaNJ6R$>OcUK`sp@i?IFei9@&u{Y0!|jg$ib;7})IE2VT?f>Mmrbt0vd8JDco zenTmC2u^0#5`$;9)I$$Flw_%QPbuq&{s1J#y#QKYO4@szmta{lj~umljj@qDRE1;tUEvSc z(5(9)4wTfB!&Q!#?8$U&R0m%B<+`+?*M9V?ST^7DdTP6fwUHr1zmSou4gK(6 zer7LYxt)w%HZpeD$dFG4A;YZ=z4G(_u$QsIPR4E<8MQVt_`#vKd7d`(yPv#lFQbfQ z)TiNBYat_<&XD0+=y-PFhxRfqv6ErvSL{kmN z-~Zur_A)NDlVRsq+iYZ*{c53O;oK|sGFI8iu=A^(HZsh9wb1d*>p!-avD!|ConO`2 z$T0iWLdVq3x^0P}Ohl64msdR1s zFvIs?F(smvY=Z(lLNX63tdhuN2j|64ty;W3+fFsd7$2u zNbSsvx#`Voi^iY7z3cAVPJQ$f>+kkW%My8bSYuC6Rag7Xv+m0ii#gUnWzJEap3TD) z%;x#Y%=c$8<<~tu4=>rl$KC5bJ?p+Ikx$m8;KMmQq)&RP=V0$qE{x{=(DN||Mxb#h z2Q|v2%@`Corccbe*%L%P#mV7V1@h?=X5Dx$uXN)Hzpk5$Drd57Y@H2T|JkXW?w4+q zwkX7lau@1w`o5dLtQGaox+94aonsazf`^V5;-z++-1m)8h{T&@>q@~B(ZD-O96 z^70ZO_KmGGF6e9Vpllb+`0$+r*GX+%v~4CAR94T(g=a98hs>T)f^8o;JxQPfPqwoR%Rw-DEaR|dF+@-Wmx%g_7vqUEo%aLk9woWs*LjWWgH2yadynOlN;0NMq`>CyAYdH(3p>$UOM#W+Ocb9-8(I+?LuR! zTpo(6igJ7Dj#GfHh4G0R#$J)g!F3r#$~@(S%8!{B&)!Xsf&y%a(0OtAxAI!2^D>8g zyub2w3dc&~RjYV$n78uUsPi(1cA^KqdcvMpo#Mse+{$Z<&dVIa5#Rr(Q3}+usY|M!zizJs9wm6BLB-Unn(Mj{I_i6 zuMqOzN|0|3 z8c9(^MNO8FBOa9;h$Up!B?p5X8Kh+%KSmGmWAydo$&b<1sMhPpRRj}}9Saw#9e8y^ zkA{WVlnK8by5n%KeMBvQPpDkw6M`QCq2TdJ_i_59sq@_p*D1kYFCNw>vE5js9*WYG zxa$Noh;7IdGzRbX;qDZLkQ=Ay0B)E@fU80Op2fE9J#_9I3?kAD&W-f5pL}0}e8$fG z8NTYL8C+)=z|FaH=Wv;!`S}>l*A0PmffhhNgufW@Gz55odCw3Q#hI1PPjC=CfFKkS zQba{gc(jP?^$uPD`zYG`c3xJ+L%wH3)1ozJ+$-sf$<}fqg`0)wv)BOtSyLXD zyOUgWD(h6%V-B=2Ib4_U?l;ardePy=f$ei&bI{xLZ0=Uz_;8bp-)ex_Dn5J$Uo(ZYGbDvYy#kZ_L5fjjL6Tu1H5H+8(*uKN=Xc5@0dk7w`wWLb^uJ zpIm=~`}9Y;7uTp*uYG82JQUP|(UwpkpbbQ=%&}XC)o#@y1L4u}=x8WtrGWNK!DAJ! z)OGjSTR>;jF*-IHMP0fk#;lBV^=WwX3AWPI$w@74B`dMsww)~jev zQJ&ULK}4!ioHYdTV`uujW1}yB@SQbfKjf`tMY!@?a;t#LlmM>?KNlk+7p!@gS~0Ht z4&5puPxs9ce>mDZHJ;S`@WG^rmwqyV>i2cH8wVT=;gW7cXRva zD?E0z(;JtT%wKOM+2y!7t)8HF2R75ibqAfn)XDyj#uTnlhx*z^?=T{(yWMQSmdq!@ODvSZ4vI3O!+k7Fd`#}BBgs2gmg-f>(H zaMHn!3yLwDn&|HI)^-2*!LM|g>%p!RK`kQCP=m(Fwp4x2KWWqF0vMmvA|SNm^*cw% zp=zQn4x(G|V!Q#vf(nc^-oW7E4vgr#@D}{jm|LC1%yYn9h64rkRHk45jpi_pm^0-x zzu}+Skv!x)v_%a7*K(Ef*UjsjDQp^ zT3Flj3v%*C;xh&H?m=i;gdg%@JccvBDQUv{jdw3ObXI(2TSI_t@^!ag-3)Jex6?|& zuy`~7;bDbCriWd(@QR0RlA~XY$W|7UuRe<^KkhQ<*iP1T&yTjvDaP@9QCpBE({p(< zmPh-F+R8fv|KV7`+@`Gc!*H9P&fdd(UrhJA((k`*K5uvw1N!bz)F0Jq_Ecj;i(eU0 zuQnNNiZloO12^iJ!z~@%2YXvaLZbu7#t)N-FXvNX!)K%fo#5nnmh--f>Wc4t!;gP7% zKdyy+{^*F&(#iGVDR>0!0tF@p*t^hd)iwQxnpzIFdXIHgb$PqJy-mGr*|`4Fk^RCM z6(tC~6VdUBX!B^$HlNMG1AgkzqEVQL;cji19U3VAAe!so;IPIsJ8Rw$_G2>TOL46o5UumYI%;4XT7Ra>!`>|Csb;?*EJqz&M z)~A!IX9d5R;iRqt&`-QAo#_V6NO3>Ykc2WJ6mJts+@`{F=3#2bGqeNeF1pHEFau{S zkg-6<0vBlkbKK#3esv=Po8_Jdq0YWxw%>k0|oXL=VQN{6WQ2;=PauJC;J?6`lvL_e03>;0;kN-WrYyT0dSyj{mV4 zEmPl&1^ypefY(iV%oQ0A+!VTLcl{1+63g1Me{&yyFAp`YOLb*E>=Jg)2y_d!tn|?_ zu|H`Lapoq(oIV`m*t2w#fOq3v@(#qLNgSE<-dbQEoqlfxToCsM@%^Mc{Vjn5ZwHP$ zkL$0v&+F?Z=Ns_hVf>8f>>@J=>1QnXD0sMOTI?zz+E92B2aDG2ZQt zm0V@WFTv-v#!6ZYco~2Cb(z;FzZ`o8Hw)d3FjOg9>#H8SV6nQ9)@#{M*1Cg{cvg%d?n<-N)jgtIRRnIjSgi2;&(1G&jsjG z1Ih-(`zB;w4j}$qkA!jo@lHqyVW*GS{3oG2K-`!T$_K=I4<%Fph`(VZp(TKLWlchb zfcOK55?Ts~KbI$=B0yYM2^C|Fj4dUh68eDH!6~6qKov&bGOVNV+bo&498jqaF}GF` z!8nh-r%CL0mXH(B27@vS5Sv)$xd2^eK-qx!lRYvo2hdsr$_3;xAUB|O29yVAqXFdu z+GIclfOsc~BbFooz zmpczz+&@%=XbyL-LpGZ7vFOq=KtG& z`xwvvAH~6Qbe{jW;ozk*9}Zp?JC1`F0k6lw^ZpSWyi7BWL#+q!!q6Q!)OvuN%P$q> zflhfX2V<7Wi(K+Y{j>xqX2VMgjQ*>M&ow^s?_!CJDKjZ!fs6$*7RXp2V}XnXG8V{K zAY*}y1u_=MSRiA8j0Kbhc&5ygXr71jyL{ew!|(TbLe2Ah-u%K_J9vK2b9bJ{%MW(R zxjt`Q;SDQ1-&Y@y;WYz_^w2^4+&qdc*i*1h`l$^6kzU!4{Rn%$MB#Ii z#UXh~JhROe<`|@h=|*h%W<73H=(Mk;_(G79&)0Md?$Uo#pN-ED@n<#1#D}V;u!$?E zZ$)QJ6kA65OIWE>CFFA-;{KDa{GH4Wi&vbovBfJy140K)w7`Ywv*#k}FTP5t%l{wf C-*8U= literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/MSA.png b/SRC/MESWin/Resources/MSA.png new file mode 100644 index 0000000000000000000000000000000000000000..51a87c77caa98fa59f5b4f57dcdc5a636d4c2b7e GIT binary patch literal 3376 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 GiT)oJrPsOu literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/MTL.png b/SRC/MESWin/Resources/MTL.png new file mode 100644 index 0000000000000000000000000000000000000000..01ce54776354012eba1fef0e7f5347b49e28e6e9 GIT binary patch literal 1119 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 M07*qoM6N<$f+nx;bpQYW literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/OP.png b/SRC/MESWin/Resources/OP.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d8f6c8ef515a71251f247f5e669e4a37e86724 GIT binary patch literal 1577 zcmV+^2G;qBP)Nkl6WI)Es-2JP2Z|h z=lpg4Q|H!IOeud_UZy%T^RI&sKddDL0F>5odgI1Z&%OWtrL+D1w64Y^n%2+)oqqp; zw_kr9JscEap;EcuhH&YwqTdOC%vwww(*(3q04SwMJ8enQ^lsyi12}#9G_$j_^m{$J z*7C~fbNu=2o7hr`_SH+M`Z|qP3nL>A78dLCk3Yq|ag33{L=F$775!$N^$TxI1fWJA zI-QQ**w{Fi^m@fB_2kVn_Rv}4vL=dAAH0)2^8EK+{^zqV{n!_03P?a{gS+oYUw`SL zC{hY?V4_gohb)NvTWj;4SBAHLf0Dod;ibI+)a&)-YuB!Av>IDnPZU>{A0rA5fUtj& zeP267`@QSvtzN!D!25wBV~(`~r8S$4B)h)V{prly{K?Ngc$Zh7dwMbj&N%_lTG8zE zd8@ugK@BS2t*3lF%XsU;8d1A3F{Ps-K{!yIDSY+*rC+{#x%QnyM;>|di5FhxwUf{8 z03BN(f>J6^jG#h5=c+;=lQ1^+d1?@9^)`RK@F@=+UVNg}Z2acPH-CUBS9S+54j-(y z*x<0ikyuNku|+%0w#TMXF9EHDzg_%{mFmooY`~ zSmVTlfp$M5SU0^oj|4}f-NR<-w<-q@Z^xS02Sfzt9Zn0Wher!dKK$q=D@9E~$7DXB z)$Z$rL5~=n4kC1VeY`0wdG9_S03tY_VMWlQc;!Eir{^2|rC*|FXDMjG-$I!SfpQ@x z)|zgTp){xw6z!fPDk*_5MFtSObp$;)UaMB|yM7geP*9fOM{NiC<$IUd>ZVxdSUEVy z<+TQ0!dNE6S%TjIuzL|Ig@|Ci$Ay3k0TE9u4lO%lL(Qz?i_7y|S#K~~jHvD_v9{Ib zz(R@4xiMSs96n5w0SP!~u|X!8Y>N*J$k=o^~?IIgn8O=_QrG*MJ#h6w%VXM={7|ke) z!5Nr_0z~l66J&C;yj6NWrMs2@gJ!0c9^)GzXgeJRe%OfA^Z-UhfFQT?r<~S)4+_-w zj|iD{#Ii#{5Fv44(CJVprO;Yo6c}~OyM2NfW8T5+gdGDgH#b-7bUH60p(Lg5`WNPW zI}wFe5Q0#~*&jZ7@I)n!ztT_ov|DXDttKCKdEuk9ylUcDDJC9U1L~YE&3xQE|JwMD zhjQ%LG2%GJIZM|DKDmB_o6RO#DbjA2U;O-MJoEi;znW(0ciZhYwOWnZ#yWAa{J>9s z_1nvzUcHJjX5#LZ)?_!=2-(gZax4R9&YamZeLCylK&8%;`G6D10u+rgwssY_xr*D< z!!ADW#8?=#=-bBuJ$dKa~BuV7>@#C~wEo!wITJP*jDMh_rr`PLYjA3BZES`FtM z(Wz6X(0b6ZL}bWuoIe|&Kz>@RwP~l*ag|C1W6U-XrPR{VqenN5G2s?)9!Ry;D5V@A zLvY3z8jS`~r_;Fy_y%wvZ~)i`EarjZ{J+3}f{Pa~#?@-Imt~pCvP?x$lo@0G=)LcH z@9ju%1*AYDU*81Uz$UN`oYz{v5#@oFfaN^cB2WSrawicm2cWe^M5x#6H-_nrqG(9v z{4K$UpUW#i!l2&D`COK7R7FXWd{Qcvem$}{&W(quk46>_E}PT6A+tO%tG%00000NkvXXu0mjf%lP<5 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/PM.png b/SRC/MESWin/Resources/PM.png new file mode 100644 index 0000000000000000000000000000000000000000..7bbc6d5d751bc061f870ec186c897ef1d1cfc4a4 GIT binary patch literal 2569 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 Ef&%0N(f|Me literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/PRS.png b/SRC/MESWin/Resources/PRS.png new file mode 100644 index 0000000000000000000000000000000000000000..cca6bd8145eb918bf4d7bb4920200e43b9ca5adb GIT binary patch literal 1266 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/RPT.png b/SRC/MESWin/Resources/RPT.png new file mode 100644 index 0000000000000000000000000000000000000000..dc0400e5df77870522ab8c7b668262ffc2e5642a GIT binary patch literal 968 zcmV;(12_DMP)I=K`5=QAY!$pg-UAXCY`Y}_ug~fS3Glv3(h?ZCCT)GJ2T7+=l;%feg`kV z_yS&eX~TU#eewh*9p-?qhheBh^utuGhDj$(lAVVEfPlw{Xz~E6>IUvpWbyz|#V`(L zpEA>AY`i&xnMMQxLEZX-PTS!8mtAz*QZ#Tt0B@X~$NH^bI79xaUbWZ5r^O?5YAdY51!mG`t_+69^2o53&L8{5Jh`}&D*#=W| zTp=C@uzwM?u=|G+iqHyzk-;xnhPxsV0YnK^5y1$+ zedVb*#z!kF2&3o}g5VJlL9NY0=I^g>Z||PDdDHDuggoug-T+P>I)pd~UT-v;n>Neb zYQ&5@%dQ-so<7kG0;rI;0TtStgbW}u=9!&q*9c`0)M{%`Jxsu^sJ{WxJvyKw=ykgz zgS_8Ip}nhLge&C~8FK`2eGc<0PlAX6D(U`dZ(;Y=?+{hwA|R@;ToqdE(%xqSEQ$4Y30T>}*g!1|70@OvD9 zfdxtlJq=h-1I5e_po;$hj0eCB8^~0ZDhp6EaK$wsl?qs&gsM<$VDkKD5&4mrPnRRP zL7;Cp*Wakrc7otGqP4Dja`;Hc9l+~Lqs8o zgpxhk5{IE|m6MP)e4|t6e1Dwty}#f4KF|I9uIsw*=f1Ch-dJZR+uh>w;sOE!yY21J zIQ|OSe#Lh1zpT*EMgAhk#(1!g(ND31@Jx~biby|60@+jXr%5;xo){9)LNXH&5LPC; zdaymPjz|KX3c+t#(NgxA=fi3|C*9RGyK;Q;&ePg%|2myoZL1B7OxSlQ?frObL;Rc}Z515~g zNj!zbp>4kB;z#CSKQ^0zghGRYf*?V95IXZT6mDW-0)-)<2!t*lq00)PvGKvWG?wxY z1vH68V3HYZGMxt6R>YsA2eQq<{7V140+sQXERFTOP5g#IgYgU~90J?E(hndO`~RU- z>R)IU8%O%P-hUKkxrQ)EP#lRx4`dSfgFB_Xor;09W|Hu1I@6U-r~K%mvmc#JXZg_? zAZu%o1{O~s)3#&HZv-qBX-{LZ@iYR-9&HZhOF+nEBGN=3g@WrNU?vDS3J%BUp9FjfIo^nZm6LSktprNII z=YST|4i$IxCv1EG+|z#f1>>P3 z6X5BYJvzbUG{5CEj(y!#kL#cO@Fn~D`9G?w^a0Gv7V4gzC!n6deeEp?%n2=bs zP*U^TCycR%0E_GN z_tA%$h11uEYXcU39nZ2ge4p4xncdhR6k9pw|+eb6L@R?X-;5Xw?i4 zl0s!DhB_E;@FFu-dFFwwYYu(arhJHIieZ!FkkOQx%@m>Ll!5Br-`q++_tT{om)|_^ zmG8*y_GtgyuGiJ8udnai?YCHG zX||?JOdm-cNxD{hd#kp~k~)(^4GH70m=IvpfO*J~gmIk;{AlIuPKkU{%jD%FW4W14 zGR2R39Du-vi5bo+Te#tOY1xnDR;ztyzpAL0pN{5grSFV9Y|yfMsS8tkB<1U*4hWFL zb69szzuOk`FdOEXv+LNz(Wff~RzC-e-YOQ$YS8kcSw_EWv3chq$8JXRn&qZ}i{ZYf z^0-XE(NUjI7KVp=da2P?jfz*7CyQ>uO%J4(RE~|)y_-j#`*6}?=2~<(zx_^rsh)Xn zKJ~yYMAUMQ7R*~ne5p#~a9i5#4@DrOpMZw#1BpCC!K?H)#KK;`rB~36PP^GvL76ij ze1`*!5+sLrS{g{MiT9myiwBm;#r_4n+SyXdB7W1Mlh%0|^XFePH6 z@(RpAxpw@{z-VyD`(Fm6Xtm(66hHFZ#@KRA3 z$+5{#+ZmHscpHarbA_SQ&W7o{NU_>_$6QM$1T^MF^4eFE6~w@cE%q;)Et`gmB?mKS zGPWj4%kHsEC%4!NyBq*AazXV?9Ebd8GoR6~TbaIU$_m)JVF!e>Q;>^$8WH6rME)9H zRotI-O6MA)6ypIx+o_29D>h-cQX^FdbHb`n85IgSNtPIPu*mz0{As-`=Y0pCUiLER zEN?9>(TwbVAmJi1;pDQ;N$k@Mn?RhuzmY{>^c1}1V4S*O>1dK!IF$y!+vvO;E|K@E za6suHL765Y%?KZr9d~e6nUttAqlzm7#ZULgi#{K;Fe_fnBeh4wYaapm6mT6?8m`i_ z9)x+WVEpxku;mG|a+wR=n;B5~IPQ}jAO+j-DPhde;whGzt*(e%E@v8d!1d?d&WT15 zqeJnG7fHvXc1dC{rl{7BWjkR@sKq~(5E!I>7+=48KZeP`AcO3?3_&2 zl!_Dxn5T3lM(L`SGvX84_O#^lRUsxOE$4-I zKEyd&HP`)vdMHf=f78Z>qU%(;;aSZ6-IVT7czV;$M&P5azMH;%XGGHX-*`o}9(cU-?fD(7 zI=iM3=&S^F&WLV7eitsl&UwWH6YYbQoUrp zTS4z;kG9QS^8Vn#pTv$=iU(348bvzsyiIK|I2AtH)@RLnwh#5&ZBOxIw8+KhX zA;Lo`nemI!VGu505FX2`u3ad0D-N^U6O2&3(LYvgtH>ch5`2>sl(hgl9}LGn`uKM{ z`K3V4h^F8VmwU%ct`9Q|t~D%ChpaFrpcOMS?<~RDC%?CmK0PX-I>f6nsclf#3${LleE6=){s#rRD(E{CkB{9a4?r-}~- z`Q`Q5!!4{akPC43jE$+&OJ(d*v1SINWAm566L1Lf29?rpjcza$(G9{OHl z+BD8NboxIpQstkj8qaaT)3fg*uIu*5X9{sN67km$rq5!hS(OAO7?)TrRxKmF*f#j6 zKH2YnqG`!_!^O{(qA6iVbZIzM@x@(N)lZ?|g}MjfJ=Re~Yr)ZHT&BmRs3$p?=l~hT zNYS4Hm0Dl*D|aQw$36uZhhMq3`l#Fd_lqsnN-ti&JT8GGdIU<@i%iQeJTD0+Z!zz& z#*N<;UYTpS|IX?rY|c2|Tk{S6PUU1)Q1UISF{UW|<)?;~UX8~}n%QHSyjM8KOOIZc zOmdtcwrMQ_@S(WeI@uDovDYkCIgrztNsvwO+HtN%y4&5`G^P) zyz*P`#XU(E_e7T^1eO`1IL-<2otv6o)f9R)jdifGf_p3juU5Biw={b9nD}PeM${Mo zKgvJ0d1SKH1!G^0W!SDKOJZ~1j^q`TAs4wv>p9TZvt^!-4)hNUj3Od5hP-Z4G$+c^ z%O5*bxTS$wGv=FMzRO_6_+|0o0Mjy$=#~rZSGKC!W|q&JZu*ow*##5mpHKmPEifqC P{)@54IH5}p`(FGni{a_G literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/SPC.png b/SRC/MESWin/Resources/SPC.png new file mode 100644 index 0000000000000000000000000000000000000000..40edf2afcb51fb35e90d111d2e78aec39ba2ae83 GIT binary patch literal 1602 zcmV-I2EF--P)GT^$D(4;EgMF~KVV}qZiOkv3Zrg=8c-;dmzLY!+vncr<(%i7pZ9h&X}KEHZ0$bD z?>WyOPxAXd-}61c9DJ(dL2TK$VSHV+q7}0Z=LWxQnkF&EdSZ@)*~T0lO)mrh1}tWb z&AtF4LV@w8)|d&FS{62ymLkp=Jf-k%7~+k55dafJn1G1zVUy$>d*;sv=e#onx-vm< z`eUZ~b5|+!MiDp>VRC)gG?*qz8C&FV{#uyJJ+7kYXHx4gEijBpTQI>42v7i|*3CMK zYygl-6>2$vm+uJBm`Umx!+__VuCgovz*aATt=rBDG14OhvP6i04>7W4<~Z z2Q{4IzoCf`D%MB<2n0WrD`Ix+p(T&*;2qm{qrNN=Gu{u{9z}Hex5dqi9WaQnw{T_| zYm>k_HwccUrM$R5lR;|IcUAenjO-G4e(oIr_kuBH5dF$9t$kz|mZ-n)pkGV(clKXnB5cT>Z%Vu9TtLvX} zuU(p&fq(#4h!X(BoluT7#p8R+4C4Mv3Sfd%~wc8KURM3uYHI1Ao5&1 zY#C@)GM@0WM>NrswHJDiy8k}EJ51kh1ksC$Ih9W{r}TSSWwc9X?2}rrGfOL`Ixq&p zbt(TAXKZzjXq{&4_;3^rR~W`uZN|D2GGwOhT#aW^SE|pQ>du@yiS?Obl$DjC!?s}o z2O^>iD!;y#8bbfC_aR=p&|maW*DtDVs9SYk!(gS`@W?`;6E2d@?b?WnUSXXjUWi-X(=C6L@RrR!0CJy z@NZm3<{y7Xxc)Q0R6rMF?BgWGs}!l@D)5TuK$ZyaNQns;H;{aECu)|pFJYGb73bQ; z&8d=#R5Is&(_yTq+;MEz^Ae%f2!QTkrN)kU9wsyR_90wKfuA`@mbrP^bxxx^7`&ZVR;DB#4H)R0>6W5CP1zpv~BF5oA%o^@5}j zL7nh({g?rYu4GCIh)}!$&^7=ukUjyTf9lZ3tOz)N>@ccY*8Gv2coRv{U~=A@>OVul ztpUsg?7rF>0szkWDCexo^#e_Yjk4NCFwP(^b07*qoM6N<$g2L7i ALI3~& literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/SPCExport_2003_Standard.xls b/SRC/MESWin/Resources/SPCExport_2003_Standard.xls new file mode 100644 index 0000000000000000000000000000000000000000..b27df0a32718603b7bf1385948bf6f0fcd486d7d GIT binary patch literal 199168 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/SPCExport_STD.xls b/SRC/MESWin/Resources/SPCExport_STD.xls new file mode 100644 index 0000000000000000000000000000000000000000..ca1cc0b3f3622e17471d1f5f6ad9fda5010b7d9d GIT binary patch literal 188928 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

$Pu4J`- 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

N6)ad2zQ%ATA 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

ng`Yot%)jVYK(E^FEaybzlBO>WR# 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 n%{c}XwcEG)d9l9DnKR@=XS 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 _ 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π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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/mesresource.zh-chs.resources91 b/SRC/MESWin/Resources/mesresource.zh-chs.resources91 new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/mesresource.zh-cht.resources91 b/SRC/MESWin/Resources/mesresource.zh-cht.resources91 new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/msg_action.en.resources b/SRC/MESWin/Resources/msg_action.en.resources new file mode 100644 index 0000000000000000000000000000000000000000..19fb658ea0bd941d0c7db492b952a73adff583d9 GIT binary patch literal 39481 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/msg_action.zh-chs.resources b/SRC/MESWin/Resources/msg_action.zh-chs.resources new file mode 100644 index 0000000000000000000000000000000000000000..1c99d8903e5c62f97ca8869367e8906dd02c6acd GIT binary patch literal 41134 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/msg_action.zh-cht.resources b/SRC/MESWin/Resources/msg_action.zh-cht.resources new file mode 100644 index 0000000000000000000000000000000000000000..1709fdc21921844452cdd66e51ca5403067785c0 GIT binary patch literal 41136 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/msg_name.en.resources b/SRC/MESWin/Resources/msg_name.en.resources new file mode 100644 index 0000000000000000000000000000000000000000..614b48353f458a357174a9c0c0ef303c11a0dd5c GIT binary patch literal 46002 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/msg_name.zh-chs.resources b/SRC/MESWin/Resources/msg_name.zh-chs.resources new file mode 100644 index 0000000000000000000000000000000000000000..336b894bd66020d629fc6fc135bca52227e77462 GIT binary patch literal 46582 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 A3;+NC literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/msg_name.zh-cht.resources b/SRC/MESWin/Resources/msg_name.zh-cht.resources new file mode 100644 index 0000000000000000000000000000000000000000..5b51a687065e7c7866c6a80c93f5ba763c517189 GIT binary patch literal 46499 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 254, 17 + + \ No newline at end of file diff --git a/SRC/MESWin/Test/MDI_Panel.vb b/SRC/MESWin/Test/MDI_Panel.vb new file mode 100644 index 0000000..e57dab1 --- /dev/null +++ b/SRC/MESWin/Test/MDI_Panel.vb @@ -0,0 +1,1016 @@ +Imports iMESMainMenu +Imports Infragistics.Win +Imports Infragistics.Win.UltraWinToolbars +Public Class MDI_Panel + + Inherits System.Windows.Forms.Form + + '//Data + Dim dsData As New DataSet + Dim ModuleNo As String + Dim strUserPriv As String + + '//其他共用變數 + Dim i As Integer + Dim blnShow As Boolean + Dim imlMDI As New ImageList + + '// MainMenu & ToolBar變數 + Dim utbMDI As Infragistics.Win.UltraWinToolbars.UltraToolbar = New UltraToolbar("ToolBar") + Dim utbMDIMenu As Infragistics.Win.UltraWinToolbars.UltraToolbar = New UltraToolbar("MainMenu") + Dim OptionSet1 As Infragistics.Win.UltraWinToolbars.OptionSet = New Infragistics.Win.UltraWinToolbars.OptionSet("LanguageMode") + Dim btlMDI As ButtonTool + Dim popMDI As PopupMenuTool + Dim sbtMDI As StateButtonTool + + +#Region " Windows Form 設計工具產生的程式碼 " + + Public Sub New() + MyBase.New() + + '此呼叫為 Windows Form 設計工具的必要項。 + InitializeComponent() + + '在 InitializeComponent() 呼叫之後加入所有的初始設定 + + End Sub + + 'Form 覆寫 Dispose 以清除元件清單。 + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing Then + If Not (components Is Nothing) Then + components.Dispose() + End If + End If + MyBase.Dispose(disposing) + End Sub + + '為 Windows Form 設計工具的必要項 + Private components As System.ComponentModel.IContainer + + '注意: 以下為 Windows Form 設計工具所需的程序 + '您可以使用 Windows Form 設計工具進行修改。 + '請勿使用程式碼編輯器來修改這些程序。 + Friend WithEvents UltraToolbarsManager1 As Infragistics.Win.UltraWinToolbars.UltraToolbarsManager + Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Left As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea + Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Right As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea + Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Top As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea + Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Bottom As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea + Friend WithEvents UltraDockManager1 As Infragistics.Win.UltraWinDock.UltraDockManager + Friend WithEvents _MDIENT_PanelUnpinnedTabAreaLeft As Infragistics.Win.UltraWinDock.UnpinnedTabArea + Friend WithEvents _MDIENT_PanelUnpinnedTabAreaRight As Infragistics.Win.UltraWinDock.UnpinnedTabArea + Friend WithEvents _MDIENT_PanelUnpinnedTabAreaTop As Infragistics.Win.UltraWinDock.UnpinnedTabArea + Friend WithEvents _MDIENT_PanelUnpinnedTabAreaBottom As Infragistics.Win.UltraWinDock.UnpinnedTabArea + Friend WithEvents _MDIENT_PanelAutoHideControl As Infragistics.Win.UltraWinDock.AutoHideControl + Friend WithEvents uebMenu As Infragistics.Win.UltraWinExplorerBar.UltraExplorerBar + Friend WithEvents WindowDockingArea1 As Infragistics.Win.UltraWinDock.WindowDockingArea + Friend WithEvents DockableWindow1 As Infragistics.Win.UltraWinDock.DockableWindow + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim DockAreaPane2 As Infragistics.Win.UltraWinDock.DockAreaPane = New Infragistics.Win.UltraWinDock.DockAreaPane(Infragistics.Win.UltraWinDock.DockedLocation.DockedLeft, New System.Guid("8666bbed-9885-4c68-819e-c049f9eac535")) + Dim DockableControlPane2 As Infragistics.Win.UltraWinDock.DockableControlPane = New Infragistics.Win.UltraWinDock.DockableControlPane(New System.Guid("5a475b0e-96d9-4cd0-973b-da8cba709615"), New System.Guid("00000000-0000-0000-0000-000000000000"), -1, New System.Guid("8666bbed-9885-4c68-819e-c049f9eac535"), -1) + Me.uebMenu = New Infragistics.Win.UltraWinExplorerBar.UltraExplorerBar() + Me.UltraToolbarsManager1 = New Infragistics.Win.UltraWinToolbars.UltraToolbarsManager(Me.components) + Me._MDIENT_Panel_Toolbars_Dock_Area_Left = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea() + Me._MDIENT_Panel_Toolbars_Dock_Area_Right = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea() + Me._MDIENT_Panel_Toolbars_Dock_Area_Top = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea() + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea() + Me.UltraDockManager1 = New Infragistics.Win.UltraWinDock.UltraDockManager(Me.components) + Me._MDIENT_PanelUnpinnedTabAreaLeft = New Infragistics.Win.UltraWinDock.UnpinnedTabArea() + Me._MDIENT_PanelUnpinnedTabAreaRight = New Infragistics.Win.UltraWinDock.UnpinnedTabArea() + Me._MDIENT_PanelUnpinnedTabAreaTop = New Infragistics.Win.UltraWinDock.UnpinnedTabArea() + Me._MDIENT_PanelUnpinnedTabAreaBottom = New Infragistics.Win.UltraWinDock.UnpinnedTabArea() + Me._MDIENT_PanelAutoHideControl = New Infragistics.Win.UltraWinDock.AutoHideControl() + Me.DockableWindow1 = New Infragistics.Win.UltraWinDock.DockableWindow() + Me.WindowDockingArea1 = New Infragistics.Win.UltraWinDock.WindowDockingArea() + CType(Me.uebMenu, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.UltraToolbarsManager1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.UltraDockManager1, System.ComponentModel.ISupportInitialize).BeginInit() + Me._MDIENT_PanelAutoHideControl.SuspendLayout() + Me.DockableWindow1.SuspendLayout() + Me.SuspendLayout() + ' + 'uebMenu + ' + Me.uebMenu.Location = New System.Drawing.Point(0, 18) + Me.uebMenu.Name = "uebMenu" + Me.uebMenu.Size = New System.Drawing.Size(300, 424) + Me.uebMenu.TabIndex = 10 + ' + 'UltraToolbarsManager1 + ' + Me.UltraToolbarsManager1.DesignerFlags = 1 + Me.UltraToolbarsManager1.DockWithinContainer = Me + Me.UltraToolbarsManager1.DockWithinContainerBaseType = GetType(System.Windows.Forms.Form) + ' + '_MDIENT_Panel_Toolbars_Dock_Area_Left + ' + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.BackColor = System.Drawing.SystemColors.Control + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Left + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.ForeColor = System.Drawing.SystemColors.ControlText + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Location = New System.Drawing.Point(0, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Left" + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Size = New System.Drawing.Size(0, 442) + Me._MDIENT_Panel_Toolbars_Dock_Area_Left.ToolbarsManager = Me.UltraToolbarsManager1 + ' + '_MDIENT_Panel_Toolbars_Dock_Area_Right + ' + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.BackColor = System.Drawing.SystemColors.Control + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Right + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.ForeColor = System.Drawing.SystemColors.ControlText + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Location = New System.Drawing.Point(624, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Right" + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Size = New System.Drawing.Size(0, 442) + Me._MDIENT_Panel_Toolbars_Dock_Area_Right.ToolbarsManager = Me.UltraToolbarsManager1 + ' + '_MDIENT_Panel_Toolbars_Dock_Area_Top + ' + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.BackColor = System.Drawing.SystemColors.Control + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Top + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.ForeColor = System.Drawing.SystemColors.ControlText + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Location = New System.Drawing.Point(0, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Top" + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Size = New System.Drawing.Size(624, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Top.ToolbarsManager = Me.UltraToolbarsManager1 + ' + '_MDIENT_Panel_Toolbars_Dock_Area_Bottom + ' + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.BackColor = System.Drawing.SystemColors.Control + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Bottom + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.ForeColor = System.Drawing.SystemColors.ControlText + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Location = New System.Drawing.Point(0, 442) + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Bottom" + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Size = New System.Drawing.Size(624, 0) + Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.ToolbarsManager = Me.UltraToolbarsManager1 + ' + 'UltraDockManager1 + ' + DockableControlPane2.Control = Me.uebMenu + DockableControlPane2.FlyoutSize = New System.Drawing.Size(239, -1) + DockableControlPane2.Key = "WIPModule" + DockableControlPane2.OriginalControlBounds = New System.Drawing.Rectangle(208, 112, 175, 230) + DockableControlPane2.Pinned = False + DockableControlPane2.Size = New System.Drawing.Size(100, 100) + DockableControlPane2.Text = "WIP" + DockAreaPane2.Panes.AddRange(New Infragistics.Win.UltraWinDock.DockablePaneBase() {DockableControlPane2}) + DockAreaPane2.Size = New System.Drawing.Size(239, 294) + Me.UltraDockManager1.DockAreas.AddRange(New Infragistics.Win.UltraWinDock.DockAreaPane() {DockAreaPane2}) + Me.UltraDockManager1.HostControl = Me + Me.UltraDockManager1.ShowCloseButton = False + ' + '_MDIENT_PanelUnpinnedTabAreaLeft + ' + Me._MDIENT_PanelUnpinnedTabAreaLeft.Dock = System.Windows.Forms.DockStyle.Left + Me._MDIENT_PanelUnpinnedTabAreaLeft.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelUnpinnedTabAreaLeft.Location = New System.Drawing.Point(0, 0) + Me._MDIENT_PanelUnpinnedTabAreaLeft.Name = "_MDIENT_PanelUnpinnedTabAreaLeft" + Me._MDIENT_PanelUnpinnedTabAreaLeft.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelUnpinnedTabAreaLeft.Size = New System.Drawing.Size(21, 442) + Me._MDIENT_PanelUnpinnedTabAreaLeft.TabIndex = 5 + ' + '_MDIENT_PanelUnpinnedTabAreaRight + ' + Me._MDIENT_PanelUnpinnedTabAreaRight.Dock = System.Windows.Forms.DockStyle.Right + Me._MDIENT_PanelUnpinnedTabAreaRight.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelUnpinnedTabAreaRight.Location = New System.Drawing.Point(624, 0) + Me._MDIENT_PanelUnpinnedTabAreaRight.Name = "_MDIENT_PanelUnpinnedTabAreaRight" + Me._MDIENT_PanelUnpinnedTabAreaRight.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelUnpinnedTabAreaRight.Size = New System.Drawing.Size(0, 442) + Me._MDIENT_PanelUnpinnedTabAreaRight.TabIndex = 6 + ' + '_MDIENT_PanelUnpinnedTabAreaTop + ' + Me._MDIENT_PanelUnpinnedTabAreaTop.Dock = System.Windows.Forms.DockStyle.Top + Me._MDIENT_PanelUnpinnedTabAreaTop.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelUnpinnedTabAreaTop.Location = New System.Drawing.Point(21, 0) + Me._MDIENT_PanelUnpinnedTabAreaTop.Name = "_MDIENT_PanelUnpinnedTabAreaTop" + Me._MDIENT_PanelUnpinnedTabAreaTop.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelUnpinnedTabAreaTop.Size = New System.Drawing.Size(603, 0) + Me._MDIENT_PanelUnpinnedTabAreaTop.TabIndex = 7 + ' + '_MDIENT_PanelUnpinnedTabAreaBottom + ' + Me._MDIENT_PanelUnpinnedTabAreaBottom.Dock = System.Windows.Forms.DockStyle.Bottom + Me._MDIENT_PanelUnpinnedTabAreaBottom.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelUnpinnedTabAreaBottom.Location = New System.Drawing.Point(21, 442) + Me._MDIENT_PanelUnpinnedTabAreaBottom.Name = "_MDIENT_PanelUnpinnedTabAreaBottom" + Me._MDIENT_PanelUnpinnedTabAreaBottom.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelUnpinnedTabAreaBottom.Size = New System.Drawing.Size(603, 0) + Me._MDIENT_PanelUnpinnedTabAreaBottom.TabIndex = 8 + ' + '_MDIENT_PanelAutoHideControl + ' + Me._MDIENT_PanelAutoHideControl.Controls.Add(Me.DockableWindow1) + Me._MDIENT_PanelAutoHideControl.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me._MDIENT_PanelAutoHideControl.Location = New System.Drawing.Point(21, 0) + Me._MDIENT_PanelAutoHideControl.Name = "_MDIENT_PanelAutoHideControl" + Me._MDIENT_PanelAutoHideControl.Owner = Me.UltraDockManager1 + Me._MDIENT_PanelAutoHideControl.Size = New System.Drawing.Size(14, 442) + Me._MDIENT_PanelAutoHideControl.TabIndex = 9 + ' + 'DockableWindow1 + ' + Me.DockableWindow1.Controls.Add(Me.uebMenu) + Me.DockableWindow1.Location = New System.Drawing.Point(0, 0) + Me.DockableWindow1.Name = "DockableWindow1" + Me.DockableWindow1.Owner = Me.UltraDockManager1 + Me.DockableWindow1.Size = New System.Drawing.Size(239, 442) + Me.DockableWindow1.TabIndex = 17 + ' + 'WindowDockingArea1 + ' + Me.WindowDockingArea1.Dock = System.Windows.Forms.DockStyle.Left + Me.WindowDockingArea1.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me.WindowDockingArea1.Location = New System.Drawing.Point(21, 0) + Me.WindowDockingArea1.Name = "WindowDockingArea1" + Me.WindowDockingArea1.Owner = Me.UltraDockManager1 + Me.WindowDockingArea1.Size = New System.Drawing.Size(244, 294) + Me.WindowDockingArea1.TabIndex = 11 + ' + 'MDI_Panel + ' + Me.AutoScaleBaseSize = New System.Drawing.Size(5, 14) + Me.ClientSize = New System.Drawing.Size(624, 442) + Me.Controls.Add(Me._MDIENT_PanelAutoHideControl) + Me.Controls.Add(Me.WindowDockingArea1) + Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaTop) + Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaBottom) + Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaLeft) + Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaRight) + Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Left) + Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Right) + Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom) + Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Top) + Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte)) + Me.IsMdiContainer = True + Me.Name = "MDI_Panel" + Me.Text = "Test" + Me.WindowState = System.Windows.Forms.FormWindowState.Maximized + CType(Me.uebMenu, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.UltraToolbarsManager1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.UltraDockManager1, System.ComponentModel.ISupportInitialize).EndInit() + Me._MDIENT_PanelAutoHideControl.ResumeLayout(False) + Me.DockableWindow1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + +#End Region + + Private Sub MDIENT_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + Cursor.Current = Cursors.WaitCursor + + ''---掛載Online Help---- + Dim clsHelp As New clsOnlineHelp + clsHelp.AddEventToForm(Me) + + 'set BackColor + Call setMDIBackColor(Me) + + ModuleNo = "SYS" + + ' 2016/05/09 YF, 產生選單 + GenerateMenu() + + '3.Get EnterpriseNo----------------------------------------------------------------------------------------------------------- + Call funGetEnterpriseNo() + + '4.版本檢查 + Call ChkVersion() + + 'Me.Text = Me.Text & " - " & GetClientVersion() 'Gary Lu 20120718:標題加上版本編號 + + '5.Execute Change Resource----------------------------------------------------------------------------------------------------- + 'Call ExeChangeResource(Me, gLanguageMode) + + '6.Set iMESExceptionManager LanguageMode--------------------------------------------------------------------------------------- + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + Cursor.Current = Cursors.Default + + End Sub + +#Region " UltraWinToolbars Menu & ToolBar Function " + + Private Function funCreateUltraPopupMenuToolbar(ByRef ParentMenuItem As iMESMenuItem) As PopupMenuTool + + + 'PopupMenuTool + popMDI = New PopupMenuTool(ParentMenuItem.Name) + popMDI.SharedProps.Tag = ParentMenuItem.Name + popMDI.SharedProps.ToolTipText = ParentMenuItem.Name + UltraToolbarsManager1.Tools.Add(popMDI) + + Return popMDI + + End Function + + Private Function funCreateUltraButtonMenuToolbar(ByRef ParentMenuItem As iMESMenuItem) + + 'Button Tool + btlMDI = New ButtonTool(ParentMenuItem.Name) + btlMDI.SharedProps.Tag = ParentMenuItem.Name + btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name + UltraToolbarsManager1.Tools.Add(btlMDI) + + utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI}) + + End Function + + Private Sub funCreateUltraMenuItemToolbar(ByRef tmppopMDI As PopupMenuTool, ByRef ParentMenuItem As iMESMenuItem, Optional ByVal btlEnabled As Boolean = True) + + If ParentMenuItem.Name.ToUpper = "EN" Or ParentMenuItem.Name.ToUpper = "ZH-CHT" Or + ParentMenuItem.Name.ToUpper = "ZH-CHS" Or ParentMenuItem.Name.ToUpper = "JP" Or + ParentMenuItem.Name.ToUpper = "KOR" Or ParentMenuItem.Name.ToUpper = "THAI" Or + ParentMenuItem.Name.ToUpper = "VIET" Then + + funCreateUltraStatButtonToolbar(tmppopMDI, ParentMenuItem, , "LanguageMode") + + ElseIf ParentMenuItem.Checkable = True Then + + funCreateUltraStatButtonToolbar(tmppopMDI, ParentMenuItem, btlEnabled) + + Else + + '產生UltraToolBar Button + btlMDI = New ButtonTool(ParentMenuItem.Name) + btlMDI.SharedProps.Tag = ParentMenuItem.Name + btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name + btlMDI.SharedProps.Enabled = btlEnabled + + If Not ParentMenuItem.Icon Is Nothing Then + 'Image + imlMDI.Images.Add(ParentMenuItem.Icon) + + btlMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1 + + End If + + + btlMDI.SharedProps.Shortcut = ParentMenuItem.Shortcut + + UltraToolbarsManager1.Tools.Add(btlMDI) + tmppopMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI}) + + End If + + + End Sub + + Private Sub funCreateUltraStatButtonToolbar(ByRef tmppopMDI As PopupMenuTool, ByRef ParentMenuItem As iMESMenuItem, Optional ByVal btlEnabled As Boolean = True, Optional ByVal tmpOptionSetKey As String = "") + + '產生UltraToolBar Button + sbtMDI = New StateButtonTool(ParentMenuItem.Name) + sbtMDI.MenuDisplayStyle = Infragistics.Win.UltraWinToolbars.StateButtonMenuDisplayStyle.DisplayCheckmark + sbtMDI.SharedProps.Tag = ParentMenuItem.Name + sbtMDI.SharedProps.ToolTipText = ParentMenuItem.Name + sbtMDI.SharedProps.Enabled = btlEnabled + sbtMDI.OptionSetKey = tmpOptionSetKey + + If gLanguageMode.ToUpper = ParentMenuItem.Name.ToUpper Or ParentMenuItem.Checked = True Then + sbtMDI.Checked = True + End If + + + If Not ParentMenuItem.Icon Is Nothing Then + 'Image + imlMDI.Images.Add(ParentMenuItem.Icon) + + sbtMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1 + + End If + + sbtMDI.SharedProps.Shortcut = ParentMenuItem.Shortcut + + UltraToolbarsManager1.Tools.Add(sbtMDI) + tmppopMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {sbtMDI}) + + End Sub + + Private Sub funCreateUltraToolbar(ByRef ParentMenuItem As iMESMenuItem) + + '產生UltraToolBar Button + If Not ParentMenuItem.Icon Is Nothing Then + 'Image + imlMDI.Images.Add(ParentMenuItem.Icon) + 'Button + btlMDI = New ButtonTool(ParentMenuItem.Name) + btlMDI.SharedProps.Tag = ParentMenuItem.Name + btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name + btlMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1 + utbMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI}) + End If + + End Sub + +#End Region + + +#Region " UltraWinExplorerBar & UltraWinToolbars Events " + + + Private Sub uebRPTMenu_ItemClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinExplorerBar.ItemEventArgs) Handles uebMenu.ItemClick + ExecutingFunction(e.Item.Key) + End Sub + + Private Sub uebRPTMenu_ItemDoubleClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinExplorerBar.ItemEventArgs) Handles uebMenu.ItemDoubleClick + ExecutingFunction(e.Item.Key) + End Sub + + Private Sub UltraToolbarsManager1_ToolClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs) Handles UltraToolbarsManager1.ToolClick + + Dim strOptionSetKey As String = "" + + If (e.Tool.GetType Is GetType(StateButtonTool)) Then + strOptionSetKey = CType(e.Tool, StateButtonTool).OptionSetKey + End If + + ExecutingFunction(e.Tool.Key, strOptionSetKey) + + End Sub + + Protected Sub ExecutingFunction(ByVal FunctionKey As String, Optional OptionSetKey As String = "") + Dim strFormName As String + Dim TempChild As Form + Dim CurrentForm As Form + Cursor.Current = Cursors.WaitCursor + Try + + ' 2016/05/09 YF, 重新產生選單 + If OptionSetKey = "MODULE" Then + ModuleNo = FunctionKey.Replace("Module", "") + GenerateMenu() + Exit Sub + End If + + Select Case FunctionKey.ToUpper + Case "EXIT" + 'End + Me.Close() + Case "CASCADE" + Me.LayoutMdi(MdiLayout.Cascade) + Case "VERTICAL" + Me.LayoutMdi(MdiLayout.TileVertical) + Case "HORIZONTAL" + Me.LayoutMdi(MdiLayout.TileHorizontal) + + 'Change Language Mode + Case "zh-CHT".ToUpper + gLanguageMode = "zh-CHT" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "zh-CHS".ToUpper + gLanguageMode = "zh-CHS" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "en".ToUpper + gLanguageMode = "en" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "jp".ToUpper + gLanguageMode = "jp" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "kor".ToUpper 'Korea(韓國語系) + gLanguageMode = "kor" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "thai".ToUpper 'Thailand(泰國語系) + gLanguageMode = "thai" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "viet".ToUpper 'VietNam(越南語系) + gLanguageMode = "viet" + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + CurrentForm = Form.ActiveForm + + If Not CurrentForm Is Nothing Then + Call ExeChangeResource(CurrentForm, gLanguageMode) + End If + + '變更畫面上的表單(僅限MDI Child Form) + For Each TempChild In Me.MdiChildren + If Not (TempChild Is CurrentForm) Then + Call ExeChangeResource(TempChild, gLanguageMode) + End If + Next + + '變更其他語系的Checked為False + 'Call funChangeChecked(mnuMenuItem) + + Case "ABOUTME" + strFormName = "frmAboutMe" + blnShow = False + For i = 0 To Me.MdiChildren.Length - 1 + If Me.MdiChildren(i).Name = strFormName Then + Me.MdiChildren(i).Focus() + blnShow = True + Exit For + End If + Next + + If blnShow = False Then '目前沒有顯示 + + Dim mainAssembly As System.Reflection.Assembly = LoadAssembly("COM_AboutMe.dll") + + If (mainAssembly Is Nothing) Then + Exit Sub + End If + + Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.GetName.Name & "." & strFormName) + + If objForm Is Nothing Then 'Form不存在 + MsgBox("Form : " & strFormName & " is not exist!!", MsgBoxStyle.Exclamation) + Exit Sub + End If + + objForm.MdiParent = MDI_Panel.ActiveForm + objForm.AutoScaleMode = Windows.Forms.AutoScaleMode.None + objForm.Show() + + End If + + Case Else + + Dim strExecutionFile As String = dsData.Tables(strUserPriv).Select("FunctionNo='" & FunctionKey & "'")(0)("ExecutionFile") + strFormName = dsData.Tables(strUserPriv).Select("FunctionNo='" & FunctionKey & "'")(0)("FormName") + + If (Not Application.OpenForms.Item(strFormName) Is Nothing) AndAlso (strFormName <> "frmRPT_Script") Then + If Application.OpenForms.Item(strFormName).WindowState <> FormWindowState.Normal Then Application.OpenForms.Item(strFormName).WindowState = FormWindowState.Normal + Application.OpenForms.Item(strFormName).Focus() + Exit Sub + End If + + Dim mainAssembly As System.Reflection.Assembly = LoadAssembly(strExecutionFile) + + If (mainAssembly Is Nothing) Then + Exit Sub + End If + + 'Show Form + 'Dim mainAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly + 'Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.EntryPoint.ReflectedType.Namespace & "." & strFormName) + Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.GetName.Name & "." & strFormName) + + If objForm Is Nothing Then 'Form不存在 + MsgBox("Form : " & strFormName & " is not exist!!", MsgBoxStyle.Exclamation) + Exit Sub + End If + + objForm.MdiParent = MDI_Panel.ActiveForm + + '設定值予公用變數 + Dim myfieldinfo() As System.Reflection.FieldInfo + Dim myType As Type = objForm.GetType + Dim i As Integer + myfieldinfo = myType.GetFields() + For i = 0 To myfieldinfo.Length - 1 + If myfieldinfo(i).Name.ToUpper = "PrivFunNo".ToUpper Then + myfieldinfo(i).SetValue(objForm, FunctionKey) + End If + Next i + objForm.AutoScaleMode = Windows.Forms.AutoScaleMode.None + objForm.Show() + + End Select + + Catch ex As Exception + MsgBox("This Function can not be executed. " & ex.Message, MsgBoxStyle.Exclamation, "Warning") + 'ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace) + End Try + Cursor.Current = Cursors.Default + End Sub + +#End Region + + Private Sub funLoadUserPriv() + + If (Not dsData.Tables(strUserPriv) Is Nothing) Then + dsData.Tables.Remove(strUserPriv) + End If + + Dim XmlDoc As New XmlDocument '處理Xml字串之物件? + Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件 + Dim InXml, OutXml, strIdentity, strParameter As String '呼叫WS的字串參數 + Dim XmlData, XmlSchema As String '儲存取回之資料及資料結構 + + '組InXml的字串 + strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow()) + strParameter = CombineXMLParameter("userno", "UserNo", "String", gUserNo, "") + strParameter = strParameter & CombineXMLParameter("moduleno", "ModuleNo", "String", ModuleNo, "") + InXml = CombineXMLRequest(strIdentity, strParameter) + + Try + OutXml = InvokeSrv("wsUSR.LoadUserPriv", InXml) + XmlDoc.LoadXml(OutXml) + + If ChkExecutionSuccess(XmlDoc) Then + strUserPriv = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loaduserpriv").Item(0).SelectNodes("name").Item(0).InnerXml + '取出Data + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loaduserpriv").Item(0).SelectNodes("value").Item(0).InnerXml + If XmlData <> "" Then + tmpStringReader = New System.IO.StringReader(XmlData) + dsData.ReadXml(tmpStringReader, XmlReadMode.InferSchema) + tmpStringReader.Close() + End If + Else + MsgBox(GetExceptionSysMsg(XmlDoc) & Chr(13) & GetExceptionMesMsg(XmlDoc), MsgBoxStyle.Exclamation) + Exit Sub + End If + + Catch e1 As Exception + MsgBox("Unexpected Error. Load User's Priv Failed," & e1.Message, MsgBoxStyle.Exclamation) + Finally + XmlDoc = Nothing + tmpStringReader = Nothing + + End Try + + End Sub + + Protected Overrides Sub Finalize() + MyBase.Finalize() + End Sub + + Public Sub funGetEnterpriseNo() + + Dim XmlDoc As New XmlDocument + Dim tmpStringReader As System.IO.StringReader + Dim InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema, strPara As String + Dim dsTemp As New DataSet + + strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow()) + strParameter = CombineXMLParameter("parameterno", "ParameterNo", "String", "EnterpriseNo", "") + InXml = CombineXMLRequest(strIdentity, strParameter) + + Try + + OutXml = InvokeSrv("wsSYS.LoadParameter", InXml) + + XmlDoc.LoadXml(OutXml) + + If ChkExecutionSuccess(XmlDoc) Then + + strPara = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadparameter").Item(0).SelectNodes("name").Item(0).InnerXml + + XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadparameter").Item(0).SelectNodes("schema").Item(0).InnerXml + + If XmlSchema <> "" Then + '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件 + tmpStringReader = New System.IO.StringReader(XmlSchema) + dsTemp.ReadXmlSchema(tmpStringReader) + tmpStringReader.Close() + End If + + XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadparameter").Item(0).SelectNodes("value").Item(0).InnerXml + + If XmlData <> "" Then + tmpStringReader = New System.IO.StringReader(XmlData) + dsTemp.ReadXml(tmpStringReader, XmlReadMode.InferSchema) + tmpStringReader.Close() + End If + + If dsTemp.Tables(strPara).Rows.Count > 0 Then + gEnterpriseNo = dsTemp.Tables(strPara).Rows(0)("ParameterValue").ToString.ToUpper + End If + + Else + MsgBox(GetExceptionSysMsg(XmlDoc) & Chr(13) & GetExceptionMesMsg(XmlDoc), MsgBoxStyle.Exclamation) + End If + + Catch ex As Exception + MsgBox("Unexpected Error. GetEnterpriseNo failed, " & ex.Message, MsgBoxStyle.Exclamation) + Finally + XmlDoc = Nothing + tmpStringReader = Nothing + dsTemp = Nothing + End Try + + End Sub + + ' 2016/05/09 YF, 產生模組選單 + Private Sub GenerateModuleItems() + + Dim aryModule() As String = {"AUT", "DT", "EMS", "ENT", "EQP", "IEW", "INV", "ISU", "MSA", "MTL", "OE", "OP", "PM", "PRD", "PRS", "QC", "RPT", "SMD", "SPC", "SYS", "USR", "WIP"} + Dim popModule As PopupMenuTool + Dim sbt As StateButtonTool + + Try + + popModule = New PopupMenuTool("MODULE") + popModule.SharedProps.Tag = "MODULE" + popModule.SharedProps.ToolTipText = "MODULE" + UltraToolbarsManager1.Tools.Add(popModule) + + '產生UltraToolBar Button + For Each m As String In aryModule + + sbt = New StateButtonTool(m & "Module") + sbt.MenuDisplayStyle = Infragistics.Win.UltraWinToolbars.StateButtonMenuDisplayStyle.DisplayCheckmark + sbt.CustomizedCaption = m + sbt.SharedProps.Tag = m + sbt.SharedProps.ToolTipText = m + sbt.SharedProps.Enabled = True + sbt.OptionSetKey = "MODULE" + + If ModuleNo = m Then + sbt.Checked = True + End If + + UltraToolbarsManager1.Tools.Add(sbt) + popModule.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {sbt}) + + Next + + Me.utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {popModule}) + + Me.utbMDIMenu.Tools.Item("MODULE").CustomizedIsFirstInGroup = DefaultableBoolean.True + + Catch ex As Exception + MsgBox("GenerateModuleMenu failed, " & ex.Message, MsgBoxStyle.Exclamation) + End Try + + End Sub + + Private Sub GenerateMenu() + + Try + + ' 2016/05/09 YF, 清空選單 + RemoveObject() + + '取出User Privileges + Call funLoadUserPriv() + + '1.Create MainMenu------------------------------------------------------------------------------------------------------------- + Dim strFileName As String + strFileName = GetMainMenuFileName() + + '檢查檔案是否存在 + If Dir(strFileName) = "" Then 'File not exist + MsgBox(strFileName & vbCrLf & "is not exist,Load MDI Form failed!!", MsgBoxStyle.Exclamation) + Exit Sub + End If + + '將處理 MenuItem 被點選的函數以 EventHandler Delegation 傳給 mnuMainMenu + Dim mnuMainMenu As New iMESMainMenu.iMESMainMenuControl(strFileName, Nothing) + + 'Add ExplorerBar MainMenu By carl 2007.08.14 + Dim j As Integer + Dim tempMenuSplit As Integer = defInteger + Dim panelmenu As MainMenu = New MainMenu(mnuMainMenu.CreateMainMenu(ModuleNo)) + Dim tmpMenuItem1 As iMESMenuItem + Dim tmpPopMenu As PopupMenuTool + UltraDockManager1.ControlPanes(0).Pinned = False + UltraDockManager1.ShowCloseButton = False + + uebMenu.GroupSettings.AllowDrag = DefaultableBoolean.False + uebMenu.GroupSettings.AllowEdit = DefaultableBoolean.False + uebMenu.GroupSettings.AllowItemDrop = DefaultableBoolean.False + uebMenu.ItemSettings.AllowDragCopy = UltraWinExplorerBar.ItemDragStyle.None + uebMenu.ItemSettings.AllowDragMove = UltraWinExplorerBar.ItemDragStyle.None + uebMenu.ItemSettings.AllowEdit = DefaultableBoolean.False + uebMenu.ShowDefaultContextMenu = False + + uebMenu.ItemSettings.UseDefaultImage = Infragistics.Win.DefaultableBoolean.False + uebMenu.ItemSettings.MaxLines = 2 + + If Not dsData.Tables(strUserPriv) Is Nothing Then '沒有任何權限,所有Privilege MenuItem都不可使用 + + For i = 0 To panelmenu.MenuItems.Count - 1 + tmpMenuItem1 = CType(panelmenu.MenuItems(i), iMESMenuItem) + + If i <= panelmenu.MenuItems.Count - 4 Then + uebMenu.Groups.Add(tmpMenuItem1.Text.ToUpper) + uebMenu.Groups(i).Expanded = True + End If + + If tmpMenuItem1.Name.ToUpper = "EXIT" Then + + funCreateUltraButtonMenuToolbar(tmpMenuItem1) + + Else + + tmpPopMenu = funCreateUltraPopupMenuToolbar(tmpMenuItem1) + + For j = 0 To tmpMenuItem1.MenuItems.Count - 1 + If CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuPrivilege Then + If dsData.Tables(strUserPriv).Select("FunctionNo='" & tmpMenuItem1.MenuItems(j).Text.ToUpper & "'").Length > 0 Then + funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem)) + + uebMenu.Groups(i).Items.Add(tmpMenuItem1.MenuItems(j).Text) + + funCreateUltraToolbar(CType(tmpMenuItem1.MenuItems(j), iMESMenuItem)) + + If tempMenuSplit = j Then + tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True + End If + + Else + funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem), False) + + If tempMenuSplit = j Then + tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True + End If + + End If + + ElseIf CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuString Then + + + funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem)) + + If tempMenuSplit = j Then + tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True + End If + + ElseIf CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuSplit Then + + tempMenuSplit = j + 1 + + End If + + Next + + utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {tmpPopMenu}) + + End If + + Next + + End If + + 'Add UltraToolBar----------------------------------------------------------------------------------------------------------------- + If utbMDI.Tools.Count > 0 Then + imlMDI.ImageSize = New Size(24, 24) + utbMDI.Text = "Toolbar" + utbMDI.Settings.ToolDisplayStyle = ToolDisplayStyle.ImageAndText + utbMDI.Settings.CaptionPlacement = TextPlacement.Default + utbMDI.IsMainMenuBar = False + utbMDI.DockedPosition = DockedPosition.Top + UltraToolbarsManager1.Style = ToolbarStyle.Office2003 + UltraToolbarsManager1.ImageListSmall = imlMDI + UltraToolbarsManager1.Toolbars.Add(utbMDI) + End If + + 'Add Menu UltraToolBar----------------------------------------------------------------------------------------------------------------- + If utbMDIMenu.Tools.Count > 0 Then + imlMDI.ImageSize = New Size(24, 24) + utbMDIMenu.Text = "MainMenu" + utbMDIMenu.Settings.ToolDisplayStyle = ToolDisplayStyle.ImageAndText + utbMDIMenu.Settings.CaptionPlacement = TextPlacement.Default + utbMDIMenu.IsMainMenuBar = True + utbMDIMenu.DockedPosition = DockedPosition.Top + UltraToolbarsManager1.OptionSets.Add(OptionSet1) + UltraToolbarsManager1.Style = ToolbarStyle.Office2003 + UltraToolbarsManager1.ImageListSmall = imlMDI + UltraToolbarsManager1.Toolbars.Add(utbMDIMenu) + UltraToolbarsManager1.Toolbars("MainMenu").ToolbarsManager.ToolbarSettings.ToolSpacing = 5 + End If + + ' 2016/05/09 YF, 產生模組選單 + GenerateModuleItems() + + Catch ex As Exception + MsgBox("GenerateMenuItem failed, " & ex.Message, MsgBoxStyle.Exclamation) + Finally + Me.Text = "Test" + ExeChangeResource(Me, gLanguageMode) + End Try + + End Sub + + Private Sub RemoveObject() + + uebMenu.Groups.Clear() + utbMDIMenu.Tools.Clear() + utbMDI.Tools.Clear() + UltraToolbarsManager1.Toolbars.Clear() + UltraToolbarsManager1.Tools.Clear() + UltraToolbarsManager1.OptionSets.Clear() + Me.UltraDockManager1.DockAreas(0).Panes.Item(0).Text = ModuleNo + Me.UltraDockManager1.DockAreas(0).Panes.Item(0).Key = ModuleNo & "Module" + + For i As Integer = Application.OpenForms.Count - 1 To 0 Step -1 + + If (Application.OpenForms.Item(i).Name <> "MDI_Panel") Then + Application.OpenForms.Item(i).Close() + End If + + Next + + End Sub + +End Class diff --git a/SRC/MESWin/Test/My Project/Application.Designer.vb b/SRC/MESWin/Test/My Project/Application.Designer.vb new file mode 100644 index 0000000..4f9342a --- /dev/null +++ b/SRC/MESWin/Test/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' 這段程式碼是由工具產生的。 +' 執行階段版本:4.0.30319.42000 +' +' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +' 變更將會遺失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/SRC/MESWin/Test/My Project/Application.myapp b/SRC/MESWin/Test/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/MESWin/Test/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/MESWin/Test/My Project/AssemblyInfo.vb b/SRC/MESWin/Test/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..d43ca3b --- /dev/null +++ b/SRC/MESWin/Test/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' 組件的一般資訊是由下列的屬性集控制。 +' 變更這些屬性的值即可修改組件的相關 +' 資訊。 + +' 檢閱組件屬性的值 + + + + + + + + + + +'下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID + + +' 組件的版本資訊由下列四個值所組成: +' +' 主要版本 +' 次要版本 +' 組建編號 +' 修訂編號 +' +' 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號 +' 指定為預設值: +' + + + diff --git a/SRC/MESWin/Test/My Project/Resources.Designer.vb b/SRC/MESWin/Test/My Project/Resources.Designer.vb new file mode 100644 index 0000000..3995654 --- /dev/null +++ b/SRC/MESWin/Test/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' 這段程式碼是由工具產生的。 +' 執行階段版本:4.0.30319.42000 +' +' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +' 變更將會遺失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + '這個類別是自動產生的,是利用 StronglyTypedResourceBuilder + '類別透過 ResGen 或 Visual Studio 這類工具。 + '若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen + '(利用 /str 選項),或重建您的 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("Test.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.Byte[] 的當地語系化資源。 + ''' + Friend ReadOnly Property iMES() As Byte() + Get + Dim obj As Object = ResourceManager.GetObject("iMES", resourceCulture) + Return CType(obj,Byte()) + End Get + End Property + End Module +End Namespace diff --git a/SRC/MESWin/Test/My Project/Resources.resx b/SRC/MESWin/Test/My Project/Resources.resx new file mode 100644 index 0000000..c14f0b3 --- /dev/null +++ b/SRC/MESWin/Test/My Project/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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\imes.isl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SRC/MESWin/Test/My Project/Settings.Designer.vb b/SRC/MESWin/Test/My Project/Settings.Designer.vb new file mode 100644 index 0000000..d0b470b --- /dev/null +++ b/SRC/MESWin/Test/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(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.Test.My.MySettings + Get + Return Global.Test.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/SRC/MESWin/Test/My Project/Settings.settings b/SRC/MESWin/Test/My Project/Settings.settings new file mode 100644 index 0000000..f7f176a --- /dev/null +++ b/SRC/MESWin/Test/My Project/Settings.settings @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/SRC/MESWin/Test/My Project/licenses.licx b/SRC/MESWin/Test/My Project/licenses.licx new file mode 100644 index 0000000..e69de29 diff --git a/SRC/MESWin/Test/Resources/iMES.isl b/SRC/MESWin/Test/Resources/iMES.isl new file mode 100644 index 0000000..0679a67 --- /dev/null +++ b/SRC/MESWin/Test/Resources/iMES.isl @@ -0,0 +1,4303 @@ + + + + 2015-02-05T03:06:30 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA3gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADgElEQVRoQ+2XzWsTQRjGq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMFL8W+waGPRIoixYkUrUmgVaZKaNJ/bbNpNm48mjUle531lttPpZGcm0IvMAw+Tncy7s89vZ2eTkVwuB7aOx+PWnpyctPax52k4bmEcP0wNQWi328auVCoUykYcQqPRMDaOx4u0EQ9mIxzvIDgIDgLJQWByEJgcBCYHgclBYHIQmBwEphACBjN1sVikULbGULbmoY7aI6urq2BrVUidVSF1tv0zNIzpDxSGspHneRTKRhyCatkPMo7Hi7QRD2YjHO8gmEDodrtQKBSgWq3SsQmErb0eXF/YgGe/a3RsAiFfrcHVj0V4+qtCxyYQ5HlMIKhqIiEggFKpRPsAgkDpIOAkE199GGEnv7ZQpj4dBARwY6FENVfmi9Sng6CaRwdhUM1ACP1+nwLj9/gGQSCoKAidXh9uf/Npsxmf92Cj9a8mCkK11oCJzyWqufS+AOmgRv1REAbNEwUhqiaEgL8BMGyz2aTjIAggkUhAOp2G3d1d6kOJEJa39+DyR3bst4DNAY8T23DiRQYuzuXhU6VFY1AihEVvG8bjBZjLBlCrs7ArPtVceJOFd/kghCNCMJ1HhGBTE0Iol8t019fW1sD3fUgmk5BKpaDV2i9AiRDuLm0S2fOvc3B/eQtOzazD2dksfNls0/dcIoQ7ix7VnJtdh3vfN+DkywycebUOH/LVEIAMwXQeEYJNzYHHAQPi3cc+BMBXhSj5cbi1WIbR6Qw9Z6djWXjr7a8aLhEC+iZb/qPTbHKsmclALLO/ArhFCCiTeUQIKNOaAxB6vR79KsRVgI8D7guyZAjNPz14+DOAMXZHnyR3oNU9XCND8Hfq8GCpDGNseT764cNmrX4AAFqGYDKPDMG05tDGiME7nY4SAEqGgMKTp+od2nxUkiGgMfiKv0Mbo9jPLUNA6eaRIaBMag5B0EkFQScVBJ1VEHRSQdAphIDBTI1vCwxlawxlax7qqE3/Im2tCqmzKqTOuLurLnqQcfwwNQTBRhyCjTgEG8ViMbpIG+FbYJiaEAK/y1Hm4zgEOoHGKBGCaoxslAhBNUY2HzdMjYOAn8VwOvNxDgJrHQTWOgisdRBY6yCw1kFg7X8LwVQiBFOJEEwlQjAVBhqmhiDYGkPZGiFgMFNPTU2Fd+xonYa/RnTXOFz4kRIAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + 249, 249, 249 + MiddleCenter + + + + + White + Segoe UI, 9pt + 75, 75, 75 + MiddleLeft + MiddleLeft + + + + + White + Segoe UI, 8.25pt + 75, 75, 75 + + + + + White + Segoe UI, 9pt + 75, 75, 75 + + + + + 75, 75, 75 + White + 0, 170, 222 + White + Silver + Left + Long + False + False + + + + + White + Segoe UI, 9pt + 75, 75, 75 + + + + + White + Flat + Segoe UI, 9pt + 75, 75, 75 + + + + + White + None + Microsoft Sans Serif, 12pt + 0, 170, 222 + MiddleCenter + + + + + 0, 170, 222 + White + None + Gainsboro + Flat + Segoe UI, 9.75pt, style=Bold + MiddleCenter + AlwaysUnderline + 133, 133, 133 + MiddleCenter + 179, 230, 245 + + + + + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + + + + + True + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + Nonclickable + LargeIcon + + + + + White + 75, 75, 75 + True + True + 0, 170, 222 + White + 191, 191, 191 + + + + + White + None + Segoe UI, 8.25pt + 75, 75, 75 + + + + + White + None + + + + + White + White + 75, 75, 75 + Segoe UI, 9pt + White + White + True + White + True + White + 75, 75, 75 + + + + + White + Segoe UI, 9pt + 75, 75, 75 + MiddleCenter + MiddleLeft + + + + + White + None + 75, 75, 75 + + + + + White + None + 75, 75, 75 + + + + + 133, 133, 133 + None + + + + + Segoe UI, 9pt + True + + + + + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + Left + + + + + White + + + + + White + None + False + Segoe UI, 9pt + 75, 75, 75 + False + False + True + 25 + False + True + True + + + + + White + Segoe UI, 8.25pt + 75, 75, 75 + + + + + + True + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADj0lEQVRoQ+2YzWsTQRiHq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OKteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXuf3ym4n2012JuBtHvgddjNvZt9nZycfI8lkknQTDAa1Mzk5qZ0jz2N0VCMYP0wNS2g2m8opFArclA5ra2vcVK1WU04gEOCL1OH2t8JQNUaCkWAkMEaCwEgQGAkCI0FgJAiMBIGRIHAkoDHVZDIZloDGVBMKhVgCGlPN1NQUf6/HRarmwtvUUDUj6+vrpBtI0A0k6GaYH0PD1LAEHXK5HDelgy3Ba9n3C8bjInWwG9MB440EFQntdpvS6TSVy2U+VpFQ3O/QtcUteva7wscqElLlCl1ZyNDTXwU+VpHgnkdFglfNQAkQkM1meR+ACOAnAZNMhCwaEW9+dTHP5/wkQMD1xSzXXJ7P8Dk/CV7z+EnoV9NXQrfb5YbxOj5BIAQMktDqdOnWV4s3m/H5HG01/tUMklCu1Gjic5ZrLn5IU6xU4fODJPSbZ5CEQTWOBHwHQLP1ep2PS6UShcNhisVitLe3x+eALGFlZ58uLYhjq0FiDnoc3qFjL+J0fi5FnwoNHgNkCUu5HRoPpmkuUaJKVTS7anHNuTcJep8qOXJkCarzyBJ0ahwJ+Xye7/rGxgZZlkWRSISi0Sg1GgcFQJZwd3mbzZ59naT7K0U6MbNJp2cT9GW7ya/byBLuLOW45szsJt37vkXHX8bp1KtN+pgqOwLcElTnkSXo1PQ8DmgQdx/nIMBeFTLux+HmUp5Gp+P8nJ0MJOhd7mDV2MgSkBti+Y9Oi8lRMxOnQPxgBdiRJQCVeWQJQLWmR0Kn0+FvhVgFeBywL7hxS6j/6dDDnyUaE3f0SWSXGu3DNW4J1m6VHiznaUwsz0c/LNquVHsEIG4JKvO4JajWHNoY0Xir1fIUANwSAN48Wm3x5uOFWwKCxletXd4Y5fN23BKA3zxuCUCl5pAEP7wk+OElwS9eEvzwkuCHIwGNqQafFmhKN2hKN3ZT/zv8K1I3Xk36xatJv2B397rofsH4YWpYgg7FYpGb0sGWoAPG4yJ1sBvTAeMdCfKd7hcgS8BHj1+ALMFrjDtAluA1xh0gS/Aa4w4wEgRGgsBIEBgJAiNBYCQIjASBkSDokaCKLEEVWYIqsgRVZAmqOBLQmGrwxyua0g2a0o3d1P9NjP4C33z6NGMDUeMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAAvQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADX0lEQVRoQ+2Xz2sTQRTHq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMGbf4NFW4sWQYwtVrRFCq0iTVKT5kezzabdtPnRpDHJc97IbCfTyc68gEVhPvA97HReZt9nZyfN0OrqKlATi8XIGR8fJ+fY8xQcJwTnD1LDJTSbTesICRSEhFqtZh2cjzdJQTRGAec7CU6Ck8BxEhhOAsNJYDgJDCeB4SQwnARGKIEabIoabIoa0dTfzj8tgfpjCDNIDZdAQUigICTotn2/4Hy8QQqiKQpOAsNKQrvdhnw+D+VymV/bSNje78D1+U149rPCr20k5MoVuDq3AU9/lPi1jQR1HRsJuppICSigUCjwxlEEYpKAi4x98WGIffi1+SIfM0lAATfmC7zmyuwGHzNJ0K1jktCvpq+EbrcLnufxprPZLBeCRElodbpwe9Hnh9PorAebjT81URLKlRqMfSrwmkvv85AKKnw8SkK/daIkRNWEEvB/AGy2Xq/z6yAIIB6PQyqVgr29PT6GyBKWd/bh8pwHMb8BbA14HN+BEy/ScHEmBx9LDT4HkSUseDswGsvDTCaASpU1u+LzmgtvMvAuF4RyZAm268gSKDWhhGKxyBtcW1sD3/chkUhAMpmERuOgAJEl3F3a4mbPv87C/eVtODW5DmenM/B5q8n/LpAl3FnweM256XW493UTTr5Mw5lX6/AhVw4FqBJs15ElUGp6Xgfc/vj0cQwFiF0hI0tAbi0UYXgizd+z01MZeOsd7BqBLAFzk23/4Qm2ONZMpmEqfbADRGQJiM06sgTEtqZHQqfTgVKpxHcBvg54LqioEuq/OvDwewAj7Ik+SexCo324RpXg71bhwVIRRtj2fPTNh61KtUcARpVgs44qwbbm0MGIjbdaLa0ARJWA4Icnqy1++OhQJWCw8RV/lx+M8riIKgExraNKQGxqDkkwoZNgQifBFJ0EEzoJJkIJ1GBT1GBT1ODBJhqzzSA1Q/i1SI2uSVN0TZpypBIoCAkUhAQKOB9vkIJoikKPBPGUoyLmCQn41WMKIkvQzVGDyBJ0c9QgsgTdHDWIk8BwEhhOAsNJYDgJDCeB4SQw/hsJ/EYNEfMGqQkl2CJLsEWWYIsswRZZgi2hBGqwKWqwKWqO5rdDCn4DepjAZpDd1xAAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAASAIAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAB6klEQVRoQ+2ZQUsCQRTHLTpFdOjQqWv0QaJr3YPo0q1z126ego7SZygqiahOS5GQFQRCICVlrqCuumFlmaa93hvMJtlwZmFDdt8P/gd33+C+3+7MOhgCFxiGoZ1wOKyd/8K1BB2SyaRoqlqtKicajbZHew9LQFgCwhIQloCwBIQlICwBYQkIS0BYAuJaAjWmmng8LiRQY6qJRCLtb/Me1xJ00894Ph1SqZR4GvoZzyVYlhVMCXa9BXOxAmzcPYvPgZNAAubjRQht3sNszBLHAiWh0fqExYsiDKCA6eM8FGpNcdzXEhKVOsyc5MEo1gD7h7WbCgxvp2HyIAunpZqoIXwtYfmqLO76xL4JKwkbRncfYHwvA2fld3H+G99Ph4VzC4a20mINGItm4Cj/1j7zg+8lvH60YPX6EUZ20rB++wS1Js6LLgKxMFLjqZeGWBidCISEXvhWAjWmGtpA9TMh0zRBNyRBN7SL1A29eQY1QvVuxggJOti2LZrSgZ4GakoH2k7TReqwdFlyNaYjQb7Tf4WQJdBrsVcIWYJTTXcIWYJTTXcIWYJTTXcIloCwBIQlICwBYQkIS0BYAsISkF8SVJElqCJLUEWWoIosQZWOBGpMNblcTkigxlTj9h8o+l1PF6maqcOsizFZ+AIGcQg8msEiNgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPpdpOdWRAU5gcPdDfzdvb97exsMpRKpUg3oVBIO4FAQDuHnsbpsEYw3k8NS2g2m8opFovclA7Ly8vcVK1WU04wGOSL1OHml6KvGiPBSDASGCNBYCQIjASBkSAwEgRGgsBIEPQkoDHVZLNZloDGVBMOh1kCGlPN+Pg4f6/HRarm3Ou0r5qhlZUV0g0k6AYSdOPnx5CfGpagQz6f56ZUicVivBrQlNuy7xesBlykDrizfmr+uoRCofD/S2i325TJZKhcLvOxioTN3Q5dmVunJz8rfKwiIV2u0KXZLD3+UeRjFQnOeVQkuNUMlAABuVyO9wGIAF4SMMlY2KIhcTGX5wp8zksCBFydy3HNxZksn/OS4DaPl4R+NX0ldLtdbhif4w0CIWCQhFanSzc+W7zZjM7kab3xp2aQhHKlRmMfc1xz/l2G4qUKnx8kod88gyQMqulJwHcANFuv1/m4VCpRJBKheDxOOzs7fA7IEha3dunCrDi2GiTmoIeRLTryLEFnp9P0odjgMUCWMJ/fotFQhqaTJapUaxRYsrjmzKskvU2XenJkCarzyBJ0anoSsIHh79XVVbIsi6LRKO/sjcZeAZAl3F7YYLOnX6bo7uImHZtco5NTSfq00eTPbWQJt+bzXHNqao3ufF2no88TdOLFGr1Pl3sCnBJU55El6NTsexzQIO4+zkGAvSpknI/D9fkCDU8k+Dk7HkzSm/zeqrFxPg7XxPIfnhDvZ9RMJiiY2FsBdpyPg8o8sgSgWrNPQqfT4W+FWAV4HLAvOHFKqP/q0P3vJRoRd/RRdJsa7YM1TgnWdpXuLRRoRCzPB98s2qhU9wlAnBJU5nFKUK05sDGi8Var5SoAOCUA/PNYtcWbjxtuGyMaX7K2eWOUz9tx2xi95nFKACo1ByR44SbBCzcJXnGT4IWbBC96EtCYavC2gAQ0ppp//gcUXou6gQTdQIJu0BDurGow3k8NS9DBlqADVgOa0gGrARepA+6sn5qeBPsuD4o9zpaAV49XgCzBbYwzQJbgNsYZIEtwG+MMMBIERoLASBAYCQIjQWAkCIwEgZEg2CdBFVmCKrIEVWQJqsgSVOlJ0A0koDHV/Ns/oNL0G0NuTL0rh9nUAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + VisualStudio2008Vista + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnElEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqItcWKqUqhVWyT1KT5biZN0uajaWOS432PTHo7nWTuHSio3AdeyEzm5M555s6dJAPJZJJ0MzU1pZ1AIKCdQ09jdFgjON5PDUvY3t5WTqFQ4KZ0WFpa4qZqtZpygsEgn6QON78UfNUYCUaCkcAYCQIjQWAkCIwEgZEgMBIERoKgKwGNqSaTybAENKaaUCjEEtCYakZHR/l7PU5SNedep3zVDCwvL5NuIEE3kKAbPz+G/NSwBB1yuRw3pUo0GuXZgKbcpn2vYDbgJHXAlfVTc+AS8vn8vy+h1WpROp2mcrnM2yoSijttujK7Rk9+VnhbRUKqXKFLMxl6/KPA2yoSnOOoSHCr6SsBArLZLK8DEAG8JGCQkZBFA+JkLs/meZ+XBAi4OpvlmovTGd7nJcFtHC8JvWp6Suh0Otww3scTBEJAPwnNdodufLZ4sRmeztFa409NPwnlSo1GPma55vy7NMVKFd7fT0KvcfpJ6FfTlYDvAGi2Xq/zdqlUonA4TLFYjLa2tngfkCUsbOzQhRmxbTVIjEEPwxt05Fmczk6m6EOhwccAWcJcboOGp9I0mShRpVqjwKLFNWdeJehtqtSVI0tQHUeWoFPTlYAFDK9XVlbIsiyKRCK8sjcauwVAlnB7fp3Nnn6ZpLsLRTo2vkonJxL0aX2b37eRJdyay3HNqYlVuvN1jY4+j9OJF6v0PlXuCnBKUB1HlqBTs+d2QIO4+tgHAfaskHHeDtfn8jQ4Fuf77HgwQW9yu7PGxnk7XBPTf3BMPJ9RMx6nYHx3Bthx3g4q48gSgGrNHgntdpu/FWIW4HbAuuDEKaH+q033v5doSFzRR5FNarT21zglWJtVujefpyExPR98s2i9Ut0jAHFKUBnHKUG1Zt/CiMabzaarAOCUAPDh0WqTFx833BZGNL5obfLCKO+347Yweo3jlABUavZJ8MJNghduErziJsELNwledCWgMdXgaQEJaEw1f/0PKDwWdQMJuoEE3aAhXFnVYAH0U8MSdCgWi9yUDpgNaEoHzAacpA5oyE9NV4J8pXsFyBL4AzwCZAluxzgDZAluxzhjH+enxkjAa7s5Z8NuAUaCwEgQGAkCI0FgJAiMBMF/LUEVWYIqsgRVIME+UVXk5lTpSkBjqsEfr5CAxlTj9weU3dTBJka/AW4uNg3p+taQAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + Far + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA7AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH5JREFUOE+tzMEJwDAQA0G3kP47SFMp5WKbEwizryiPwWY5NKrqVxgTGBMYExgTGBMY3XU/Na1XZubbBaPrQY3u/3njMDofangnGF0PanT/6U4wOh9qM/PtgtH1oEb3/7xxGJ0PNbwTjK4HNbr/dCcYExgTGBMYExgTGL+r8QL1YYgBA3bF7AAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA4AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUOE+tzMEJgEAQBMFLwfwzMClDWc/HQCP9cnwULM2wa2Z+pbGhsaGxobGhsaGRjvOKyW270Eh4FroLjcRHud8b0kh4Fjv79qGR+Ci37UIj4VnoLjQSH+V+b0gj4Vns7NuHxobGhsaGxobGhsbvZt1vy4gBqcW4UgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + TopOnBorder + BottomToTop + + + + + HighlightEntireItem + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPm53Mk9n3tzOzm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxnA4pym/a9jNmAi9QR7qyfzIFDKBQK/z6EVqtFmUyGyuUyn6tAWN9p05WZVXrys8LnKhDS5Qpdms7S4x9FPleB4BxHBYJbpi8EAMjlcrwPAATkBQGDjIQtGhAXc3mmwG1eEADg6kyOMxenstzmBcFtHC8IvTI9IXQ6HS4Y3+MJAiBQPwjNdodufLZ4sxmeytNq40+mH4RypUYjH3OcOf8uQ/FShdv7Qeg1Tj8I/TJdCHgHQLH1ep3PS6USRSIRisfjtLW1xW2QDGF+Y4cuTItzq0FiDHoY2aAjzxJ0djJNH4oN7gPJEGbzGzQcytBkskSVao0CCxZnzrxK0tt0qQtHhqA6jgxBJ9OFgA0Mn5eXl8myLIpGo7yzNxq7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnT2jZ/b0uGcGs2z5lTEyt05+sqHX2eoBMvVuh9utwF4ISgOo4MQSezZzmgQNx9tAGAPStkOZfD9dkCDY4leJ0dDybpTX531thyLodrYvoPjonnMzLjCQomdmeAbedyUBlHhgCpZvZAaLfb/FaIWYDlgH3BKSeE+q823f9eoiFxRx9FN6nR2p9xQrA2q3RvrkBDYno++GbRWqW6BwDshKAyjhOCambfxojCm82mKwDICQHCj8eqTd583OS2MaLwBWuTN0a53bbbxug1jhMCpJLZB8FLbhC85AbBy24QvOQGwUtdCChM1XhaAAIKU/Vf/wcKj0VdA4KuAUHXKAh3VtXYAP1kGIKObAg6wmxAUTrCbMBF6ggF+cl0Idh3uZ/tfjYE/gEPQzIEtz5OQzIEtz5O2/38ZAwEfJaL87Ldz0AQRwNBHA0EcTQQxNFAEEcDQRz/WwiqkiGoSoagKhmCqlCQnwxD0DUgoDBV+/0DZd+xg3WcfgND/TMv156b9wAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADmklEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOLBRU5oEHspN9Mvv+5mN3M5RIJEjXgUBA2z6fT9uHnkbpsIZxvpcMQ2g0GsrO5/NclI6Wl5e5qGq1qmy/388XqaObX/KeMgaCgWAgsAwEIQNByEAQMhCEDAQhA0HIQBDqQUBhqk6n0wwBhak6GAwyBBSm6vHxcX6ux0Wq+tzrpKfM0MrKCukaEHQNCLr28jLkJcMQdJTNZrkoVUUiEZ4NKMpp2vczZgMuUkcYWS+ZA4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTlbl1evKzzMcqEJKlMl2aTdPjH3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzeS7HbW4QAODqXIYzF2fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h258tnizGZ3J0nr9T2YQhFK5SmMfM5w5/y5F0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzhy7MimOrTqIPehjapCPPYnR2Okkf8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6ceRWnt8liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh9sIGkz39MkF3Fwt0bHKNTk7F6dNGg7/vSoZwaz7LmVNTa3Tn6zodfR6jEy/W6H2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8P1+RwNT8R4nR33x+lNdnfWdGVfDtfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqv9p0/3uRRsSIPgpvUb21P2OHYG1V6N5CjkbE9HzwzaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq9voC1R2xg3WUfgNzejYRjgB1CAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Office2013RadioButtonGlyphInfo + + -1 + 0, 170, 222 + Solid + 0, 170, 222 + White + 135, 135, 135 + None + Transparent + 0 + 0, 170, 222 + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV6O8nwxB0ZEPQEVYDitIR+uMidYSngJ9MF4I9y/1s97Mh8A94GJIhuPVxGpIhuPVx2u7nJ2Mg4LNcnJftfgaCaA0E0RoIojUQRGsgiNZAEO1/C0FVMgRVyRBUJUNQFQryk2EIugYEFKZq+w+Uru0ZO1jH6Tc1kyfofk37EgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + RectangularSolid + None + TopOnBorder + BottomToTop + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjElEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePFWPAiCNz+DRVuLVkGMLVaaqhRaxTZJTZr/zaZJ2vxp0pjkdZ5Xsp1sN9mZBaHC/OCB7nbezr6/nZ1NOpRIJEg3gUBAO+Pj49o58jxKRzWC8X5qWEKj0VBOPp/npnRYXV3lpqrVqnIwHhepw+2veV81RoKRYCQwRoLASBAYCQIjQWAkCIwEgZEgsCWgMdWk02mWgMZUEwwGuSnd4HM9LlI1F94mfdUMra2tkW4gQTduTXrFz5chPzUsQYdsNstNqRKJRHg1oCm3Zd8vGI+L1AF31k/NP5eQy+X+fwmtVotSqRSVSiU+VpFQ2GvTtflNevarzMcqEpKlMl2ZS9PTn3k+VpHgnEdFglvNQAkQkMlkeB+ACOAlAZOMBS0aEhdzdT7H57wkQMD1+QzXXJ5N8zkvCW7zeEnoV9NXQqfT4Ybxe7xBIAQMktBsd+jWF4s3m9HZLG3W/9YMklAqV2nsc4ZrLn5IUbRY5vODJPSbZ5CEQTW2BHwGQLO1Wo2Pi8UihUIhikajtLu7y+eALGF5e48uzYljq05iDnoc2qZjL2J0fiZJn/J1HgNkCYvZbRoNpGgmXqRyRTS7YnHNuTdxep8s2nJkCarzyBJ0amwJ2MDw8/r6OlmWReFwmHf2en2/AMgS7i5tsdmzrxN0f7lAJyY36PR0nBa2Gvz7LrKEO4tZrjkzvUH3vm3S8ZcxOvVqgz4mS7YApwTVeWQJOjU9jwMaxN3HOQjorgoZ5+NwczFHwxMxfs5OTsXpXXZ/1XRxPg43xPIfnhDvZ9RMxmgqtr8CupElAJV5ZAlAtaZHQrvd5k+FWAV4HLAvOHFKqP1u08MfRRoRd/RJeIfqrYM1TgnWToUeLOVoRCzPR98t2ipXegQgTgkq8zglqNYc2BjReLPZdBUAnBIA/nik0uTNxw23jRGNr1g7vDHK57txSgBe8zglAJWaAxK8cJPghZsEr7hJ8MJNghe2BDSmGrwtIAGNqebQf4HCa1E3kKAbtya9goZwZ1WD8X5qWIIOhUKBm9IBqwFN6YDxuEgdcGf91NgS5DvdL0CWgFePV4AswW2MM0CW4DbGGSBLcBvjDDASBEaCwEgQGAkCI0FgJAiMBIGRIOiRoIosQRVZgiqyBFVkCarYEtCYavCPV0hAY6o53F+gkvQHK6ctxANB/y4AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + White + + + + + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapE3TJo1JXud5ZdPJdpOdWSiozAMPyW7mycz725nZ3YFUKkW6DoVC2g4EAto+9DROhzWM9n4yDKFeryu7WCxyUTpaXFzkoqrVqrKDwSAPUkc3vxR9ZQwEA8FAYBkIQgaCkIEgZCAIGQhCBoKQgSDUgYDCVJ3NZhkCClN1OBxmCChM1aOjo/xcj0Gq+tzrtK/MwNLSEukaEHQNCLr28zLkJ8MQdJTP57koVcViMZ4NKMpt2vcyZgMGqSNcWT+ZA4dQKBT+fQjNZpMymQyVy2U+VoGwvtuiKzOr9ORnhY9VIKTLFbo0naXHP4p8rALB2Y8KBLdMXwgAkMvleB8ACMgLAjoZCVs0IAZzeabA57wgAMDVmRxnLk5l+ZwXBLd+vCD0yvSE0G63uWD8jjsIgED9IDRabbrx2eLNZngqT6u1P5l+EMqVKo18zHHm/LsMxUsVPt8PQq9++kHol+lAwDMAit3e3ubjUqlEkUiE4vE47ezs8DlIhjC/sUsXpsWxVSPRBz2MbNCRZwk6O5mmD8Uat4FkCLP5DRoOZWgyWaLKVpUCCxZnzrxK0tt0qQNHhqDajwxBJ9OBgA0M35eXl8myLIpGo7yz12p7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnTWp1/tyVDuDWb58ypiRW683WVjj5P0IkXK/Q+Xe4AcEJQ7UeGoJPpWg4oEFcf5wDAnhWynMvh+myBBscSvM6OB5P0Jr83a2w5l8M1Mf0Hx8T9GZnxBAUTezPAtnM5qPQjQ4BUM10QWq0WPxViFmA5YF9wyglh+1eL7n8v0ZC4oo+im1Rr7s84IVibW3RvrkBDYno++GbRWmWrCwDshKDSjxOCambfxojCG42GKwDICQHCn8e2Grz5uMltY0ThC9Ymb4zyedtuG6NXP04IkEpmHwQvuUHwkhsEL7tB8JIbBC91IKAwVeNuAQgoTNV//QsUbou6BgRdA4KuURCurI79ZBiCjmwIOsJsQFE6wmzAAHVkF6WjLgj2Ve5nu50NAbceL0MyBLc2TkMyBLc2TkMyBLc2TkMGgpCBIPTPQOCBethu5ydjIOC7XJyX7XYGgvg0EMSngSA+/1sIqpIhqEqGoCoZgqpkCKrqQNA1IKAwVft9gbKLOljH6TcHdzOr6BQ8HAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Office2013RadioButtonGlyphInfo + + + + + + + + + 0, 170, 222 + Gray + Gray + Gray + + + + + + + + + Flat + True + + + + + Flat + True + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjklEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPJdpOdiRQU5gcPdDfzdvb97exsMpRIJEg3gUBAOz6fTzuHnkbpsEYwfpAallCv15WTz+e5KR2Wl5e5qUqlohy/388XqcPNL/mBaowEI8FIYIwEgZEgMBIERoLASBAYCQIjQdCRgMZUk06nWQIaU00wGGQJaEw14+Pj/L0eF6mac6+TA9UMrayskG4gQTeQoJtBfgwNUsMSdMhms9yUKpFIhFcDmnJb9r2C1YCL1AF3dpCaA5eQy+X+fwnNZpNSqRQVi0U+VpGwuduiK3Pr9ORniY9VJCSLJbo0m6bHP/J8rCLBOY+KBLeavhIgIJPJ8D4AEcBLAiYZC1o0JC7m8lyOz3lJgICrcxmuuTiT5nNeEtzm8ZLQq6anhHa7zQ3jc7xBIAT0k9BotenGZ4s3m9GZLK3X/tT0k1AsVWjsY4Zrzr9LUbRQ4vP9JPSap5+EfjUdCfgOgGar1SofFwoFCoVCFI1GaWdnh88BWcLi1i5dmBXHVo3EHPQwtEVHnsXo7HSSPuRrPAbIEuazWzQaSNF0vEClcoV8SxbXnHkVp7fJQkeOLEF1HlmCTk1HAjYw/L26ukqWZVE4HOadvVbbKwCyhNsLG2z29MsE3V3cpGOTa3RyKk6fNur8uY0s4dZ8lmtOTa3Rna/rdPR5jE68WKP3yWJHgFOC6jyyBJ2arscBDeLu4xwE2KtCxvk4XJ/P0fBEjJ+z4/44vcnurRob5+NwTSz/4QnxfkbNZIz8sb0VYMf5OKjMI0sAqjVdElqtFn8rxCrA44B9wYlTQvVXi+5/L9CIuKOPwttUa+6vcUqwtst0byFHI2J5Pvhm0Uap3CUAcUpQmccpQbVm38aIxhuNhqsA4JQA8M8j5QZvPm64bYxofMna5o1RPm/HbWP0mscpAajU7JPghZsEL9wkeMVNghduErzoSEBjqsHbAhLQmGr++R9QeC3qBhJ0Awm6QUO4s6rB+EFqWIIOtgQdsBrQlA5YDbhIHWwBOnRJsO9yv9jjbAl49XgFyBLcxjgDZAluY5wBsgS3Mc4AI0FgJAiMBIGRIDASBEaCwEgQGAmCLgmqyBJUkSWoIktQRZagSkeCbiABjanmb35AHXyi9BvrVTNhLiUFpAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA/QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADn0lEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532yapM2fJo1JXud5Jel0u8nOrBQU5gcPdLfzdvb97exs0qFEIkG6CQQC2vH5fNo59DRKhzWC8V5qWEKj0VBOPp/npnRYXl7mpqrVqnL8fj9fpA43v+Q91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqxsfH+XM9LlI1514nPdUMrayskG4gQTeQoBsvX4a81LAEHbLZLDelSiQS4dWAppyWfb9gNeAidcCd9VJz4BJyudz/L6HValEqlaJSqcTHKhIKO226MrdOT36W+VhFQrJUpkuzaXr8I8/HKhLs86hIcKoZKAECMpkM7wMQAdwkYJKxoEVD4mIuz+X4nJsECLg6l+GaizNpPucmwWkeNwn9avpK6HQ63DB+jzcIhIBBEprtDt34bPFmMzqTpfX6n5pBEkrlKo19zHDN+XcpihbLfH6QhH7zDJIwqKYnAZ8B0GytVuPjYrFIoVCIotEobW9v8zkgS1jc3KELs+LYqpOYgx6GNunIsxidnU7Sh3ydxwBZwnx2k0YDKZqOF6lcqZJvyeKaM6/i9DZZ7MmRJajOI0vQqelJwAaGn1dXV8myLAqHw7yz1+u7BUCWcHthg82efpmgu4sFOja5Rien4vRpo8G/7yJLuDWf5ZpTU2t05+s6HX0eoxMv1uh9stQTYJegOo8sQadmz+OABnH3cQ4CuqtCxv44XJ/P0fBEjJ+z4/44vcnurpou9sfhmlj+wxPi/YyayRj5Y7sroBv746AyjywBqNbskdBut/lTIVYBHgfsC3bsEmq/2nT/e5FGxB19FN6iemt/jV2CtVWhews5GhHL88E3izbKlT0CELsElXnsElRr9m2MaLzZbDoKAHYJAH88Umny5uOE08aIxpesLd4Y5fPdOG2MbvPYJQCVmn0S3HCS4IaTBLc4SXDDSYIbPQloTDV4W0ACGlPNP/8FCq9F3UCCbiBBN2gId1Y1GO+lhiXoUCgUuCkdsBrQlA5YDbhIHboCdNgjQb7T/QJkCXj1uAXIEpzG2ANkCU5j7AGyBKcx9gAjQWAkCIwEgZEgMBIERoLASBD88xJwgcBpjD0A473U9CSoIktQRZagiixBFVmCKj0JaEw1+McrJKAx1fzNF6iDT5R+AxOLNj+SFfOFAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + 191, 191, 191 + White + 191, 191, 191 + Office2010 + 191, 191, 191 + + + + + Standard + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADlUlEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIsWLFVKXQKrZJatJ8N5MmafPRpDHJ8b5Hkt5MJ5l7BxSF+8ALncmc3DnP3Lkz6UgikSDdBAIB7fh8Pu0ceBylgxrB8V5qWEKj0VBOPp/npnRYWVnhpqrVqnL8fj+fpA7XP+c91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqJicn+b0eJ6maMy+TnmpGVldXSTeQoBtI0I2XH0NealiCDtlslptSJRKJ8GxAU07TflAwG3CSOuDKeqn54xJyudz/L6HValEqlaJSqcTbKhIKu226NL9Bj36UeVtFQrJUpgvv0vTwe563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcnM/xPjcJEHB5PsM15+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDl37ZPFiMz6XpY3675phEkrlKk18yHDN2TcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnZ2eB+QJSxt7dK5d2LbqpMYg+6HtujQkxidnk3S+3ydjwGyhIXsFo0HUjQbL1K5UiXfssU1p17E6XWy2JMjS1AdR5agU9OTgAUMf6+trZFlWRQOh3llr9f3CoAs4ebiJps9+TxBt5cKdGR6nY7PxOnjZoM/7yJLuLGQ5ZoTM+t068sGHX4ao2PP1ultstQTYJegOo4sQaem73ZAg7j62AcB3VkhY78dri7kaHQqxvfZUX+cXmX3Zk0X++1wRUz/0SnxfEbNdIz8sb0Z0I39dlAZR5YAVGv6JLTbbX4rxCzA7YB1wY5dQu1nm+5+K9KYuKIPwttUb+2vsUuwtit0ZzFHY2J63vtq0Wa50icAsUtQGccuQbVm38KIxpvNpqMAYJcA8OWRSpMXHyecFkY0vmxt88Io7+/GaWF0G8cuAajU7JPghpMEN5wkuMVJghtOEtzoSUBjqsHTAhLQmGr++R9QeCzqBhJ0Awm6QUO4sqrB8V5qWIIOhUKBm9KhK0EHzAacpA64sl5qehLkKz0oQJaAR49bgCzB6Rh7gCzB6Rh7gCzB6Rh7gJEgMBIERoLASBAYCQIjQWAkCIwEQZ8EVWQJqsgSVJElqCJLUKUnAY2pBv94RVO6gQQ0ppq/9wMqSb8AWg1JD6G7pzMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + False + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA2wAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAFVJREFUKFNj+P//Pxi3trZeAGIBGB8dwxlARf+B+AEQGyArgGE4A6oQhD8AcQCyIhDGphCGC4hVCMILqKqwASaHSyHIMwnIikAYXSFIEcHgwRPg/xkAphkSTK5IMV8AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA6AAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAGJJREFUKFNj+P//P1EYqyA2zMCw6t4FIP5PAF8AKRQA4g9Iguj4ARALQIxddc8AiLEpBokZgNXA3bDqXgKSAhgOgMvDGFDFDUiKClDkkDlggVX3FoAwhji6AC6MVRAT/2cAAJhQETR6tnZYAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Never + None + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESWin/Test/Test.sln b/SRC/MESWin/Test/Test.sln new file mode 100644 index 0000000..dbab07c --- /dev/null +++ b/SRC/MESWin/Test/Test.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Test", "Test.vbproj", "{C4A48E3F-38E4-4E88-A47D-FA5510686E57}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.ActiveCfg = Debug|x86 + {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.Build.0 = Debug|x86 + {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.ActiveCfg = Release|x86 + {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SRC/MESWin/Test/Test.vbproj b/SRC/MESWin/Test/Test.vbproj new file mode 100644 index 0000000..dc4d40c --- /dev/null +++ b/SRC/MESWin/Test/Test.vbproj @@ -0,0 +1,195 @@ + + + + + Debug + AnyCPU + {C4A48E3F-38E4-4E88-A47D-FA5510686E57} + WinExe + Test + Test + 512 + WindowsFormsWithCustomSubMain + v4.6.2 + + + + + + + + + + + + On + + + Binary + + + Off + + + On + + + Sub Main + + + true + true + true + ..\..\MESClient\ + Test.xml + 0 + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + full + x86 + MinimumRecommendedRules.ruleset + false + + + true + bin\x86\Release\ + Test.xml + true + 0 + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + pdbonly + x86 + MinimumRecommendedRules.ruleset + false + + + true + + + iMES.snk + + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinDock.v19.1.dll + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinExplorerBar.v19.1.dll + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinToolbars.v19.1.dll + + + False + C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll + + + ..\..\MESClient\COM_ChkPassword.dll + + + ..\..\MESClient\COM_Kit.dll + + + ..\..\MES_C_DLL\iMESException.dll + + + ..\..\MES_C_DLL\iMESExceptionManager.dll + + + ..\..\MES_C_DLL\iMESMainMenu.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + MDI_Panel.vb + + + + VbMyResourcesResXFileCodeGenerator + My.Resources + Designer + Resources.Designer.vb + + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESWin/Test/app.config b/SRC/MESWin/Test/app.config new file mode 100644 index 0000000..48769a1 --- /dev/null +++ b/SRC/MESWin/Test/app.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SRC/MESWin/Test/iMES.snk b/SRC/MESWin/Test/iMES.snk new file mode 100644 index 0000000000000000000000000000000000000000..4206cdc36eceddde7f30ac484d1852eb3f9be236 GIT binary patch literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50097#g3R+{UF+SWBpq3jKsGz4Rg)jp;sR@& z9YKT-w@gNp-L~38+1NJ=1XDRJDW25AI*NovDaNnzDN>{Bkv1jod=Ji9)a&FRUaAtf zi1{sH^ycmTE>;(=WPI@cVijY>( z68QMK9TPTAYPREpfq+h^Nne$)zO;6bx%j96AK_A|B+TR7U>0P)(eEk{J#@4Mx&M05 zCmJxuxSLKS802l^7))Rwj&-Awxzy zL|h&Z8u5{hxZ#i*aB?roJ=(>%lFM~AM)K&^89a(nzv>UkL3%^1E^(B=&$CpC*k&Uu zoWIXD#zo%*oEY3D5w(^p%? zO5a)yp9j|(odT|vi) x=2V4i$!>r`bocbgd;9#&HU{hI|N6Z$Mk4?^qLlWtab5 z>NP5P^SUu%0a4(t?J}R)?1B(lBxj+?ehgOdZcWno8ix^tn9J&06) 0 Then + App_Path = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/UID:") > 0 Then + gUserNo = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/UNA:") > 0 Then + gUserName = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/LVL:") > 0 Then + gUserLevel = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/LAN:") > 0 Then + gLanguageMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/WSH:") > 0 Then + gMESWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/CSH:") > 0 Then + gCUSWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/ENV:") > 0 Then + gSettingMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/SSH:") > 0 Then + gSFCWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/ESH:") > 0 Then + gERPWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length) + ElseIf InStr(UCase(ArgumentStr(i)), "/SSL:") > 0 Then + gEnableSSL = IIf(Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length).ToUpper = "TRUE", True, False) + End If + Next + + '***************************************************************************************************************** + If App_Path = "" Then + gAppPath = Application.StartupPath + Else + gAppPath = App_Path + End If + + If gUserNo = "" And gUserName = "" Then + + Using obj As New frmCOMChkPassword + obj.ShowDialog() + End Using + + Else + gReturnKeyValue = gUserNo + End If + + '用來做為是否可以進入系統的判斷 + If gReturnKeyValue <> "" Then + '取得電腦名稱 + gComputerName = WinFormInfo.ComputerName + + iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode + + ' 2014/12/26 YF, Coding時套用Pro5 Style + Infragistics.Win.AppStyling.StyleManager.Load(New MemoryStream(Global.Test.My.Resources.Resources.iMES)) + gEnableStyle = True + + '進入之系統 + Dim fMain As New MDI_Panel + fMain.ShowDialog() + + End If + + End Sub + + Public Function LoadAssembly(ByVal pFileName As String) As Assembly + + Dim mainAssembly As System.Reflection.Assembly + Dim myfieldinfo() As System.Reflection.FieldInfo + Dim strAppBase As String = AppDomain.CurrentDomain.BaseDirectory + Dim strFilePath As String + Dim strNamespace As String + + Try + + '判斷是否使用ClickOnce + If ApplicationDeployment.IsNetworkDeployed Then + 'ClickOnce架構下將strAppBase改指回Smart Client + Dim tempUri As System.Uri = ApplicationDeployment.CurrentDeployment.UpdateLocation + strAppBase = tempUri.ToString.Replace("/ClickOnce/MESSeries.application", "") + End If + + strFilePath = strAppBase & "/" & pFileName + + '檢查檔案是否存在 + If (Not funCheckFileExist(strFilePath)) Then + Throw New iMESException.MESException("0000-202115", strFilePath) + End If + + mainAssembly = Assembly.LoadFrom(strFilePath) + + 'strNamespace = mainAssembly.GetExportedTypes(0).Namespace + + '設定值予Module Public變數 + 'myfieldinfo = mainAssembly.GetType(strNamespace & ".modWIN").GetFields() + + 'For i As Integer = 0 To myfieldinfo.Length - 1 + ' If myfieldinfo(i).Name.ToUpper = "gUserNo".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserNo) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gUserName".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserName) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gComputerName".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gComputerName) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gUserLevel".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserLevel) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gLanguageMode".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gLanguageMode) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gAppPath".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gAppPath) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gMESWebServiceHost".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gMESWebServiceHost) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gCUSWebServiceHost".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gCUSWebServiceHost) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gSFCWebServiceHost".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gSFCWebServiceHost) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gERPWebServiceHost".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gERPWebServiceHost) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gSettingMode".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gSettingMode) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnterpriseNo".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gEnterpriseNo) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableSSL".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gEnableSSL) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gConfigFile".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gConfigFile) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableStyle".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), True) + ' ElseIf myfieldinfo(i).Name.ToUpper = "gSYSmode".ToUpper Then + ' myfieldinfo(i).SetValue(myfieldinfo(i), gSYSmode) + ' End If + 'Next + + Catch ex As Exception + mainAssembly = Nothing + ExceptionManager.iMESShowDialog(defWinErrCode, "Load Assembly Fail!" & vbCrLf & ex.Message, ex.StackTrace) + End Try + + Return mainAssembly + + End Function + + '檢查檔案是否存在 + Private Function funCheckFileExist(ByVal strFilePath As String) As Boolean + + 'Network架構下 + If ApplicationDeployment.IsNetworkDeployed OrElse + Application.ExecutablePath.ToLower.StartsWith("http") Then + '暫不檢查 + ElseIf IO.File.Exists(strFilePath) = False Then + '檔案架構下 + Return False + End If + + Return True + + End Function + +End Module diff --git a/SRC/MESWin/shared file/DirectionDown.png b/SRC/MESWin/shared file/DirectionDown.png new file mode 100644 index 0000000000000000000000000000000000000000..8f895330520aa5537b0f1a56b35b982cc36283a3 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^3xGJ9gAGW2nbr3lNJ*BsMwA5Sri7Xz0ACpO6sLZ#)KSMB;H^PWLxd*xd0EzS9i2|IbsxkHo>$<{bCD7Nq)kl`?X zu==Z3MRx(0e8WVJ=d~^~IOESUl&|kw{(-UL<*{1#8G`X`vKz!XHa|MevLT{n=Eqd# z2$@4~ei$*`QL1U#q1+pub6kF~S}MU`aM_`7+XM3yecJU|56n~W z>D1>va7b|3(dk?X3pu9i?)$A)xU#P2g5I}Xn$NR$rxyQN=2dp!RQaKP2L}5eyUbY{ zB47Xe{}JfsNP$D_2@=?SV9)~eUz>m(!(m*CWDcr(PEz^1KcA6}!N8MgkNknGG+;7f N@O1TaS?83{1OQo=^D6)V literal 0 HcmV?d00001 diff --git a/SRC/MESWin/shared file/DirectionLeft.png b/SRC/MESWin/shared file/DirectionLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..80ea854d234a6fb0f9496a15e4056a1daf59ade2 GIT binary patch literal 512 zcmeAS@N?(olHy`uVBq!ia0vp^3xGI=gAGW&oWIW>NJ*BsMwA5SrEaktaqG>Ujk!#Q3=Vvux z(8_y5A%)q#?X2Z&LA`goJi|edlv<&>~WI&J4)u`ARtgf+i^*}!ba(EZ@{ zkz_9Uh7XJ!@-+;7jPbjknK$zv2>Nm9)b~~~knnsdHV&ZtN?S1J7V`|w_*c4*q8~B? zO*yo@jqwnBf@ckX;{W6SdF&XxA9!ouuX(VrEb)i$YRgyIf3Dg!zE66&dapF&fy`d{ zS8{ehdm27)I{aX0@n-;PRbBg#c|%I=kKZYpj5F3Bp8A{5i9s=BHiIIIfD!O6^B$e2O@r-N?SuC1OrQPwFVdQ&MBb@0O9b% ACjbBd literal 0 HcmV?d00001 diff --git a/SRC/MESWin/shared file/DirectionRight.png b/SRC/MESWin/shared file/DirectionRight.png new file mode 100644 index 0000000000000000000000000000000000000000..cc26c41bdd8e5b7498bbdf368c355aeae2722a16 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^^MN>qgAGU)q^JJ^Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07#L4^x;TbZ+TD zamG(gv)3mxq-t%;18(0o>a9$B(9H7T-kIgK7VnCfbEeBnD%3C>Vo$JX_`t{^-|!L0 z1_~Tw2C_deO7IhuEKhi>t7Tx}v6%b8&xgN_>aTHsxMa3^S>dh7`45FbX3l45;dl7K zlJGdhd&<4b66@3#`y0>ii`{>+ev!1@+buWGRcZeSVY=7O%-6^+U-3aRoPRkV|2`{e z^$PvxADkXCua8(>=l^Uwm&2Fs%zNU0O4S~#+I;kE8T+dykn&Le_q%@XoX0hfxo`2I z-Cq3bAI$vebs+nG7W;#P>~b{^z-Bgz%L19AXIDzopr0FYPcu>b%7 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/shared file/DirectionUp.png b/SRC/MESWin/shared file/DirectionUp.png new file mode 100644 index 0000000000000000000000000000000000000000..1f2c2ab35b54b49fce9f5852c963a649e98ae6de GIT binary patch literal 606 zcmeAS@N?(olHy`uVBq!ia0vp^3xGJ5gAGV39nO6Pq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfcKAx;TbZ+3~YZvxX1whfFjJErp*C{0z`5n%en{M&Dp)!V%a=dE!mx??g)#dFe|p+oMQSsvW@@$0Pcq3F%5 z2`qLTj6BEL6&oJ@P+&2Tk#AvWd)zE=prA&8NurM*sOh64M}h^qB2(rwEb=X;OlNq2 zB;y&8`^!?DDi{@NCax7a6wL4tXn@wo(9R95Km#7G7E9y?8ha>Q_mCLSoIA4jPd@k6 z`ct^lqh)eXo*%1zkL$X3liipC7`zy`9C*JvZO+)&mnYm1y*HDO^@C=wW(&hVsrwhK zC-0sd%x~SpRA5tM+p_+y7l&fQ<43O*YvdUoN;&*c60~FFi09K*Z1~{F@xcBF&__3G zSnfGjuq)Iga$L5^dv(Jv%=EyT{{1h^X02mr0lMt<;c(+aoIsCq#Bb$L|B%}IfeU2L zJoBe@uVZ8mDEUjhU6;w1aPO>_-Lq}Gx3M<-ytm-@rTJ5L-MtESDyIXZ2BQXpDg)~R zmIVw`7(^O`8khp0{s2iLOI@13J)NuW%cNsP3;s_8#@Ls&{ETc2k&oFIsdqUo0wx#+ MPgg&ebxsLQ06CE8CjbBd literal 0 HcmV?d00001 diff --git a/SRC/MESWin/shared file/Export16x16.ico b/SRC/MESWin/shared file/Export16x16.ico new file mode 100644 index 0000000000000000000000000000000000000000..07fe93ecd603cdbce407c6d4b913d03569650a82 GIT binary patch literal 1406 zcmZ|PJ#5-g6o%n1m8y11lcf?_+Qm^AL9G?eD@d~p+mHf_Ruc-&+sFB58uTH_!ho_ui-2B zGTy+6+I!_wZdjm9`fCF9L zU(IGyp6BW0iGCrM@L86-{0qpc(E;uwpm&p(w5uf#bP}!=+=5}UlncTmxqhR z)A7^2w%76}o{u-by6RDaRa-Bt4!eE2d}h6x-=7VcSg-QmWq;mm@`3*UJfr_FbNBGh QEc;;g^RwCSGoE4YFJ?>mrvLx| literal 0 HcmV?d00001 diff --git a/SRC/MESWin/shared file/MakeVersion.targets b/SRC/MESWin/shared file/MakeVersion.targets new file mode 100644 index 0000000..f07a58c --- /dev/null +++ b/SRC/MESWin/shared file/MakeVersion.targets @@ -0,0 +1,16 @@ + + + + + + + $([System.DateTime]::Now.ToString("yy").Substring(1, 1)) + $([System.DateTime]::Now.ToString("MM")) + $([System.DateTime]::Now.ToString("dd")) + + <Assembly: Reflection.AssemblyFileVersion("6.0.5.$(Year)$(Month)$(Date)")> + + + + + \ No newline at end of file diff --git a/SRC/MESWin/shared file/MakeVersion_CS.targets b/SRC/MESWin/shared file/MakeVersion_CS.targets new file mode 100644 index 0000000..c5267d8 --- /dev/null +++ b/SRC/MESWin/shared file/MakeVersion_CS.targets @@ -0,0 +1,16 @@ + + + + + + + $([System.DateTime]::Now.ToString("yy").Substring(1, 1)) + $([System.DateTime]::Now.ToString("MM")) + $([System.DateTime]::Now.ToString("dd")) + + [assembly: System.Reflection.AssemblyFileVersion("6.0.5.$(Year)$(Month)$(Date)")] + + + + + \ No newline at end of file diff --git a/SRC/MESWin/shared file/Save16x16.ico b/SRC/MESWin/shared file/Save16x16.ico new file mode 100644 index 0000000000000000000000000000000000000000..90af81e9cb589884bed60a61e39187542fe39331 GIT binary patch literal 1406 zcmbW%A&lB^6vy%33BnXPwFJ~mFSFD`CZP%g_^Kr&n7S$y5|RoeIk8L>RYN#O5Rgoq zsv;;z(9PM2w{OecZCS>)-2dhM`S;JKFU{*em2QaJTQR@W=aTeZ(npdleIWDwe0;ho zelF85>yh%1M#c1Vv0ksWKCG2}`^tYKSrL*MrpU{}*vP({zTDp{%}mMBG)YZ^t*Ny# zIWaEJ=pcm;l0TEYKyo`uPxu{vfuG_7d>`8-+xP~)j(6}?Jav-cpzp(Ky(V9;g9$fzs0ZcdG#0_p+mHf_Ruc%Pxu{vfuG_7d>`M%xA6^p9q-_) zc#IZ1jfA@BINA48h(2 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/shared file/arERF_General.resx b/SRC/MESWin/shared file/arERF_General.resx new file mode 100644 index 0000000..f7c09a6 --- /dev/null +++ b/SRC/MESWin/shared file/arERF_General.resx @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + #,##0.0000 + + + + + /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAICAgICAgICAgIDAgICBAUEAgIEBQYFBQUFBQYHBgYGBgYG + BwcICAkICAcKCgsLCgoODg4ODg4ODg4ODg4ODg7/2wBDAQMDAwYFBgsHBwsODAoMDhEQEBAQEREODg4O + Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAA+ANEDAREAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgA + oAKACgAoAKACgAoAKACgAoAxdf1mx8N6HrXiHUmKadoNrNeX7qMkRQRmRyB34WtcNh3WqRpx+KTSXq3Z + GGJxCo05VJbRTb9Ernwl8Ov23ZPGPxI0nwpq3gyLS9D8T3qWOjXsUzPPFJO4jg85du1txIBxjbnPOK/S + 828Ofq2ElWjUvKEeaSa0aSu7dvLe5+a5V4ifWcWqMqdozlZO+qbdlfv57WP0Hr8vP1E8Z+IXxs8HfD+Q + aXK8uv8Aiebi28MWI8yclum/HCfjz6A18tnnFuFy98jvOr0hHV/Pt+fkfWZBwZi8yXtFaFJbzlpH5d/y + 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 + 5pDFoA//2Q== + + + + + AAEAAAD/////AQAAAAAAAAAEAQAAABZTeXN0ZW0uSU8uTWVtb3J5U3RyZWFtCgAAAAdfYnVmZmVyB19v + cmlnaW4JX3Bvc2l0aW9uB19sZW5ndGgJX2NhcGFjaXR5C19leHBhbmRhYmxlCV93cml0YWJsZQpfZXhw + b3NhYmxlB19pc09wZW4dTWFyc2hhbEJ5UmVmT2JqZWN0K19faWRlbnRpdHkHAAAAAAAAAAACAggICAgB + AQEBCQIAAAAAAAAAAAAAAMAeAADAHgAAAQEBAQoPAgAAAMAeAAACALseAAD/2P/gABBKRklGAAEBAQBg + AGAAAP/bAEMAAgICAgICAgICAgMCAgIEBQQCAgQFBgUFBQUFBgcGBgYGBgYHBwgICQgIBwoKCwsKCg4O + Dg4ODg4ODg4ODg4ODv/bAEMBAwMDBgUGCwcHCw4MCgwOERAQEBAREQ4ODg4ODg4ODg4ODg4ODg4ODg4O + Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODv/AABEIAD4A0QMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAA + AAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj + QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2 + d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj + 5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIE + BAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn + KCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqi + o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA + AhEDEQA/AP38oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC + 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 + + + + + + + + + + True + + + font-family: Arial; font-style: normal; font-variant: inherit; font-weight: normal; font-size: 10pt; font-size-adjust: inherit; font-stretch: inherit; color: rgb(0,0,0); background-repeat: inherit; background-attachment: inherit; opacity: inherit; word-spacing: inherit; letter-spacing: inherit; text-decoration: none; vertical-align: inherit; text-transform: inherit; text-align: inherit; text-indent: inherit; unicode-bidi: inherit; line-height: inherit; white-space: inherit; ddo-char-set: 0; + + \ No newline at end of file diff --git a/SRC/MESWin/shared file/arERF_General.vb b/SRC/MESWin/shared file/arERF_General.vb new file mode 100644 index 0000000..11bede1 --- /dev/null +++ b/SRC/MESWin/shared file/arERF_General.vb @@ -0,0 +1,1313 @@ +Imports GrapeCity.ActiveReports.Document +Imports GrapeCity.ActiveReports.Document.Section +Imports GrapeCity.ActiveReports.SectionReportModel +Imports GrapeCity.ActiveReports.Controls +Imports GrapeCity.ActiveReports +Imports System + + + +Public Class arERF_General + + Inherits GrapeCity.ActiveReports.SectionReport + + Public Sub New() + MyBase.New() + InitializeComponent() + End Sub + + '//Public Variables + Public ERFNo, LotNo, CustomerNo, OPNo, ProductNo, RuleNo, MClassNo, HoldDescription, Creator As String + Public CreateDate As DateTime + +#Region "ActiveReports Designer generated code" + Private WithEvents PageHeader As GrapeCity.ActiveReports.SectionReportModel.PageHeader = Nothing + Private WithEvents GroupHeader1 As GrapeCity.ActiveReports.SectionReportModel.GroupHeader = Nothing + Private WithEvents Detail As GrapeCity.ActiveReports.SectionReportModel.Detail = Nothing + Private WithEvents GroupFooter1 As GrapeCity.ActiveReports.SectionReportModel.GroupFooter = Nothing + Private WithEvents PageFooter As GrapeCity.ActiveReports.SectionReportModel.PageFooter = Nothing + Private Picture1 As GrapeCity.ActiveReports.SectionReportModel.Picture = Nothing + Private Shape1 As GrapeCity.ActiveReports.SectionReportModel.Shape = Nothing + Private lblERFReport As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtDate As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private lblPrintDate As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblERFNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtERFNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private Line2 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line5 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private lblCustomerNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblLotNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblProductNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtLotNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtCustomerNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtProductNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private Barcode1 As GrapeCity.ActiveReports.SectionReportModel.Barcode = Nothing + Private lblOPNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtOPNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblRuleNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtRuleNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblMClassNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtMClassNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblHoldDescription As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblCreator As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private txtCreator As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblCreateDate As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private Line27 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line28 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line29 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line30 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line31 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line32 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private txtCreateDate As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private txtHoldDescription As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private lblHoldItemNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblQty As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private lblHoldDisposition As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing + Private Line33 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line34 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Line35 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private txtHoldItemNo As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private txtQty As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private txtHoldDisposition As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing + Private Line36 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Friend WithEvents Line1 As GrapeCity.ActiveReports.SectionReportModel.Line + Friend WithEvents Label1 As GrapeCity.ActiveReports.SectionReportModel.Label + Friend WithEvents Label2 As GrapeCity.ActiveReports.SectionReportModel.Label + Friend WithEvents Label3 As GrapeCity.ActiveReports.SectionReportModel.Label + Friend WithEvents Label4 As GrapeCity.ActiveReports.SectionReportModel.Label + Friend WithEvents Label5 As GrapeCity.ActiveReports.SectionReportModel.Label + Private Line37 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(arERF_General)) + Me.Detail = New GrapeCity.ActiveReports.SectionReportModel.Detail + Me.txtHoldDisposition = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.txtHoldItemNo = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.txtQty = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.Line36 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line37 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line1 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.PageHeader = New GrapeCity.ActiveReports.SectionReportModel.PageHeader + Me.Picture1 = New GrapeCity.ActiveReports.SectionReportModel.Picture + Me.Shape1 = New GrapeCity.ActiveReports.SectionReportModel.Shape + Me.Line29 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.txtCreateDate = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.lblERFReport = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtDate = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.lblPrintDate = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblERFNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtERFNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Line2 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line5 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.lblCustomerNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblLotNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblProductNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtLotNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtCustomerNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtProductNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Barcode1 = New GrapeCity.ActiveReports.SectionReportModel.Barcode + Me.lblOPNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtOPNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblRuleNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtRuleNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblMClassNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtMClassNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblHoldDescription = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblCreator = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.txtCreator = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblCreateDate = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Line27 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line28 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line30 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line31 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line32 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.txtHoldDescription = New GrapeCity.ActiveReports.SectionReportModel.TextBox + Me.Label1 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Label2 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Label3 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Label4 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Label5 = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.PageFooter = New GrapeCity.ActiveReports.SectionReportModel.PageFooter + Me.GroupHeader1 = New GrapeCity.ActiveReports.SectionReportModel.GroupHeader + Me.lblHoldItemNo = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblQty = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.lblHoldDisposition = New GrapeCity.ActiveReports.SectionReportModel.Label + Me.Line33 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line34 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.Line35 = New GrapeCity.ActiveReports.SectionReportModel.Line + Me.GroupFooter1 = New GrapeCity.ActiveReports.SectionReportModel.GroupFooter + CType(Me.txtHoldDisposition, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtHoldItemNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtQty, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Picture1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtCreateDate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblERFReport, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtDate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblPrintDate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblERFNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtERFNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblCustomerNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblLotNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblProductNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtLotNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtCustomerNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtProductNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblOPNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtOPNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblRuleNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtRuleNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblMClassNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtMClassNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblHoldDescription, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblCreator, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtCreator, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblCreateDate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtHoldDescription, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Label5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblHoldItemNo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblQty, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.lblHoldDisposition, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me, System.ComponentModel.ISupportInitialize).BeginInit() + ' + 'Detail + ' + Me.Detail.ColumnSpacing = 0.0! + Me.Detail.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.txtHoldDisposition, Me.txtHoldItemNo, Me.txtQty, Me.Line36, Me.Line37, Me.Line1}) + Me.Detail.Height = 0.3333333! + Me.Detail.KeepTogether = True + Me.Detail.Name = "Detail" + ' + 'txtHoldDisposition + ' + Me.txtHoldDisposition.Border.BottomColor = System.Drawing.Color.Black + Me.txtHoldDisposition.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDisposition.Border.LeftColor = System.Drawing.Color.Black + Me.txtHoldDisposition.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDisposition.Border.RightColor = System.Drawing.Color.Black + Me.txtHoldDisposition.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDisposition.Border.TopColor = System.Drawing.Color.Black + Me.txtHoldDisposition.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDisposition.DataField = "HoldDisposition" + Me.txtHoldDisposition.Height = 0.1968504! + Me.txtHoldDisposition.Left = 2.386811! + Me.txtHoldDisposition.Name = "txtHoldDisposition" + Me.txtHoldDisposition.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtHoldDisposition.Text = Nothing + Me.txtHoldDisposition.Top = 0.0492126! + Me.txtHoldDisposition.Width = 5.364173! + ' + 'txtHoldItemNo + ' + Me.txtHoldItemNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtHoldItemNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldItemNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtHoldItemNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldItemNo.Border.RightColor = System.Drawing.Color.Black + Me.txtHoldItemNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldItemNo.Border.TopColor = System.Drawing.Color.Black + Me.txtHoldItemNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldItemNo.DataField = "HoldItemNo" + Me.txtHoldItemNo.Height = 0.1968504! + Me.txtHoldItemNo.Left = 0.1476378! + Me.txtHoldItemNo.Name = "txtHoldItemNo" + Me.txtHoldItemNo.Style = "font-size: 9.75pt; font-family: 新細明體; " + Me.txtHoldItemNo.Text = Nothing + Me.txtHoldItemNo.Top = 0.0492126! + Me.txtHoldItemNo.Width = 1.353346! + ' + 'txtQty + ' + Me.txtQty.Border.BottomColor = System.Drawing.Color.Black + Me.txtQty.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtQty.Border.LeftColor = System.Drawing.Color.Black + Me.txtQty.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtQty.Border.RightColor = System.Drawing.Color.Black + Me.txtQty.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtQty.Border.TopColor = System.Drawing.Color.Black + Me.txtQty.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtQty.DataField = "Qty" + Me.txtQty.Height = 0.2! + Me.txtQty.Left = 1.572917! + Me.txtQty.Name = "txtQty" + Me.txtQty.OutputFormat = resources.GetString("txtQty.OutputFormat") + Me.txtQty.Style = "font-size: 9.75pt; font-family: 新細明體; " + Me.txtQty.Text = Nothing + Me.txtQty.Top = 0.05298557! + Me.txtQty.Width = 0.75! + ' + 'Line36 + ' + Me.Line36.AnchorBottom = True + Me.Line36.Border.BottomColor = System.Drawing.Color.Black + Me.Line36.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line36.Border.LeftColor = System.Drawing.Color.Black + Me.Line36.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line36.Border.RightColor = System.Drawing.Color.Black + Me.Line36.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line36.Border.TopColor = System.Drawing.Color.Black + Me.Line36.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line36.Height = 0.31! + Me.Line36.Left = 0.0625! + Me.Line36.LineWeight = 1.0! + Me.Line36.Name = "Line36" + Me.Line36.Top = 0.0! + Me.Line36.Width = 0.0003187731! + Me.Line36.X1 = 0.0625! + Me.Line36.X2 = 0.06281877! + Me.Line36.Y1 = 0.0! + Me.Line36.Y2 = 0.31! + ' + 'Line37 + ' + Me.Line37.AnchorBottom = True + Me.Line37.Border.BottomColor = System.Drawing.Color.Black + Me.Line37.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line37.Border.LeftColor = System.Drawing.Color.Black + Me.Line37.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line37.Border.RightColor = System.Drawing.Color.Black + Me.Line37.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line37.Border.TopColor = System.Drawing.Color.Black + Me.Line37.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line37.Height = 0.31! + Me.Line37.Left = 7.8125! + Me.Line37.LineWeight = 1.0! + Me.Line37.Name = "Line37" + Me.Line37.Top = 0.0! + Me.Line37.Width = 0.0003190041! + Me.Line37.X1 = 7.8125! + Me.Line37.X2 = 7.812819! + Me.Line37.Y1 = 0.0! + Me.Line37.Y2 = 0.31! + ' + 'Line1 + ' + Me.Line1.Border.BottomColor = System.Drawing.Color.Black + Me.Line1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line1.Border.LeftColor = System.Drawing.Color.Black + Me.Line1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line1.Border.RightColor = System.Drawing.Color.Black + Me.Line1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line1.Border.TopColor = System.Drawing.Color.Black + Me.Line1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line1.Height = 0.0004101098! + Me.Line1.Left = 0.05856299! + Me.Line1.LineWeight = 1.0! + Me.Line1.Name = "Line1" + Me.Line1.Top = 0.3198819! + Me.Line1.Width = 7.756398! + Me.Line1.X1 = 0.05856299! + Me.Line1.X2 = 7.814961! + Me.Line1.Y1 = 0.3198819! + Me.Line1.Y2 = 0.320292! + ' + 'PageHeader + ' + Me.PageHeader.CanShrink = True + Me.PageHeader.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.Picture1, Me.Shape1, Me.Line29, Me.txtCreateDate, Me.lblERFReport, Me.txtDate, Me.lblPrintDate, Me.lblERFNo, Me.txtERFNo, Me.Line2, Me.Line5, Me.lblCustomerNo, Me.lblLotNo, Me.lblProductNo, Me.txtLotNo, Me.txtCustomerNo, Me.txtProductNo, Me.Barcode1, Me.lblOPNo, Me.txtOPNo, Me.lblRuleNo, Me.txtRuleNo, Me.lblMClassNo, Me.txtMClassNo, Me.lblHoldDescription, Me.lblCreator, Me.txtCreator, Me.lblCreateDate, Me.Line27, Me.Line28, Me.Line30, Me.Line31, Me.Line32, Me.txtHoldDescription, Me.Label1, Me.Label2, Me.Label3, Me.Label4, Me.Label5}) + Me.PageHeader.Height = 2.760417! + Me.PageHeader.Name = "PageHeader" + ' + 'Picture1 + ' + Me.Picture1.Border.BottomColor = System.Drawing.Color.Black + Me.Picture1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Picture1.Border.LeftColor = System.Drawing.Color.Black + Me.Picture1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Picture1.Border.RightColor = System.Drawing.Color.Black + Me.Picture1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Picture1.Border.TopColor = System.Drawing.Color.Black + Me.Picture1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Picture1.Height = 0.5! + Me.Picture1.Image = CType(resources.GetObject("Picture1.Image"), System.Drawing.Image) + Me.Picture1.ImageData = CType(resources.GetObject("Picture1.ImageData"), System.IO.Stream) + Me.Picture1.Left = 0.0! + Me.Picture1.LineColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.Picture1.LineWeight = 0.0! + Me.Picture1.Name = "Picture1" + Me.Picture1.SizeMode = GrapeCity.ActiveReports.SectionReportModel.SizeModes.Zoom + Me.Picture1.Top = 0.0! + Me.Picture1.Width = 1.6875! + ' + 'Shape1 + ' + Me.Shape1.Border.BottomColor = System.Drawing.Color.Black + Me.Shape1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Shape1.Border.LeftColor = System.Drawing.Color.Black + Me.Shape1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Shape1.Border.RightColor = System.Drawing.Color.Black + Me.Shape1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Shape1.Border.TopColor = System.Drawing.Color.Black + Me.Shape1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Shape1.Height = 2.25! + Me.Shape1.Left = 0.0625! + Me.Shape1.Name = "Shape1" + Me.Shape1.RoundingRadius = New GrapeCity.ActiveReports.Controls.CornersRadius(9.999999!) + Me.Shape1.Top = 0.5! + Me.Shape1.Width = 7.75! + ' + 'Line29 + ' + Me.Line29.Border.BottomColor = System.Drawing.Color.Black + Me.Line29.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line29.Border.LeftColor = System.Drawing.Color.Black + Me.Line29.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line29.Border.RightColor = System.Drawing.Color.Black + Me.Line29.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line29.Border.TopColor = System.Drawing.Color.Black + Me.Line29.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line29.Height = 0.0001250505! + Me.Line29.Left = 0.0625! + Me.Line29.LineWeight = 1.0! + Me.Line29.Name = "Line29" + Me.Line29.Top = 1.6875! + Me.Line29.Width = 7.75! + Me.Line29.X1 = 7.8125! + Me.Line29.X2 = 0.0625! + Me.Line29.Y1 = 1.6875! + Me.Line29.Y2 = 1.687625! + ' + 'txtCreateDate + ' + Me.txtCreateDate.Border.BottomColor = System.Drawing.Color.Black + Me.txtCreateDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreateDate.Border.LeftColor = System.Drawing.Color.Black + Me.txtCreateDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreateDate.Border.RightColor = System.Drawing.Color.Black + Me.txtCreateDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreateDate.Border.TopColor = System.Drawing.Color.Black + Me.txtCreateDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreateDate.Height = 0.2! + Me.txtCreateDate.Left = 6.484375! + Me.txtCreateDate.Name = "txtCreateDate" + Me.txtCreateDate.OutputFormat = resources.GetString("txtCreateDate.OutputFormat") + Me.txtCreateDate.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtCreateDate.Text = Nothing + Me.txtCreateDate.Top = 1.453125! + Me.txtCreateDate.Width = 1.328125! + ' + 'lblERFReport + ' + Me.lblERFReport.Border.BottomColor = System.Drawing.Color.Black + Me.lblERFReport.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFReport.Border.LeftColor = System.Drawing.Color.Black + Me.lblERFReport.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFReport.Border.RightColor = System.Drawing.Color.Black + Me.lblERFReport.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFReport.Border.TopColor = System.Drawing.Color.Black + Me.lblERFReport.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFReport.Height = 0.4429134! + Me.lblERFReport.HyperLink = "" + Me.lblERFReport.Left = 3.198819! + Me.lblERFReport.Name = "lblERFReport" + Me.lblERFReport.Style = "text-decoration: none; ddo-char-set: 0; font-weight: bold; font-style: normal; fo" & _ + "nt-size: 24pt; font-family: Times New Roman; " + Me.lblERFReport.Text = "ERF Report" + Me.lblERFReport.Top = 0.0! + Me.lblERFReport.Width = 2.26378! + ' + 'txtDate + ' + Me.txtDate.Border.BottomColor = System.Drawing.Color.Black + Me.txtDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtDate.Border.LeftColor = System.Drawing.Color.Black + Me.txtDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtDate.Border.RightColor = System.Drawing.Color.Black + Me.txtDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtDate.Border.TopColor = System.Drawing.Color.Black + Me.txtDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtDate.Height = 0.2! + Me.txtDate.Left = 6.5! + Me.txtDate.Name = "txtDate" + Me.txtDate.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.txtDate.Text = Nothing + Me.txtDate.Top = 0.25! + Me.txtDate.Width = 1.25! + ' + 'lblPrintDate + ' + Me.lblPrintDate.Border.BottomColor = System.Drawing.Color.Black + Me.lblPrintDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblPrintDate.Border.LeftColor = System.Drawing.Color.Black + Me.lblPrintDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblPrintDate.Border.RightColor = System.Drawing.Color.Black + Me.lblPrintDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblPrintDate.Border.TopColor = System.Drawing.Color.Black + Me.lblPrintDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblPrintDate.Height = 0.2! + Me.lblPrintDate.HyperLink = "" + Me.lblPrintDate.Left = 5.75! + Me.lblPrintDate.Name = "lblPrintDate" + Me.lblPrintDate.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblPrintDate.Text = "Print Date" + Me.lblPrintDate.Top = 0.25! + Me.lblPrintDate.Width = 0.75! + ' + 'lblERFNo + ' + Me.lblERFNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblERFNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblERFNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFNo.Border.RightColor = System.Drawing.Color.Black + Me.lblERFNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFNo.Border.TopColor = System.Drawing.Color.Black + Me.lblERFNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblERFNo.Height = 0.2! + Me.lblERFNo.HyperLink = "" + Me.lblERFNo.Left = 0.125! + Me.lblERFNo.Name = "lblERFNo" + Me.lblERFNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblERFNo.Text = "ERF No" + Me.lblERFNo.Top = 0.5625! + Me.lblERFNo.Width = 0.875! + ' + 'txtERFNo + ' + Me.txtERFNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtERFNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtERFNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtERFNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtERFNo.Border.RightColor = System.Drawing.Color.Black + Me.txtERFNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtERFNo.Border.TopColor = System.Drawing.Color.Black + Me.txtERFNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtERFNo.Height = 0.2! + Me.txtERFNo.HyperLink = "" + Me.txtERFNo.Left = 1.0625! + Me.txtERFNo.Name = "txtERFNo" + Me.txtERFNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtERFNo.Text = "" + Me.txtERFNo.Top = 0.5625! + Me.txtERFNo.Width = 1.6875! + ' + 'Line2 + ' + Me.Line2.Border.BottomColor = System.Drawing.Color.Black + Me.Line2.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line2.Border.LeftColor = System.Drawing.Color.Black + Me.Line2.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line2.Border.RightColor = System.Drawing.Color.Black + Me.Line2.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line2.Border.TopColor = System.Drawing.Color.Black + Me.Line2.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line2.Height = 0.91! + Me.Line2.Left = 2.866! + Me.Line2.LineWeight = 1.0! + Me.Line2.Name = "Line2" + Me.Line2.Top = 0.5! + Me.Line2.Width = 0.0003190041! + Me.Line2.X1 = 2.866319! + Me.Line2.X2 = 2.866! + Me.Line2.Y1 = 0.5! + Me.Line2.Y2 = 1.41! + ' + 'Line5 + ' + Me.Line5.Border.BottomColor = System.Drawing.Color.Black + Me.Line5.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line5.Border.LeftColor = System.Drawing.Color.Black + Me.Line5.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line5.Border.RightColor = System.Drawing.Color.Black + Me.Line5.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line5.Border.TopColor = System.Drawing.Color.Black + Me.Line5.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line5.Height = 0.0! + Me.Line5.Left = 0.0625! + Me.Line5.LineWeight = 1.0! + Me.Line5.Name = "Line5" + Me.Line5.Top = 0.8125! + Me.Line5.Width = 5.54! + Me.Line5.X1 = 5.6025! + Me.Line5.X2 = 0.0625! + Me.Line5.Y1 = 0.8125! + Me.Line5.Y2 = 0.8125! + ' + 'lblCustomerNo + ' + Me.lblCustomerNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblCustomerNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCustomerNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblCustomerNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCustomerNo.Border.RightColor = System.Drawing.Color.Black + Me.lblCustomerNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCustomerNo.Border.TopColor = System.Drawing.Color.Black + Me.lblCustomerNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCustomerNo.Height = 0.2! + Me.lblCustomerNo.HyperLink = "" + Me.lblCustomerNo.Left = 0.125! + Me.lblCustomerNo.Name = "lblCustomerNo" + Me.lblCustomerNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblCustomerNo.Text = "Customer No" + Me.lblCustomerNo.Top = 0.859375! + Me.lblCustomerNo.Width = 0.875! + ' + 'lblLotNo + ' + Me.lblLotNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblLotNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblLotNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblLotNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblLotNo.Border.RightColor = System.Drawing.Color.Black + Me.lblLotNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblLotNo.Border.TopColor = System.Drawing.Color.Black + Me.lblLotNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblLotNo.Height = 0.2! + Me.lblLotNo.HyperLink = "" + Me.lblLotNo.Left = 2.9375! + Me.lblLotNo.Name = "lblLotNo" + Me.lblLotNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblLotNo.Text = "Lot No" + Me.lblLotNo.Top = 0.5625! + Me.lblLotNo.Width = 0.75! + ' + 'lblProductNo + ' + Me.lblProductNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblProductNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblProductNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblProductNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblProductNo.Border.RightColor = System.Drawing.Color.Black + Me.lblProductNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblProductNo.Border.TopColor = System.Drawing.Color.Black + Me.lblProductNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblProductNo.Height = 0.2! + Me.lblProductNo.HyperLink = "" + Me.lblProductNo.Left = 2.9375! + Me.lblProductNo.Name = "lblProductNo" + Me.lblProductNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblProductNo.Text = "Product No" + Me.lblProductNo.Top = 0.859375! + Me.lblProductNo.Width = 0.75! + ' + 'txtLotNo + ' + Me.txtLotNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtLotNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtLotNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtLotNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtLotNo.Border.RightColor = System.Drawing.Color.Black + Me.txtLotNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtLotNo.Border.TopColor = System.Drawing.Color.Black + Me.txtLotNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtLotNo.Height = 0.1875! + Me.txtLotNo.HyperLink = "" + Me.txtLotNo.Left = 3.75! + Me.txtLotNo.Name = "txtLotNo" + Me.txtLotNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtLotNo.Text = "" + Me.txtLotNo.Top = 0.5625! + Me.txtLotNo.Width = 1.8125! + ' + 'txtCustomerNo + ' + Me.txtCustomerNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtCustomerNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCustomerNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtCustomerNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCustomerNo.Border.RightColor = System.Drawing.Color.Black + Me.txtCustomerNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCustomerNo.Border.TopColor = System.Drawing.Color.Black + Me.txtCustomerNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCustomerNo.Height = 0.2! + Me.txtCustomerNo.HyperLink = "" + Me.txtCustomerNo.Left = 1.0625! + Me.txtCustomerNo.Name = "txtCustomerNo" + Me.txtCustomerNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtCustomerNo.Text = "" + Me.txtCustomerNo.Top = 0.875! + Me.txtCustomerNo.Width = 1.6875! + ' + 'txtProductNo + ' + Me.txtProductNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtProductNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtProductNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtProductNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtProductNo.Border.RightColor = System.Drawing.Color.Black + Me.txtProductNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtProductNo.Border.TopColor = System.Drawing.Color.Black + Me.txtProductNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtProductNo.Height = 0.1875! + Me.txtProductNo.HyperLink = "" + Me.txtProductNo.Left = 3.75! + Me.txtProductNo.Name = "txtProductNo" + Me.txtProductNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtProductNo.Text = "" + Me.txtProductNo.Top = 0.859375! + Me.txtProductNo.Width = 1.8125! + ' + 'Barcode1 + ' + Me.Barcode1.Border.BottomColor = System.Drawing.Color.Black + Me.Barcode1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Barcode1.Border.LeftColor = System.Drawing.Color.Black + Me.Barcode1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Barcode1.Border.RightColor = System.Drawing.Color.Black + Me.Barcode1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Barcode1.Border.TopColor = System.Drawing.Color.Black + Me.Barcode1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Barcode1.CaptionPosition = GrapeCity.ActiveReports.SectionReportModel.BarCodeCaptionPosition.Below + Me.Barcode1.Font = New System.Drawing.Font("Courier New", 8.0!) + Me.Barcode1.Height = 0.4375! + Me.Barcode1.Left = 5.6875! + Me.Barcode1.Name = "Barcode1" + Me.Barcode1.Text = "Barcode1" + Me.Barcode1.Top = 0.59375! + Me.Barcode1.Width = 2.0625! + ' + 'lblOPNo + ' + Me.lblOPNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblOPNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblOPNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblOPNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblOPNo.Border.RightColor = System.Drawing.Color.Black + Me.lblOPNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblOPNo.Border.TopColor = System.Drawing.Color.Black + Me.lblOPNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblOPNo.Height = 0.2! + Me.lblOPNo.HyperLink = "" + Me.lblOPNo.Left = 2.9375! + Me.lblOPNo.Name = "lblOPNo" + Me.lblOPNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblOPNo.Text = "OP No" + Me.lblOPNo.Top = 1.1875! + Me.lblOPNo.Width = 0.75! + ' + 'txtOPNo + ' + Me.txtOPNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtOPNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtOPNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtOPNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtOPNo.Border.RightColor = System.Drawing.Color.Black + Me.txtOPNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtOPNo.Border.TopColor = System.Drawing.Color.Black + Me.txtOPNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtOPNo.Height = 0.1875! + Me.txtOPNo.HyperLink = "" + Me.txtOPNo.Left = 3.75! + Me.txtOPNo.Name = "txtOPNo" + Me.txtOPNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtOPNo.Text = "" + Me.txtOPNo.Top = 1.1875! + Me.txtOPNo.Width = 1.8125! + ' + 'lblRuleNo + ' + Me.lblRuleNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblRuleNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblRuleNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblRuleNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblRuleNo.Border.RightColor = System.Drawing.Color.Black + Me.lblRuleNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblRuleNo.Border.TopColor = System.Drawing.Color.Black + Me.lblRuleNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblRuleNo.Height = 0.2! + Me.lblRuleNo.HyperLink = "" + Me.lblRuleNo.Left = 0.125! + Me.lblRuleNo.Name = "lblRuleNo" + Me.lblRuleNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblRuleNo.Text = "Rule No" + Me.lblRuleNo.Top = 1.453125! + Me.lblRuleNo.Width = 0.75! + ' + 'txtRuleNo + ' + Me.txtRuleNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtRuleNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtRuleNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtRuleNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtRuleNo.Border.RightColor = System.Drawing.Color.Black + Me.txtRuleNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtRuleNo.Border.TopColor = System.Drawing.Color.Black + Me.txtRuleNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtRuleNo.Height = 0.2! + Me.txtRuleNo.HyperLink = "" + Me.txtRuleNo.Left = 1.0625! + Me.txtRuleNo.Name = "txtRuleNo" + Me.txtRuleNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtRuleNo.Text = "" + Me.txtRuleNo.Top = 1.453125! + Me.txtRuleNo.Width = 1.6875! + ' + 'lblMClassNo + ' + Me.lblMClassNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblMClassNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblMClassNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblMClassNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblMClassNo.Border.RightColor = System.Drawing.Color.Black + Me.lblMClassNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblMClassNo.Border.TopColor = System.Drawing.Color.Black + Me.lblMClassNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblMClassNo.Height = 0.2! + Me.lblMClassNo.HyperLink = "" + Me.lblMClassNo.Left = 0.125! + Me.lblMClassNo.Name = "lblMClassNo" + Me.lblMClassNo.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblMClassNo.Text = "MClass No" + Me.lblMClassNo.Top = 1.15625! + Me.lblMClassNo.Width = 0.75! + ' + 'txtMClassNo + ' + Me.txtMClassNo.Border.BottomColor = System.Drawing.Color.Black + Me.txtMClassNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtMClassNo.Border.LeftColor = System.Drawing.Color.Black + Me.txtMClassNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtMClassNo.Border.RightColor = System.Drawing.Color.Black + Me.txtMClassNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtMClassNo.Border.TopColor = System.Drawing.Color.Black + Me.txtMClassNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtMClassNo.Height = 0.2! + Me.txtMClassNo.HyperLink = "" + Me.txtMClassNo.Left = 1.0625! + Me.txtMClassNo.Name = "txtMClassNo" + Me.txtMClassNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtMClassNo.Text = "" + Me.txtMClassNo.Top = 1.15625! + Me.txtMClassNo.Width = 1.6875! + ' + 'lblHoldDescription + ' + Me.lblHoldDescription.Border.BottomColor = System.Drawing.Color.Black + Me.lblHoldDescription.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDescription.Border.LeftColor = System.Drawing.Color.Black + Me.lblHoldDescription.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDescription.Border.RightColor = System.Drawing.Color.Black + Me.lblHoldDescription.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDescription.Border.TopColor = System.Drawing.Color.Black + Me.lblHoldDescription.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDescription.Height = 0.2! + Me.lblHoldDescription.HyperLink = "" + Me.lblHoldDescription.Left = 0.1230315! + Me.lblHoldDescription.Name = "lblHoldDescription" + Me.lblHoldDescription.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblHoldDescription.Text = "Hold Description" + Me.lblHoldDescription.Top = 1.747047! + Me.lblHoldDescription.Width = 1.125! + ' + 'lblCreator + ' + Me.lblCreator.Border.BottomColor = System.Drawing.Color.Black + Me.lblCreator.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreator.Border.LeftColor = System.Drawing.Color.Black + Me.lblCreator.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreator.Border.RightColor = System.Drawing.Color.Black + Me.lblCreator.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreator.Border.TopColor = System.Drawing.Color.Black + Me.lblCreator.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreator.Height = 0.2! + Me.lblCreator.HyperLink = "" + Me.lblCreator.Left = 5.65625! + Me.lblCreator.Name = "lblCreator" + Me.lblCreator.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblCreator.Text = "Creator" + Me.lblCreator.Top = 1.1875! + Me.lblCreator.Width = 0.8125! + ' + 'txtCreator + ' + Me.txtCreator.Border.BottomColor = System.Drawing.Color.Black + Me.txtCreator.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreator.Border.LeftColor = System.Drawing.Color.Black + Me.txtCreator.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreator.Border.RightColor = System.Drawing.Color.Black + Me.txtCreator.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreator.Border.TopColor = System.Drawing.Color.Black + Me.txtCreator.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtCreator.Height = 0.1875! + Me.txtCreator.HyperLink = "" + Me.txtCreator.Left = 6.484375! + Me.txtCreator.Name = "txtCreator" + Me.txtCreator.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtCreator.Text = "" + Me.txtCreator.Top = 1.1875! + Me.txtCreator.Width = 1.3125! + ' + 'lblCreateDate + ' + Me.lblCreateDate.Border.BottomColor = System.Drawing.Color.Black + Me.lblCreateDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreateDate.Border.LeftColor = System.Drawing.Color.Black + Me.lblCreateDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreateDate.Border.RightColor = System.Drawing.Color.Black + Me.lblCreateDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreateDate.Border.TopColor = System.Drawing.Color.Black + Me.lblCreateDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblCreateDate.Height = 0.2! + Me.lblCreateDate.HyperLink = "" + Me.lblCreateDate.Left = 5.65625! + Me.lblCreateDate.Name = "lblCreateDate" + Me.lblCreateDate.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.lblCreateDate.Text = "Create Date" + Me.lblCreateDate.Top = 1.453125! + Me.lblCreateDate.Width = 0.8125! + ' + 'Line27 + ' + Me.Line27.Border.BottomColor = System.Drawing.Color.Black + Me.Line27.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line27.Border.LeftColor = System.Drawing.Color.Black + Me.Line27.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line27.Border.RightColor = System.Drawing.Color.Black + Me.Line27.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line27.Border.TopColor = System.Drawing.Color.Black + Me.Line27.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line27.Height = 0.0001250505! + Me.Line27.Left = 0.0625! + Me.Line27.LineWeight = 1.0! + Me.Line27.Name = "Line27" + Me.Line27.Top = 1.124875! + Me.Line27.Width = 7.75! + Me.Line27.X1 = 7.8125! + Me.Line27.X2 = 0.0625! + Me.Line27.Y1 = 1.125! + Me.Line27.Y2 = 1.124875! + ' + 'Line28 + ' + Me.Line28.Border.BottomColor = System.Drawing.Color.Black + Me.Line28.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line28.Border.LeftColor = System.Drawing.Color.Black + Me.Line28.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line28.Border.RightColor = System.Drawing.Color.Black + Me.Line28.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line28.Border.TopColor = System.Drawing.Color.Black + Me.Line28.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line28.Height = 0.0001250505! + Me.Line28.Left = 0.0625! + Me.Line28.LineWeight = 1.0! + Me.Line28.Name = "Line28" + Me.Line28.Top = 1.40625! + Me.Line28.Width = 7.75! + Me.Line28.X1 = 7.8125! + Me.Line28.X2 = 0.0625! + Me.Line28.Y1 = 1.40625! + Me.Line28.Y2 = 1.406375! + ' + 'Line30 + ' + Me.Line30.Border.BottomColor = System.Drawing.Color.Black + Me.Line30.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line30.Border.LeftColor = System.Drawing.Color.Black + Me.Line30.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line30.Border.RightColor = System.Drawing.Color.Black + Me.Line30.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line30.Border.TopColor = System.Drawing.Color.Black + Me.Line30.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line30.Height = 1.180556! + Me.Line30.Left = 5.600695! + Me.Line30.LineWeight = 1.0! + Me.Line30.Name = "Line30" + Me.Line30.Top = 0.5069444! + Me.Line30.Width = 0.0003180504! + Me.Line30.X1 = 5.600695! + Me.Line30.X2 = 5.601013! + Me.Line30.Y1 = 0.5069444! + Me.Line30.Y2 = 1.6875! + ' + 'Line31 + ' + Me.Line31.Border.BottomColor = System.Drawing.Color.Black + Me.Line31.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line31.Border.LeftColor = System.Drawing.Color.Black + Me.Line31.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line31.Border.RightColor = System.Drawing.Color.Black + Me.Line31.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line31.Border.TopColor = System.Drawing.Color.Black + Me.Line31.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line31.Height = 0.91! + Me.Line31.Left = 3.71875! + Me.Line31.LineWeight = 1.0! + Me.Line31.Name = "Line31" + Me.Line31.Top = 0.5! + Me.Line31.Width = 0.0003190041! + Me.Line31.X1 = 3.71875! + Me.Line31.X2 = 3.719069! + Me.Line31.Y1 = 0.5! + Me.Line31.Y2 = 1.41! + ' + 'Line32 + ' + Me.Line32.Border.BottomColor = System.Drawing.Color.Black + Me.Line32.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line32.Border.LeftColor = System.Drawing.Color.Black + Me.Line32.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line32.Border.RightColor = System.Drawing.Color.Black + Me.Line32.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line32.Border.TopColor = System.Drawing.Color.Black + Me.Line32.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line32.Height = 1.180556! + Me.Line32.Left = 1.03125! + Me.Line32.LineWeight = 1.0! + Me.Line32.Name = "Line32" + Me.Line32.Top = 0.5069444! + Me.Line32.Width = 0.0003190041! + Me.Line32.X1 = 1.03125! + Me.Line32.X2 = 1.031569! + Me.Line32.Y1 = 0.5069444! + Me.Line32.Y2 = 1.6875! + ' + 'txtHoldDescription + ' + Me.txtHoldDescription.Border.BottomColor = System.Drawing.Color.Black + Me.txtHoldDescription.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDescription.Border.LeftColor = System.Drawing.Color.Black + Me.txtHoldDescription.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDescription.Border.RightColor = System.Drawing.Color.Black + Me.txtHoldDescription.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDescription.Border.TopColor = System.Drawing.Color.Black + Me.txtHoldDescription.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.txtHoldDescription.CanGrow = False + Me.txtHoldDescription.Height = 0.9375! + Me.txtHoldDescription.Left = 1.304134! + Me.txtHoldDescription.Name = "txtHoldDescription" + Me.txtHoldDescription.OutputFormat = resources.GetString("txtHoldDescription.OutputFormat") + Me.txtHoldDescription.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; " + Me.txtHoldDescription.Text = Nothing + Me.txtHoldDescription.Top = 1.747047! + Me.txtHoldDescription.Width = 6.4375! + ' + 'Label1 + ' + Me.Label1.Border.BottomColor = System.Drawing.Color.Black + Me.Label1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label1.Border.LeftColor = System.Drawing.Color.Black + Me.Label1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label1.Border.RightColor = System.Drawing.Color.Black + Me.Label1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label1.Border.TopColor = System.Drawing.Color.Black + Me.Label1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label1.Height = 0.2! + Me.Label1.HyperLink = "" + Me.Label1.Left = 1.058071! + Me.Label1.Name = "Label1" + Me.Label1.Style = "font-size: 9.75pt; font-family: 新細明體; " + Me.Label1.Text = "" + Me.Label1.Top = 0.5659449! + Me.Label1.Width = 1.6875! + ' + 'Label2 + ' + Me.Label2.Border.BottomColor = System.Drawing.Color.Black + Me.Label2.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label2.Border.LeftColor = System.Drawing.Color.Black + Me.Label2.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label2.Border.RightColor = System.Drawing.Color.Black + Me.Label2.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label2.Border.TopColor = System.Drawing.Color.Black + Me.Label2.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label2.Height = 0.2! + Me.Label2.HyperLink = "" + Me.Label2.Left = 1.058071! + Me.Label2.Name = "Label2" + Me.Label2.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.Label2.Text = "" + Me.Label2.Top = 0.8858268! + Me.Label2.Width = 1.6875! + ' + 'Label3 + ' + Me.Label3.Border.BottomColor = System.Drawing.Color.Black + Me.Label3.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label3.Border.LeftColor = System.Drawing.Color.Black + Me.Label3.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label3.Border.RightColor = System.Drawing.Color.Black + Me.Label3.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label3.Border.TopColor = System.Drawing.Color.Black + Me.Label3.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label3.Height = 0.2! + Me.Label3.HyperLink = "" + Me.Label3.Left = 1.058071! + Me.Label3.Name = "Label3" + Me.Label3.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.Label3.Text = "" + Me.Label3.Top = 1.156496! + Me.Label3.Width = 1.6875! + ' + 'Label4 + ' + Me.Label4.Border.BottomColor = System.Drawing.Color.Black + Me.Label4.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label4.Border.LeftColor = System.Drawing.Color.Black + Me.Label4.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label4.Border.RightColor = System.Drawing.Color.Black + Me.Label4.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label4.Border.TopColor = System.Drawing.Color.Black + Me.Label4.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label4.Height = 0.2! + Me.Label4.HyperLink = "" + Me.Label4.Left = 1.058071! + Me.Label4.Name = "Label4" + Me.Label4.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.Label4.Text = "" + Me.Label4.Top = 1.451772! + Me.Label4.Width = 1.6875! + ' + 'Label5 + ' + Me.Label5.Border.BottomColor = System.Drawing.Color.Black + Me.Label5.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label5.Border.LeftColor = System.Drawing.Color.Black + Me.Label5.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label5.Border.RightColor = System.Drawing.Color.Black + Me.Label5.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label5.Border.TopColor = System.Drawing.Color.Black + Me.Label5.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Label5.Height = 0.1875! + Me.Label5.HyperLink = "" + Me.Label5.Left = 3.740157! + Me.Label5.Name = "Label5" + Me.Label5.Style = "font-size: 9.75pt; font-family: Times New Roman; " + Me.Label5.Text = "" + Me.Label5.Top = 1.181102! + Me.Label5.Width = 1.8125! + ' + 'PageFooter + ' + Me.PageFooter.Height = 0.1451389! + Me.PageFooter.Name = "PageFooter" + Me.PageFooter.Visible = False + ' + 'GroupHeader1 + ' + Me.GroupHeader1.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.lblHoldItemNo, Me.lblQty, Me.lblHoldDisposition, Me.Line33, Me.Line34, Me.Line35}) + Me.GroupHeader1.Height = 0.21875! + Me.GroupHeader1.Name = "GroupHeader1" + ' + 'lblHoldItemNo + ' + Me.lblHoldItemNo.Border.BottomColor = System.Drawing.Color.Black + Me.lblHoldItemNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldItemNo.Border.LeftColor = System.Drawing.Color.Black + Me.lblHoldItemNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldItemNo.Border.RightColor = System.Drawing.Color.Black + Me.lblHoldItemNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldItemNo.Border.TopColor = System.Drawing.Color.Black + Me.lblHoldItemNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldItemNo.Height = 0.2! + Me.lblHoldItemNo.HyperLink = "" + Me.lblHoldItemNo.Left = 0.0625! + Me.lblHoldItemNo.Name = "lblHoldItemNo" + Me.lblHoldItemNo.Style = "color: White; text-align: center; background-color: Blue; " + Me.lblHoldItemNo.Text = "HoldItem No" + Me.lblHoldItemNo.Top = 0.0! + Me.lblHoldItemNo.Width = 1.5! + ' + 'lblQty + ' + Me.lblQty.Border.BottomColor = System.Drawing.Color.Black + Me.lblQty.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblQty.Border.LeftColor = System.Drawing.Color.Black + Me.lblQty.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblQty.Border.RightColor = System.Drawing.Color.Black + Me.lblQty.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblQty.Border.TopColor = System.Drawing.Color.Black + Me.lblQty.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblQty.Height = 0.2! + Me.lblQty.HyperLink = "" + Me.lblQty.Left = 1.5625! + Me.lblQty.Name = "lblQty" + Me.lblQty.Style = "color: White; text-align: center; background-color: Blue; font-size: 9.75pt; " + Me.lblQty.Text = "Qty" + Me.lblQty.Top = 0.0! + Me.lblQty.Width = 0.75! + ' + 'lblHoldDisposition + ' + Me.lblHoldDisposition.Border.BottomColor = System.Drawing.Color.Black + Me.lblHoldDisposition.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDisposition.Border.LeftColor = System.Drawing.Color.Black + Me.lblHoldDisposition.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDisposition.Border.RightColor = System.Drawing.Color.Black + Me.lblHoldDisposition.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDisposition.Border.TopColor = System.Drawing.Color.Black + Me.lblHoldDisposition.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.lblHoldDisposition.Height = 0.2! + Me.lblHoldDisposition.HyperLink = "" + Me.lblHoldDisposition.Left = 2.3125! + Me.lblHoldDisposition.Name = "lblHoldDisposition" + Me.lblHoldDisposition.Style = "color: White; text-align: center; background-color: Blue; font-size: 9.75pt; " + Me.lblHoldDisposition.Text = "Hold Disposition" + Me.lblHoldDisposition.Top = 0.0! + Me.lblHoldDisposition.Width = 5.5! + ' + 'Line33 + ' + Me.Line33.Border.BottomColor = System.Drawing.Color.Black + Me.Line33.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line33.Border.LeftColor = System.Drawing.Color.Black + Me.Line33.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line33.Border.RightColor = System.Drawing.Color.Black + Me.Line33.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line33.Border.TopColor = System.Drawing.Color.Black + Me.Line33.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line33.Height = 0.0! + Me.Line33.Left = 0.0625! + Me.Line33.LineWeight = 1.0! + Me.Line33.Name = "Line33" + Me.Line33.Top = 0.203125! + Me.Line33.Width = 7.75! + Me.Line33.X1 = 0.0625! + Me.Line33.X2 = 7.8125! + Me.Line33.Y1 = 0.203125! + Me.Line33.Y2 = 0.203125! + ' + 'Line34 + ' + Me.Line34.Border.BottomColor = System.Drawing.Color.Black + Me.Line34.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line34.Border.LeftColor = System.Drawing.Color.Black + Me.Line34.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line34.Border.RightColor = System.Drawing.Color.Black + Me.Line34.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line34.Border.TopColor = System.Drawing.Color.Black + Me.Line34.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line34.Height = 0.2! + Me.Line34.Left = 0.0625! + Me.Line34.LineWeight = 1.0! + Me.Line34.Name = "Line34" + Me.Line34.Top = 0.0! + Me.Line34.Width = 0.0003187731! + Me.Line34.X1 = 0.0625! + Me.Line34.X2 = 0.06281877! + Me.Line34.Y1 = 0.0! + Me.Line34.Y2 = 0.2! + ' + 'Line35 + ' + Me.Line35.Border.BottomColor = System.Drawing.Color.Black + Me.Line35.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line35.Border.LeftColor = System.Drawing.Color.Black + Me.Line35.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line35.Border.RightColor = System.Drawing.Color.Black + Me.Line35.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line35.Border.TopColor = System.Drawing.Color.Black + Me.Line35.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None + Me.Line35.Height = 0.2! + Me.Line35.Left = 7.812181! + Me.Line35.LineWeight = 1.0! + Me.Line35.Name = "Line35" + Me.Line35.Top = 0.0! + Me.Line35.Width = 0.0003190041! + Me.Line35.X1 = 7.812181! + Me.Line35.X2 = 7.8125! + Me.Line35.Y1 = 0.0! + Me.Line35.Y2 = 0.2! + ' + 'GroupFooter1 + ' + Me.GroupFooter1.Height = 0.01041667! + Me.GroupFooter1.Name = "GroupFooter1" + ' + 'arERF_General + ' + Me.MasterReport = False + Me.PageSettings.Margins.Left = 0.0! + Me.PageSettings.Margins.Right = 0.0! + Me.PageSettings.PaperHeight = 11.69! + Me.PageSettings.PaperWidth = 8.27! + Me.PrintWidth = 7.885417! + Me.Sections.Add(Me.PageHeader) + Me.Sections.Add(Me.GroupHeader1) + Me.Sections.Add(Me.Detail) + Me.Sections.Add(Me.GroupFooter1) + Me.Sections.Add(Me.PageFooter) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule(resources.GetString("$this.StyleSheet"), "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: bo" & _ + "ld; font-size: 16pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading1", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Times New Roman; font-style: italic; font-variant: inherit; font-wei" & _ + "ght: bold; font-size: 14pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading2", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: bo" & _ + "ld; font-size: 13pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading3", "Normal")) + CType(Me.txtHoldDisposition, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtHoldItemNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtQty, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Picture1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtCreateDate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblERFReport, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtDate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblPrintDate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblERFNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtERFNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblCustomerNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblLotNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblProductNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtLotNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtCustomerNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtProductNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblOPNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtOPNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblRuleNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtRuleNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblMClassNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtMClassNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblHoldDescription, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblCreator, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtCreator, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblCreateDate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtHoldDescription, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Label5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblHoldItemNo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblQty, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.lblHoldDisposition, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me, System.ComponentModel.ISupportInitialize).EndInit() + + End Sub + +#End Region + + Private Sub arERF_General_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart + 'steve,100401,在end user電腦上沒設定任何一台印表機時,Active report預設page size設成A4會有錯誤,預設Page size改成default時,在條碼機的特殊格式大小也會有錯,故加入下列指令 + Me.Document.Printer.PrinterName = "" + + Me.txtDate.Text = Now.ToShortDateString + Me.txtERFNo.Text = ERFNo + Me.Barcode1.Text = ERFNo + Me.txtLotNo.Text = LotNo + Me.txtCustomerNo.Text = CustomerNo + Me.txtOPNo.Text = OPNo + Me.txtProductNo.Text = ProductNo + Me.txtRuleNo.Text = RuleNo + Me.txtMClassNo.Text = MClassNo + Me.txtHoldDescription.Text = HoldDescription + Me.txtCreator.Text = Creator + Me.txtCreateDate.Text = Format(CreateDate, "yyyy/MM/dd HH:mm") + + Me.PageSettings.Margins.Left = 0.2 + Me.PageSettings.Margins.Top = 0.3 + Me.PageSettings.Margins.Bottom = 0.2 + Me.PageSettings.Orientation = PageOrientation.Landscape + Me.PageSettings.Orientation = PageOrientation.Portrait + + End Sub + + Private Sub Detail_Format(ByVal sender As Object, ByVal e As System.EventArgs) Handles Detail.Format + + 'If Me.intRow Mod 5 = 0 Then + ' Me.Detail.BackColor = Color.LightGray + 'Else + ' Me.Detail.BackColor = Color.White + 'End If + + 'Me.intRow = Me.intRow + 1 + + End Sub + + + + + + Private Sub PageHeader_Format(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PageHeader.Format + + End Sub +End Class diff --git a/SRC/MESWin/shared file/iMES.isl b/SRC/MESWin/shared file/iMES.isl new file mode 100644 index 0000000..0679a67 --- /dev/null +++ b/SRC/MESWin/shared file/iMES.isl @@ -0,0 +1,4303 @@ + + + + 2015-02-05T03:06:30 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA3gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADgElEQVRoQ+2XzWsTQRjGq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMFL8W+waGPRIoixYkUrUmgVaZKaNJ/bbNpNm48mjUle531lttPpZGcm0IvMAw+Tncy7s89vZ2eTkVwuB7aOx+PWnpyctPax52k4bmEcP0wNQWi328auVCoUykYcQqPRMDaOx4u0EQ9mIxzvIDgIDgLJQWByEJgcBCYHgclBYHIQmBwEphACBjN1sVikULbGULbmoY7aI6urq2BrVUidVSF1tv0zNIzpDxSGspHneRTKRhyCatkPMo7Hi7QRD2YjHO8gmEDodrtQKBSgWq3SsQmErb0eXF/YgGe/a3RsAiFfrcHVj0V4+qtCxyYQ5HlMIKhqIiEggFKpRPsAgkDpIOAkE199GGEnv7ZQpj4dBARwY6FENVfmi9Sng6CaRwdhUM1ACP1+nwLj9/gGQSCoKAidXh9uf/Npsxmf92Cj9a8mCkK11oCJzyWqufS+AOmgRv1REAbNEwUhqiaEgL8BMGyz2aTjIAggkUhAOp2G3d1d6kOJEJa39+DyR3bst4DNAY8T23DiRQYuzuXhU6VFY1AihEVvG8bjBZjLBlCrs7ArPtVceJOFd/kghCNCMJ1HhGBTE0Iol8t019fW1sD3fUgmk5BKpaDV2i9AiRDuLm0S2fOvc3B/eQtOzazD2dksfNls0/dcIoQ7ix7VnJtdh3vfN+DkywycebUOH/LVEIAMwXQeEYJNzYHHAQPi3cc+BMBXhSj5cbi1WIbR6Qw9Z6djWXjr7a8aLhEC+iZb/qPTbHKsmclALLO/ArhFCCiTeUQIKNOaAxB6vR79KsRVgI8D7guyZAjNPz14+DOAMXZHnyR3oNU9XCND8Hfq8GCpDGNseT764cNmrX4AAFqGYDKPDMG05tDGiME7nY4SAEqGgMKTp+od2nxUkiGgMfiKv0Mbo9jPLUNA6eaRIaBMag5B0EkFQScVBJ1VEHRSQdAphIDBTI1vCwxlawxlax7qqE3/Im2tCqmzKqTOuLurLnqQcfwwNQTBRhyCjTgEG8ViMbpIG+FbYJiaEAK/y1Hm4zgEOoHGKBGCaoxslAhBNUY2HzdMjYOAn8VwOvNxDgJrHQTWOgisdRBY6yCw1kFg7X8LwVQiBFOJEEwlQjAVBhqmhiDYGkPZGiFgMFNPTU2Fd+xonYa/RnTXOFz4kRIAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + 249, 249, 249 + MiddleCenter + + + + + White + Segoe UI, 9pt + 75, 75, 75 + MiddleLeft + MiddleLeft + + + + + White + Segoe UI, 8.25pt + 75, 75, 75 + + + + + White + Segoe UI, 9pt + 75, 75, 75 + + + + + 75, 75, 75 + White + 0, 170, 222 + White + Silver + Left + Long + False + False + + + + + White + Segoe UI, 9pt + 75, 75, 75 + + + + + White + Flat + Segoe UI, 9pt + 75, 75, 75 + + + + + White + None + Microsoft Sans Serif, 12pt + 0, 170, 222 + MiddleCenter + + + + + 0, 170, 222 + White + None + Gainsboro + Flat + Segoe UI, 9.75pt, style=Bold + MiddleCenter + AlwaysUnderline + 133, 133, 133 + MiddleCenter + 179, 230, 245 + + + + + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + + + + + True + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + Nonclickable + LargeIcon + + + + + White + 75, 75, 75 + True + True + 0, 170, 222 + White + 191, 191, 191 + + + + + White + None + Segoe UI, 8.25pt + 75, 75, 75 + + + + + White + None + + + + + White + White + 75, 75, 75 + Segoe UI, 9pt + White + White + True + White + True + White + 75, 75, 75 + + + + + White + Segoe UI, 9pt + 75, 75, 75 + MiddleCenter + MiddleLeft + + + + + White + None + 75, 75, 75 + + + + + White + None + 75, 75, 75 + + + + + 133, 133, 133 + None + + + + + Segoe UI, 9pt + True + + + + + White + FixedSingle + Segoe UI, 9pt + 75, 75, 75 + Left + + + + + White + + + + + White + None + False + Segoe UI, 9pt + 75, 75, 75 + False + False + True + 25 + False + True + True + + + + + White + Segoe UI, 8.25pt + 75, 75, 75 + + + + + + True + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADj0lEQVRoQ+2YzWsTQRiHq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OKteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXuf3ym4n2012JuBtHvgddjNvZt9nZycfI8lkknQTDAa1Mzk5qZ0jz2N0VCMYP0wNS2g2m8opFArclA5ra2vcVK1WU04gEOCL1OH2t8JQNUaCkWAkMEaCwEgQGAkCI0FgJAiMBIGRIHAkoDHVZDIZloDGVBMKhVgCGlPN1NQUf6/HRarmwtvUUDUj6+vrpBtI0A0k6GaYH0PD1LAEHXK5HDelgy3Ba9n3C8bjInWwG9MB440EFQntdpvS6TSVy2U+VpFQ3O/QtcUteva7wscqElLlCl1ZyNDTXwU+VpHgnkdFglfNQAkQkM1meR+ACOAnAZNMhCwaEW9+dTHP5/wkQMD1xSzXXJ7P8Dk/CV7z+EnoV9NXQrfb5YbxOj5BIAQMktDqdOnWV4s3m/H5HG01/tUMklCu1Gjic5ZrLn5IU6xU4fODJPSbZ5CEQTWOBHwHQLP1ep2PS6UShcNhisVitLe3x+eALGFlZ58uLYhjq0FiDnoc3qFjL+J0fi5FnwoNHgNkCUu5HRoPpmkuUaJKVTS7anHNuTcJep8qOXJkCarzyBJ0ahwJ+Xye7/rGxgZZlkWRSISi0Sg1GgcFQJZwd3mbzZ59naT7K0U6MbNJp2cT9GW7ya/byBLuLOW45szsJt37vkXHX8bp1KtN+pgqOwLcElTnkSXo1PQ8DmgQdx/nIMBeFTLux+HmUp5Gp+P8nJ0MJOhd7mDV2MgSkBti+Y9Oi8lRMxOnQPxgBdiRJQCVeWQJQLWmR0Kn0+FvhVgFeBywL7hxS6j/6dDDnyUaE3f0SWSXGu3DNW4J1m6VHiznaUwsz0c/LNquVHsEIG4JKvO4JajWHNoY0Xir1fIUANwSAN48Wm3x5uOFWwKCxletXd4Y5fN23BKA3zxuCUCl5pAEP7wk+OElwS9eEvzwkuCHIwGNqQafFmhKN2hKN3ZT/zv8K1I3Xk36xatJv2B397rofsH4YWpYgg7FYpGb0sGWoAPG4yJ1sBvTAeMdCfKd7hcgS8BHj1+ALMFrjDtAluA1xh0gS/Aa4w4wEgRGgsBIEBgJAiNBYCQIjASBkSDokaCKLEEVWYIqsgRVZAmqOBLQmGrwxyua0g2a0o3d1P9NjP4C33z6NGMDUeMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAAvQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADX0lEQVRoQ+2Xz2sTQRTHq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMGbf4NFW4sWQYwtVrRFCq0iTVKT5kezzabdtPnRpDHJc97IbCfTyc68gEVhPvA97HReZt9nZyfN0OrqKlATi8XIGR8fJ+fY8xQcJwTnD1LDJTSbTesICRSEhFqtZh2cjzdJQTRGAec7CU6Ck8BxEhhOAsNJYDgJDCeB4SQwnARGKIEabIoabIoa0dTfzj8tgfpjCDNIDZdAQUigICTotn2/4Hy8QQqiKQpOAsNKQrvdhnw+D+VymV/bSNje78D1+U149rPCr20k5MoVuDq3AU9/lPi1jQR1HRsJuppICSigUCjwxlEEYpKAi4x98WGIffi1+SIfM0lAATfmC7zmyuwGHzNJ0K1jktCvpq+EbrcLnufxprPZLBeCRElodbpwe9Hnh9PorAebjT81URLKlRqMfSrwmkvv85AKKnw8SkK/daIkRNWEEvB/AGy2Xq/z6yAIIB6PQyqVgr29PT6GyBKWd/bh8pwHMb8BbA14HN+BEy/ScHEmBx9LDT4HkSUseDswGsvDTCaASpU1u+LzmgtvMvAuF4RyZAm268gSKDWhhGKxyBtcW1sD3/chkUhAMpmERuOgAJEl3F3a4mbPv87C/eVtODW5DmenM/B5q8n/LpAl3FnweM256XW493UTTr5Mw5lX6/AhVw4FqBJs15ElUGp6Xgfc/vj0cQwFiF0hI0tAbi0UYXgizd+z01MZeOsd7BqBLAFzk23/4Qm2ONZMpmEqfbADRGQJiM06sgTEtqZHQqfTgVKpxHcBvg54LqioEuq/OvDwewAj7Ik+SexCo324RpXg71bhwVIRRtj2fPTNh61KtUcARpVgs44qwbbm0MGIjbdaLa0ARJWA4Icnqy1++OhQJWCw8RV/lx+M8riIKgExraNKQGxqDkkwoZNgQifBFJ0EEzoJJkIJ1GBT1GBT1ODBJhqzzSA1Q/i1SI2uSVN0TZpypBIoCAkUhAQKOB9vkIJoikKPBPGUoyLmCQn41WMKIkvQzVGDyBJ0c9QgsgTdHDWIk8BwEhhOAsNJYDgJDCeB4SQw/hsJ/EYNEfMGqQkl2CJLsEWWYIsswRZZgi2hBGqwKWqwKWqO5rdDCn4DepjAZpDd1xAAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAASAIAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAB6klEQVRoQ+2ZQUsCQRTHLTpFdOjQqWv0QaJr3YPo0q1z126ego7SZygqiahOS5GQFQRCICVlrqCuumFlmaa93hvMJtlwZmFDdt8P/gd33+C+3+7MOhgCFxiGoZ1wOKyd/8K1BB2SyaRoqlqtKicajbZHew9LQFgCwhIQloCwBIQlICwBYQkIS0BYAuJaAjWmmng8LiRQY6qJRCLtb/Me1xJ00894Ph1SqZR4GvoZzyVYlhVMCXa9BXOxAmzcPYvPgZNAAubjRQht3sNszBLHAiWh0fqExYsiDKCA6eM8FGpNcdzXEhKVOsyc5MEo1gD7h7WbCgxvp2HyIAunpZqoIXwtYfmqLO76xL4JKwkbRncfYHwvA2fld3H+G99Ph4VzC4a20mINGItm4Cj/1j7zg+8lvH60YPX6EUZ20rB++wS1Js6LLgKxMFLjqZeGWBidCISEXvhWAjWmGtpA9TMh0zRBNyRBN7SL1A29eQY1QvVuxggJOti2LZrSgZ4GakoH2k7TReqwdFlyNaYjQb7Tf4WQJdBrsVcIWYJTTXcIWYJTTXcIWYJTTXcIloCwBIQlICwBYQkIS0BYAsISkF8SVJElqCJLUEWWoIosQZWOBGpMNblcTkigxlTj9h8o+l1PF6maqcOsizFZ+AIGcQg8msEiNgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPpdpOdWRAU5gcPdDfzdvb97exsMpRKpUg3oVBIO4FAQDuHnsbpsEYw3k8NS2g2m8opFovclA7Ly8vcVK1WU04wGOSL1OHml6KvGiPBSDASGCNBYCQIjASBkSAwEgRGgsBIEPQkoDHVZLNZloDGVBMOh1kCGlPN+Pg4f6/HRarm3Ou0r5qhlZUV0g0k6AYSdOPnx5CfGpagQz6f56ZUicVivBrQlNuy7xesBlykDrizfmr+uoRCofD/S2i325TJZKhcLvOxioTN3Q5dmVunJz8rfKwiIV2u0KXZLD3+UeRjFQnOeVQkuNUMlAABuVyO9wGIAF4SMMlY2KIhcTGX5wp8zksCBFydy3HNxZksn/OS4DaPl4R+NX0ldLtdbhif4w0CIWCQhFanSzc+W7zZjM7kab3xp2aQhHKlRmMfc1xz/l2G4qUKnx8kod88gyQMqulJwHcANFuv1/m4VCpRJBKheDxOOzs7fA7IEha3dunCrDi2GiTmoIeRLTryLEFnp9P0odjgMUCWMJ/fotFQhqaTJapUaxRYsrjmzKskvU2XenJkCarzyBJ0anoSsIHh79XVVbIsi6LRKO/sjcZeAZAl3F7YYLOnX6bo7uImHZtco5NTSfq00eTPbWQJt+bzXHNqao3ufF2no88TdOLFGr1Pl3sCnBJU55El6NTsexzQIO4+zkGAvSpknI/D9fkCDU8k+Dk7HkzSm/zeqrFxPg7XxPIfnhDvZ9RMJiiY2FsBdpyPg8o8sgSgWrNPQqfT4W+FWAV4HLAvOHFKqP/q0P3vJRoRd/RRdJsa7YM1TgnWdpXuLRRoRCzPB98s2qhU9wlAnBJU5nFKUK05sDGi8Var5SoAOCUA/PNYtcWbjxtuGyMaX7K2eWOUz9tx2xi95nFKACo1ByR44SbBCzcJXnGT4IWbBC96EtCYavC2gAQ0ppp//gcUXou6gQTdQIJu0BDurGow3k8NS9DBlqADVgOa0gGrARepA+6sn5qeBPsuD4o9zpaAV49XgCzBbYwzQJbgNsYZIEtwG+MMMBIERoLASBAYCQIjQWAkCIwEgZEg2CdBFVmCKrIEVWQJqsgSVOlJ0A0koDHV/Ns/oNL0G0NuTL0rh9nUAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + VisualStudio2008Vista + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnElEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqItcWKqUqhVWyT1KT5biZN0uajaWOS432PTHo7nWTuHSio3AdeyEzm5M555s6dJAPJZJJ0MzU1pZ1AIKCdQ09jdFgjON5PDUvY3t5WTqFQ4KZ0WFpa4qZqtZpygsEgn6QON78UfNUYCUaCkcAYCQIjQWAkCIwEgZEgMBIERoKgKwGNqSaTybAENKaaUCjEEtCYakZHR/l7PU5SNedep3zVDCwvL5NuIEE3kKAbPz+G/NSwBB1yuRw3pUo0GuXZgKbcpn2vYDbgJHXAlfVTc+AS8vn8vy+h1WpROp2mcrnM2yoSijttujK7Rk9+VnhbRUKqXKFLMxl6/KPA2yoSnOOoSHCr6SsBArLZLK8DEAG8JGCQkZBFA+JkLs/meZ+XBAi4OpvlmovTGd7nJcFtHC8JvWp6Suh0Otww3scTBEJAPwnNdodufLZ4sRmeztFa409NPwnlSo1GPma55vy7NMVKFd7fT0KvcfpJ6FfTlYDvAGi2Xq/zdqlUonA4TLFYjLa2tngfkCUsbOzQhRmxbTVIjEEPwxt05Fmczk6m6EOhwccAWcJcboOGp9I0mShRpVqjwKLFNWdeJehtqtSVI0tQHUeWoFPTlYAFDK9XVlbIsiyKRCK8sjcauwVAlnB7fp3Nnn6ZpLsLRTo2vkonJxL0aX2b37eRJdyay3HNqYlVuvN1jY4+j9OJF6v0PlXuCnBKUB1HlqBTs+d2QIO4+tgHAfaskHHeDtfn8jQ4Fuf77HgwQW9yu7PGxnk7XBPTf3BMPJ9RMx6nYHx3Bthx3g4q48gSgGrNHgntdpu/FWIW4HbAuuDEKaH+q033v5doSFzRR5FNarT21zglWJtVujefpyExPR98s2i9Ut0jAHFKUBnHKUG1Zt/CiMabzaarAOCUAPDh0WqTFx833BZGNL5obfLCKO+347Yweo3jlABUavZJ8MJNghduErziJsELNwledCWgMdXgaQEJaEw1f/0PKDwWdQMJuoEE3aAhXFnVYAH0U8MSdCgWi9yUDpgNaEoHzAacpA5oyE9NV4J8pXsFyBL4AzwCZAluxzgDZAluxzhjH+enxkjAa7s5Z8NuAUaCwEgQGAkCI0FgJAiMBMF/LUEVWYIqsgRVIME+UVXk5lTpSkBjqsEfr5CAxlTj9weU3dTBJka/AW4uNg3p+taQAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + Far + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA7AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH5JREFUOE+tzMEJwDAQA0G3kP47SFMp5WKbEwizryiPwWY5NKrqVxgTGBMYExgTGBMY3XU/Na1XZubbBaPrQY3u/3njMDofangnGF0PanT/6U4wOh9qM/PtgtH1oEb3/7xxGJ0PNbwTjK4HNbr/dCcYExgTGBMYExgTGL+r8QL1YYgBA3bF7AAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA4AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUOE+tzMEJgEAQBMFLwfwzMClDWc/HQCP9cnwULM2wa2Z+pbGhsaGxobGhsaGRjvOKyW270Eh4FroLjcRHud8b0kh4Fjv79qGR+Ci37UIj4VnoLjQSH+V+b0gj4Vns7NuHxobGhsaGxobGhsbvZt1vy4gBqcW4UgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + TopOnBorder + BottomToTop + + + + + HighlightEntireItem + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPm53Mk9n3tzOzm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxnA4pym/a9jNmAi9QR7qyfzIFDKBQK/z6EVqtFmUyGyuUyn6tAWN9p05WZVXrys8LnKhDS5Qpdms7S4x9FPleB4BxHBYJbpi8EAMjlcrwPAATkBQGDjIQtGhAXc3mmwG1eEADg6kyOMxenstzmBcFtHC8IvTI9IXQ6HS4Y3+MJAiBQPwjNdodufLZ4sxmeytNq40+mH4RypUYjH3OcOf8uQ/FShdv7Qeg1Tj8I/TJdCHgHQLH1ep3PS6USRSIRisfjtLW1xW2QDGF+Y4cuTItzq0FiDHoY2aAjzxJ0djJNH4oN7gPJEGbzGzQcytBkskSVao0CCxZnzrxK0tt0qQtHhqA6jgxBJ9OFgA0Mn5eXl8myLIpGo7yzNxq7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnT2jZ/b0uGcGs2z5lTEyt05+sqHX2eoBMvVuh9utwF4ISgOo4MQSezZzmgQNx9tAGAPStkOZfD9dkCDY4leJ0dDybpTX531thyLodrYvoPjonnMzLjCQomdmeAbedyUBlHhgCpZvZAaLfb/FaIWYDlgH3BKSeE+q823f9eoiFxRx9FN6nR2p9xQrA2q3RvrkBDYno++GbRWqW6BwDshKAyjhOCambfxojCm82mKwDICQHCj8eqTd583OS2MaLwBWuTN0a53bbbxug1jhMCpJLZB8FLbhC85AbBy24QvOQGwUtdCChM1XhaAAIKU/Vf/wcKj0VdA4KuAUHXKAh3VtXYAP1kGIKObAg6wmxAUTrCbMBF6ggF+cl0Idh3uZ/tfjYE/gEPQzIEtz5OQzIEtz5O2/38ZAwEfJaL87Ldz0AQRwNBHA0EcTQQxNFAEEcDQRz/WwiqkiGoSoagKhmCqlCQnwxD0DUgoDBV+/0DZd+xg3WcfgND/TMv156b9wAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADmklEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOLBRU5oEHspN9Mvv+5mN3M5RIJEjXgUBA2z6fT9uHnkbpsIZxvpcMQ2g0GsrO5/NclI6Wl5e5qGq1qmy/388XqaObX/KeMgaCgWAgsAwEIQNByEAQMhCEDAQhA0HIQBDqQUBhqk6n0wwBhak6GAwyBBSm6vHxcX6ux0Wq+tzrpKfM0MrKCukaEHQNCLr28jLkJcMQdJTNZrkoVUUiEZ4NKMpp2vczZgMuUkcYWS+ZA4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTlbl1evKzzMcqEJKlMl2aTdPjH3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzeS7HbW4QAODqXIYzF2fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h258tnizGZ3J0nr9T2YQhFK5SmMfM5w5/y5F0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzhy7MimOrTqIPehjapCPPYnR2Okkf8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6ceRWnt8liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh9sIGkz39MkF3Fwt0bHKNTk7F6dNGg7/vSoZwaz7LmVNTa3Tn6zodfR6jEy/W6H2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8P1+RwNT8R4nR33x+lNdnfWdGVfDtfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqv9p0/3uRRsSIPgpvUb21P2OHYG1V6N5CjkbE9HzwzaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq9voC1R2xg3WUfgNzejYRjgB1CAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Office2013RadioButtonGlyphInfo + + -1 + 0, 170, 222 + Solid + 0, 170, 222 + White + 135, 135, 135 + None + Transparent + 0 + 0, 170, 222 + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV6O8nwxB0ZEPQEVYDitIR+uMidYSngJ9MF4I9y/1s97Mh8A94GJIhuPVxGpIhuPVx2u7nJ2Mg4LNcnJftfgaCaA0E0RoIojUQRGsgiNZAEO1/C0FVMgRVyRBUJUNQFQryk2EIugYEFKZq+w+Uru0ZO1jH6Tc1kyfofk37EgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + RectangularSolid + None + TopOnBorder + BottomToTop + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjElEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePFWPAiCNz+DRVuLVkGMLVaaqhRaxTZJTZr/zaZJ2vxp0pjkdZ5Xsp1sN9mZBaHC/OCB7nbezr6/nZ1NOpRIJEg3gUBAO+Pj49o58jxKRzWC8X5qWEKj0VBOPp/npnRYXV3lpqrVqnIwHhepw+2veV81RoKRYCQwRoLASBAYCQIjQWAkCIwEgZEgsCWgMdWk02mWgMZUEwwGuSnd4HM9LlI1F94mfdUMra2tkW4gQTduTXrFz5chPzUsQYdsNstNqRKJRHg1oCm3Zd8vGI+L1AF31k/NP5eQy+X+fwmtVotSqRSVSiU+VpFQ2GvTtflNevarzMcqEpKlMl2ZS9PTn3k+VpHgnEdFglvNQAkQkMlkeB+ACOAlAZOMBS0aEhdzdT7H57wkQMD1+QzXXJ5N8zkvCW7zeEnoV9NXQqfT4Ybxe7xBIAQMktBsd+jWF4s3m9HZLG3W/9YMklAqV2nsc4ZrLn5IUbRY5vODJPSbZ5CEQTW2BHwGQLO1Wo2Pi8UihUIhikajtLu7y+eALGF5e48uzYljq05iDnoc2qZjL2J0fiZJn/J1HgNkCYvZbRoNpGgmXqRyRTS7YnHNuTdxep8s2nJkCarzyBJ0amwJ2MDw8/r6OlmWReFwmHf2en2/AMgS7i5tsdmzrxN0f7lAJyY36PR0nBa2Gvz7LrKEO4tZrjkzvUH3vm3S8ZcxOvVqgz4mS7YApwTVeWQJOjU9jwMaxN3HOQjorgoZ5+NwczFHwxMxfs5OTsXpXXZ/1XRxPg43xPIfnhDvZ9RMxmgqtr8CupElAJV5ZAlAtaZHQrvd5k+FWAV4HLAvOHFKqP1u08MfRRoRd/RJeIfqrYM1TgnWToUeLOVoRCzPR98t2ipXegQgTgkq8zglqNYc2BjReLPZdBUAnBIA/nik0uTNxw23jRGNr1g7vDHK57txSgBe8zglAJWaAxK8cJPghZsEr7hJ8MJNghe2BDSmGrwtIAGNqebQf4HCa1E3kKAbtya9goZwZ1WD8X5qWIIOhUKBm9IBqwFN6YDxuEgdcGf91NgS5DvdL0CWgFePV4AswW2MM0CW4DbGGSBLcBvjDDASBEaCwEgQGAkCI0FgJAiMBIGRIOiRoIosQRVZgiqyBFVkCarYEtCYavCPV0hAY6o53F+gkvQHK6ctxANB/y4AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + White + + + + + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapE3TJo1JXud5ZdPJdpOdWSiozAMPyW7mycz725nZ3YFUKkW6DoVC2g4EAto+9DROhzWM9n4yDKFeryu7WCxyUTpaXFzkoqrVqrKDwSAPUkc3vxR9ZQwEA8FAYBkIQgaCkIEgZCAIGQhCBoKQgSDUgYDCVJ3NZhkCClN1OBxmCChM1aOjo/xcj0Gq+tzrtK/MwNLSEukaEHQNCLr28zLkJ8MQdJTP57koVcViMZ4NKMpt2vcyZgMGqSNcWT+ZA4dQKBT+fQjNZpMymQyVy2U+VoGwvtuiKzOr9ORnhY9VIKTLFbo0naXHP4p8rALB2Y8KBLdMXwgAkMvleB8ACMgLAjoZCVs0IAZzeabA57wgAMDVmRxnLk5l+ZwXBLd+vCD0yvSE0G63uWD8jjsIgED9IDRabbrx2eLNZngqT6u1P5l+EMqVKo18zHHm/LsMxUsVPt8PQq9++kHol+lAwDMAit3e3ubjUqlEkUiE4vE47ezs8DlIhjC/sUsXpsWxVSPRBz2MbNCRZwk6O5mmD8Uat4FkCLP5DRoOZWgyWaLKVpUCCxZnzrxK0tt0qQNHhqDajwxBJ9OBgA0M35eXl8myLIpGo7yz12p7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnTWp1/tyVDuDWb58ypiRW683WVjj5P0IkXK/Q+Xe4AcEJQ7UeGoJPpWg4oEFcf5wDAnhWynMvh+myBBscSvM6OB5P0Jr83a2w5l8M1Mf0Hx8T9GZnxBAUTezPAtnM5qPQjQ4BUM10QWq0WPxViFmA5YF9wyglh+1eL7n8v0ZC4oo+im1Rr7s84IVibW3RvrkBDYno++GbRWmWrCwDshKDSjxOCambfxojCG42GKwDICQHCn8e2Grz5uMltY0ThC9Ymb4zyedtuG6NXP04IkEpmHwQvuUHwkhsEL7tB8JIbBC91IKAwVeNuAQgoTNV//QsUbou6BgRdA4KuURCurI79ZBiCjmwIOsJsQFE6wmzAAHVkF6WjLgj2Ve5nu50NAbceL0MyBLc2TkMyBLc2TkMyBLc2TkMGgpCBIPTPQOCBethu5ydjIOC7XJyX7XYGgvg0EMSngSA+/1sIqpIhqEqGoCoZgqpkCKrqQNA1IKAwVft9gbKLOljH6TcHdzOr6BQ8HAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Office2013RadioButtonGlyphInfo + + + + + + + + + 0, 170, 222 + Gray + Gray + Gray + + + + + + + + + Flat + True + + + + + Flat + True + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjklEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPJdpOdiRQU5gcPdDfzdvb97exsMpRIJEg3gUBAOz6fTzuHnkbpsEYwfpAallCv15WTz+e5KR2Wl5e5qUqlohy/388XqcPNL/mBaowEI8FIYIwEgZEgMBIERoLASBAYCQIjQdCRgMZUk06nWQIaU00wGGQJaEw14+Pj/L0eF6mac6+TA9UMrayskG4gQTeQoJtBfgwNUsMSdMhms9yUKpFIhFcDmnJb9r2C1YCL1AF3dpCaA5eQy+X+fwnNZpNSqRQVi0U+VpGwuduiK3Pr9ORniY9VJCSLJbo0m6bHP/J8rCLBOY+KBLeavhIgIJPJ8D4AEcBLAiYZC1o0JC7m8lyOz3lJgICrcxmuuTiT5nNeEtzm8ZLQq6anhHa7zQ3jc7xBIAT0k9BotenGZ4s3m9GZLK3X/tT0k1AsVWjsY4Zrzr9LUbRQ4vP9JPSap5+EfjUdCfgOgGar1SofFwoFCoVCFI1GaWdnh88BWcLi1i5dmBXHVo3EHPQwtEVHnsXo7HSSPuRrPAbIEuazWzQaSNF0vEClcoV8SxbXnHkVp7fJQkeOLEF1HlmCTk1HAjYw/L26ukqWZVE4HOadvVbbKwCyhNsLG2z29MsE3V3cpGOTa3RyKk6fNur8uY0s4dZ8lmtOTa3Rna/rdPR5jE68WKP3yWJHgFOC6jyyBJ2arscBDeLu4xwE2KtCxvk4XJ/P0fBEjJ+z4/44vcnurRob5+NwTSz/4QnxfkbNZIz8sb0VYMf5OKjMI0sAqjVdElqtFn8rxCrA44B9wYlTQvVXi+5/L9CIuKOPwttUa+6vcUqwtst0byFHI2J5Pvhm0Uap3CUAcUpQmccpQbVm38aIxhuNhqsA4JQA8M8j5QZvPm64bYxofMna5o1RPm/HbWP0mscpAajU7JPghZsEL9wkeMVNghduErzoSEBjqsHbAhLQmGr++R9QeC3qBhJ0Awm6QUO4s6rB+EFqWIIOtgQdsBrQlA5YDbhIHWwBOnRJsO9yv9jjbAl49XgFyBLcxjgDZAluY5wBsgS3Mc4AI0FgJAiMBIGRIDASBEaCwEgQGAmCLgmqyBJUkSWoIktQRZagSkeCbiABjanmb35AHXyi9BvrVTNhLiUFpAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA/QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADn0lEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532yapM2fJo1JXud5Jel0u8nOrBQU5gcPdLfzdvb97exs0qFEIkG6CQQC2vH5fNo59DRKhzWC8V5qWEKj0VBOPp/npnRYXl7mpqrVqnL8fj9fpA43v+Q91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqxsfH+XM9LlI1514nPdUMrayskG4gQTeQoBsvX4a81LAEHbLZLDelSiQS4dWAppyWfb9gNeAidcCd9VJz4BJyudz/L6HValEqlaJSqcTHKhIKO226MrdOT36W+VhFQrJUpkuzaXr8I8/HKhLs86hIcKoZKAECMpkM7wMQAdwkYJKxoEVD4mIuz+X4nJsECLg6l+GaizNpPucmwWkeNwn9avpK6HQ63DB+jzcIhIBBEprtDt34bPFmMzqTpfX6n5pBEkrlKo19zHDN+XcpihbLfH6QhH7zDJIwqKYnAZ8B0GytVuPjYrFIoVCIotEobW9v8zkgS1jc3KELs+LYqpOYgx6GNunIsxidnU7Sh3ydxwBZwnx2k0YDKZqOF6lcqZJvyeKaM6/i9DZZ7MmRJajOI0vQqelJwAaGn1dXV8myLAqHw7yz1+u7BUCWcHthg82efpmgu4sFOja5Rien4vRpo8G/7yJLuDWf5ZpTU2t05+s6HX0eoxMv1uh9stQTYJegOo8sQadmz+OABnH3cQ4CuqtCxv44XJ/P0fBEjJ+z4/44vcnurpou9sfhmlj+wxPi/YyayRj5Y7sroBv746AyjywBqNbskdBut/lTIVYBHgfsC3bsEmq/2nT/e5FGxB19FN6iemt/jV2CtVWhews5GhHL88E3izbKlT0CELsElXnsElRr9m2MaLzZbDoKAHYJAH88Umny5uOE08aIxpesLd4Y5fPdOG2MbvPYJQCVmn0S3HCS4IaTBLc4SXDDSYIbPQloTDV4W0ACGlPNP/8FCq9F3UCCbiBBN2gId1Y1GO+lhiXoUCgUuCkdsBrQlA5YDbhIHboCdNgjQb7T/QJkCXj1uAXIEpzG2ANkCU5j7AGyBKcx9gAjQWAkCIwEgZEgMBIERoLASBD88xJwgcBpjD0A473U9CSoIktQRZagiixBFVmCKj0JaEw1+McrJKAx1fzNF6iDT5R+AxOLNj+SFfOFAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + 191, 191, 191 + White + 191, 191, 191 + Office2010 + 191, 191, 191 + + + + + Standard + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADlUlEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIsWLFVKXQKrZJatJ8N5MmafPRpDHJ8b5Hkt5MJ5l7BxSF+8ALncmc3DnP3Lkz6UgikSDdBAIB7fh8Pu0ceBylgxrB8V5qWEKj0VBOPp/npnRYWVnhpqrVqnL8fj+fpA7XP+c91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqJicn+b0eJ6maMy+TnmpGVldXSTeQoBtI0I2XH0NealiCDtlslptSJRKJ8GxAU07TflAwG3CSOuDKeqn54xJyudz/L6HValEqlaJSqcTbKhIKu226NL9Bj36UeVtFQrJUpgvv0vTwe563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcnM/xPjcJEHB5PsM15+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDl37ZPFiMz6XpY3675phEkrlKk18yHDN2TcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnZ2eB+QJSxt7dK5d2LbqpMYg+6HtujQkxidnk3S+3ydjwGyhIXsFo0HUjQbL1K5UiXfssU1p17E6XWy2JMjS1AdR5agU9OTgAUMf6+trZFlWRQOh3llr9f3CoAs4ebiJps9+TxBt5cKdGR6nY7PxOnjZoM/7yJLuLGQ5ZoTM+t068sGHX4ao2PP1ultstQTYJegOo4sQaem73ZAg7j62AcB3VkhY78dri7kaHQqxvfZUX+cXmX3Zk0X++1wRUz/0SnxfEbNdIz8sb0Z0I39dlAZR5YAVGv6JLTbbX4rxCzA7YB1wY5dQu1nm+5+K9KYuKIPwttUb+2vsUuwtit0ZzFHY2J63vtq0Wa50icAsUtQGccuQbVm38KIxpvNpqMAYJcA8OWRSpMXHyecFkY0vmxt88Io7+/GaWF0G8cuAajU7JPghpMEN5wkuMVJghtOEtzoSUBjqsHTAhLQmGr++R9QeCzqBhJ0Awm6QUO4sqrB8V5qWIIOhUKBm9KhK0EHzAacpA64sl5qehLkKz0oQJaAR49bgCzB6Rh7gCzB6Rh7gCzB6Rh7gJEgMBIERoLASBAYCQIjQWAkCIwEQZ8EVWQJqsgSVJElqCJLUKUnAY2pBv94RVO6gQQ0ppq/9wMqSb8AWg1JD6G7pzMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + False + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA2wAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAFVJREFUKFNj+P//Pxi3trZeAGIBGB8dwxlARf+B+AEQGyArgGE4A6oQhD8AcQCyIhDGphCGC4hVCMILqKqwASaHSyHIMwnIikAYXSFIEcHgwRPg/xkAphkSTK5IMV8AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA6AAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAGJJREFUKFNj+P//P1EYqyA2zMCw6t4FIP5PAF8AKRQA4g9Iguj4ARALQIxddc8AiLEpBokZgNXA3bDqXgKSAhgOgMvDGFDFDUiKClDkkDlggVX3FoAwhji6AC6MVRAT/2cAAJhQETR6tnZYAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Never + None + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESWin/shared file/iMES.pfx b/SRC/MESWin/shared file/iMES.pfx new file mode 100644 index 0000000000000000000000000000000000000000..bf28015b94393d79ffe9ef439c01a9a9288c4877 GIT binary patch literal 2582 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存入) +Public Enum _enuInvokeType + _Load = 0 + _Add = 1 + _Edit = 2 + _Delete = 3 + _Get = 4 +End Enum diff --git a/SRC/MESWin/shared file/modQCSetting.vb b/SRC/MESWin/shared file/modQCSetting.vb new file mode 100644 index 0000000..87e1b4e --- /dev/null +++ b/SRC/MESWin/shared file/modQCSetting.vb @@ -0,0 +1,61 @@ +Module modQCSetting + + Public Function LoadQCObjectInfo(ByVal pQCObjectType As String, + ByRef pRefTableName As String, + ByRef pData As DataSet, + Optional ByVal pQCObjectNo As String = defString, + Optional ByRef pFindColumnNo As String = "", + Optional ByRef pFindColumnName As String = "", + Optional ByVal pLikeSymbo As String = "", + Optional ByVal pQCObjectFrom As String = defString, + Optional ByVal pQCObjectTo As String = defString, + Optional ByVal pAdditional As String = "") As Boolean + + Dim strMethod As String + Dim strNode As String + Dim strConditionName As String = "QCObjectType" + Dim strConditionValue As String = pQCObjectType + + pQCObjectNo = pQCObjectNo & pLikeSymbo + + Select Case pQCObjectType + Case 0 + pFindColumnNo = "QCCategory" + pFindColumnName = "QCCategoryName" + + Case 1 + pFindColumnNo = "ProductNo" + pFindColumnName = "ProductName" + + Case 2 + pFindColumnNo = "QCCategory" + pFindColumnName = "QCCategoryName" + + Case 3 + pFindColumnNo = "MaterialNo" + pFindColumnName = "MaterialName" + + End Select + + If pQCObjectNo <> defString Then + strConditionName = strConditionName & ",QCObjectNo" + strConditionValue = strConditionValue & "," & pQCObjectNo + End If + + If pQCObjectFrom <> defString Then + strConditionName = strConditionName & ",QCObjectNoFrom" + strConditionValue = strConditionValue & "," & pQCObjectFrom + End If + + If pQCObjectTo <> defString Then + strConditionName = strConditionName & ",QCObjectNoTo" + strConditionValue = strConditionValue & "," & pQCObjectTo + End If + + LoadQCObjectInfo = COM_Utility.clsUtility.InvokeLoadFunction(gComputerName, gUserNo, "wsQC.LoadQCObjectRefInfo", "loadqcobjectrefinfo", + Split(strConditionName, ","), Split(strConditionValue, ","), + pRefTableName, pData,, pAdditional) + + End Function + +End Module diff --git a/SRC/MEStc_ABC/MEStc_ABC.csproj b/SRC/MEStc_ABC/MEStc_ABC.csproj new file mode 100644 index 0000000..3afb26e --- /dev/null +++ b/SRC/MEStc_ABC/MEStc_ABC.csproj @@ -0,0 +1,129 @@ + + + + Debug + AnyCPU + + + + + {8CC8664F-C718-0888-187B-600F20E362E0} + Library + MEStc_ABC + MEStc_ABC + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\MES_S_DLL\ + ..\MES_S_DLL\MEStc_ABC.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + pdbonly + false + true + true + bin\Release\ + bin\Release\ + + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + On + + + Binary + + + Off + + + On + + + + + False + ..\MES_S_DLL\data_access_service.dll + False + + + False + ..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\MES_S_DLL\iMESConst.dll + False + + + ..\..\MESSeries_2016\MES_S_DLL\iMESException.dll + False + + + False + ..\MES_S_DLL\iMESLog.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MEStc_ABC/MEStc_ABC.csproj.vspscc b/SRC/MEStc_ABC/MEStc_ABC.csproj.vspscc new file mode 100644 index 0000000..b6d3289 --- /dev/null +++ b/SRC/MEStc_ABC/MEStc_ABC.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/SRC/MEStc_ABC/MEStc_ABC.sln b/SRC/MEStc_ABC/MEStc_ABC.sln new file mode 100644 index 0000000..9db77c8 --- /dev/null +++ b/SRC/MEStc_ABC/MEStc_ABC.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MEStc_ABC", "MEStc_ABC.csproj", "{8CC8664F-C718-0888-187B-600F20E362E0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8CC8664F-C718-0888-187B-600F20E362E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CC8664F-C718-0888-187B-600F20E362E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CC8664F-C718-0888-187B-600F20E362E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CC8664F-C718-0888-187B-600F20E362E0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = MEStc_ABC.csproj + SccLocalPath1 = . + EndGlobalSection +EndGlobal diff --git a/SRC/MEStc_ABC/Properties/AssemblyInfo.cs b/SRC/MEStc_ABC/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e2bf75b --- /dev/null +++ b/SRC/MEStc_ABC/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 +[assembly: AssemblyTitle("MEStc_ABC.Properties")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 將 ComVisible 設定為 false 會使得這個組件中的類型 +// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中 +// 的類型,請在該類型上將 ComVisible 屬性設定為 true。 +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("00eb00ee-1246-48cf-a0bf-f5203de255f1")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MEStc_ABC/tcWIP/clsLot.cs b/SRC/MEStc_ABC/tcWIP/clsLot.cs new file mode 100644 index 0000000..22d0c0a --- /dev/null +++ b/SRC/MEStc_ABC/tcWIP/clsLot.cs @@ -0,0 +1,337 @@ +using System; +using System.Data; +using System.Data.Common; +using Microsoft.VisualBasic; +using static iMESCore.Base.iMESComSubroutine; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESConst; +using static iMESCore.DataBase.iMESSql; +using iMESCore.Settings; + +namespace MEStc_ABC +{ + + + public class clsLot : IDisposable + { + /*不使用modXX,不再使用OleDb + * 資料庫相關(建立連線/讀取資料/異動資料),使用data_access_service.dll + * 設定檔相關,使用iMESAppSetting + * Xml相關,使用iMESComXML.dll + * 常數相關,使用iMESConst.dll + * 簡易副程式,使用iMESComSubroutine.dll + */ + + + private AppSettings objSetting = new AppSettings(); + private string strConnectionString; // Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + private bool disposed = false; // To detect redundant calls + private string strSQL = ""; + + #region --- Initial Object --- + + public clsLot() + { + // Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // Get Message Queue Type + strMQType = objSetting.GetMQType(); + } + + #endregion + + #region --- Property --- + + // //Property-------------------------------------------------------------------------------------------------------------------------------- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public string MQType + { + get + { + return strMQType; + } + } + + // 2003/03/22,sammi. + // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆. + // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD. + //public object ReverseObj + //{ + // get + // { + // //return objReverse; + // // ReverseObj = objReverse + // } + //} + + + #endregion + + #region IDisposable Support + private bool disposedValue; // 偵測多餘的呼叫 + + // IDisposable + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 處置 Managed 狀態 (Managed 物件)。 + } + + // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下面的 Finalize()。 + // TODO: 將大型欄位設定為 null。 + } + disposedValue = true; + } + + // TODO: 只有當上面的 Dispose(ByVal disposing As Boolean) 有可釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 + // Protected Overrides Sub Finalize() + // ' 請勿變更此程式碼。在上面的 Dispose(ByVal disposing As Boolean) 中輸入清除程式碼。 + // Dispose(False) + // MyBase.Finalize() + // End Sub + + // 由 Visual Basic 新增此程式碼以正確實作可處置的模式。 + public void Dispose() + { + // 請勿變更此程式碼。在以上的 Dispose 置入清除程式碼 (ByVal 視為布林值處置)。 + Dispose(true); + GC.SuppressFinalize(this); + } + #endregion + + + public string LoadOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "") + { + string LoadOPTypeRet = null; + // 此 Function 將資料以XML方式取出 + // 傳入值: 索引值 + // 傳回值: XML(成功), fail(失敗) + + + DataSet dsOP = null; + + try + { + + dsOP = ShowOPType(OPType, IssueState, AdditionalXml); + + // //Combine return value + LoadOPTypeRet = CombineXMLReturnValue("loadoptype", "OPType", "DataSet", FormatXMLSchema(dsOP.GetXmlSchema()), dsOP.GetXml(), ""); + } + + catch (Exception e1) + { + LoadOPTypeRet = "fail"; + throw; + } // New Exception("kcOP.LoadOPType: " & e1.Message) + + finally + { + if (dsOP != null) + { + dsOP.Dispose(); + } + } + + return LoadOPTypeRet; + + } + + public DataSet ShowOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "") + { + DataSet ShowOPTypeRet = null; + + // 此 Function 將資料以 Dataset 方式取出 + // 傳入值: 索引值 + // 傳回值: Dataset(成功), Nothing(失敗) + + + DataSet dsOP = null; + IDbConnection cnnTemp = null; + + try + { + // //Create connection + cnnTemp = CreateConnection(strConnectionString); + + strSQL = "Select * From tblOPType Where OPType Is Not Null"; + if (OPType != defString) + { + strSQL = strSQL + " And OPType = '" + OPType + "'"; + } + if (IssueState != defInteger) + { + strSQL = strSQL + " And IssueState = " + IssueState; + } + + if (!string.IsNullOrEmpty(AdditionalXml)) + { + // 加上additional的condition + strSQL = strSQL + SeparateAddXML_Condition(AdditionalXml); + } + + // //Select data + dsOP = new DataSet(); + ExecuteSQLQuery_Adapter(strSQL, dsOP, "OPType", cnnTemp); + + // //Return data + ShowOPTypeRet = dsOP; + } + + catch (Exception e1) + { + ShowOPTypeRet = null; + throw; + } + + finally + { + CloseConnection(cnnTemp); + if (dsOP != null) + { + dsOP.Dispose(); + } + } + + return ShowOPTypeRet; + } + + public DataRow GetOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "") + { + DataRow GetOPTypeRet = null; + // 此 Function 將資料以XML方式取出 + // 傳入值: 索引值 + // 傳回值: XML(成功), fail(失敗) + + + DataSet dsOP = null; + + try + { + + dsOP = ShowOPType(OPType, IssueState, AdditionalXml); + + // //Return data + if (dsOP.Tables[0].Rows.Count > 0) + { + GetOPTypeRet = dsOP.Tables[0].Rows[0]; + } + else + { + GetOPTypeRet = dsOP.Tables[0].NewRow(); + } + } + + catch (Exception e1) + { + GetOPTypeRet = null; + throw; + } // New Exception("kcOP.LoadOPType: " & e1.Message) + + finally + { + if (dsOP != null) + { + dsOP.Dispose(); + } + } + + return GetOPTypeRet; + + } + + public string BR_CheckIn(long LotStamp, string LotNo, string LinkName, DataTable dtAttrib, DataTable dtEquipment, string UserNo, string ShiftNo, + string LotRecord = defString, DateTime CheckInTime = default(DateTime), string RuleNo = "", DataTable dtLoginState = null, DataTable dtAccessory = null, + DataTable dtMTLLot = null, string LanguageMode = defString) + { + string BR_CheckInRet = default(string); + // 此 Function 將更新CheckIn Data + // 傳入值: LotNo,dtAttrib,dtEquipment + // 傳回值: success(成功), fail(失敗) + + IDbConnection cnnTemp = null; + DbDataReader drTemp; + var CollectionSQL = new Collection(); + var CollectionSQL_Rows = new Collection(); + string strSQL = ""; + + string LotSerial, OPNo, BRNo, SerialNo, LogGroupSerial, BaseLotNo, CurQTY; + int PhaseNo; + DateTime datEventTime; + long lngLotStamp; + + try + { + // //Create connection + cnnTemp = CreateConnection(strConnectionString); + + // 1.取出Temp LotState的資料 + strSQL = "Select A.LotSerial,A.OPNo,A.SerialNo,B.BRNo,B.LogGroupSerial,B.LotStamp,B.BaseLotNo,B.CurQTY,B.PhaseNo " + + " From tblWIPTemp_LotState A, tblWIPLotState B " + " Where A.LotNo ='" + LotNo + "'" + " And A.LotNo = B.LotNo "; + // cmmTemp = New OleDb.OleDbCommand(strSQL, cnnTemp) + drTemp = ExecuteSQLQuery_Reader(strSQL, cnnTemp); + if (drTemp.Read()) + { + LotSerial = drTemp["LotSerial"].ToString(); + OPNo = drTemp["OPNo"].ToString(); + SerialNo = drTemp["SerialNo"].ToString(); + BRNo = drTemp["BRNo"].ToString(); + LogGroupSerial = drTemp["LogGroupSerial"].ToString(); + lngLotStamp = Convert.ToInt64(drTemp["LotStamp"]); + BaseLotNo = drTemp["BaseLotNo"].ToString(); + CurQTY = drTemp["CurQTY"].ToString(); + PhaseNo = Convert.ToInt32(drTemp["PhaseNo"]); // 2020/11/20 Steven Mantis: 0082084: [PAD]eRunCard_調整 BR 生產記錄 + } + else + { + throw new iMESException.MESException("0000-202003", "[%LotNo%] : " + LotNo); + } + drTemp.Close(); + + + // 呼叫執行SQL指令 + ExecuteSQLNoneQuery_ChkRowCount(strDataBaseType, strConnectionString, CollectionSQL, CollectionSQL_Rows); + + // //Return success + BR_CheckInRet = "success"; + } + + catch (Exception e1) + { + BR_CheckInRet = "fail"; + throw; + } + finally + { + CloseConnection(cnnTemp); + + } + return BR_CheckInRet; + + } + + + } +} \ No newline at end of file diff --git a/SRC/MESud/UserDefine_Customer.sln b/SRC/MESud/UserDefine_Customer.sln new file mode 100644 index 0000000..651f835 --- /dev/null +++ b/SRC/MESud/UserDefine_Customer.sln @@ -0,0 +1,49 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "udSYS_Customer", "udSYS_Customer\udSYS_Customer.csproj", "{73D29D85-D190-04AF-0922-F34F21CAC888}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "udScriptFunction_Customer", "udScriptFunction_Customer\udScriptFunction_Customer.csproj", "{F31A762E-F2F8-00E6-10BA-01E73BC174FA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "udUnitTransferFunction_Customer", "udUnitTransferFunction_Customer\udUnitTransferFunction_Customer.csproj", "{BFE0BB52-2A20-0BA7-1FE1-00305141A790}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73D29D85-D190-04AF-0922-F34F21CAC888}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73D29D85-D190-04AF-0922-F34F21CAC888}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73D29D85-D190-04AF-0922-F34F21CAC888}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73D29D85-D190-04AF-0922-F34F21CAC888}.Release|Any CPU.Build.0 = Release|Any CPU + {F31A762E-F2F8-00E6-10BA-01E73BC174FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F31A762E-F2F8-00E6-10BA-01E73BC174FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F31A762E-F2F8-00E6-10BA-01E73BC174FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F31A762E-F2F8-00E6-10BA-01E73BC174FA}.Release|Any CPU.Build.0 = Release|Any CPU + {BFE0BB52-2A20-0BA7-1FE1-00305141A790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFE0BB52-2A20-0BA7-1FE1-00305141A790}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFE0BB52-2A20-0BA7-1FE1-00305141A790}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFE0BB52-2A20-0BA7-1FE1-00305141A790}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 4 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = udSYS_Customer\\udSYS_Customer.vbproj + SccProjectName1 = udSYS_Customer + SccLocalPath1 = udSYS_Customer + SccProjectUniqueName2 = udScriptFunction_Customer\\udScriptFunction_Customer.vbproj + SccProjectName2 = udScriptFunction_Customer + SccLocalPath2 = udScriptFunction_Customer + SccProjectUniqueName3 = udUnitTransferFunction_Customer\\udUnitTransferFunction_Customer.vbproj + SccProjectName3 = udUnitTransferFunction_Customer + SccLocalPath3 = udUnitTransferFunction_Customer + EndGlobalSection +EndGlobal diff --git a/SRC/MESud/udSYS_Customer/Properties/AssemblyInfo.cs b/SRC/MESud/udSYS_Customer/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..aa5755f --- /dev/null +++ b/SRC/MESud/udSYS_Customer/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 +[assembly: AssemblyTitle("udSYS")] +[assembly: AssemblyDescription("udSYS for MESSeries")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 將 ComVisible 設定為 false 會使得這個組件中的類型 +// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中 +// 的類型,請在該類型上將 ComVisible 屬性設定為 true。 +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("eac22f8c-c9cb-4a0e-b9fa-9a35789e48ef")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MESud/udSYS_Customer/Resources.Designer.cs b/SRC/MESud/udSYS_Customer/Resources.Designer.cs new file mode 100644 index 0000000..1bbfb01 --- /dev/null +++ b/SRC/MESud/udSYS_Customer/Resources.Designer.cs @@ -0,0 +1,70 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System.Diagnostics; +using Microsoft.VisualBasic; + +namespace udSYS_Customer.My.Resources +{ + + // 這個類別是自動產生的,是利用 StronglyTypedResourceBuilder + // 類別透過 ResGen 或 Visual Studio 這類工具。 + // 若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen + // (利用 /str 選項),或重建您的 VS 專案。 + /// + /// 用於查詢當地語系化字串等的強類型資源類別。 + /// + [System.CodeDom.Compiler.GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + [HideModuleName()] + internal static class Resources + { + + private static System.Resources.ResourceManager resourceMan; + + private static System.Globalization.CultureInfo resourceCulture; + + /// + /// 傳回這個類別使用的快取的 ResourceManager 執行個體。 + /// + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Resources.ResourceManager ResourceManager + { + get + { + if (ReferenceEquals(resourceMan, null)) + { + var temp = new System.Resources.ResourceManager("udSYS_Customer.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有 + /// 使用這個強類型資源類別的資源查閱。 + /// + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} \ No newline at end of file diff --git a/SRC/MESud/udSYS_Customer/Resources.resx b/SRC/MESud/udSYS_Customer/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/MESud/udSYS_Customer/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/SRC/MESud/udSYS_Customer/clsSerialNoFunction.cs b/SRC/MESud/udSYS_Customer/clsSerialNoFunction.cs new file mode 100644 index 0000000..2aca53c --- /dev/null +++ b/SRC/MESud/udSYS_Customer/clsSerialNoFunction.cs @@ -0,0 +1,174 @@ +using System; +using System.Data; +using static iMESCore.DataBase.iMESSql; +using iMESCore.Settings; +using iMESException; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + +namespace udSYS_Customer +{ + + public class clsSerialNoFunction : IDisposable + { + + private AppSettings objSetting = new AppSettings(); + + private IDbConnection cnnTemp; + private IDbCommand cmmTemp; + private string strConnectionString; // Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + private string strSQLAddField; + private string strSQLAddValue; + private string strSQL; + + #region IDisposable Support + private bool disposedValue; // 偵測多餘的呼叫 + + // //Initial Object---------------------------------- + public clsSerialNoFunction() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + } + + // IDisposable + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 處置 Managed 狀態 (Managed 物件)。 + } + + // 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下方的 Finalize()。 + if (objSetting != null) + objSetting = null; + // 將大型欄位設為 null。 + } + disposedValue = true; + } + + // 只有當上方的 Dispose(disposing As Boolean) 具有要釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 + ~clsSerialNoFunction() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(false); + } + + // Visual Basic 加入這個程式碼的目的,在於能正確地實作可處置的模式。 + public void Dispose() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(true); + // 覆寫上列 Finalize() 時,取消下行的註解狀態。 + GC.SuppressFinalize(this); + } + #endregion + + #region --- Property --- + + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public string MQType + { + get + { + return strMQType; + } + } + + #endregion + + // 2018/04/10 OwenLiu, Mantis:0045761, 增加客製 SerialNoFunction 支援機制 + // colParameters 變更為下述格式(FunctionName 及 . 可省略) + // [FunctionName][.] + // FunctionName 必須以 funC_ 作為名稱的前綴字串,才可以正常運作 + + // 前端(WinForm)呼叫範例(新開發的功能,儘量以 <.> 方式加入,以避免同樣的Key 對不同的ScriptFunction + // 有不同的值,造成執行階段引發的錯誤編碼結果 + // ----------------------------------------------------------------------------------------------------------- + // Dim strAddition As String = "" + // Dim aryAdditionKey() As String = {"FabCode", "funC_GetSample.FabCode"} + // Dim aryAdditionVal() As String = {"F1_", "F2_"} + // If Not aryAdditionKey Is Nothing AndAlso Not aryAdditionKey.Length.Equals(0) Then + // For i As Integer = LBound(aryAdditionKey) To UBound(aryAdditionKey) + // strAddition += CombineAddXML_Add(aryAdditionKey(i), "String", CInput(aryAdditionVal(i))) + // Next i + // strParameter += CombineXMLAdditional(strAddition) + // End If + // ----------------------------------------------------------------------------------------------------------- + + + public string funC_GetSample(Collection colParameters) + { + + IDbConnection cnnTemp = null; + string strResult = string.Empty; + string strFunctionName = System.Reflection.MethodBase.GetCurrentMethod().Name; + string strParameterKey = string.Empty; + + string FabCode = string.Empty; + + try + { + // 建立連線 + cnnTemp = CreateConnection_None(strConnectionString, strDataBaseType); + + // 取出參數 + strParameterKey = "FabCode"; + if (colParameters.Contains(strFunctionName + "." + strParameterKey)) + { + // 有只針對此Function傳入的Parameter + FabCode = Conversions.ToString(colParameters[strFunctionName + "." + strParameterKey]); + } + else if (colParameters.Contains(strParameterKey)) + { + // 泛用的Parameter + FabCode = Conversions.ToString(colParameters[strParameterKey]); + } + else + { + // 找不到傳入的Parameter + throw new MESException("0000-200002", "[%Parameter%] [%not found%]: [%" + strParameterKey + "%]"); + } + + strResult = FabCode; + } + + catch (Exception ex) + { + throw; + } + finally + { + // 關閉連線 + CloseConnection(cnnTemp); + } + + return strResult; + + } + + } +} \ No newline at end of file diff --git a/SRC/MESud/udSYS_Customer/udSYS_Customer.csproj b/SRC/MESud/udSYS_Customer/udSYS_Customer.csproj new file mode 100644 index 0000000..26067ae --- /dev/null +++ b/SRC/MESud/udSYS_Customer/udSYS_Customer.csproj @@ -0,0 +1,136 @@ + + + + Debug + AnyCPU + + + + + {73D29D85-D190-04AF-0922-F34F21CAC888} + Library + udSYS_Customer + udSYS_Customer + 512 + Windows + v4.6.2 + SAK + SAK + SAK + SAK + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udSYS_Customer.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + pdbonly + false + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udSYS_Customer.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + On + + + Binary + + + Off + + + On + + + + + False + ..\..\MES_S_DLL\data_access_service.dll + False + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\..\MES_S_DLL\iMESConst.dll + False + + + False + ..\..\MES_S_DLL\iMESException.dll + False + + + False + ..\..\MES_S_DLL\iMESLog.dll + False + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + ResXFileCodeGenerator + Resources.Designer.cs + udSYS_Customer.My.Resources + Designer + + + + + + \ No newline at end of file diff --git a/SRC/MESud/udScriptFunction_Customer/AssemblyInfo.cs b/SRC/MESud/udScriptFunction_Customer/AssemblyInfo.cs new file mode 100644 index 0000000..3f9b2a4 --- /dev/null +++ b/SRC/MESud/udScriptFunction_Customer/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 一般的組件資訊是由下列這組屬性所控制。 +// 變更這些屬性的值即可修改組件的相關資訊。 +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("udScriptFunction")] +[assembly: AssemblyDescription("udScriptFunction for MESSeries")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("532A640D-1ACE-4133-BC62-0662C5F3D7BB")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂 +// +// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號 +// 指定為預設值: + +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MESud/udScriptFunction_Customer/clsScriptFunction.cs b/SRC/MESud/udScriptFunction_Customer/clsScriptFunction.cs new file mode 100644 index 0000000..a0f5957 --- /dev/null +++ b/SRC/MESud/udScriptFunction_Customer/clsScriptFunction.cs @@ -0,0 +1,225 @@ +using System; +using System.Data; +using static iMESCore.Base.iMESConst; +using static iMESCore.DataBase.iMESSql; +using iMESCore.Settings; +using Microsoft.VisualBasic.CompilerServices; +using System.Data.Common; + +namespace udScriptFunction_Customer +{ + + public class clsScriptFunction : IDisposable + { + + // 2007/04/03,sammi.整合modUD. + private AppSettings objSetting = new AppSettings(); + + private IDbConnection cnnTemp; + private string strConnectionString; // Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + private int intGetMethod = 1; // 0.Simulation, 1.Production + + private DataTable dtLotAttrib = null; + private DataTable dtCompAttrib = null; + private string strLotNo; + private string strOPNo; + private string strComponentNo; + + private string strENGNo; + private string strENGVersion; + private string strRecipeNo; + private string strRecipeVersion; + private string strPropertyNo; + + + + #region --- Property --- + public string ConnectionString + { + get + { + return strConnectionString; + } + } + + public string DataBaseType + { + get + { + return strDataBaseType; + } + } + + public string MQType + { + get + { + return strMQType; + } + } + + // 當intGetMethod 為 0 時 Function 本身必須自行 Return Value,當 1 時可依實際需求取得實際值 + public int GetMethod + { + get + { + return intGetMethod; + } + set + { + intGetMethod = value; + } + } + + // 部分之Function 需要提供LotNo的屬性 + public string LotNo + { + set + { + strLotNo = value; + } + } + // 部分之Function 需要提供OPNo的屬性 + public string OPNo + { + set + { + strOPNo = value; + } + } + // 部分之Function 需要提供OPNo的屬性 + public string ComponentNo + { + set + { + strComponentNo = value; + } + } + // 部分之Function 需要提供ComponentAttrib + public DataTable ComponentAttrib + { + set + { + dtCompAttrib = value; + } + } + + // 部分之Function 需要提供ComponentAttrib + public DataTable LotAttrib + { + set + { + dtLotAttrib = value; + } + } + #endregion + + // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- + public clsScriptFunction() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + } + + #region IDisposable Support + private bool disposedValue; // 偵測多餘的呼叫 + + // IDisposable + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 處置 Managed 狀態 (Managed 物件)。 + } + + // 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下方的 Finalize()。 + if (objSetting != null) + objSetting = null; + // 將大型欄位設為 null。 + } + disposedValue = true; + } + + // TODO: 只有當上方的 Dispose(disposing As Boolean) 具有要釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 + // Protected Overrides Sub Finalize() + // ' 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + // Dispose(False) + // MyBase.Finalize() + // End Sub + + // Visual Basic 加入這個程式碼的目的,在於能正確地實作可處置的模式。 + public void Dispose() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(true); + // TODO: 覆寫上列 Finalize() 時,取消下行的註解狀態。 + // GC.SuppressFinalize(Me) + } + #endregion + + // 2018/05/22 OwenLiu, Mantis:0047207 Script Function同時支援標準迭代與個案客製 + // FunctionName 必須以 funSCC_ 作為名稱的前綴字串,才可以正常運作 + //public int funSCC_GetAPPreviousDate() + //{ + + // int intResult = defInteger; + // string strFunctionName = System.Reflection.MethodBase.GetCurrentMethod().Name; + // string strSQL = string.Empty; + // var datServerTime = DateTime.Now; + + // try + // { + // // Simulation + // if (intGetMethod == 0) + // { + // intResult = 1; + // return intResult; + // } + + // // Production + // // Create Connection + // cnnTemp = CreateConnection_None(strConnectionString, strDataBaseType); + // if (strDataBaseType.ToLower() == "oracle") + // { + // strSQL = "SELECT sysdate AS ServerTime FROM dual"; + // } + // else + // { + // strSQL = "SELECT getdate() AS ServerTime"; + // } + + + // using (DbDataReader drTemp = ExecuteSQLQuery_Reader(strSQL, cnnTemp)) + // { + // if (drTemp.Read()) + // { + // datServerTime = Conversions.ToDate(drTemp["ServerTime"]); + // intResult = Conversions.ToInteger(datServerTime.AddDays(-1).ToString("yyyyMMdd")); + // } + // drTemp.Close(); + // } + // } + + // catch (Exception ex) + // { + // throw; + // } + // finally + // { + // CloseConnection(cnnTemp); + // } + + // return intResult; + + //} + + } +} \ No newline at end of file diff --git a/SRC/MESud/udScriptFunction_Customer/udScriptFunction_Customer.csproj b/SRC/MESud/udScriptFunction_Customer/udScriptFunction_Customer.csproj new file mode 100644 index 0000000..8e85594 --- /dev/null +++ b/SRC/MESud/udScriptFunction_Customer/udScriptFunction_Customer.csproj @@ -0,0 +1,157 @@ + + + + Local + 8.0.50727 + 2.0 + {F31A762E-F2F8-00E6-10BA-01E73BC174FA} + SAK + SAK + SAK + SAK + Debug + AnyCPU + + + + + udScriptFunction_Customer + + + None + JScript + Grid + IE50 + false + Library + Binary + On + Off + udScriptFunction_Customer + + + + + Windows + + + v4.6.2 + 2.0 + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udScriptFunction_Customer.xml + 285212672 + + + + + true + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + false + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udScriptFunction_Customer.xml + 285212672 + + + + + false + true + false + true + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + none + false + + + + + False + ..\..\MES_S_DLL\data_access_service.dll + False + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\..\MES_S_DLL\iMESConst.dll + False + + + iMESException + ..\..\MES_S_DLL\iMESException.dll + False + + + False + ..\..\MES_S_DLL\iMESLog.dll + False + + + System + + + + System.Data + + + System.XML + + + + + + + + + + + + Code + + + Code + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/MESud/udUnitTransferFunction_Customer/AssemblyInfo.cs b/SRC/MESud/udUnitTransferFunction_Customer/AssemblyInfo.cs new file mode 100644 index 0000000..357b28d --- /dev/null +++ b/SRC/MESud/udUnitTransferFunction_Customer/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +// 一般的組件資訊是由下列這組屬性所控制。 +// 變更這些屬性的值即可修改組件的相關資訊。 +// 檢閱組件屬性的值 + +[assembly: AssemblyTitle("udUnitTransferFunction")] +[assembly: AssemblyDescription("udUnitTransferFunction for MESSeries")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("D537C63D-671A-4B2C-840D-20D31715F5BE")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂 +// +// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號 +// 指定為預設值: + +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/MESud/udUnitTransferFunction_Customer/clsUnitTransferFunction.cs b/SRC/MESud/udUnitTransferFunction_Customer/clsUnitTransferFunction.cs new file mode 100644 index 0000000..c2f1371 --- /dev/null +++ b/SRC/MESud/udUnitTransferFunction_Customer/clsUnitTransferFunction.cs @@ -0,0 +1,124 @@ +using System; +using System.Data; +using System.Data.Common; +using static iMESCore.Base.iMESConst; +using static iMESCore.DataBase.iMESSql; +using iMESCore.Settings; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; + +namespace udUnitTransferFunction_Customer +{ + public class clsUnitTransferFunction : IDisposable + { + + private AppSettings objSetting = new AppSettings(); + + private string strConnectionString; // Connection string + private string strDataBaseType; // DataBase Type:oracle, mysql, access + private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ + private string strSQLAddField; + private string strSQLAddValue; + private string strSQL; + private int intGetMethod = 1; // 0.Simulation, 1.Production + + #region IDisposable Support + private bool disposedValue; // 偵測多餘的呼叫 + + // //Initial Object---------------------------------- + public clsUnitTransferFunction() + { + // //Get database type + strDataBaseType = objSetting.GetDataBaseType(); + // //Get connection string + strConnectionString = objSetting.GetConnectionString(strDataBaseType); + // //Get Message Queue Type + strMQType = objSetting.GetMQType(); + } + + // IDisposable + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 處置 Managed 狀態 (Managed 物件)。 + } + + // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下方的 Finalize()。 + if (objSetting != null) + objSetting = null; + // TODO: 將大型欄位設為 null。 + } + disposedValue = true; + } + + // TODO: 只有當上方的 Dispose(disposing As Boolean) 具有要釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 + ~clsUnitTransferFunction() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(false); + } + + // Visual Basic 加入這個程式碼的目的,在於能正確地實作可處置的模式。 + public void Dispose() + { + // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 + Dispose(true); + // TODO: 覆寫上列 Finalize() 時,取消下行的註解狀態。 + GC.SuppressFinalize(this); + } + #endregion + + // 2018/07/10 OwenLiu, Mantis:0048659 單位轉換函式增加 個案客製支援機制 + // FunctionName 必須以 funUTC_ 作為名稱的前綴字串,才可以正常運作 + //private decimal funUTC_Sample(Collection colParameters) + //{ + + // IDbConnection cnnTemp = null; + // string ProductNo, ProductVersion, ENGNo, ENGVersion; + // decimal decExecResult = defInteger; + // try + // { + // if (intGetMethod == 0) // Simulation + // { + // decExecResult = 1m; + // } + // else // Production + // { + // // 1.取出參數 + // ProductNo = Conversions.ToString(colParameters["ProductNo"]); + // ProductVersion = Conversions.ToString(colParameters["ProductVersion"]); + // ENGNo = Conversions.ToString(colParameters["ENGNo"]); + // ENGVersion = Conversions.ToString(colParameters["ENGVersion"]); + + // // //Create connection + // cnnTemp = CreateConnection_None(strConnectionString, strDataBaseType); + + // strSQL = "SELECT DefaultValue FROM tblPRDProductProperty" + " WHERE ProductNo = '" + ProductNo.ToUpper() + "'" + " AND ProductVersion = '" + ProductVersion.ToUpper() + "'" + " AND Upper(PropertyNo) = '" + "GrossDie".ToUpper() + "'"; + // using (DbDataReader drProperty = ExecuteSQLQuery_Reader(strSQL, cnnTemp)) + // { + // if (drProperty.Read()) + // { + // decExecResult = Conversions.ToDecimal(drProperty["DefaultValue"]); + // } + // drProperty.Close(); + // } + // } + // } + + // catch (Exception ex) + // { + // throw; + // } + // finally + // { + // CloseConnection(cnnTemp); + // } + + // return decExecResult; + + //} + } +} \ No newline at end of file diff --git a/SRC/MESud/udUnitTransferFunction_Customer/udUnitTransferFunction_Customer.csproj b/SRC/MESud/udUnitTransferFunction_Customer/udUnitTransferFunction_Customer.csproj new file mode 100644 index 0000000..2f71fd9 --- /dev/null +++ b/SRC/MESud/udUnitTransferFunction_Customer/udUnitTransferFunction_Customer.csproj @@ -0,0 +1,155 @@ + + + + Local + 8.0.50727 + 2.0 + {BFE0BB52-2A20-0BA7-1FE1-00305141A790} + SAK + SAK + SAK + SAK + Debug + AnyCPU + + + + + udUnitTransferFunction_Customer + + + None + JScript + Grid + IE50 + false + Library + Binary + On + Off + udUnitTransferFunction_Customer + + + + + Windows + + + v4.6.2 + 2.0 + + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udUnitTransferFunction_Customer.xml + 285212672 + + + + + true + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + full + false + + + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\udUnitTransferFunction_Customer.xml + 285212672 + + + + + false + true + true + false + false + false + false + 0 + 42016,42017,42018,42019,42032,42353,42354,42355 + pdbonly + false + + + + + False + ..\..\MES_S_DLL\data_access_service.dll + False + + + False + ..\..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\..\MES_S_DLL\iMESConst.dll + False + + + iMESException + ..\..\MES_S_DLL\iMESException.dll + False + + + False + ..\..\MES_S_DLL\iMESLog.dll + False + + + System + + + + System.Data + + + System.XML + + + + + + + + + + + + Code + + + Code + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/iMESCIOC/CDO/Tables/CDO_TABLE_SAMPLE.cs b/SRC/iMESCIOC/CDO/Tables/CDO_TABLE_SAMPLE.cs new file mode 100644 index 0000000..c13ed4b --- /dev/null +++ b/SRC/iMESCIOC/CDO/Tables/CDO_TABLE_SAMPLE.cs @@ -0,0 +1,38 @@ +using System; +using System.Data; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using iMESCore.DataObject; +using iMESCore.Base.ProjectBase.Base; + +namespace iMESCIO.CDO.Tables +{ + + [CDO(TableName = "TABLE_SAMPLE")] + public class CDO_TABLE_SAMPLE : CDOBase + { + + [CDO(ColumnName = "PMITEMNO", DBType = SqlDbType.VarChar, PrimaryKey = true)] + public String PMITEMNO { get; set; } + + [CDO(ColumnName = "PMMODE", DBType = SqlDbType.VarChar)] + public String PMMODE { get; set; } + + [CDO(ColumnName = "DESCRIPTION", DBType = SqlDbType.VarChar)] + public String DESCRIPTION { get; set; } + + [CDO(ColumnName = "CREATOR", DBType = SqlDbType.VarChar)] + public String CREATOR { get; set; } + + [CDO(ColumnName = "CREATEDATE", DBType = SqlDbType.DateTime)] + public DateTime? CREATEDATE { get; set; } + + [CDO(ColumnName = "REVISER", DBType = SqlDbType.VarChar)] + public String REVISER { get; set; } + + [CDO(ColumnName = "REVISEDATE", DBType = SqlDbType.DateTime)] + public DateTime? REVISEDATE { get; set; } + + } +} diff --git a/SRC/iMESCIOC/iMES.snk b/SRC/iMESCIOC/iMES.snk new file mode 100644 index 0000000000000000000000000000000000000000..4206cdc36eceddde7f30ac484d1852eb3f9be236 GIT binary patch literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50097#g3R+{UF+SWBpq3jKsGz4Rg)jp;sR@& z9YKT-w@gNp-L~38+1NJ=1XDRJDW25AI*NovDaNnzDN>{Bkv1jod=Ji9)a&FRUaAtf zi1{sH^ycmTE>;(=WPI@cVijY>( z68QMK9TPTAYPREpfq+h^Nne$)zO;6bx%j96AK_A|B+TR7U>0P)(eEk{J#@4Mx&M05 zCmJxuxSLKS802l^7))Rwj&-Awxzy zL|h&Z8u5{hxZ#i*aB?roJ=(>%lFM~AM)K&^89a(nzv>UkL3%^1E^(B=&$CpC*k&Uu zoWIXD#zo%*oEY3D5w(^p%? zO5a)yp9j|(odT|vi) x=2V4i$!>r`bocbgd;9#&HU{hI|N6Z$Mk4?^qLlWtab5 z>NP5P^SUu%0a4(t?J}R)?1B(lBxj+?ehgOdZcWno8ix^tn9J&06) + + + + Debug + AnyCPU + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD} + Library + Properties + iMESCIOC + iMESCIOC + v4.6.2 + 512 + + + + true + full + false + ..\MES_S_DLL\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + ..\..\bin\MES_S_DLL\ + TRACE + prompt + 4 + false + + + true + + + iMES.snk + + + + ..\MES_S_DLL\iMESCIO.dll + + + ..\MES_S_DLL\iMESDataObject.dll + + + ..\MES_S_DLL\iMESProjectBase.dll + + + ..\MES_S_DLL\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SRC/iMESCIOC/iMESCIOC.sln b/SRC/iMESCIOC/iMESCIOC.sln new file mode 100644 index 0000000..6f6679b --- /dev/null +++ b/SRC/iMESCIOC/iMESCIOC.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iMESCIOC", "iMESCIOC.csproj", "{3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A1F68B3-EBE4-4A86-9334-F66EC3DCE0AD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SRC/wsABC/My Project/Application.Designer.cs b/SRC/wsABC/My Project/Application.Designer.cs new file mode 100644 index 0000000..299bbe3 --- /dev/null +++ b/SRC/wsABC/My Project/Application.Designer.cs @@ -0,0 +1,11 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + diff --git a/SRC/wsABC/My Project/Application.myapp b/SRC/wsABC/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/SRC/wsABC/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/SRC/wsABC/My Project/Settings.Designer.cs b/SRC/wsABC/My Project/Settings.Designer.cs new file mode 100644 index 0000000..47aea5e --- /dev/null +++ b/SRC/wsABC/My Project/Settings.Designer.cs @@ -0,0 +1,88 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + +using System.Diagnostics; +using Microsoft.VisualBasic; + + +namespace wsABC.My +{ + + [System.Runtime.CompilerServices.CompilerGenerated()] + [System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase + { + + private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings()); + + #region My.Settings 自動儲存功能 + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + 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 + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + #endregion + + public static MySettings Default + { + get + { + + /* TODO ERROR: Skipped IfDirectiveTrivia + #If _MyType = "WindowsForms" Then + *//* TODO ERROR: Skipped DisabledTextTrivia + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If + *//* TODO ERROR: Skipped EndIfDirectiveTrivia + #End If + */ + return defaultInstance; + } + } + } +} + +namespace wsABC.My +{ + + [HideModuleName()] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + internal static class MySettingsProperty + { + + [System.ComponentModel.Design.HelpKeyword("My.Settings")] + internal static MySettings Settings + { + get + { + return MySettings.Default; + } + } + } +} \ No newline at end of file diff --git a/SRC/wsABC/My Project/Settings.settings b/SRC/wsABC/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/SRC/wsABC/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SRC/wsABC/Properties/AssemblyInfo.cs b/SRC/wsABC/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7ead6a6 --- /dev/null +++ b/SRC/wsABC/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 組件的一般資訊是由下列的屬性集控制。 +// 變更這些屬性的值即可修改組件的相關 +// 資訊。 +[assembly: AssemblyTitle("wsABC.Properties")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("iMES Technology Inc.")] +[assembly: AssemblyProduct("MESSeries 6")] +[assembly: AssemblyCopyright("Copyright iMES Technology Inc.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 將 ComVisible 設定為 false 會使得這個組件中的類型 +// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中 +// 的類型,請在該類型上將 ComVisible 屬性設定為 true。 +[assembly: ComVisible(false)] + +// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID +[assembly: Guid("ad05cadf-ff22-498b-a29e-df915118873d")] + +// 組件的版本資訊由下列四個值所組成: +// +// 主要版本 +// 次要版本 +// 組建編號 +// 修訂編號 +// +[assembly: AssemblyVersion("6.0.0.0")] diff --git a/SRC/wsABC/Properties/BuildIncrementVersionInfo.cs b/SRC/wsABC/Properties/BuildIncrementVersionInfo.cs new file mode 100644 index 0000000..8f1deae --- /dev/null +++ b/SRC/wsABC/Properties/BuildIncrementVersionInfo.cs @@ -0,0 +1 @@ +[assembly: System.Reflection.AssemblyFileVersion("6.0.5.30818")] diff --git a/SRC/wsABC/Resources.Designer.cs b/SRC/wsABC/Resources.Designer.cs new file mode 100644 index 0000000..303e10b --- /dev/null +++ b/SRC/wsABC/Resources.Designer.cs @@ -0,0 +1,70 @@ +// ------------------------------------------------------------------------------ +// +// 這段程式碼是由工具產生的。 +// 執行階段版本:4.0.30319.42000 +// +// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼, +// 變更將會遺失。 +// +// ------------------------------------------------------------------------------ + + +using System.Diagnostics; +using Microsoft.VisualBasic; + +namespace wsABC.My.Resources +{ + + // 這個類別是自動產生的,是利用 StronglyTypedResourceBuilder + // 類別透過 ResGen 或 Visual Studio 這類工具。 + // 若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen + // (利用 /str 選項),或重建您的 VS 專案。 + /// + /// 用於查詢當地語系化字串等的強類型資源類別。 + /// + [System.CodeDom.Compiler.GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [DebuggerNonUserCode()] + [System.Runtime.CompilerServices.CompilerGenerated()] + [HideModuleName()] + internal static class Resources + { + + private static System.Resources.ResourceManager resourceMan; + + private static System.Globalization.CultureInfo resourceCulture; + + /// + /// 傳回這個類別使用的快取的 ResourceManager 執行個體。 + /// + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Resources.ResourceManager ResourceManager + { + get + { + if (ReferenceEquals(resourceMan, null)) + { + var temp = new System.Resources.ResourceManager("wsABC.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有 + /// 使用這個強類型資源類別的資源查閱。 + /// + [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} \ No newline at end of file diff --git a/SRC/wsABC/Resources.resx b/SRC/wsABC/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SRC/wsABC/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/SRC/wsABC/wsABC.csproj b/SRC/wsABC/wsABC.csproj new file mode 100644 index 0000000..abf9c5e --- /dev/null +++ b/SRC/wsABC/wsABC.csproj @@ -0,0 +1,171 @@ + + + + + Debug + AnyCPU + {881686CE-A940-0485-2766-D411835B2FBB} + Library + wsABC + wsABC + 512 + Windows + v4.6.2 + + SAK + SAK + SAK + SAK + $(DefaultItemExcludes);$(ProjectDir)**\*.vb + + + true + full + true + true + ..\MES_S_DLL\ + ..\MES_S_DLL\wsABC.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + pdbonly + false + true + true + ..\..\MES_S_DLL\ + ..\..\MES_S_DLL\ + + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + 0 + false + + + On + + + Binary + + + Off + + + On + + + + + False + ..\MES_S_DLL\iMESAppSetting.dll + False + + + False + ..\MES_S_DLL\iMESComSubroutine.dll + False + + + False + ..\MES_S_DLL\iMESComXML.dll + False + + + False + ..\MES_S_DLL\iMESConst.dll + False + + + ..\MES_S_DLL\iMESException.dll + False + + + False + ..\MES_S_DLL\iMESSCI.dll + False + + + ..\MES_S_DLL\kcSYS.dll + False + False + + + False + ..\MES_S_DLL\Newtonsoft.Json.dll + False + + + + + + + + + + + + + + + False + + + + + + + + + + + + + + + + True + Application.myapp + + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + wsABC.My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.cs + + + SettingsSingleFileGenerator + wsABC.My + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/SRC/wsABC/wsABC.csproj.vspscc b/SRC/wsABC/wsABC.csproj.vspscc new file mode 100644 index 0000000..b6d3289 --- /dev/null +++ b/SRC/wsABC/wsABC.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/SRC/wsABC/wsABC.sln b/SRC/wsABC/wsABC.sln new file mode 100644 index 0000000..ba785d8 --- /dev/null +++ b/SRC/wsABC/wsABC.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wsABC", "wsABC.csproj", "{881686CE-A940-0485-2766-D411835B2FBB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {881686CE-A940-0485-2766-D411835B2FBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {881686CE-A940-0485-2766-D411835B2FBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {881686CE-A940-0485-2766-D411835B2FBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {881686CE-A940-0485-2766-D411835B2FBB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6 + SccLocalPath0 = . + SccProjectUniqueName1 = wsABC.vbproj + SccLocalPath1 = . + EndGlobalSection +EndGlobal diff --git a/SRC/wsABC/wsWIP/wsWIP.cs b/SRC/wsABC/wsWIP/wsWIP.cs new file mode 100644 index 0000000..039a1e6 --- /dev/null +++ b/SRC/wsABC/wsWIP/wsWIP.cs @@ -0,0 +1,131 @@ +using System; +using Microsoft.VisualBasic; +using static iMESCore.Base.iMESComSubroutine; +using static iMESCore.Base.iMESComXML; +using static iMESCore.Base.iMESConst; +using iMESCore.Settings; + +namespace wsABC +{ + + public class wsWIP + { + + private iMESCore.Settings.AppSettings objSetting = new iMESCore.Settings.AppSettings(); + private System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串 + private DateTime ArriveTime; // 送達時間 + private string strIdentity; // Identity XML字串 + private string strReturnValue; // ReturnValue XML字串 + private string strException; // Exception XML字串 + private string strResult; // Result XML字串 + private string strMessage; // Message XML字串 + private string strServiceName = "wsWIP_ABC"; // ServiceName + private string strResourceDir = "Resources"; + + private kcSYS.clsSYSUserLog objSYS = new kcSYS.clsSYSUserLog(); // 宣告Sys的物件 + + public wsWIP() + { + try + { + strResourceDir = System.IO.Path.Combine("wsUpdateResource", objSetting["ResourceDir"].ToString()); + } + catch (Exception) + { } + } + + public string HelloWorld(string InXml) + { + return "HelloWorld"; + } + + + //public string LoadOPMaterialState(string InXml) + //{ + // string LoadOPMaterialStateRet = null; + + // // 先給預設值,以判斷是否有傳入該參數 + // string OPNo = defString; + // string MaterialNo = defString; + // string MaterialLotNo = defString; + // string UnitNo = defString; + // string MaterialType = defString; + + // ArriveTime = DateTime.Now; + + // try + // { + // // 讀取InXml字串 + // xmlDoc.LoadXml(InXml); + // // 組Identity字串 + // strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), ArriveTime.ToString(defDateTimeFormat)); + + // // 判斷是否有傳入OPNo,若有,表示要依OPNo查詢 + // if (xmlDoc.DocumentElement.GetElementsByTagName("opno").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("opno").Item(0).SelectNodes("value").Count > 0) + // { + // OPNo = xmlDoc.DocumentElement.GetElementsByTagName("opno").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + // // 判斷是否有傳入MaterialNo,若有,表示要依MaterialNo查詢 + // if (xmlDoc.DocumentElement.GetElementsByTagName("materialno").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("materialno").Item(0).SelectNodes("value").Count > 0) + // { + // MaterialNo = xmlDoc.DocumentElement.GetElementsByTagName("materialno").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + // // 判斷是否有傳入MaterialLotNo,若有,表示要依MaterialLotNo查詢 + // if (xmlDoc.DocumentElement.GetElementsByTagName("materiallotno").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("materiallotno").Item(0).SelectNodes("value").Count > 0) + // { + // MaterialLotNo = xmlDoc.DocumentElement.GetElementsByTagName("materiallotno").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + // if (xmlDoc.DocumentElement.GetElementsByTagName("unitno").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("unitno").Item(0).SelectNodes("value").Count > 0) + // { + // UnitNo = xmlDoc.DocumentElement.GetElementsByTagName("unitno").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + // if (xmlDoc.DocumentElement.GetElementsByTagName("materialtype").Count > 0) + // { + // if (xmlDoc.GetElementsByTagName("materialtype").Item(0).SelectNodes("value").Count > 0) + // { + // MaterialType = xmlDoc.DocumentElement.GetElementsByTagName("materialtype").Item(0).SelectNodes("value").Item(0).InnerText; + // } + // } + + // // 呼叫Dll執行 + // //strReturnValue = objWIP.LoadOPMaterialState(OPNo, MaterialNo, MaterialLotNo, UnitNo, MaterialType); + // strException = ""; + // strResult = "success"; + // } + + // catch (iMESException.MESException ex) + // { + // strReturnValue = ""; + // strException = CombineXMLException(ex.ErrorCode.ToString(), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Load OP Material State Fail!!", ex.StackTrace); + // strResult = "fail"; + // } + + // catch (Exception ex) + // { + // strReturnValue = ""; + // strException = CombineXMLException(defWSErrCode, ex.Message, "Load OP Material State Fail!!", ex.StackTrace); + // strResult = "fail"; + // } + + // finally + // { + // // 將各部份之XML字串組起來並傳出 + // LoadOPMaterialStateRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, ""); + // } + // return LoadOPMaterialStateRet; + + //} + } +} \ No newline at end of file

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 z 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 literal 0 HcmV?d00001 diff --git a/SRC/MESWin/Resources/SPCExport_STD02_2003.xls b/SRC/MESWin/Resources/SPCExport_STD02_2003.xls new file mode 100644 index 0000000000000000000000000000000000000000..02056c17405df6ddc89d7632918c1a3b192fa75d GIT binary patch literal 206848 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