From 4db24861041c434c66cfceb465c2fcb9b02eec24 Mon Sep 17 00:00:00 2001 From: SongSong Date: Fri, 19 Sep 2025 18:34:20 +0900 Subject: [PATCH] =?UTF-8?q?20250919=E6=88=90=E6=9E=9C=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AidConst.cs | 198 + MLComponentSettings.xml | 13 - Properties/AssemblyInfo.cs | 17 + .../BcScript.cs | 54 + .../CashOutAesFree.cs | 54 + .../CashOutAesRequestRequest.cs | 29 + .../CashOutAesRequestResponse.cs | 25 + .../CashOutConsequenceRequest.cs | 29 + .../CashOutConsequenceResponse.cs | 25 + .../CashOutFree.cs | 54 + .../CashOutRequestRequest.cs | 29 + .../CashOutRequestResponse.cs | 25 + .../InParamBarCode.cs | 278 + .../InParamCashOutAesRequest.cs | 294 + .../InParamCashOutConsequence.cs | 70 + .../InParamCashOutRequest.cs | 294 + .../InParamKeizokukakinRequest.cs | 230 + .../InParamNyukin.cs | 86 + .../InParamSyuno.cs | 278 + .../InParamSyunoBarCode.cs | 375 ++ .../InParamSyunoETicket.cs | 16 + .../InParamSyunoPlusBarCode.cs | 470 ++ .../InParamTomeoki.cs | 278 + .../OutParamBarCode.cs | 198 + .../OutParamCashOutConsequence.cs | 230 + .../OutParamCashOutRequest.cs | 134 + .../OutParamKeizokukakinRequest.cs | 166 + .../OutParamNyukin.cs | 246 + .../OutParamSyuno.cs | 134 + .../OutParamSyunoBarCode.cs | 246 + .../OutParamSyunoETicket.cs | 198 + .../OutParamSyunoPlusBarCode.cs | 246 + .../OutParamSyunoQr.cs | 278 + .../OutParamTomeoki.cs | 134 + .../SyunoFree.cs | 54 + .../WellnetSoapHeader.cs | 54 + .../YoyakuBarCodeRequest.cs | 29 + .../YoyakuBarCodeResponse.cs | 25 + .../YoyakuKeizokukakinRequestRequest.cs | 29 + .../YoyakuKeizokukakinRequestResponse.cs | 25 + .../YoyakuNyukinRequest.cs | 29 + .../YoyakuNyukinResponse.cs | 25 + .../YoyakuSoap.cs | 94 + .../YoyakuSoapChannel.cs | 11 + .../YoyakuSoapClient.cs | 385 ++ .../YoyakuSyunoBarCodeRequest.cs | 29 + .../YoyakuSyunoBarCodeResponse.cs | 25 + .../YoyakuSyunoETicketRequest.cs | 29 + .../YoyakuSyunoETicketResponse.cs | 25 + .../YoyakuSyunoPlusBarCodeRequest.cs | 29 + .../YoyakuSyunoPlusBarCodeResponse.cs | 25 + .../YoyakuSyunoQrRequest.cs | 29 + .../YoyakuSyunoQrResponse.cs | 25 + .../YoyakuSyunoRequestRequest.cs | 29 + .../YoyakuSyunoRequestResponse.cs | 25 + .../YoyakuTomeokiRequestRequest.cs | 29 + .../YoyakuTomeokiRequestResponse.cs | 25 + SoM_PrnControl.csproj | 47 + SoM_PrnControl.sln | 22 +- SoM_PrnControl/AIDdefine.cs | 148 - SoM_PrnControl/App.config | 6 - SoM_PrnControl/EpsonPrinterTMM30Service.cs | 181 + SoM_PrnControl/Form1.Designer.cs | 89 - SoM_PrnControl/Form1.cs | 2206 ------- SoM_PrnControl/Form1.resx | 123 - SoM_PrnControl/MLComponentSettings.xml | 13 - SoM_PrnControl/Program.cs | 24 - SoM_PrnControl/Properties/AssemblyInfo.cs | 36 - .../Properties/MLComponentSettings.xml | 13 - .../Properties/Resources.Designer.cs | 63 - SoM_PrnControl/Properties/Resources.resx | 117 - .../Properties/Settings.Designer.cs | 26 - SoM_PrnControl/Properties/Settings.settings | 7 - SoM_PrnControl/SoM_PrnControl.csproj | 135 - SoM_PrnControl/packages.config | 5 - app.config | 339 + app.ico | Bin 0 -> 67646 bytes app.manifest | 70 + qk30ic.Form1.resx | 1221 ++++ qk30ic.Form2.resx | 1221 ++++ qk30ic.Properties/Resources.cs | 49 + qk30ic.Properties/Settings.cs | 14 + qk30ic/ConRead.cs | 42 + qk30ic/Form1.cs | 5632 +++++++++++++++++ qk30ic/Form2.cs | 251 + qk30ic/Form3.cs | 91 + qk30ic/KEEPALIVE.cs | 126 + qk30ic/Logfile.cs | 80 + qk30ic/Program.cs | 36 + 89 files changed, 15916 insertions(+), 3032 deletions(-) create mode 100644 AidConst.cs delete mode 100644 MLComponentSettings.xml create mode 100644 Properties/AssemblyInfo.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/BcScript.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/CashOutAesFree.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/CashOutAesRequestRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/CashOutAesRequestResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/CashOutConsequenceRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/CashOutConsequenceResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/CashOutFree.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/CashOutRequestRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/CashOutRequestResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamBarCode.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamCashOutAesRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamCashOutConsequence.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamCashOutRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamKeizokukakinRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamNyukin.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamSyuno.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamSyunoBarCode.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamSyunoETicket.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamSyunoPlusBarCode.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/InParamTomeoki.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamBarCode.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamCashOutConsequence.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamCashOutRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamKeizokukakinRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamNyukin.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamSyuno.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamSyunoBarCode.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamSyunoETicket.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamSyunoPlusBarCode.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamSyunoQr.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/OutParamTomeoki.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/SyunoFree.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/WellnetSoapHeader.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuBarCodeRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuBarCodeResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuKeizokukakinRequestRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuKeizokukakinRequestResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuNyukinRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuNyukinResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSoap.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSoapChannel.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSoapClient.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoBarCodeRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoBarCodeResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoETicketRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoETicketResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoPlusBarCodeRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoPlusBarCodeResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoQrRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoQrResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoRequestRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoRequestResponse.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuTomeokiRequestRequest.cs create mode 100644 SoM_PrnControl.YoyakuServiceReference/YoyakuTomeokiRequestResponse.cs create mode 100644 SoM_PrnControl.csproj delete mode 100644 SoM_PrnControl/AIDdefine.cs delete mode 100644 SoM_PrnControl/App.config create mode 100644 SoM_PrnControl/EpsonPrinterTMM30Service.cs delete mode 100644 SoM_PrnControl/Form1.Designer.cs delete mode 100644 SoM_PrnControl/Form1.cs delete mode 100644 SoM_PrnControl/Form1.resx delete mode 100644 SoM_PrnControl/MLComponentSettings.xml delete mode 100644 SoM_PrnControl/Program.cs delete mode 100644 SoM_PrnControl/Properties/AssemblyInfo.cs delete mode 100644 SoM_PrnControl/Properties/MLComponentSettings.xml delete mode 100644 SoM_PrnControl/Properties/Resources.Designer.cs delete mode 100644 SoM_PrnControl/Properties/Resources.resx delete mode 100644 SoM_PrnControl/Properties/Settings.Designer.cs delete mode 100644 SoM_PrnControl/Properties/Settings.settings delete mode 100644 SoM_PrnControl/SoM_PrnControl.csproj delete mode 100644 SoM_PrnControl/packages.config create mode 100644 app.config create mode 100644 app.ico create mode 100644 app.manifest create mode 100644 qk30ic.Form1.resx create mode 100644 qk30ic.Form2.resx create mode 100644 qk30ic.Properties/Resources.cs create mode 100644 qk30ic.Properties/Settings.cs create mode 100644 qk30ic/ConRead.cs create mode 100644 qk30ic/Form1.cs create mode 100644 qk30ic/Form2.cs create mode 100644 qk30ic/Form3.cs create mode 100644 qk30ic/KEEPALIVE.cs create mode 100644 qk30ic/Logfile.cs create mode 100644 qk30ic/Program.cs diff --git a/AidConst.cs b/AidConst.cs new file mode 100644 index 0000000..fecbbd8 --- /dev/null +++ b/AidConst.cs @@ -0,0 +1,198 @@ +internal static class AidConst +{ + public const uint NORMALEND = 0u; + + public const uint ERROR_MASK = 2147483648u; + + public const uint ERROR_TYPE_SYS = 2415919104u; + + public const uint ERROR_TYPE_FUN = 2684354560u; + + public const uint ERROR_TYPE_VAL = 2952790016u; + + public const uint ERROR_TYPE_RES = 3221225472u; + + public const uint ERROR_TYPE_CMD = 3489660928u; + + public const uint ERROR_TYPE_EX = 3758096384u; + + public const uint ERROR_MASK_APL = 65536u; + + public const uint ERROR_MASK_CARD = 131072u; + + public const uint ERROR_MASK_IFD = 196608u; + + public const uint ERROR_MASK_STRM = 262144u; + + public const uint ERROR_APL_SYSTEM = 2415984641u; + + public const uint ERROR_APL_RESOURCE = 2415984642u; + + public const uint ERROR_APL_AIDFILES = 2415984643u; + + public const uint ERROR_APL_NOTYET = 2684420097u; + + public const uint ERROR_APL_ALREADY = 2684420098u; + + public const uint ERROR_APL_UNSUPPORT = 2952855553u; + + public const uint ERROR_APL_INVALID_ARG = 2952855554u; + + public const uint ERROR_APL_BUFFER_SMALL = 2952855555u; + + public const uint ERROR_CARD_SYSTEM = 2416050177u; + + public const uint ERROR_CARD_RESOURCE = 2416050178u; + + public const uint ERROR_CARD_AIDFILES = 2416050179u; + + public const uint ERROR_CARD_NOTYET = 2684485633u; + + public const uint ERROR_CARD_ALREADY = 2684485634u; + + public const uint ERROR_CARD_UNSUPPORT = 2952921089u; + + public const uint ERROR_CARD_INVALID_ARG = 2952921090u; + + public const uint ERROR_CARD_BUFFER_SMALL = 2952921091u; + + public const uint ERROR_CARD_FINED = 3221356545u; + + public const uint ERROR_CARD_LOST = 3221356546u; + + public const uint ERROR_CARD_FRAME = 3221356547u; + + public const uint ERROR_CARD_RECOVER = 3221356548u; + + public const uint ERROR_CARD_TARGET = 3221356549u; + + public const uint ERROR_CARD_CANCEL = 3221356550u; + + public const uint ERROR_CARD_AUTHENTICATE = 3758260225u; + + public const uint ERROR_CARD_MACRO_READ = 3758260226u; + + public const uint ERROR_IFD_SYSTEM = 2416115713u; + + public const uint ERROR_IFD_RESOURCE = 2416115714u; + + public const uint ERROR_IFD_AIDFILES = 2416115715u; + + public const uint ERROR_IFD_NOTYET = 2684551169u; + + public const uint ERROR_IFD_ALREADY = 2684551170u; + + public const uint ERROR_IFD_UNSUPPORT = 2952986625u; + + public const uint ERROR_IFD_INVALID_ARG = 2952986626u; + + public const uint ERROR_IFD_BUFFER_SMALL = 2952986627u; + + public const uint ERROR_IFD_FRAME = 3221422081u; + + public const uint ERROR_IFD_RECOVER = 3221422082u; + + public const uint ERROR_IFD_FORMAT = 3221422083u; + + public const uint ERROR_IFD_FRAME_STRUCT = 3221422084u; + + public const uint ERROR_IFD_SWMISSING = 3489857537u; + + public const uint ERROR_IFD_UNDEFINED = 3489857538u; + + public const uint ERROR_IFD_WARNING = 3489882624u; + + public const uint ERROR_IFD_CARDTIMEOUT = 3489882864u; + + public const uint ERROR_IFD_CARDERROR = 3489882865u; + + public const uint ERROR_IFD_EXECUTEERROR = 3489883136u; + + public const uint ERROR_IFD_CMDLENERROR = 3489883904u; + + public const uint ERROR_IFD_HARDCONDITION = 3489884416u; + + public const uint ERROR_IFD_CMDCONDITION = 3489884549u; + + public const uint ERROR_IFD_PARAMERROR = 3489884806u; + + public const uint ERROR_IFD_PARAMRANGE = 3489884928u; + + public const uint ERROR_IFD_INSERROR = 3489885440u; + + public const uint ERROR_IFD_CLAERROR = 3489885696u; + + public const uint ERROR_IFD_SELFCHECK = 3489885952u; + + public const uint ERROR_IFD_AUTHENTICATE1 = 3758325761u; + + public const uint ERROR_IFD_AUTHENTICATE2 = 3758325762u; + + public const uint ERROR_IFD_SETUPAUTH = 3758325763u; + + public const uint WARNING_IFD_RETURN = 3758326016u; + + public const uint ERROR_STRM_SYSTEM = 2416181249u; + + public const uint ERROR_STRM_RESOURCE = 2416181250u; + + public const uint ERROR_STRM_AIDFILES = 2416181251u; + + public const uint ERROR_STRM_DEVICE = 2416181252u; + + public const uint ERROR_STRM_WIN32 = 2416181255u; + + public const uint ERROR_STRM_COLLISION = 2684616705u; + + public const uint ERROR_STRM_NOTOPEN = 2684616706u; + + public const uint ERROR_STRM_ALREADYOPEN = 2684616707u; + + public const uint ERROR_STRM_CURBUSY = 2684616708u; + + public const uint ERROR_STRM_UNSUPPORT = 2953052161u; + + public const uint ERROR_STRM_INVALID_ARG = 2953052162u; + + public const uint ERROR_STRM_BUFFER_SMALL = 2953052163u; + + public const uint ERROR_STRM_TIME_OUT = 3221487617u; + + public const uint ERROR_STRM_RECEIVE = 3221487618u; + + public const uint ERROR_STRM_SHORT_FRAME = 3221487619u; + + public const uint CARDTYPE_MIF = 2u; + + public const uint CARDTYPE_B = 3u; + + public const uint CARDTYPE_FEL = 4u; + + public const uint CARDTYPE_A = 6u; + + public const uint CARDTYPE_MORECARD = 2147483648u; + + public const int CARDSPEED_DEFAULT = 0; + + public const int CARDSPEED_2TIMES = 1; + + public const int CARDSPEED_4TIMES = 2; + + public const int CARDSPEED_8TIMES = 3; + + public const uint CARDSPEED_MAX = 2147483648u; + + public const int DEF_9600 = 9600; + + public const int DEF_14400 = 14400; + + public const int DEF_19200 = 19200; + + public const int DEF_28800 = 28800; + + public const int DEF_38400 = 38400; + + public const int DEF_57600 = 57600; + + public const int DEF_115200 = 115200; +} diff --git a/MLComponentSettings.xml b/MLComponentSettings.xml deleted file mode 100644 index 9a2ca06..0000000 --- a/MLComponentSettings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - false - - true - - false - メイリオ - 9 - true - false - 0 - diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..619b61b --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,17 @@ +using System.Diagnostics; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Runtime.Versioning; + +[assembly: AssemblyTitle("So-Managerプリンタ制御プログラム")] +[assembly: AssemblyDescription("タグ及びQRの近接を待ち受け、定期シールを印刷します")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("株式会社ソーリン")] +[assembly: AssemblyProduct("So-Managerプリンタ制御プログラム 2021年7月バージョン")] +[assembly: AssemblyCopyright("Copyright © 2021 so-rin Co.,Ltd.")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(false)] +[assembly: Guid("40c2b03c-3efc-4f9e-b942-71d4f94f5a37")] +[assembly: AssemblyFileVersion("2.0.2")] +[assembly: AssemblyVersion("1.0.0.0")] diff --git a/SoM_PrnControl.YoyakuServiceReference/BcScript.cs b/SoM_PrnControl.YoyakuServiceReference/BcScript.cs new file mode 100644 index 0000000..e3f7bff --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/BcScript.cs @@ -0,0 +1,54 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class BcScript : INotifyPropertyChanged +{ + private int indexField; + + private string bcScriptStrField; + + [XmlElement(Order = 0)] + public int Index + { + get + { + return indexField; + } + set + { + indexField = value; + RaisePropertyChanged("Index"); + } + } + + [XmlElement(Order = 1)] + public string BcScriptStr + { + get + { + return bcScriptStrField; + } + set + { + bcScriptStrField = value; + RaisePropertyChanged("BcScriptStr"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/CashOutAesFree.cs b/SoM_PrnControl.YoyakuServiceReference/CashOutAesFree.cs new file mode 100644 index 0000000..ca5154f --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/CashOutAesFree.cs @@ -0,0 +1,54 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class CashOutAesFree : INotifyPropertyChanged +{ + private string indexField; + + private string cashOutFreeStrField; + + [XmlElement(Order = 0)] + public string Index + { + get + { + return indexField; + } + set + { + indexField = value; + RaisePropertyChanged("Index"); + } + } + + [XmlElement(Order = 1)] + public string CashOutFreeStr + { + get + { + return cashOutFreeStrField; + } + set + { + cashOutFreeStrField = value; + RaisePropertyChanged("CashOutFreeStr"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/CashOutAesRequestRequest.cs b/SoM_PrnControl.YoyakuServiceReference/CashOutAesRequestRequest.cs new file mode 100644 index 0000000..7c19e5f --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/CashOutAesRequestRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "CashOutAesRequest", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class CashOutAesRequestRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamCashOutAesRequest inDataAes; + + public CashOutAesRequestRequest() + { + } + + public CashOutAesRequestRequest(WellnetSoapHeader WellnetSoapHeader, InParamCashOutAesRequest inDataAes) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inDataAes = inDataAes; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/CashOutAesRequestResponse.cs b/SoM_PrnControl.YoyakuServiceReference/CashOutAesRequestResponse.cs new file mode 100644 index 0000000..8c0be0b --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/CashOutAesRequestResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "CashOutAesRequestResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class CashOutAesRequestResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamCashOutRequest CashOutAesRequestResult; + + public CashOutAesRequestResponse() + { + } + + public CashOutAesRequestResponse(OutParamCashOutRequest CashOutAesRequestResult) + { + this.CashOutAesRequestResult = CashOutAesRequestResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/CashOutConsequenceRequest.cs b/SoM_PrnControl.YoyakuServiceReference/CashOutConsequenceRequest.cs new file mode 100644 index 0000000..bbc715a --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/CashOutConsequenceRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "CashOutConsequence", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class CashOutConsequenceRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamCashOutConsequence inData; + + public CashOutConsequenceRequest() + { + } + + public CashOutConsequenceRequest(WellnetSoapHeader WellnetSoapHeader, InParamCashOutConsequence inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/CashOutConsequenceResponse.cs b/SoM_PrnControl.YoyakuServiceReference/CashOutConsequenceResponse.cs new file mode 100644 index 0000000..b00f558 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/CashOutConsequenceResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "CashOutConsequenceResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class CashOutConsequenceResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamCashOutConsequence CashOutConsequenceResult; + + public CashOutConsequenceResponse() + { + } + + public CashOutConsequenceResponse(OutParamCashOutConsequence CashOutConsequenceResult) + { + this.CashOutConsequenceResult = CashOutConsequenceResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/CashOutFree.cs b/SoM_PrnControl.YoyakuServiceReference/CashOutFree.cs new file mode 100644 index 0000000..046bf62 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/CashOutFree.cs @@ -0,0 +1,54 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class CashOutFree : INotifyPropertyChanged +{ + private int indexField; + + private string cashOutFreeStrField; + + [XmlElement(Order = 0)] + public int Index + { + get + { + return indexField; + } + set + { + indexField = value; + RaisePropertyChanged("Index"); + } + } + + [XmlElement(Order = 1)] + public string CashOutFreeStr + { + get + { + return cashOutFreeStrField; + } + set + { + cashOutFreeStrField = value; + RaisePropertyChanged("CashOutFreeStr"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/CashOutRequestRequest.cs b/SoM_PrnControl.YoyakuServiceReference/CashOutRequestRequest.cs new file mode 100644 index 0000000..d9ebd03 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/CashOutRequestRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "CashOutRequest", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class CashOutRequestRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamCashOutRequest inData; + + public CashOutRequestRequest() + { + } + + public CashOutRequestRequest(WellnetSoapHeader WellnetSoapHeader, InParamCashOutRequest inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/CashOutRequestResponse.cs b/SoM_PrnControl.YoyakuServiceReference/CashOutRequestResponse.cs new file mode 100644 index 0000000..c9e0f21 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/CashOutRequestResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "CashOutRequestResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class CashOutRequestResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamCashOutRequest CashOutRequestResult; + + public CashOutRequestResponse() + { + } + + public CashOutRequestResponse(OutParamCashOutRequest CashOutRequestResult) + { + this.CashOutRequestResult = CashOutRequestResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamBarCode.cs b/SoM_PrnControl.YoyakuServiceReference/InParamBarCode.cs new file mode 100644 index 0000000..4db0939 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamBarCode.cs @@ -0,0 +1,278 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamBarCode : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string bcBarDataField; + + private string bcGetStartField; + + private string bcGetEndField; + + private string bcUseStartField; + + private string bcUseEndField; + + private string bcDataKubunField; + + private string bcNinsyoPasswordField; + + private BcScript[] bcScriptArrayField; + + private string bcTanmatsuIdField; + + private string bcUserIdField; + + private string bcUserAgentField; + + private string bcFreeBufferField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 2)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 3)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 4)] + public string BcBarData + { + get + { + return bcBarDataField; + } + set + { + bcBarDataField = value; + RaisePropertyChanged("BcBarData"); + } + } + + [XmlElement(Order = 5)] + public string BcGetStart + { + get + { + return bcGetStartField; + } + set + { + bcGetStartField = value; + RaisePropertyChanged("BcGetStart"); + } + } + + [XmlElement(Order = 6)] + public string BcGetEnd + { + get + { + return bcGetEndField; + } + set + { + bcGetEndField = value; + RaisePropertyChanged("BcGetEnd"); + } + } + + [XmlElement(Order = 7)] + public string BcUseStart + { + get + { + return bcUseStartField; + } + set + { + bcUseStartField = value; + RaisePropertyChanged("BcUseStart"); + } + } + + [XmlElement(Order = 8)] + public string BcUseEnd + { + get + { + return bcUseEndField; + } + set + { + bcUseEndField = value; + RaisePropertyChanged("BcUseEnd"); + } + } + + [XmlElement(Order = 9)] + public string BcDataKubun + { + get + { + return bcDataKubunField; + } + set + { + bcDataKubunField = value; + RaisePropertyChanged("BcDataKubun"); + } + } + + [XmlElement(Order = 10)] + public string BcNinsyoPassword + { + get + { + return bcNinsyoPasswordField; + } + set + { + bcNinsyoPasswordField = value; + RaisePropertyChanged("BcNinsyoPassword"); + } + } + + [XmlArray(Order = 11)] + public BcScript[] BcScriptArray + { + get + { + return bcScriptArrayField; + } + set + { + bcScriptArrayField = value; + RaisePropertyChanged("BcScriptArray"); + } + } + + [XmlElement(Order = 12)] + public string BcTanmatsuId + { + get + { + return bcTanmatsuIdField; + } + set + { + bcTanmatsuIdField = value; + RaisePropertyChanged("BcTanmatsuId"); + } + } + + [XmlElement(Order = 13)] + public string BcUserId + { + get + { + return bcUserIdField; + } + set + { + bcUserIdField = value; + RaisePropertyChanged("BcUserId"); + } + } + + [XmlElement(Order = 14)] + public string BcUserAgent + { + get + { + return bcUserAgentField; + } + set + { + bcUserAgentField = value; + RaisePropertyChanged("BcUserAgent"); + } + } + + [XmlElement(Order = 15)] + public string BcFreeBuffer + { + get + { + return bcFreeBufferField; + } + set + { + bcFreeBufferField = value; + RaisePropertyChanged("BcFreeBuffer"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamCashOutAesRequest.cs b/SoM_PrnControl.YoyakuServiceReference/InParamCashOutAesRequest.cs new file mode 100644 index 0000000..1168a8d --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamCashOutAesRequest.cs @@ -0,0 +1,294 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamCashOutAesRequest : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string coPayCodeField; + + private string coRecvNumField; + + private string coJigyosyaNoField; + + private string coAnkenNoField; + + private string coWcosPasswordField; + + private string coOpCodeField; + + private string coCorpCodeField; + + private string coTelField; + + private string coNameKanjiField; + + private string coTranLimitField; + + private string coTranAmountField; + + private string coReserveNumField; + + private string coMemberNumField; + + private string coNameKanaField; + + private CashOutAesFree[] coFreeArrayField; + + private CashOutAesFree[] coCFreeArrayField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string CoPayCode + { + get + { + return coPayCodeField; + } + set + { + coPayCodeField = value; + RaisePropertyChanged("CoPayCode"); + } + } + + [XmlElement(Order = 2)] + public string CoRecvNum + { + get + { + return coRecvNumField; + } + set + { + coRecvNumField = value; + RaisePropertyChanged("CoRecvNum"); + } + } + + [XmlElement(Order = 3)] + public string CoJigyosyaNo + { + get + { + return coJigyosyaNoField; + } + set + { + coJigyosyaNoField = value; + RaisePropertyChanged("CoJigyosyaNo"); + } + } + + [XmlElement(Order = 4)] + public string CoAnkenNo + { + get + { + return coAnkenNoField; + } + set + { + coAnkenNoField = value; + RaisePropertyChanged("CoAnkenNo"); + } + } + + [XmlElement(Order = 5)] + public string CoWcosPassword + { + get + { + return coWcosPasswordField; + } + set + { + coWcosPasswordField = value; + RaisePropertyChanged("CoWcosPassword"); + } + } + + [XmlElement(Order = 6)] + public string CoOpCode + { + get + { + return coOpCodeField; + } + set + { + coOpCodeField = value; + RaisePropertyChanged("CoOpCode"); + } + } + + [XmlElement(Order = 7)] + public string CoCorpCode + { + get + { + return coCorpCodeField; + } + set + { + coCorpCodeField = value; + RaisePropertyChanged("CoCorpCode"); + } + } + + [XmlElement(Order = 8)] + public string CoTel + { + get + { + return coTelField; + } + set + { + coTelField = value; + RaisePropertyChanged("CoTel"); + } + } + + [XmlElement(Order = 9)] + public string CoNameKanji + { + get + { + return coNameKanjiField; + } + set + { + coNameKanjiField = value; + RaisePropertyChanged("CoNameKanji"); + } + } + + [XmlElement(Order = 10)] + public string CoTranLimit + { + get + { + return coTranLimitField; + } + set + { + coTranLimitField = value; + RaisePropertyChanged("CoTranLimit"); + } + } + + [XmlElement(Order = 11)] + public string CoTranAmount + { + get + { + return coTranAmountField; + } + set + { + coTranAmountField = value; + RaisePropertyChanged("CoTranAmount"); + } + } + + [XmlElement(Order = 12)] + public string CoReserveNum + { + get + { + return coReserveNumField; + } + set + { + coReserveNumField = value; + RaisePropertyChanged("CoReserveNum"); + } + } + + [XmlElement(Order = 13)] + public string CoMemberNum + { + get + { + return coMemberNumField; + } + set + { + coMemberNumField = value; + RaisePropertyChanged("CoMemberNum"); + } + } + + [XmlElement(Order = 14)] + public string CoNameKana + { + get + { + return coNameKanaField; + } + set + { + coNameKanaField = value; + RaisePropertyChanged("CoNameKana"); + } + } + + [XmlArray(Order = 15)] + public CashOutAesFree[] CoFreeArray + { + get + { + return coFreeArrayField; + } + set + { + coFreeArrayField = value; + RaisePropertyChanged("CoFreeArray"); + } + } + + [XmlArray(Order = 16)] + public CashOutAesFree[] CoCFreeArray + { + get + { + return coCFreeArrayField; + } + set + { + coCFreeArrayField = value; + RaisePropertyChanged("CoCFreeArray"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamCashOutConsequence.cs b/SoM_PrnControl.YoyakuServiceReference/InParamCashOutConsequence.cs new file mode 100644 index 0000000..880449c --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamCashOutConsequence.cs @@ -0,0 +1,70 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamCashOutConsequence : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string coRecvNumField; + + private string coCorpCodeField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string CoRecvNum + { + get + { + return coRecvNumField; + } + set + { + coRecvNumField = value; + RaisePropertyChanged("CoRecvNum"); + } + } + + [XmlElement(Order = 2)] + public string CoCorpCode + { + get + { + return coCorpCodeField; + } + set + { + coCorpCodeField = value; + RaisePropertyChanged("CoCorpCode"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamCashOutRequest.cs b/SoM_PrnControl.YoyakuServiceReference/InParamCashOutRequest.cs new file mode 100644 index 0000000..d4d773d --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamCashOutRequest.cs @@ -0,0 +1,294 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamCashOutRequest : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string coPayCodeField; + + private string coRecvNumField; + + private string coJigyosyaNoField; + + private string coAnkenNoField; + + private string coWcosPasswordField; + + private string coOpCodeField; + + private string coCorpCodeField; + + private string coTelField; + + private string coNameKanjiField; + + private string coTranLimitField; + + private string coTranAmountField; + + private string coReserveNumField; + + private string coMemberNumField; + + private string coNameKanaField; + + private CashOutFree[] coFreeArrayField; + + private CashOutFree[] coCFreeArrayField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string CoPayCode + { + get + { + return coPayCodeField; + } + set + { + coPayCodeField = value; + RaisePropertyChanged("CoPayCode"); + } + } + + [XmlElement(Order = 2)] + public string CoRecvNum + { + get + { + return coRecvNumField; + } + set + { + coRecvNumField = value; + RaisePropertyChanged("CoRecvNum"); + } + } + + [XmlElement(Order = 3)] + public string CoJigyosyaNo + { + get + { + return coJigyosyaNoField; + } + set + { + coJigyosyaNoField = value; + RaisePropertyChanged("CoJigyosyaNo"); + } + } + + [XmlElement(Order = 4)] + public string CoAnkenNo + { + get + { + return coAnkenNoField; + } + set + { + coAnkenNoField = value; + RaisePropertyChanged("CoAnkenNo"); + } + } + + [XmlElement(Order = 5)] + public string CoWcosPassword + { + get + { + return coWcosPasswordField; + } + set + { + coWcosPasswordField = value; + RaisePropertyChanged("CoWcosPassword"); + } + } + + [XmlElement(Order = 6)] + public string CoOpCode + { + get + { + return coOpCodeField; + } + set + { + coOpCodeField = value; + RaisePropertyChanged("CoOpCode"); + } + } + + [XmlElement(Order = 7)] + public string CoCorpCode + { + get + { + return coCorpCodeField; + } + set + { + coCorpCodeField = value; + RaisePropertyChanged("CoCorpCode"); + } + } + + [XmlElement(Order = 8)] + public string CoTel + { + get + { + return coTelField; + } + set + { + coTelField = value; + RaisePropertyChanged("CoTel"); + } + } + + [XmlElement(Order = 9)] + public string CoNameKanji + { + get + { + return coNameKanjiField; + } + set + { + coNameKanjiField = value; + RaisePropertyChanged("CoNameKanji"); + } + } + + [XmlElement(Order = 10)] + public string CoTranLimit + { + get + { + return coTranLimitField; + } + set + { + coTranLimitField = value; + RaisePropertyChanged("CoTranLimit"); + } + } + + [XmlElement(Order = 11)] + public string CoTranAmount + { + get + { + return coTranAmountField; + } + set + { + coTranAmountField = value; + RaisePropertyChanged("CoTranAmount"); + } + } + + [XmlElement(Order = 12)] + public string CoReserveNum + { + get + { + return coReserveNumField; + } + set + { + coReserveNumField = value; + RaisePropertyChanged("CoReserveNum"); + } + } + + [XmlElement(Order = 13)] + public string CoMemberNum + { + get + { + return coMemberNumField; + } + set + { + coMemberNumField = value; + RaisePropertyChanged("CoMemberNum"); + } + } + + [XmlElement(Order = 14)] + public string CoNameKana + { + get + { + return coNameKanaField; + } + set + { + coNameKanaField = value; + RaisePropertyChanged("CoNameKana"); + } + } + + [XmlArray(Order = 15)] + public CashOutFree[] CoFreeArray + { + get + { + return coFreeArrayField; + } + set + { + coFreeArrayField = value; + RaisePropertyChanged("CoFreeArray"); + } + } + + [XmlArray(Order = 16)] + public CashOutFree[] CoCFreeArray + { + get + { + return coCFreeArrayField; + } + set + { + coCFreeArrayField = value; + RaisePropertyChanged("CoCFreeArray"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamKeizokukakinRequest.cs b/SoM_PrnControl.YoyakuServiceReference/InParamKeizokukakinRequest.cs new file mode 100644 index 0000000..fa108c9 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamKeizokukakinRequest.cs @@ -0,0 +1,230 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamKeizokukakinRequest : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string hashValueField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string syunoOpCodeField; + + private string syunoPayAmountField; + + private string syunoMemberNumField; + + private string autoSalesExecutionDateField; + + private string syouhinIdField; + + private string reqDateTimeField; + + private SyunoFree[] syunoFreeArrayField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string HashValue + { + get + { + return hashValueField; + } + set + { + hashValueField = value; + RaisePropertyChanged("HashValue"); + } + } + + [XmlElement(Order = 2)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 3)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 4)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 5)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 6)] + public string SyunoOpCode + { + get + { + return syunoOpCodeField; + } + set + { + syunoOpCodeField = value; + RaisePropertyChanged("SyunoOpCode"); + } + } + + [XmlElement(Order = 7)] + public string SyunoPayAmount + { + get + { + return syunoPayAmountField; + } + set + { + syunoPayAmountField = value; + RaisePropertyChanged("SyunoPayAmount"); + } + } + + [XmlElement(Order = 8)] + public string SyunoMemberNum + { + get + { + return syunoMemberNumField; + } + set + { + syunoMemberNumField = value; + RaisePropertyChanged("SyunoMemberNum"); + } + } + + [XmlElement(Order = 9)] + public string AutoSalesExecutionDate + { + get + { + return autoSalesExecutionDateField; + } + set + { + autoSalesExecutionDateField = value; + RaisePropertyChanged("AutoSalesExecutionDate"); + } + } + + [XmlElement(Order = 10)] + public string SyouhinId + { + get + { + return syouhinIdField; + } + set + { + syouhinIdField = value; + RaisePropertyChanged("SyouhinId"); + } + } + + [XmlElement(Order = 11)] + public string ReqDateTime + { + get + { + return reqDateTimeField; + } + set + { + reqDateTimeField = value; + RaisePropertyChanged("ReqDateTime"); + } + } + + [XmlArray(Order = 12)] + public SyunoFree[] SyunoFreeArray + { + get + { + return syunoFreeArrayField; + } + set + { + syunoFreeArrayField = value; + RaisePropertyChanged("SyunoFreeArray"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamNyukin.cs b/SoM_PrnControl.YoyakuServiceReference/InParamNyukin.cs new file mode 100644 index 0000000..bcb6661 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamNyukin.cs @@ -0,0 +1,86 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamNyukin : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string nyukinPayCodeField; + + private string nyukinRecvNumField; + + private string nyukinCorpCodeField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string NyukinPayCode + { + get + { + return nyukinPayCodeField; + } + set + { + nyukinPayCodeField = value; + RaisePropertyChanged("NyukinPayCode"); + } + } + + [XmlElement(Order = 2)] + public string NyukinRecvNum + { + get + { + return nyukinRecvNumField; + } + set + { + nyukinRecvNumField = value; + RaisePropertyChanged("NyukinRecvNum"); + } + } + + [XmlElement(Order = 3)] + public string NyukinCorpCode + { + get + { + return nyukinCorpCodeField; + } + set + { + nyukinCorpCodeField = value; + RaisePropertyChanged("NyukinCorpCode"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamSyuno.cs b/SoM_PrnControl.YoyakuServiceReference/InParamSyuno.cs new file mode 100644 index 0000000..431f178 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamSyuno.cs @@ -0,0 +1,278 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamSyuno : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string syunoOpCodeField; + + private string syunoCorpCodeField; + + private string syunoTelField; + + private string syunoNameKanjiField; + + private string syunoPayLimitField; + + private string syunoPayAmountField; + + private string syunoReserveNumField; + + private string syunoMemberNumField; + + private string syunoNameKanaField; + + private SyunoFree[] syunoFreeArrayField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 2)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 3)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 4)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 5)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 6)] + public string SyunoOpCode + { + get + { + return syunoOpCodeField; + } + set + { + syunoOpCodeField = value; + RaisePropertyChanged("SyunoOpCode"); + } + } + + [XmlElement(Order = 7)] + public string SyunoCorpCode + { + get + { + return syunoCorpCodeField; + } + set + { + syunoCorpCodeField = value; + RaisePropertyChanged("SyunoCorpCode"); + } + } + + [XmlElement(Order = 8)] + public string SyunoTel + { + get + { + return syunoTelField; + } + set + { + syunoTelField = value; + RaisePropertyChanged("SyunoTel"); + } + } + + [XmlElement(Order = 9)] + public string SyunoNameKanji + { + get + { + return syunoNameKanjiField; + } + set + { + syunoNameKanjiField = value; + RaisePropertyChanged("SyunoNameKanji"); + } + } + + [XmlElement(Order = 10)] + public string SyunoPayLimit + { + get + { + return syunoPayLimitField; + } + set + { + syunoPayLimitField = value; + RaisePropertyChanged("SyunoPayLimit"); + } + } + + [XmlElement(Order = 11)] + public string SyunoPayAmount + { + get + { + return syunoPayAmountField; + } + set + { + syunoPayAmountField = value; + RaisePropertyChanged("SyunoPayAmount"); + } + } + + [XmlElement(Order = 12)] + public string SyunoReserveNum + { + get + { + return syunoReserveNumField; + } + set + { + syunoReserveNumField = value; + RaisePropertyChanged("SyunoReserveNum"); + } + } + + [XmlElement(Order = 13)] + public string SyunoMemberNum + { + get + { + return syunoMemberNumField; + } + set + { + syunoMemberNumField = value; + RaisePropertyChanged("SyunoMemberNum"); + } + } + + [XmlElement(Order = 14)] + public string SyunoNameKana + { + get + { + return syunoNameKanaField; + } + set + { + syunoNameKanaField = value; + RaisePropertyChanged("SyunoNameKana"); + } + } + + [XmlArray(Order = 15)] + public SyunoFree[] SyunoFreeArray + { + get + { + return syunoFreeArrayField; + } + set + { + syunoFreeArrayField = value; + RaisePropertyChanged("SyunoFreeArray"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamSyunoBarCode.cs b/SoM_PrnControl.YoyakuServiceReference/InParamSyunoBarCode.cs new file mode 100644 index 0000000..27e1e04 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamSyunoBarCode.cs @@ -0,0 +1,375 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[XmlInclude(typeof(InParamSyunoETicket))] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamSyunoBarCode : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string syunoOpCodeField; + + private string syunoCorpCodeField; + + private string syunoTelField; + + private string syunoNameKanjiField; + + private string syunoPayLimitField; + + private string syunoPayAmountField; + + private string syunoReserveNumField; + + private string syunoMemberNumField; + + private string syunoNameKanaField; + + private SyunoFree[] syunoFreeArrayField; + + private string bcNinsyoPasswordField; + + private BcScript[] bcScriptArrayField; + + private string bcTanmatsuIdField; + + private string bcUserIdField; + + private string bcUserAgentField; + + private string bcFreeBufferField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 2)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 3)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 4)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 5)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 6)] + public string SyunoOpCode + { + get + { + return syunoOpCodeField; + } + set + { + syunoOpCodeField = value; + RaisePropertyChanged("SyunoOpCode"); + } + } + + [XmlElement(Order = 7)] + public string SyunoCorpCode + { + get + { + return syunoCorpCodeField; + } + set + { + syunoCorpCodeField = value; + RaisePropertyChanged("SyunoCorpCode"); + } + } + + [XmlElement(Order = 8)] + public string SyunoTel + { + get + { + return syunoTelField; + } + set + { + syunoTelField = value; + RaisePropertyChanged("SyunoTel"); + } + } + + [XmlElement(Order = 9)] + public string SyunoNameKanji + { + get + { + return syunoNameKanjiField; + } + set + { + syunoNameKanjiField = value; + RaisePropertyChanged("SyunoNameKanji"); + } + } + + [XmlElement(Order = 10)] + public string SyunoPayLimit + { + get + { + return syunoPayLimitField; + } + set + { + syunoPayLimitField = value; + RaisePropertyChanged("SyunoPayLimit"); + } + } + + [XmlElement(Order = 11)] + public string SyunoPayAmount + { + get + { + return syunoPayAmountField; + } + set + { + syunoPayAmountField = value; + RaisePropertyChanged("SyunoPayAmount"); + } + } + + [XmlElement(Order = 12)] + public string SyunoReserveNum + { + get + { + return syunoReserveNumField; + } + set + { + syunoReserveNumField = value; + RaisePropertyChanged("SyunoReserveNum"); + } + } + + [XmlElement(Order = 13)] + public string SyunoMemberNum + { + get + { + return syunoMemberNumField; + } + set + { + syunoMemberNumField = value; + RaisePropertyChanged("SyunoMemberNum"); + } + } + + [XmlElement(Order = 14)] + public string SyunoNameKana + { + get + { + return syunoNameKanaField; + } + set + { + syunoNameKanaField = value; + RaisePropertyChanged("SyunoNameKana"); + } + } + + [XmlArray(Order = 15)] + public SyunoFree[] SyunoFreeArray + { + get + { + return syunoFreeArrayField; + } + set + { + syunoFreeArrayField = value; + RaisePropertyChanged("SyunoFreeArray"); + } + } + + [XmlElement(Order = 16)] + public string BcNinsyoPassword + { + get + { + return bcNinsyoPasswordField; + } + set + { + bcNinsyoPasswordField = value; + RaisePropertyChanged("BcNinsyoPassword"); + } + } + + [XmlArray(Order = 17)] + public BcScript[] BcScriptArray + { + get + { + return bcScriptArrayField; + } + set + { + bcScriptArrayField = value; + RaisePropertyChanged("BcScriptArray"); + } + } + + [XmlElement(Order = 18)] + public string BcTanmatsuId + { + get + { + return bcTanmatsuIdField; + } + set + { + bcTanmatsuIdField = value; + RaisePropertyChanged("BcTanmatsuId"); + } + } + + [XmlElement(Order = 19)] + public string BcUserId + { + get + { + return bcUserIdField; + } + set + { + bcUserIdField = value; + RaisePropertyChanged("BcUserId"); + } + } + + [XmlElement(Order = 20)] + public string BcUserAgent + { + get + { + return bcUserAgentField; + } + set + { + bcUserAgentField = value; + RaisePropertyChanged("BcUserAgent"); + } + } + + [XmlElement(Order = 21)] + public string BcFreeBuffer + { + get + { + return bcFreeBufferField; + } + set + { + bcFreeBufferField = value; + RaisePropertyChanged("BcFreeBuffer"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamSyunoETicket.cs b/SoM_PrnControl.YoyakuServiceReference/InParamSyunoETicket.cs new file mode 100644 index 0000000..057c0c1 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamSyunoETicket.cs @@ -0,0 +1,16 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamSyunoETicket : InParamSyunoBarCode +{ +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamSyunoPlusBarCode.cs b/SoM_PrnControl.YoyakuServiceReference/InParamSyunoPlusBarCode.cs new file mode 100644 index 0000000..648f0f8 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamSyunoPlusBarCode.cs @@ -0,0 +1,470 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamSyunoPlusBarCode : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string syunoOpCodeField; + + private string syunoCorpCodeField; + + private string syunoTelField; + + private string syunoNameKanjiField; + + private string syunoPayLimitField; + + private string syunoPayAmountField; + + private string bcBarDataField; + + private string bcGetStartField; + + private string bcGetEndField; + + private string bcUseStartField; + + private string bcUseEndField; + + private string bcDataKubunField; + + private string syunoReserveNumField; + + private string syunoMemberNumField; + + private string syunoNameKanaField; + + private SyunoFree[] syunoFreeArrayField; + + private string bcNinsyoPasswordField; + + private BcScript[] bcScriptArrayField; + + private string bcTanmatsuIdField; + + private string bcUserIdField; + + private string bcUserAgentField; + + private string bcFreeBufferField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 2)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 3)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 4)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 5)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 6)] + public string SyunoOpCode + { + get + { + return syunoOpCodeField; + } + set + { + syunoOpCodeField = value; + RaisePropertyChanged("SyunoOpCode"); + } + } + + [XmlElement(Order = 7)] + public string SyunoCorpCode + { + get + { + return syunoCorpCodeField; + } + set + { + syunoCorpCodeField = value; + RaisePropertyChanged("SyunoCorpCode"); + } + } + + [XmlElement(Order = 8)] + public string SyunoTel + { + get + { + return syunoTelField; + } + set + { + syunoTelField = value; + RaisePropertyChanged("SyunoTel"); + } + } + + [XmlElement(Order = 9)] + public string SyunoNameKanji + { + get + { + return syunoNameKanjiField; + } + set + { + syunoNameKanjiField = value; + RaisePropertyChanged("SyunoNameKanji"); + } + } + + [XmlElement(Order = 10)] + public string SyunoPayLimit + { + get + { + return syunoPayLimitField; + } + set + { + syunoPayLimitField = value; + RaisePropertyChanged("SyunoPayLimit"); + } + } + + [XmlElement(Order = 11)] + public string SyunoPayAmount + { + get + { + return syunoPayAmountField; + } + set + { + syunoPayAmountField = value; + RaisePropertyChanged("SyunoPayAmount"); + } + } + + [XmlElement(Order = 12)] + public string BcBarData + { + get + { + return bcBarDataField; + } + set + { + bcBarDataField = value; + RaisePropertyChanged("BcBarData"); + } + } + + [XmlElement(Order = 13)] + public string BcGetStart + { + get + { + return bcGetStartField; + } + set + { + bcGetStartField = value; + RaisePropertyChanged("BcGetStart"); + } + } + + [XmlElement(Order = 14)] + public string BcGetEnd + { + get + { + return bcGetEndField; + } + set + { + bcGetEndField = value; + RaisePropertyChanged("BcGetEnd"); + } + } + + [XmlElement(Order = 15)] + public string BcUseStart + { + get + { + return bcUseStartField; + } + set + { + bcUseStartField = value; + RaisePropertyChanged("BcUseStart"); + } + } + + [XmlElement(Order = 16)] + public string BcUseEnd + { + get + { + return bcUseEndField; + } + set + { + bcUseEndField = value; + RaisePropertyChanged("BcUseEnd"); + } + } + + [XmlElement(Order = 17)] + public string BcDataKubun + { + get + { + return bcDataKubunField; + } + set + { + bcDataKubunField = value; + RaisePropertyChanged("BcDataKubun"); + } + } + + [XmlElement(Order = 18)] + public string SyunoReserveNum + { + get + { + return syunoReserveNumField; + } + set + { + syunoReserveNumField = value; + RaisePropertyChanged("SyunoReserveNum"); + } + } + + [XmlElement(Order = 19)] + public string SyunoMemberNum + { + get + { + return syunoMemberNumField; + } + set + { + syunoMemberNumField = value; + RaisePropertyChanged("SyunoMemberNum"); + } + } + + [XmlElement(Order = 20)] + public string SyunoNameKana + { + get + { + return syunoNameKanaField; + } + set + { + syunoNameKanaField = value; + RaisePropertyChanged("SyunoNameKana"); + } + } + + [XmlArray(Order = 21)] + public SyunoFree[] SyunoFreeArray + { + get + { + return syunoFreeArrayField; + } + set + { + syunoFreeArrayField = value; + RaisePropertyChanged("SyunoFreeArray"); + } + } + + [XmlElement(Order = 22)] + public string BcNinsyoPassword + { + get + { + return bcNinsyoPasswordField; + } + set + { + bcNinsyoPasswordField = value; + RaisePropertyChanged("BcNinsyoPassword"); + } + } + + [XmlArray(Order = 23)] + public BcScript[] BcScriptArray + { + get + { + return bcScriptArrayField; + } + set + { + bcScriptArrayField = value; + RaisePropertyChanged("BcScriptArray"); + } + } + + [XmlElement(Order = 24)] + public string BcTanmatsuId + { + get + { + return bcTanmatsuIdField; + } + set + { + bcTanmatsuIdField = value; + RaisePropertyChanged("BcTanmatsuId"); + } + } + + [XmlElement(Order = 25)] + public string BcUserId + { + get + { + return bcUserIdField; + } + set + { + bcUserIdField = value; + RaisePropertyChanged("BcUserId"); + } + } + + [XmlElement(Order = 26)] + public string BcUserAgent + { + get + { + return bcUserAgentField; + } + set + { + bcUserAgentField = value; + RaisePropertyChanged("BcUserAgent"); + } + } + + [XmlElement(Order = 27)] + public string BcFreeBuffer + { + get + { + return bcFreeBufferField; + } + set + { + bcFreeBufferField = value; + RaisePropertyChanged("BcFreeBuffer"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/InParamTomeoki.cs b/SoM_PrnControl.YoyakuServiceReference/InParamTomeoki.cs new file mode 100644 index 0000000..e56c0f9 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/InParamTomeoki.cs @@ -0,0 +1,278 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class InParamTomeoki : INotifyPropertyChanged +{ + private string dataSyubetsuField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string syunoOpCodeField; + + private string syunoCorpCodeField; + + private string syunoTelField; + + private string syunoNameKanjiField; + + private string syunoPayLimitField; + + private string syunoPayAmountField; + + private string syunoReserveNumField; + + private string syunoMemberNumField; + + private string syunoNameKanaField; + + private SyunoFree[] syunoFreeArrayField; + + [XmlElement(Order = 0)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 1)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 2)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 3)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 4)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 5)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 6)] + public string SyunoOpCode + { + get + { + return syunoOpCodeField; + } + set + { + syunoOpCodeField = value; + RaisePropertyChanged("SyunoOpCode"); + } + } + + [XmlElement(Order = 7)] + public string SyunoCorpCode + { + get + { + return syunoCorpCodeField; + } + set + { + syunoCorpCodeField = value; + RaisePropertyChanged("SyunoCorpCode"); + } + } + + [XmlElement(Order = 8)] + public string SyunoTel + { + get + { + return syunoTelField; + } + set + { + syunoTelField = value; + RaisePropertyChanged("SyunoTel"); + } + } + + [XmlElement(Order = 9)] + public string SyunoNameKanji + { + get + { + return syunoNameKanjiField; + } + set + { + syunoNameKanjiField = value; + RaisePropertyChanged("SyunoNameKanji"); + } + } + + [XmlElement(Order = 10)] + public string SyunoPayLimit + { + get + { + return syunoPayLimitField; + } + set + { + syunoPayLimitField = value; + RaisePropertyChanged("SyunoPayLimit"); + } + } + + [XmlElement(Order = 11)] + public string SyunoPayAmount + { + get + { + return syunoPayAmountField; + } + set + { + syunoPayAmountField = value; + RaisePropertyChanged("SyunoPayAmount"); + } + } + + [XmlElement(Order = 12)] + public string SyunoReserveNum + { + get + { + return syunoReserveNumField; + } + set + { + syunoReserveNumField = value; + RaisePropertyChanged("SyunoReserveNum"); + } + } + + [XmlElement(Order = 13)] + public string SyunoMemberNum + { + get + { + return syunoMemberNumField; + } + set + { + syunoMemberNumField = value; + RaisePropertyChanged("SyunoMemberNum"); + } + } + + [XmlElement(Order = 14)] + public string SyunoNameKana + { + get + { + return syunoNameKanaField; + } + set + { + syunoNameKanaField = value; + RaisePropertyChanged("SyunoNameKana"); + } + } + + [XmlArray(Order = 15)] + public SyunoFree[] SyunoFreeArray + { + get + { + return syunoFreeArrayField; + } + set + { + syunoFreeArrayField = value; + RaisePropertyChanged("SyunoFreeArray"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamBarCode.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamBarCode.cs new file mode 100644 index 0000000..b52eda3 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamBarCode.cs @@ -0,0 +1,198 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamBarCode : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string kKessaiNoField; + + private string freeAreaField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string bcServiceKeyField; + + private string bcUrlField; + + private string bcBarDataField; + + private string bcSyoriDateField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string KKessaiNo + { + get + { + return kKessaiNoField; + } + set + { + kKessaiNoField = value; + RaisePropertyChanged("KKessaiNo"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 5)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 6)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 7)] + public string BcServiceKey + { + get + { + return bcServiceKeyField; + } + set + { + bcServiceKeyField = value; + RaisePropertyChanged("BcServiceKey"); + } + } + + [XmlElement(Order = 8)] + public string BcUrl + { + get + { + return bcUrlField; + } + set + { + bcUrlField = value; + RaisePropertyChanged("BcUrl"); + } + } + + [XmlElement(Order = 9)] + public string BcBarData + { + get + { + return bcBarDataField; + } + set + { + bcBarDataField = value; + RaisePropertyChanged("BcBarData"); + } + } + + [XmlElement(Order = 10)] + public string BcSyoriDate + { + get + { + return bcSyoriDateField; + } + set + { + bcSyoriDateField = value; + RaisePropertyChanged("BcSyoriDate"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamCashOutConsequence.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamCashOutConsequence.cs new file mode 100644 index 0000000..4333ce3 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamCashOutConsequence.cs @@ -0,0 +1,230 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamCashOutConsequence : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string coYoyakuNumField; + + private string freeAreaField; + + private string coRecvNumField; + + private string coCorpCodeField; + + private string coReqDateField; + + private string coReqTypeField; + + private string coShopCodeField; + + private string coMmsNumberField; + + private string coCompDateField; + + private string coTranAmountField; + + private string coInshiFlagField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string CoYoyakuNum + { + get + { + return coYoyakuNumField; + } + set + { + coYoyakuNumField = value; + RaisePropertyChanged("CoYoyakuNum"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string CoRecvNum + { + get + { + return coRecvNumField; + } + set + { + coRecvNumField = value; + RaisePropertyChanged("CoRecvNum"); + } + } + + [XmlElement(Order = 5)] + public string CoCorpCode + { + get + { + return coCorpCodeField; + } + set + { + coCorpCodeField = value; + RaisePropertyChanged("CoCorpCode"); + } + } + + [XmlElement(Order = 6)] + public string CoReqDate + { + get + { + return coReqDateField; + } + set + { + coReqDateField = value; + RaisePropertyChanged("CoReqDate"); + } + } + + [XmlElement(Order = 7)] + public string CoReqType + { + get + { + return coReqTypeField; + } + set + { + coReqTypeField = value; + RaisePropertyChanged("CoReqType"); + } + } + + [XmlElement(Order = 8)] + public string CoShopCode + { + get + { + return coShopCodeField; + } + set + { + coShopCodeField = value; + RaisePropertyChanged("CoShopCode"); + } + } + + [XmlElement(Order = 9)] + public string CoMmsNumber + { + get + { + return coMmsNumberField; + } + set + { + coMmsNumberField = value; + RaisePropertyChanged("CoMmsNumber"); + } + } + + [XmlElement(Order = 10)] + public string CoCompDate + { + get + { + return coCompDateField; + } + set + { + coCompDateField = value; + RaisePropertyChanged("CoCompDate"); + } + } + + [XmlElement(Order = 11)] + public string CoTranAmount + { + get + { + return coTranAmountField; + } + set + { + coTranAmountField = value; + RaisePropertyChanged("CoTranAmount"); + } + } + + [XmlElement(Order = 12)] + public string CoInshiFlag + { + get + { + return coInshiFlagField; + } + set + { + coInshiFlagField = value; + RaisePropertyChanged("CoInshiFlag"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamCashOutRequest.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamCashOutRequest.cs new file mode 100644 index 0000000..44163a4 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamCashOutRequest.cs @@ -0,0 +1,134 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamCashOutRequest : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string coYoyakuNumField; + + private string coWcosIdField; + + private string coRecvNumField; + + private string coWcosPasswordField; + + private string coUrlField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string CoYoyakuNum + { + get + { + return coYoyakuNumField; + } + set + { + coYoyakuNumField = value; + RaisePropertyChanged("CoYoyakuNum"); + } + } + + [XmlElement(Order = 3)] + public string CoWcosId + { + get + { + return coWcosIdField; + } + set + { + coWcosIdField = value; + RaisePropertyChanged("CoWcosId"); + } + } + + [XmlElement(Order = 4)] + public string CoRecvNum + { + get + { + return coRecvNumField; + } + set + { + coRecvNumField = value; + RaisePropertyChanged("CoRecvNum"); + } + } + + [XmlElement(Order = 5)] + public string CoWcosPassword + { + get + { + return coWcosPasswordField; + } + set + { + coWcosPasswordField = value; + RaisePropertyChanged("CoWcosPassword"); + } + } + + [XmlElement(Order = 6)] + public string CoUrl + { + get + { + return coUrlField; + } + set + { + coUrlField = value; + RaisePropertyChanged("CoUrl"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamKeizokukakinRequest.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamKeizokukakinRequest.cs new file mode 100644 index 0000000..5d58281 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamKeizokukakinRequest.cs @@ -0,0 +1,166 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamKeizokukakinRequest : INotifyPropertyChanged +{ + private string resultField; + + private string ccTorihikiIdField; + + private string cipherCcTorihikiIdField; + + private string freeAreaField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcSyoriDateField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string CcTorihikiId + { + get + { + return ccTorihikiIdField; + } + set + { + ccTorihikiIdField = value; + RaisePropertyChanged("CcTorihikiId"); + } + } + + [XmlElement(Order = 2)] + public string CipherCcTorihikiId + { + get + { + return cipherCcTorihikiIdField; + } + set + { + cipherCcTorihikiIdField = value; + RaisePropertyChanged("CipherCcTorihikiId"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 5)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 6)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 7)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 8)] + public string BcSyoriDate + { + get + { + return bcSyoriDateField; + } + set + { + bcSyoriDateField = value; + RaisePropertyChanged("BcSyoriDate"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamNyukin.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamNyukin.cs new file mode 100644 index 0000000..f286e6d --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamNyukin.cs @@ -0,0 +1,246 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamNyukin : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string kKessaiNoField; + + private string freeAreaField; + + private string nyukinPayCodeField; + + private string nyukinRecvNumField; + + private string nyukinCorpCodeField; + + private string nyukinReferDateField; + + private string nyukinCvsCodeField; + + private string nyukinShopCodeField; + + private string nyukinMmsNumberField; + + private string nyukinPaidDateField; + + private string nyukinPaidAmountField; + + private string nyukinInshiFlagField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string KKessaiNo + { + get + { + return kKessaiNoField; + } + set + { + kKessaiNoField = value; + RaisePropertyChanged("KKessaiNo"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string NyukinPayCode + { + get + { + return nyukinPayCodeField; + } + set + { + nyukinPayCodeField = value; + RaisePropertyChanged("NyukinPayCode"); + } + } + + [XmlElement(Order = 5)] + public string NyukinRecvNum + { + get + { + return nyukinRecvNumField; + } + set + { + nyukinRecvNumField = value; + RaisePropertyChanged("NyukinRecvNum"); + } + } + + [XmlElement(Order = 6)] + public string NyukinCorpCode + { + get + { + return nyukinCorpCodeField; + } + set + { + nyukinCorpCodeField = value; + RaisePropertyChanged("NyukinCorpCode"); + } + } + + [XmlElement(Order = 7)] + public string NyukinReferDate + { + get + { + return nyukinReferDateField; + } + set + { + nyukinReferDateField = value; + RaisePropertyChanged("NyukinReferDate"); + } + } + + [XmlElement(Order = 8)] + public string NyukinCvsCode + { + get + { + return nyukinCvsCodeField; + } + set + { + nyukinCvsCodeField = value; + RaisePropertyChanged("NyukinCvsCode"); + } + } + + [XmlElement(Order = 9)] + public string NyukinShopCode + { + get + { + return nyukinShopCodeField; + } + set + { + nyukinShopCodeField = value; + RaisePropertyChanged("NyukinShopCode"); + } + } + + [XmlElement(Order = 10)] + public string NyukinMmsNumber + { + get + { + return nyukinMmsNumberField; + } + set + { + nyukinMmsNumberField = value; + RaisePropertyChanged("NyukinMmsNumber"); + } + } + + [XmlElement(Order = 11)] + public string NyukinPaidDate + { + get + { + return nyukinPaidDateField; + } + set + { + nyukinPaidDateField = value; + RaisePropertyChanged("NyukinPaidDate"); + } + } + + [XmlElement(Order = 12)] + public string NyukinPaidAmount + { + get + { + return nyukinPaidAmountField; + } + set + { + nyukinPaidAmountField = value; + RaisePropertyChanged("NyukinPaidAmount"); + } + } + + [XmlElement(Order = 13)] + public string NyukinInshiFlag + { + get + { + return nyukinInshiFlagField; + } + set + { + nyukinInshiFlagField = value; + RaisePropertyChanged("NyukinInshiFlag"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamSyuno.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamSyuno.cs new file mode 100644 index 0000000..8665923 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamSyuno.cs @@ -0,0 +1,134 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamSyuno : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string kKessaiNoField; + + private string freeAreaField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string syunoMMSNoField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string KKessaiNo + { + get + { + return kKessaiNoField; + } + set + { + kKessaiNoField = value; + RaisePropertyChanged("KKessaiNo"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 5)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 6)] + public string SyunoMMSNo + { + get + { + return syunoMMSNoField; + } + set + { + syunoMMSNoField = value; + RaisePropertyChanged("SyunoMMSNo"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoBarCode.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoBarCode.cs new file mode 100644 index 0000000..d60554d --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoBarCode.cs @@ -0,0 +1,246 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamSyunoBarCode : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string kKessaiNoField; + + private string freeAreaField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string syunoMMSNoField; + + private string bcServiceKeyField; + + private string bcUrlField; + + private string bcBarDataField; + + private string bcSyoriDateField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string KKessaiNo + { + get + { + return kKessaiNoField; + } + set + { + kKessaiNoField = value; + RaisePropertyChanged("KKessaiNo"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 5)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 6)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 7)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 8)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 9)] + public string SyunoMMSNo + { + get + { + return syunoMMSNoField; + } + set + { + syunoMMSNoField = value; + RaisePropertyChanged("SyunoMMSNo"); + } + } + + [XmlElement(Order = 10)] + public string BcServiceKey + { + get + { + return bcServiceKeyField; + } + set + { + bcServiceKeyField = value; + RaisePropertyChanged("BcServiceKey"); + } + } + + [XmlElement(Order = 11)] + public string BcUrl + { + get + { + return bcUrlField; + } + set + { + bcUrlField = value; + RaisePropertyChanged("BcUrl"); + } + } + + [XmlElement(Order = 12)] + public string BcBarData + { + get + { + return bcBarDataField; + } + set + { + bcBarDataField = value; + RaisePropertyChanged("BcBarData"); + } + } + + [XmlElement(Order = 13)] + public string BcSyoriDate + { + get + { + return bcSyoriDateField; + } + set + { + bcSyoriDateField = value; + RaisePropertyChanged("BcSyoriDate"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoETicket.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoETicket.cs new file mode 100644 index 0000000..53e093e --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoETicket.cs @@ -0,0 +1,198 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamSyunoETicket : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string kKessaiNoField; + + private string freeAreaField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string syunoMMSNoField; + + private string bcSyoriDateField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string KKessaiNo + { + get + { + return kKessaiNoField; + } + set + { + kKessaiNoField = value; + RaisePropertyChanged("KKessaiNo"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 5)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 6)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 7)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 8)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 9)] + public string SyunoMMSNo + { + get + { + return syunoMMSNoField; + } + set + { + syunoMMSNoField = value; + RaisePropertyChanged("SyunoMMSNo"); + } + } + + [XmlElement(Order = 10)] + public string BcSyoriDate + { + get + { + return bcSyoriDateField; + } + set + { + bcSyoriDateField = value; + RaisePropertyChanged("BcSyoriDate"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoPlusBarCode.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoPlusBarCode.cs new file mode 100644 index 0000000..0b0889a --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoPlusBarCode.cs @@ -0,0 +1,246 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamSyunoPlusBarCode : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string kKessaiNoField; + + private string freeAreaField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string syunoMMSNoField; + + private string bcServiceKeyField; + + private string bcUrlField; + + private string bcBarDataField; + + private string bcSyoriDateField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string KKessaiNo + { + get + { + return kKessaiNoField; + } + set + { + kKessaiNoField = value; + RaisePropertyChanged("KKessaiNo"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 5)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 6)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 7)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 8)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 9)] + public string SyunoMMSNo + { + get + { + return syunoMMSNoField; + } + set + { + syunoMMSNoField = value; + RaisePropertyChanged("SyunoMMSNo"); + } + } + + [XmlElement(Order = 10)] + public string BcServiceKey + { + get + { + return bcServiceKeyField; + } + set + { + bcServiceKeyField = value; + RaisePropertyChanged("BcServiceKey"); + } + } + + [XmlElement(Order = 11)] + public string BcUrl + { + get + { + return bcUrlField; + } + set + { + bcUrlField = value; + RaisePropertyChanged("BcUrl"); + } + } + + [XmlElement(Order = 12)] + public string BcBarData + { + get + { + return bcBarDataField; + } + set + { + bcBarDataField = value; + RaisePropertyChanged("BcBarData"); + } + } + + [XmlElement(Order = 13)] + public string BcSyoriDate + { + get + { + return bcSyoriDateField; + } + set + { + bcSyoriDateField = value; + RaisePropertyChanged("BcSyoriDate"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoQr.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoQr.cs new file mode 100644 index 0000000..7b957d3 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamSyunoQr.cs @@ -0,0 +1,278 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamSyunoQr : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string kKessaiNoField; + + private string freeAreaField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string bcJigyosyaNoField; + + private string bcAnkenNoField; + + private string bcNinsyoKeyField; + + private string syunoMMSNoField; + + private string bcServiceKeyField; + + private string bcUrlField; + + private string bcBarDataField; + + private string bcSyoriDateField; + + private string loppippi_QrField; + + private string famiport_QrField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string KKessaiNo + { + get + { + return kKessaiNoField; + } + set + { + kKessaiNoField = value; + RaisePropertyChanged("KKessaiNo"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 5)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 6)] + public string BcJigyosyaNo + { + get + { + return bcJigyosyaNoField; + } + set + { + bcJigyosyaNoField = value; + RaisePropertyChanged("BcJigyosyaNo"); + } + } + + [XmlElement(Order = 7)] + public string BcAnkenNo + { + get + { + return bcAnkenNoField; + } + set + { + bcAnkenNoField = value; + RaisePropertyChanged("BcAnkenNo"); + } + } + + [XmlElement(Order = 8)] + public string BcNinsyoKey + { + get + { + return bcNinsyoKeyField; + } + set + { + bcNinsyoKeyField = value; + RaisePropertyChanged("BcNinsyoKey"); + } + } + + [XmlElement(Order = 9)] + public string SyunoMMSNo + { + get + { + return syunoMMSNoField; + } + set + { + syunoMMSNoField = value; + RaisePropertyChanged("SyunoMMSNo"); + } + } + + [XmlElement(Order = 10)] + public string BcServiceKey + { + get + { + return bcServiceKeyField; + } + set + { + bcServiceKeyField = value; + RaisePropertyChanged("BcServiceKey"); + } + } + + [XmlElement(Order = 11)] + public string BcUrl + { + get + { + return bcUrlField; + } + set + { + bcUrlField = value; + RaisePropertyChanged("BcUrl"); + } + } + + [XmlElement(Order = 12)] + public string BcBarData + { + get + { + return bcBarDataField; + } + set + { + bcBarDataField = value; + RaisePropertyChanged("BcBarData"); + } + } + + [XmlElement(Order = 13)] + public string BcSyoriDate + { + get + { + return bcSyoriDateField; + } + set + { + bcSyoriDateField = value; + RaisePropertyChanged("BcSyoriDate"); + } + } + + [XmlElement(Order = 14)] + public string Loppippi_Qr + { + get + { + return loppippi_QrField; + } + set + { + loppippi_QrField = value; + RaisePropertyChanged("Loppippi_Qr"); + } + } + + [XmlElement(Order = 15)] + public string Famiport_Qr + { + get + { + return famiport_QrField; + } + set + { + famiport_QrField = value; + RaisePropertyChanged("Famiport_Qr"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/OutParamTomeoki.cs b/SoM_PrnControl.YoyakuServiceReference/OutParamTomeoki.cs new file mode 100644 index 0000000..cdae56f --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/OutParamTomeoki.cs @@ -0,0 +1,134 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class OutParamTomeoki : INotifyPropertyChanged +{ + private string resultField; + + private string dataSyubetsuField; + + private string kKessaiNoField; + + private string freeAreaField; + + private string syunoPayCodeField; + + private string syunoRecvNumField; + + private string syunoMMSNoField; + + [XmlElement(Order = 0)] + public string Result + { + get + { + return resultField; + } + set + { + resultField = value; + RaisePropertyChanged("Result"); + } + } + + [XmlElement(Order = 1)] + public string DataSyubetsu + { + get + { + return dataSyubetsuField; + } + set + { + dataSyubetsuField = value; + RaisePropertyChanged("DataSyubetsu"); + } + } + + [XmlElement(Order = 2)] + public string KKessaiNo + { + get + { + return kKessaiNoField; + } + set + { + kKessaiNoField = value; + RaisePropertyChanged("KKessaiNo"); + } + } + + [XmlElement(Order = 3)] + public string FreeArea + { + get + { + return freeAreaField; + } + set + { + freeAreaField = value; + RaisePropertyChanged("FreeArea"); + } + } + + [XmlElement(Order = 4)] + public string SyunoPayCode + { + get + { + return syunoPayCodeField; + } + set + { + syunoPayCodeField = value; + RaisePropertyChanged("SyunoPayCode"); + } + } + + [XmlElement(Order = 5)] + public string SyunoRecvNum + { + get + { + return syunoRecvNumField; + } + set + { + syunoRecvNumField = value; + RaisePropertyChanged("SyunoRecvNum"); + } + } + + [XmlElement(Order = 6)] + public string SyunoMMSNo + { + get + { + return syunoMMSNoField; + } + set + { + syunoMMSNoField = value; + RaisePropertyChanged("SyunoMMSNo"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/SyunoFree.cs b/SoM_PrnControl.YoyakuServiceReference/SyunoFree.cs new file mode 100644 index 0000000..53697f2 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/SyunoFree.cs @@ -0,0 +1,54 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class SyunoFree : INotifyPropertyChanged +{ + private int indexField; + + private string syunoFreeStrField; + + [XmlElement(Order = 0)] + public int Index + { + get + { + return indexField; + } + set + { + indexField = value; + RaisePropertyChanged("Index"); + } + } + + [XmlElement(Order = 1)] + public string SyunoFreeStr + { + get + { + return syunoFreeStrField; + } + set + { + syunoFreeStrField = value; + RaisePropertyChanged("SyunoFreeStr"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/WellnetSoapHeader.cs b/SoM_PrnControl.YoyakuServiceReference/WellnetSoapHeader.cs new file mode 100644 index 0000000..b0e24be --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/WellnetSoapHeader.cs @@ -0,0 +1,54 @@ +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Xml.Serialization; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[Serializable] +[GeneratedCode("System.Xml", "4.8.9032.0")] +[DebuggerStepThrough] +[DesignerCategory("code")] +[XmlType(Namespace = "http://rem.kessai.info/Kessai/")] +public class WellnetSoapHeader : INotifyPropertyChanged +{ + private string userIdField; + + private string passwordField; + + [XmlElement(Order = 0)] + public string UserId + { + get + { + return userIdField; + } + set + { + userIdField = value; + RaisePropertyChanged("UserId"); + } + } + + [XmlElement(Order = 1)] + public string Password + { + get + { + return passwordField; + } + set + { + passwordField = value; + RaisePropertyChanged("Password"); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuBarCodeRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuBarCodeRequest.cs new file mode 100644 index 0000000..a6199ce --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuBarCodeRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuBarCode", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuBarCodeRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamBarCode inData; + + public YoyakuBarCodeRequest() + { + } + + public YoyakuBarCodeRequest(WellnetSoapHeader WellnetSoapHeader, InParamBarCode inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuBarCodeResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuBarCodeResponse.cs new file mode 100644 index 0000000..740bdb6 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuBarCodeResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuBarCodeResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuBarCodeResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamBarCode YoyakuBarCodeResult; + + public YoyakuBarCodeResponse() + { + } + + public YoyakuBarCodeResponse(OutParamBarCode YoyakuBarCodeResult) + { + this.YoyakuBarCodeResult = YoyakuBarCodeResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuKeizokukakinRequestRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuKeizokukakinRequestRequest.cs new file mode 100644 index 0000000..7d2f372 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuKeizokukakinRequestRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuKeizokukakinRequest", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuKeizokukakinRequestRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamKeizokukakinRequest inData; + + public YoyakuKeizokukakinRequestRequest() + { + } + + public YoyakuKeizokukakinRequestRequest(WellnetSoapHeader WellnetSoapHeader, InParamKeizokukakinRequest inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuKeizokukakinRequestResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuKeizokukakinRequestResponse.cs new file mode 100644 index 0000000..d41fc8c --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuKeizokukakinRequestResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuKeizokukakinRequestResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuKeizokukakinRequestResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamKeizokukakinRequest YoyakuKeizokukakinRequestResult; + + public YoyakuKeizokukakinRequestResponse() + { + } + + public YoyakuKeizokukakinRequestResponse(OutParamKeizokukakinRequest YoyakuKeizokukakinRequestResult) + { + this.YoyakuKeizokukakinRequestResult = YoyakuKeizokukakinRequestResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuNyukinRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuNyukinRequest.cs new file mode 100644 index 0000000..5ca616f --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuNyukinRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuNyukin", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuNyukinRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamNyukin inData; + + public YoyakuNyukinRequest() + { + } + + public YoyakuNyukinRequest(WellnetSoapHeader WellnetSoapHeader, InParamNyukin inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuNyukinResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuNyukinResponse.cs new file mode 100644 index 0000000..f412695 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuNyukinResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuNyukinResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuNyukinResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamNyukin YoyakuNyukinResult; + + public YoyakuNyukinResponse() + { + } + + public YoyakuNyukinResponse(OutParamNyukin YoyakuNyukinResult) + { + this.YoyakuNyukinResult = YoyakuNyukinResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSoap.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSoap.cs new file mode 100644 index 0000000..785bcee --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSoap.cs @@ -0,0 +1,94 @@ +using System.CodeDom.Compiler; +using System.ServiceModel; +using System.Threading.Tasks; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[ServiceContract(Namespace = "http://rem.kessai.info/Kessai/", ConfigurationName = "YoyakuServiceReference.YoyakuSoap")] +public interface YoyakuSoap +{ + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoRequest", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuSyunoRequestResponse YoyakuSyunoRequest(YoyakuSyunoRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoRequest", ReplyAction = "*")] + Task YoyakuSyunoRequestAsync(YoyakuSyunoRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuBarCode", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuBarCodeResponse YoyakuBarCode(YoyakuBarCodeRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuBarCode", ReplyAction = "*")] + Task YoyakuBarCodeAsync(YoyakuBarCodeRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuNyukin", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuNyukinResponse YoyakuNyukin(YoyakuNyukinRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuNyukin", ReplyAction = "*")] + Task YoyakuNyukinAsync(YoyakuNyukinRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoBarCode", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuSyunoBarCodeResponse YoyakuSyunoBarCode(YoyakuSyunoBarCodeRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoBarCode", ReplyAction = "*")] + Task YoyakuSyunoBarCodeAsync(YoyakuSyunoBarCodeRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoETicket", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuSyunoETicketResponse YoyakuSyunoETicket(YoyakuSyunoETicketRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoETicket", ReplyAction = "*")] + Task YoyakuSyunoETicketAsync(YoyakuSyunoETicketRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoPlusBarCode", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuSyunoPlusBarCodeResponse YoyakuSyunoPlusBarCode(YoyakuSyunoPlusBarCodeRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoPlusBarCode", ReplyAction = "*")] + Task YoyakuSyunoPlusBarCodeAsync(YoyakuSyunoPlusBarCodeRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuTomeokiRequest", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuTomeokiRequestResponse YoyakuTomeokiRequest(YoyakuTomeokiRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuTomeokiRequest", ReplyAction = "*")] + Task YoyakuTomeokiRequestAsync(YoyakuTomeokiRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/CashOutRequest", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + CashOutRequestResponse CashOutRequest(CashOutRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/CashOutRequest", ReplyAction = "*")] + Task CashOutRequestAsync(CashOutRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/CashOutAesRequest", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + CashOutAesRequestResponse CashOutAesRequest(CashOutAesRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/CashOutAesRequest", ReplyAction = "*")] + Task CashOutAesRequestAsync(CashOutAesRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/CashOutConsequence", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + CashOutConsequenceResponse CashOutConsequence(CashOutConsequenceRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/CashOutConsequence", ReplyAction = "*")] + Task CashOutConsequenceAsync(CashOutConsequenceRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuKeizokukakinRequest", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuKeizokukakinRequestResponse YoyakuKeizokukakinRequest(YoyakuKeizokukakinRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuKeizokukakinRequest", ReplyAction = "*")] + Task YoyakuKeizokukakinRequestAsync(YoyakuKeizokukakinRequestRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoQr", ReplyAction = "*")] + [XmlSerializerFormat(SupportFaults = true)] + YoyakuSyunoQrResponse YoyakuSyunoQr(YoyakuSyunoQrRequest request); + + [OperationContract(Action = "http://rem.kessai.info/Kessai/YoyakuSyunoQr", ReplyAction = "*")] + Task YoyakuSyunoQrAsync(YoyakuSyunoQrRequest request); +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSoapChannel.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSoapChannel.cs new file mode 100644 index 0000000..b42e73c --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSoapChannel.cs @@ -0,0 +1,11 @@ +using System; +using System.CodeDom.Compiler; +using System.ServiceModel; +using System.ServiceModel.Channels; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +public interface YoyakuSoapChannel : YoyakuSoap, IClientChannel, IContextChannel, IChannel, ICommunicationObject, IExtensibleObject, IDisposable +{ +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSoapClient.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSoapClient.cs new file mode 100644 index 0000000..74fb7f6 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSoapClient.cs @@ -0,0 +1,385 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; +using System.ServiceModel.Channels; +using System.Threading.Tasks; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +public class YoyakuSoapClient : ClientBase, YoyakuSoap +{ + public YoyakuSoapClient() + { + } + + public YoyakuSoapClient(string endpointConfigurationName) + : base(endpointConfigurationName) + { + } + + public YoyakuSoapClient(string endpointConfigurationName, string remoteAddress) + : base(endpointConfigurationName, remoteAddress) + { + } + + public YoyakuSoapClient(string endpointConfigurationName, EndpointAddress remoteAddress) + : base(endpointConfigurationName, remoteAddress) + { + } + + public YoyakuSoapClient(Binding binding, EndpointAddress remoteAddress) + : base(binding, remoteAddress) + { + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuSyunoRequestResponse YoyakuSoap.YoyakuSyunoRequest(YoyakuSyunoRequestRequest request) + { + return base.Channel.YoyakuSyunoRequest(request); + } + + public OutParamSyuno YoyakuSyunoRequest(WellnetSoapHeader WellnetSoapHeader, InParamSyuno inData) + { + YoyakuSyunoRequestRequest yoyakuSyunoRequestRequest = new YoyakuSyunoRequestRequest(); + yoyakuSyunoRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoRequestRequest.inData = inData; + YoyakuSyunoRequestResponse yoyakuSyunoRequestResponse = ((YoyakuSoap)this).YoyakuSyunoRequest(yoyakuSyunoRequestRequest); + return yoyakuSyunoRequestResponse.YoyakuSyunoRequestResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuSyunoRequestAsync(YoyakuSyunoRequestRequest request) + { + return base.Channel.YoyakuSyunoRequestAsync(request); + } + + public Task YoyakuSyunoRequestAsync(WellnetSoapHeader WellnetSoapHeader, InParamSyuno inData) + { + YoyakuSyunoRequestRequest yoyakuSyunoRequestRequest = new YoyakuSyunoRequestRequest(); + yoyakuSyunoRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoRequestRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuSyunoRequestAsync(yoyakuSyunoRequestRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuBarCodeResponse YoyakuSoap.YoyakuBarCode(YoyakuBarCodeRequest request) + { + return base.Channel.YoyakuBarCode(request); + } + + public OutParamBarCode YoyakuBarCode(WellnetSoapHeader WellnetSoapHeader, InParamBarCode inData) + { + YoyakuBarCodeRequest yoyakuBarCodeRequest = new YoyakuBarCodeRequest(); + yoyakuBarCodeRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuBarCodeRequest.inData = inData; + YoyakuBarCodeResponse yoyakuBarCodeResponse = ((YoyakuSoap)this).YoyakuBarCode(yoyakuBarCodeRequest); + return yoyakuBarCodeResponse.YoyakuBarCodeResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuBarCodeAsync(YoyakuBarCodeRequest request) + { + return base.Channel.YoyakuBarCodeAsync(request); + } + + public Task YoyakuBarCodeAsync(WellnetSoapHeader WellnetSoapHeader, InParamBarCode inData) + { + YoyakuBarCodeRequest yoyakuBarCodeRequest = new YoyakuBarCodeRequest(); + yoyakuBarCodeRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuBarCodeRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuBarCodeAsync(yoyakuBarCodeRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuNyukinResponse YoyakuSoap.YoyakuNyukin(YoyakuNyukinRequest request) + { + return base.Channel.YoyakuNyukin(request); + } + + public OutParamNyukin YoyakuNyukin(WellnetSoapHeader WellnetSoapHeader, InParamNyukin inData) + { + YoyakuNyukinRequest yoyakuNyukinRequest = new YoyakuNyukinRequest(); + yoyakuNyukinRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuNyukinRequest.inData = inData; + YoyakuNyukinResponse yoyakuNyukinResponse = ((YoyakuSoap)this).YoyakuNyukin(yoyakuNyukinRequest); + return yoyakuNyukinResponse.YoyakuNyukinResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuNyukinAsync(YoyakuNyukinRequest request) + { + return base.Channel.YoyakuNyukinAsync(request); + } + + public Task YoyakuNyukinAsync(WellnetSoapHeader WellnetSoapHeader, InParamNyukin inData) + { + YoyakuNyukinRequest yoyakuNyukinRequest = new YoyakuNyukinRequest(); + yoyakuNyukinRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuNyukinRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuNyukinAsync(yoyakuNyukinRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuSyunoBarCodeResponse YoyakuSoap.YoyakuSyunoBarCode(YoyakuSyunoBarCodeRequest request) + { + return base.Channel.YoyakuSyunoBarCode(request); + } + + public OutParamSyunoBarCode YoyakuSyunoBarCode(WellnetSoapHeader WellnetSoapHeader, InParamSyunoBarCode inData) + { + YoyakuSyunoBarCodeRequest yoyakuSyunoBarCodeRequest = new YoyakuSyunoBarCodeRequest(); + yoyakuSyunoBarCodeRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoBarCodeRequest.inData = inData; + YoyakuSyunoBarCodeResponse yoyakuSyunoBarCodeResponse = ((YoyakuSoap)this).YoyakuSyunoBarCode(yoyakuSyunoBarCodeRequest); + return yoyakuSyunoBarCodeResponse.YoyakuSyunoBarCodeResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuSyunoBarCodeAsync(YoyakuSyunoBarCodeRequest request) + { + return base.Channel.YoyakuSyunoBarCodeAsync(request); + } + + public Task YoyakuSyunoBarCodeAsync(WellnetSoapHeader WellnetSoapHeader, InParamSyunoBarCode inData) + { + YoyakuSyunoBarCodeRequest yoyakuSyunoBarCodeRequest = new YoyakuSyunoBarCodeRequest(); + yoyakuSyunoBarCodeRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoBarCodeRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuSyunoBarCodeAsync(yoyakuSyunoBarCodeRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuSyunoETicketResponse YoyakuSoap.YoyakuSyunoETicket(YoyakuSyunoETicketRequest request) + { + return base.Channel.YoyakuSyunoETicket(request); + } + + public OutParamSyunoETicket YoyakuSyunoETicket(WellnetSoapHeader WellnetSoapHeader, InParamSyunoETicket inData) + { + YoyakuSyunoETicketRequest yoyakuSyunoETicketRequest = new YoyakuSyunoETicketRequest(); + yoyakuSyunoETicketRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoETicketRequest.inData = inData; + YoyakuSyunoETicketResponse yoyakuSyunoETicketResponse = ((YoyakuSoap)this).YoyakuSyunoETicket(yoyakuSyunoETicketRequest); + return yoyakuSyunoETicketResponse.YoyakuSyunoETicketResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuSyunoETicketAsync(YoyakuSyunoETicketRequest request) + { + return base.Channel.YoyakuSyunoETicketAsync(request); + } + + public Task YoyakuSyunoETicketAsync(WellnetSoapHeader WellnetSoapHeader, InParamSyunoETicket inData) + { + YoyakuSyunoETicketRequest yoyakuSyunoETicketRequest = new YoyakuSyunoETicketRequest(); + yoyakuSyunoETicketRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoETicketRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuSyunoETicketAsync(yoyakuSyunoETicketRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuSyunoPlusBarCodeResponse YoyakuSoap.YoyakuSyunoPlusBarCode(YoyakuSyunoPlusBarCodeRequest request) + { + return base.Channel.YoyakuSyunoPlusBarCode(request); + } + + public OutParamSyunoPlusBarCode YoyakuSyunoPlusBarCode(WellnetSoapHeader WellnetSoapHeader, InParamSyunoPlusBarCode inData) + { + YoyakuSyunoPlusBarCodeRequest yoyakuSyunoPlusBarCodeRequest = new YoyakuSyunoPlusBarCodeRequest(); + yoyakuSyunoPlusBarCodeRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoPlusBarCodeRequest.inData = inData; + YoyakuSyunoPlusBarCodeResponse yoyakuSyunoPlusBarCodeResponse = ((YoyakuSoap)this).YoyakuSyunoPlusBarCode(yoyakuSyunoPlusBarCodeRequest); + return yoyakuSyunoPlusBarCodeResponse.YoyakuSyunoPlusBarCodeResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuSyunoPlusBarCodeAsync(YoyakuSyunoPlusBarCodeRequest request) + { + return base.Channel.YoyakuSyunoPlusBarCodeAsync(request); + } + + public Task YoyakuSyunoPlusBarCodeAsync(WellnetSoapHeader WellnetSoapHeader, InParamSyunoPlusBarCode inData) + { + YoyakuSyunoPlusBarCodeRequest yoyakuSyunoPlusBarCodeRequest = new YoyakuSyunoPlusBarCodeRequest(); + yoyakuSyunoPlusBarCodeRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoPlusBarCodeRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuSyunoPlusBarCodeAsync(yoyakuSyunoPlusBarCodeRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuTomeokiRequestResponse YoyakuSoap.YoyakuTomeokiRequest(YoyakuTomeokiRequestRequest request) + { + return base.Channel.YoyakuTomeokiRequest(request); + } + + public OutParamTomeoki YoyakuTomeokiRequest(WellnetSoapHeader WellnetSoapHeader, InParamTomeoki inData) + { + YoyakuTomeokiRequestRequest yoyakuTomeokiRequestRequest = new YoyakuTomeokiRequestRequest(); + yoyakuTomeokiRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuTomeokiRequestRequest.inData = inData; + YoyakuTomeokiRequestResponse yoyakuTomeokiRequestResponse = ((YoyakuSoap)this).YoyakuTomeokiRequest(yoyakuTomeokiRequestRequest); + return yoyakuTomeokiRequestResponse.YoyakuTomeokiRequestResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuTomeokiRequestAsync(YoyakuTomeokiRequestRequest request) + { + return base.Channel.YoyakuTomeokiRequestAsync(request); + } + + public Task YoyakuTomeokiRequestAsync(WellnetSoapHeader WellnetSoapHeader, InParamTomeoki inData) + { + YoyakuTomeokiRequestRequest yoyakuTomeokiRequestRequest = new YoyakuTomeokiRequestRequest(); + yoyakuTomeokiRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuTomeokiRequestRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuTomeokiRequestAsync(yoyakuTomeokiRequestRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + CashOutRequestResponse YoyakuSoap.CashOutRequest(CashOutRequestRequest request) + { + return base.Channel.CashOutRequest(request); + } + + public OutParamCashOutRequest CashOutRequest(WellnetSoapHeader WellnetSoapHeader, InParamCashOutRequest inData) + { + CashOutRequestRequest cashOutRequestRequest = new CashOutRequestRequest(); + cashOutRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + cashOutRequestRequest.inData = inData; + CashOutRequestResponse cashOutRequestResponse = ((YoyakuSoap)this).CashOutRequest(cashOutRequestRequest); + return cashOutRequestResponse.CashOutRequestResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.CashOutRequestAsync(CashOutRequestRequest request) + { + return base.Channel.CashOutRequestAsync(request); + } + + public Task CashOutRequestAsync(WellnetSoapHeader WellnetSoapHeader, InParamCashOutRequest inData) + { + CashOutRequestRequest cashOutRequestRequest = new CashOutRequestRequest(); + cashOutRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + cashOutRequestRequest.inData = inData; + return ((YoyakuSoap)this).CashOutRequestAsync(cashOutRequestRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + CashOutAesRequestResponse YoyakuSoap.CashOutAesRequest(CashOutAesRequestRequest request) + { + return base.Channel.CashOutAesRequest(request); + } + + public OutParamCashOutRequest CashOutAesRequest(WellnetSoapHeader WellnetSoapHeader, InParamCashOutAesRequest inDataAes) + { + CashOutAesRequestRequest cashOutAesRequestRequest = new CashOutAesRequestRequest(); + cashOutAesRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + cashOutAesRequestRequest.inDataAes = inDataAes; + CashOutAesRequestResponse cashOutAesRequestResponse = ((YoyakuSoap)this).CashOutAesRequest(cashOutAesRequestRequest); + return cashOutAesRequestResponse.CashOutAesRequestResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.CashOutAesRequestAsync(CashOutAesRequestRequest request) + { + return base.Channel.CashOutAesRequestAsync(request); + } + + public Task CashOutAesRequestAsync(WellnetSoapHeader WellnetSoapHeader, InParamCashOutAesRequest inDataAes) + { + CashOutAesRequestRequest cashOutAesRequestRequest = new CashOutAesRequestRequest(); + cashOutAesRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + cashOutAesRequestRequest.inDataAes = inDataAes; + return ((YoyakuSoap)this).CashOutAesRequestAsync(cashOutAesRequestRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + CashOutConsequenceResponse YoyakuSoap.CashOutConsequence(CashOutConsequenceRequest request) + { + return base.Channel.CashOutConsequence(request); + } + + public OutParamCashOutConsequence CashOutConsequence(WellnetSoapHeader WellnetSoapHeader, InParamCashOutConsequence inData) + { + CashOutConsequenceRequest cashOutConsequenceRequest = new CashOutConsequenceRequest(); + cashOutConsequenceRequest.WellnetSoapHeader = WellnetSoapHeader; + cashOutConsequenceRequest.inData = inData; + CashOutConsequenceResponse cashOutConsequenceResponse = ((YoyakuSoap)this).CashOutConsequence(cashOutConsequenceRequest); + return cashOutConsequenceResponse.CashOutConsequenceResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.CashOutConsequenceAsync(CashOutConsequenceRequest request) + { + return base.Channel.CashOutConsequenceAsync(request); + } + + public Task CashOutConsequenceAsync(WellnetSoapHeader WellnetSoapHeader, InParamCashOutConsequence inData) + { + CashOutConsequenceRequest cashOutConsequenceRequest = new CashOutConsequenceRequest(); + cashOutConsequenceRequest.WellnetSoapHeader = WellnetSoapHeader; + cashOutConsequenceRequest.inData = inData; + return ((YoyakuSoap)this).CashOutConsequenceAsync(cashOutConsequenceRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuKeizokukakinRequestResponse YoyakuSoap.YoyakuKeizokukakinRequest(YoyakuKeizokukakinRequestRequest request) + { + return base.Channel.YoyakuKeizokukakinRequest(request); + } + + public OutParamKeizokukakinRequest YoyakuKeizokukakinRequest(WellnetSoapHeader WellnetSoapHeader, InParamKeizokukakinRequest inData) + { + YoyakuKeizokukakinRequestRequest yoyakuKeizokukakinRequestRequest = new YoyakuKeizokukakinRequestRequest(); + yoyakuKeizokukakinRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuKeizokukakinRequestRequest.inData = inData; + YoyakuKeizokukakinRequestResponse yoyakuKeizokukakinRequestResponse = ((YoyakuSoap)this).YoyakuKeizokukakinRequest(yoyakuKeizokukakinRequestRequest); + return yoyakuKeizokukakinRequestResponse.YoyakuKeizokukakinRequestResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuKeizokukakinRequestAsync(YoyakuKeizokukakinRequestRequest request) + { + return base.Channel.YoyakuKeizokukakinRequestAsync(request); + } + + public Task YoyakuKeizokukakinRequestAsync(WellnetSoapHeader WellnetSoapHeader, InParamKeizokukakinRequest inData) + { + YoyakuKeizokukakinRequestRequest yoyakuKeizokukakinRequestRequest = new YoyakuKeizokukakinRequestRequest(); + yoyakuKeizokukakinRequestRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuKeizokukakinRequestRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuKeizokukakinRequestAsync(yoyakuKeizokukakinRequestRequest); + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + YoyakuSyunoQrResponse YoyakuSoap.YoyakuSyunoQr(YoyakuSyunoQrRequest request) + { + return base.Channel.YoyakuSyunoQr(request); + } + + public OutParamSyunoQr YoyakuSyunoQr(WellnetSoapHeader WellnetSoapHeader, InParamSyunoBarCode inData) + { + YoyakuSyunoQrRequest yoyakuSyunoQrRequest = new YoyakuSyunoQrRequest(); + yoyakuSyunoQrRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoQrRequest.inData = inData; + YoyakuSyunoQrResponse yoyakuSyunoQrResponse = ((YoyakuSoap)this).YoyakuSyunoQr(yoyakuSyunoQrRequest); + return yoyakuSyunoQrResponse.YoyakuSyunoQrResult; + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + Task YoyakuSoap.YoyakuSyunoQrAsync(YoyakuSyunoQrRequest request) + { + return base.Channel.YoyakuSyunoQrAsync(request); + } + + public Task YoyakuSyunoQrAsync(WellnetSoapHeader WellnetSoapHeader, InParamSyunoBarCode inData) + { + YoyakuSyunoQrRequest yoyakuSyunoQrRequest = new YoyakuSyunoQrRequest(); + yoyakuSyunoQrRequest.WellnetSoapHeader = WellnetSoapHeader; + yoyakuSyunoQrRequest.inData = inData; + return ((YoyakuSoap)this).YoyakuSyunoQrAsync(yoyakuSyunoQrRequest); + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoBarCodeRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoBarCodeRequest.cs new file mode 100644 index 0000000..1cda6e5 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoBarCodeRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoBarCode", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoBarCodeRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamSyunoBarCode inData; + + public YoyakuSyunoBarCodeRequest() + { + } + + public YoyakuSyunoBarCodeRequest(WellnetSoapHeader WellnetSoapHeader, InParamSyunoBarCode inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoBarCodeResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoBarCodeResponse.cs new file mode 100644 index 0000000..f194a28 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoBarCodeResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoBarCodeResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoBarCodeResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamSyunoBarCode YoyakuSyunoBarCodeResult; + + public YoyakuSyunoBarCodeResponse() + { + } + + public YoyakuSyunoBarCodeResponse(OutParamSyunoBarCode YoyakuSyunoBarCodeResult) + { + this.YoyakuSyunoBarCodeResult = YoyakuSyunoBarCodeResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoETicketRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoETicketRequest.cs new file mode 100644 index 0000000..87ff5a6 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoETicketRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoETicket", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoETicketRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamSyunoETicket inData; + + public YoyakuSyunoETicketRequest() + { + } + + public YoyakuSyunoETicketRequest(WellnetSoapHeader WellnetSoapHeader, InParamSyunoETicket inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoETicketResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoETicketResponse.cs new file mode 100644 index 0000000..68f000f --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoETicketResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoETicketResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoETicketResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamSyunoETicket YoyakuSyunoETicketResult; + + public YoyakuSyunoETicketResponse() + { + } + + public YoyakuSyunoETicketResponse(OutParamSyunoETicket YoyakuSyunoETicketResult) + { + this.YoyakuSyunoETicketResult = YoyakuSyunoETicketResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoPlusBarCodeRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoPlusBarCodeRequest.cs new file mode 100644 index 0000000..434f0e0 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoPlusBarCodeRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoPlusBarCode", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoPlusBarCodeRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamSyunoPlusBarCode inData; + + public YoyakuSyunoPlusBarCodeRequest() + { + } + + public YoyakuSyunoPlusBarCodeRequest(WellnetSoapHeader WellnetSoapHeader, InParamSyunoPlusBarCode inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoPlusBarCodeResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoPlusBarCodeResponse.cs new file mode 100644 index 0000000..e757cca --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoPlusBarCodeResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoPlusBarCodeResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoPlusBarCodeResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamSyunoPlusBarCode YoyakuSyunoPlusBarCodeResult; + + public YoyakuSyunoPlusBarCodeResponse() + { + } + + public YoyakuSyunoPlusBarCodeResponse(OutParamSyunoPlusBarCode YoyakuSyunoPlusBarCodeResult) + { + this.YoyakuSyunoPlusBarCodeResult = YoyakuSyunoPlusBarCodeResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoQrRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoQrRequest.cs new file mode 100644 index 0000000..c2704b9 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoQrRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoQr", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoQrRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamSyunoBarCode inData; + + public YoyakuSyunoQrRequest() + { + } + + public YoyakuSyunoQrRequest(WellnetSoapHeader WellnetSoapHeader, InParamSyunoBarCode inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoQrResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoQrResponse.cs new file mode 100644 index 0000000..a3d3cf3 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoQrResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoQrResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoQrResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamSyunoQr YoyakuSyunoQrResult; + + public YoyakuSyunoQrResponse() + { + } + + public YoyakuSyunoQrResponse(OutParamSyunoQr YoyakuSyunoQrResult) + { + this.YoyakuSyunoQrResult = YoyakuSyunoQrResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoRequestRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoRequestRequest.cs new file mode 100644 index 0000000..8ba9805 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoRequestRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoRequest", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoRequestRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamSyuno inData; + + public YoyakuSyunoRequestRequest() + { + } + + public YoyakuSyunoRequestRequest(WellnetSoapHeader WellnetSoapHeader, InParamSyuno inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoRequestResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoRequestResponse.cs new file mode 100644 index 0000000..e7f53e3 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuSyunoRequestResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuSyunoRequestResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuSyunoRequestResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamSyuno YoyakuSyunoRequestResult; + + public YoyakuSyunoRequestResponse() + { + } + + public YoyakuSyunoRequestResponse(OutParamSyuno YoyakuSyunoRequestResult) + { + this.YoyakuSyunoRequestResult = YoyakuSyunoRequestResult; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuTomeokiRequestRequest.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuTomeokiRequestRequest.cs new file mode 100644 index 0000000..989b6c7 --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuTomeokiRequestRequest.cs @@ -0,0 +1,29 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuTomeokiRequest", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuTomeokiRequestRequest +{ + [MessageHeader(Namespace = "http://rem.kessai.info/Kessai/")] + public WellnetSoapHeader WellnetSoapHeader; + + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public InParamTomeoki inData; + + public YoyakuTomeokiRequestRequest() + { + } + + public YoyakuTomeokiRequestRequest(WellnetSoapHeader WellnetSoapHeader, InParamTomeoki inData) + { + this.WellnetSoapHeader = WellnetSoapHeader; + this.inData = inData; + } +} diff --git a/SoM_PrnControl.YoyakuServiceReference/YoyakuTomeokiRequestResponse.cs b/SoM_PrnControl.YoyakuServiceReference/YoyakuTomeokiRequestResponse.cs new file mode 100644 index 0000000..21db2ee --- /dev/null +++ b/SoM_PrnControl.YoyakuServiceReference/YoyakuTomeokiRequestResponse.cs @@ -0,0 +1,25 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.ServiceModel; + +namespace SoM_PrnControl.YoyakuServiceReference; + +[DebuggerStepThrough] +[GeneratedCode("System.ServiceModel", "4.0.0.0")] +[EditorBrowsable(EditorBrowsableState.Advanced)] +[MessageContract(WrapperName = "YoyakuTomeokiRequestResponse", WrapperNamespace = "http://rem.kessai.info/Kessai/", IsWrapped = true)] +public class YoyakuTomeokiRequestResponse +{ + [MessageBodyMember(Namespace = "http://rem.kessai.info/Kessai/", Order = 0)] + public OutParamTomeoki YoyakuTomeokiRequestResult; + + public YoyakuTomeokiRequestResponse() + { + } + + public YoyakuTomeokiRequestResponse(OutParamTomeoki YoyakuTomeokiRequestResult) + { + this.YoyakuTomeokiRequestResult = YoyakuTomeokiRequestResult; + } +} diff --git a/SoM_PrnControl.csproj b/SoM_PrnControl.csproj new file mode 100644 index 0000000..ad54d4e --- /dev/null +++ b/SoM_PrnControl.csproj @@ -0,0 +1,47 @@ + + + SoM_PrnControl + False + WinExe + True + net461 + True + AnyCPU;x86 + + + 12.0 + True + + + app.ico + app.manifest + + + + + + + ..\SoM_PrnControl\bin\Release\MySql.Data.dll + + + ..\SoM_PrnControl\bin\Release\CSJLabelLib.dll + + + ..\SoM_PrnControl\bin\Release\MLComponent.dll + + + + ..\SoM_PrnControl\bin\Release\PCSC.dll + + + ..\SoM_PrnControl\bin\Release\PCSC.Iso7816.dll + + + ..\SoM_PrnControl\bin\Release\Citizen.LayoutUtilities.Printing.dll + + + + + + + \ No newline at end of file diff --git a/SoM_PrnControl.sln b/SoM_PrnControl.sln index 51f70e5..96a4da6 100644 --- a/SoM_PrnControl.sln +++ b/SoM_PrnControl.sln @@ -1,25 +1,31 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28010.2036 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36401.2 d17.14 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SoM_PrnControl", "SoM_PrnControl\SoM_PrnControl.csproj", "{40C2B03C-3EFC-4F9E-B942-71D4F94F5A37}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SoM_PrnControl", "SoM_PrnControl.csproj", "{4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {40C2B03C-3EFC-4F9E-B942-71D4F94F5A37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {40C2B03C-3EFC-4F9E-B942-71D4F94F5A37}.Debug|Any CPU.Build.0 = Debug|Any CPU - {40C2B03C-3EFC-4F9E-B942-71D4F94F5A37}.Release|Any CPU.ActiveCfg = Release|Any CPU - {40C2B03C-3EFC-4F9E-B942-71D4F94F5A37}.Release|Any CPU.Build.0 = Release|Any CPU + {4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}.Debug|x86.ActiveCfg = Debug|x86 + {4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}.Debug|x86.Build.0 = Debug|x86 + {4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}.Release|Any CPU.Build.0 = Release|Any CPU + {4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}.Release|x86.ActiveCfg = Release|x86 + {4CF6E170-C8BE-2FA3-5F92-585EDECDC4F9}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0192E6C7-D5DE-4580-A09D-A3CAC411C3BC} + SolutionGuid = {916C3EC5-E086-4F0D-B528-77B1ED718182} EndGlobalSection EndGlobal diff --git a/SoM_PrnControl/AIDdefine.cs b/SoM_PrnControl/AIDdefine.cs deleted file mode 100644 index 0547579..0000000 --- a/SoM_PrnControl/AIDdefine.cs +++ /dev/null @@ -1,148 +0,0 @@ -static class AidConst -{ - // 関数戻り値の定義 (APIの戻り値に関する定義) ====================================================================================================== - //---------------------------------------------------------------------------------------------- - // 正常応答 - public const uint NORMALEND = 0x0; // 正常応答(0以外異常) - - //---------------------------------------------------------------------------------------------- - // 異常に関する型、分類に関する定義 - public const uint ERROR_MASK = (0x80000000); // 異常レベル : メインマスク値 - public const uint ERROR_TYPE_SYS = (ERROR_MASK | 0x10000000); // 異常レベル : AIDシステム/コンピュータ - public const uint ERROR_TYPE_FUN = (ERROR_MASK | 0x20000000); // 異常レベル : 機能実行 - public const uint ERROR_TYPE_VAL = (ERROR_MASK | 0x30000000); // 異常レベル : パラメータ - public const uint ERROR_TYPE_RES = (ERROR_MASK | 0x40000000); // 異常レベル : I/F間 - public const uint ERROR_TYPE_CMD = (ERROR_MASK | 0x50000000); // 異常レベル : コマンド実行結果 - public const uint ERROR_TYPE_EX = (ERROR_MASK | 0x60000000); // 異常レベル : 内部系 - public const uint ERROR_MASK_APL = (0x10000); // 異常オブジェクト : API - public const uint ERROR_MASK_CARD = (0x20000); // 異常オブジェクト : カード - public const uint ERROR_MASK_IFD = (0x30000); // 異常オブジェクト : IFD - public const uint ERROR_MASK_STRM = (0x40000); // 異常オブジェクト : ストリーム(通信系) - - - //---------------------------------------------------------------------------------------------- - // APIオブジェクト関連異常応答値 - // システム系異系 - public const uint ERROR_APL_SYSTEM = (ERROR_MASK_APL | ERROR_TYPE_SYS | 0x1); // 判断できない想定外の異常 - public const uint ERROR_APL_RESOURCE = (ERROR_MASK_APL | ERROR_TYPE_SYS | 0x2); // リソースの有無、接続の異常 - public const uint ERROR_APL_AIDFILES = (ERROR_MASK_APL | ERROR_TYPE_SYS | 0x3); // ファイルリソースに接続できない - // 機能実行系 - public const uint ERROR_APL_NOTYET = (ERROR_MASK_APL | ERROR_TYPE_FUN | 0x1); // APLオブジェクトが未設定 - public const uint ERROR_APL_ALREADY = (ERROR_MASK_APL | ERROR_TYPE_FUN | 0x2); // APLオブジェクトが既設定 - // APIパラメータ系 - public const uint ERROR_APL_UNSUPPORT = (ERROR_MASK_APL | ERROR_TYPE_VAL | 0x1); // 未サポート機能への要求 - public const uint ERROR_APL_INVALID_ARG = (ERROR_MASK_APL | ERROR_TYPE_VAL | 0x2); // 引数値、内容に関する異常 - public const uint ERROR_APL_BUFFER_SMALL = (ERROR_MASK_APL | ERROR_TYPE_VAL | 0x3); // 引渡されたバッファ長が短い - - //---------------------------------------------------------------------------------------------- - // カードオブジェクト上での異常値定義 - // システム系異系 - public const uint ERROR_CARD_SYSTEM = (ERROR_MASK_CARD | ERROR_TYPE_SYS | 0x1); // 判断できない想定外の異常 - public const uint ERROR_CARD_RESOURCE = (ERROR_MASK_CARD | ERROR_TYPE_SYS | 0x2); // リソースの有無、接続の異常 - public const uint ERROR_CARD_AIDFILES = (ERROR_MASK_CARD | ERROR_TYPE_SYS | 0x3); // ファイルリソースに接続できない - // 機能実行系 - public const uint ERROR_CARD_NOTYET = (ERROR_MASK_CARD | ERROR_TYPE_FUN | 0x1); // Cardオブジェクトが未設定 - public const uint ERROR_CARD_ALREADY = (ERROR_MASK_CARD | ERROR_TYPE_FUN | 0x2); // Cardオブジェクトが既設定 - // APIパラメータ系 - public const uint ERROR_CARD_UNSUPPORT = (ERROR_MASK_CARD | ERROR_TYPE_VAL | 0x1); // 未サポート機能への要求 - public const uint ERROR_CARD_INVALID_ARG = (ERROR_MASK_CARD | ERROR_TYPE_VAL | 0x2); // 引数値、内容に関する異常 - public const uint ERROR_CARD_BUFFER_SMALL = (ERROR_MASK_CARD | ERROR_TYPE_VAL | 0x3); // 引渡されたバッファ長が短い - // SESSION異常 - public const uint ERROR_CARD_FINED = (ERROR_MASK_CARD | ERROR_TYPE_RES | 0x1); // カード補足が出来なかった - public const uint ERROR_CARD_LOST = (ERROR_MASK_CARD | ERROR_TYPE_RES | 0x2); // カード通信が維持出来い - public const uint ERROR_CARD_FRAME = (ERROR_MASK_CARD | ERROR_TYPE_RES | 0x3); // R/W-カード間通信フレームが識別出来ない - public const uint ERROR_CARD_RECOVER = (ERROR_MASK_CARD | ERROR_TYPE_RES | 0x4); // 上位でのリカバリ可能な異常 - public const uint ERROR_CARD_TARGET = (ERROR_MASK_CARD | ERROR_TYPE_RES | 0x5); // 対象外カードへの要求 - public const uint ERROR_CARD_CANCEL = (ERROR_MASK_CARD | ERROR_TYPE_RES | 0x6); // アプリ要求にて処理を中断した - // その他 - public const uint ERROR_CARD_AUTHENTICATE = (ERROR_MASK_CARD | ERROR_TYPE_EX | 0x8001); // AUTHENTICATE異常 - public const uint ERROR_CARD_MACRO_READ = (ERROR_MASK_CARD | ERROR_TYPE_EX | 0x8002); // マクロコマンドのリードでの異常 - - //---------------------------------------------------------------------------------------------- - // IFDオブジェクト上での異常値定義 - // システム系異系 - public const uint ERROR_IFD_SYSTEM = (ERROR_MASK_IFD | ERROR_TYPE_SYS | 0x1); // 判断できない想定外の異常 - public const uint ERROR_IFD_RESOURCE = (ERROR_MASK_IFD | ERROR_TYPE_SYS | 0x2); // リソースの有無、接続の異常 - public const uint ERROR_IFD_AIDFILES = (ERROR_MASK_IFD | ERROR_TYPE_SYS | 0x3); // ファイルリソースに接続できない - // 機能実行系 - public const uint ERROR_IFD_NOTYET = (ERROR_MASK_IFD | ERROR_TYPE_FUN | 0x1); // IFDオブジェクトが未設定 - public const uint ERROR_IFD_ALREADY = (ERROR_MASK_IFD | ERROR_TYPE_FUN | 0x2); // IFDオブジェクトが既設定 - // APIパラメータ系 - public const uint ERROR_IFD_UNSUPPORT = (ERROR_MASK_IFD | ERROR_TYPE_VAL | 0x1); // 未サポートI/Fへの要求 - public const uint ERROR_IFD_INVALID_ARG = (ERROR_MASK_IFD | ERROR_TYPE_VAL | 0x2); // 引数値、内容に関する異常 - public const uint ERROR_IFD_BUFFER_SMALL = (ERROR_MASK_IFD | ERROR_TYPE_VAL | 0x3); // 引渡されたバッファ長が短い - // SESSION異常 - public const uint ERROR_IFD_FRAME = (ERROR_MASK_IFD | ERROR_TYPE_RES | 0x1); // ホスト-R/W間通信フレームが識別出来ない - public const uint ERROR_IFD_RECOVER = (ERROR_MASK_IFD | ERROR_TYPE_RES | 0x2); // 上位でのリカバリ可能な異常 - public const uint ERROR_IFD_FORMAT = (ERROR_MASK_IFD | ERROR_TYPE_RES | 0x3); // スルー通信用フォーマットが異常 - public const uint ERROR_IFD_FRAME_STRUCT = (ERROR_MASK_IFD | ERROR_TYPE_RES | 0x4); // 通信フレーム構造異常 - // コマンド実行結果の異常 - public const uint ERROR_IFD_SWMISSING = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x1); // SWが存在しない(見つからない) - public const uint ERROR_IFD_UNDEFINED = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x2); // 未定義のSWを検出した - public const uint ERROR_IFD_WARNING = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6200); // 警告(詳細なし) - public const uint ERROR_IFD_CARDTIMEOUT = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x62F0); // R/W側カード通信タイムアウト - public const uint ERROR_IFD_CARDERROR = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x62F1); // R/W側カード通信異常 - public const uint ERROR_IFD_EXECUTEERROR = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6400); // コマンドが実行出来ない - public const uint ERROR_IFD_CMDLENERROR = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6700); // コマンド長異常 - public const uint ERROR_IFD_HARDCONDITION = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6900); // ハード的な実行条件異常 - public const uint ERROR_IFD_CMDCONDITION = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6985); // コマンド実行条件異常 - public const uint ERROR_IFD_PARAMERROR = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6A86); // パラメータ値不正 - public const uint ERROR_IFD_PARAMRANGE = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6B00); // パラメータ範囲異常 - public const uint ERROR_IFD_INSERROR = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6D00); // INS異常 - public const uint ERROR_IFD_CLAERROR = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6E00); // CLA異常 - public const uint ERROR_IFD_SELFCHECK = (ERROR_MASK_IFD | ERROR_TYPE_CMD | 0x6F00); // 自己診断異常 - // その他 - public const uint ERROR_IFD_AUTHENTICATE1 = (ERROR_MASK_IFD | ERROR_TYPE_EX | 0x8001); // AUTHENTICATE1異常 - public const uint ERROR_IFD_AUTHENTICATE2 = (ERROR_MASK_IFD | ERROR_TYPE_EX | 0x8002); // AUTHENTICATE2異常 - public const uint ERROR_IFD_SETUPAUTH = (ERROR_MASK_IFD | ERROR_TYPE_EX | 0x8003); // 認証・暗号設定異常 - public const uint WARNING_IFD_RETURN = (ERROR_MASK_IFD | ERROR_TYPE_EX | 0x8100); // 応答検査要求 - - //---------------------------------------------------------------------------------------------- - // STreamオブジェクト上での異常値定義 - // システム系異常 - public const uint ERROR_STRM_SYSTEM = (ERROR_MASK_STRM | ERROR_TYPE_SYS | 0x1); // 判断できない想定外の異常 - public const uint ERROR_STRM_RESOURCE = (ERROR_MASK_STRM | ERROR_TYPE_SYS | 0x2); // リソースの有無、接続の異常 - public const uint ERROR_STRM_AIDFILES = (ERROR_MASK_STRM | ERROR_TYPE_SYS | 0x3); // ファイルリソースに接続できない - public const uint ERROR_STRM_DEVICE = (ERROR_MASK_STRM | ERROR_TYPE_SYS | 0x4); // デバイス内部異常 - public const uint ERROR_STRM_WIN32 = (ERROR_MASK_STRM | ERROR_TYPE_SYS | 0x7); // Win32API上での異常 - // 機能実行系 - public const uint ERROR_STRM_COLLISION = (ERROR_MASK_STRM | ERROR_TYPE_FUN | 0x1); // リソースの競合 - public const uint ERROR_STRM_NOTOPEN = (ERROR_MASK_STRM | ERROR_TYPE_FUN | 0x2); // ポート未オープン - public const uint ERROR_STRM_ALREADYOPEN = (ERROR_MASK_STRM | ERROR_TYPE_FUN | 0x3); // ポートオープン済 - public const uint ERROR_STRM_CURBUSY = (ERROR_MASK_STRM | ERROR_TYPE_FUN | 0x4); // セッション処理中 - // APIパラメータ系 - public const uint ERROR_STRM_UNSUPPORT = (ERROR_MASK_STRM | ERROR_TYPE_VAL | 0x1); // 未サポート機能への要求 - public const uint ERROR_STRM_INVALID_ARG = (ERROR_MASK_STRM | ERROR_TYPE_VAL | 0x2); // DLL呼び出し時の引数異常 - public const uint ERROR_STRM_BUFFER_SMALL = (ERROR_MASK_STRM | ERROR_TYPE_VAL | 0x3); // 応答格納用バッファ長が短い - // SESSION系 - public const uint ERROR_STRM_TIME_OUT = (ERROR_MASK_STRM | ERROR_TYPE_RES | 0x1); // セッションタイムアウト - public const uint ERROR_STRM_RECEIVE = (ERROR_MASK_STRM | ERROR_TYPE_RES | 0x2); // バイナリレベルの受信異常(パリティ等) - public const uint ERROR_STRM_SHORT_FRAME = (ERROR_MASK_STRM | ERROR_TYPE_RES | 0x3); // ショートフレーム異常 - - - - // 定数定義 ======================================================================================================================================== - // StartTransactionのtypeの戻り値 - public const uint CARDTYPE_MIF = 0x2; // Mifareカードが存在 - public const uint CARDTYPE_B = 0x3; // TypeBカードが存在 - public const uint CARDTYPE_FEL = 0x4; // FeliCaカードが存在 - public const uint CARDTYPE_A = 0x6; // TypeAカードが存在 - public const uint CARDTYPE_MORECARD = 0x80000000; // 検出したカード以外のカードが存在 - - // StartTransactionのspeedの設定値 - public const int CARDSPEED_DEFAULT = 0x0; // 初期通信速度を指定 - public const int CARDSPEED_2TIMES = 0x1; // 初期通信速度の2倍を指定 - public const int CARDSPEED_4TIMES = 0x2; // 初期通信速度の4倍を指定 - public const int CARDSPEED_8TIMES = 0x3; // 初期通信速度の8倍を指定 - public const uint CARDSPEED_MAX = 0x80000000; // 通信可能な最大通信速度を指定 - - // シリアル通信速度指定定数 - public const int DEF_9600 = 9600; // 9600bps - public const int DEF_14400 = 14400; // 14400bps - public const int DEF_19200 = 19200; // 19200bps - public const int DEF_28800 = 28800; // 28800bps - public const int DEF_38400 = 38400; // 38400bps - public const int DEF_57600 = 57600; // 57600bps - public const int DEF_115200 = 115200; // 115200bps -} - diff --git a/SoM_PrnControl/App.config b/SoM_PrnControl/App.config deleted file mode 100644 index 4bfa005..0000000 --- a/SoM_PrnControl/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/SoM_PrnControl/EpsonPrinterTMM30Service.cs b/SoM_PrnControl/EpsonPrinterTMM30Service.cs new file mode 100644 index 0000000..d6379b6 --- /dev/null +++ b/SoM_PrnControl/EpsonPrinterTMM30Service.cs @@ -0,0 +1,181 @@ +using System; +using System.IO; +using System.Net; +using System.Text; +using MySql.Data.MySqlClient; + +namespace SoM_PrnControl; + +public class EpsonPrinterTMM30Service +{ + private string printerIpAddress; + + private string deviceId; + + private int timeout; + + public EpsonPrinterTMM30Service(string ipAddress, string deviceId, int timeout) + { + printerIpAddress = ipAddress; + this.deviceId = deviceId; + this.timeout = timeout; + } + + public string PrintXml(string soapRequest) + { + try + { + HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://" + printerIpAddress + "/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000"); + httpWebRequest.Method = "POST"; + httpWebRequest.ContentType = "text/xml"; + Console.WriteLine("SOAP Request:"); + Console.WriteLine(soapRequest); + using (Stream stream = httpWebRequest.GetRequestStream()) + { + byte[] bytes = Encoding.UTF8.GetBytes(soapRequest); + stream.Write(bytes, 0, bytes.Length); + } + using HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); + using Stream stream2 = httpWebResponse.GetResponseStream(); + StreamReader streamReader = new StreamReader(stream2, Encoding.UTF8); + string text = streamReader.ReadToEnd(); + Console.WriteLine("SOAP Response:"); + Console.WriteLine(text); + return text; + } + catch (Exception ex) + { + Console.WriteLine("エラー: " + ex.Message); + } + return ""; + } + + public void PrinterPapperCheck(string status, string park_id, MySqlConnection DBconnect) + { + uint num = uint.Parse(status); + string text = ""; + string text2 = ""; + string text3 = ""; + if ((num & 0x20000) != 0) + { + text = "104"; + text2 = "用紙残量少"; + text3 = "プリンタ用紙を確認し、必要に応じて交換してください。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + } + + public string PrinterErrorHandling(string status, string park_id, MySqlConnection DBconnect) + { + uint num = uint.Parse(status); + string text = ""; + string text2 = ""; + string text3 = ""; + string text4 = ""; + if ((num & 1) != 0) + { + text = "102"; + text2 = "TM プリンター無応答"; + text3 = "プリンタを確認し、必要に応じて再起動してください。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + if ((num & 8) != 0) + { + text = "102"; + text2 = "プリンターオフライン"; + text3 = "プリンタの接続を確認してください。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + if ((num & 0x40) != 0 || (num & 0x200) != 0) + { + text = "102"; + text2 = "紙送りスイッチ動作不良"; + text3 = "紙送りスイッチを確認してください。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + if ((num & 0x400) != 0) + { + text = "102"; + text2 = "メカニカルエラー"; + text3 = "プリンタが故障している可能性があります。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + if ((num & 0x800) != 0) + { + text = "102"; + text2 = "オートカッター動作不良"; + text3 = "オートカッターが故障している可能性があります。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + if ((num & 0x2000) != 0) + { + text = "102"; + text2 = "復帰不可能エラー発生"; + text3 = "プリンタに重大な問題が発生しています。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + if ((num & 0x4000) != 0) + { + text = "102"; + text2 = "自動復帰エラー"; + text3 = "プリンタを手動で再起動してください。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + if ((num & 0x80000) != 0) + { + text = "105"; + text2 = "プリンタ用紙切れ"; + text3 = "用紙を交換してください。"; + InsertOperatorQue(park_id, text, text2, text3, DBconnect); + } + if ((num & 1) != 0 || (num & 8) != 0 || (num & 0x40) != 0 || (num & 0x200) != 0 || (num & 0x400) != 0 || (num & 0x800) != 0 || (num & 0x2000) != 0 || (num & 0x4000) != 0) + { + text4 = "pic_kessai_err_00.png"; + } + if ((num & 0x80000) != 0) + { + text4 = "pic_kessai_err_p_out.png"; + } + if ((num & 0x20) != 0) + { + text4 = "pic_kessai_err_c_open.png"; + } + Console.Write(text4); + return text4; + } + + private void InsertOperatorQue(string park_id, string que_class, string que_comment, string work_instructions, MySqlConnection DBconnect) + { + Console.WriteLine("parkId: " + park_id); + Console.WriteLine("queClass: " + que_class); + Console.WriteLine("queComment: " + que_comment); + Console.WriteLine("workInstructions: " + work_instructions); + string cmdText = "INSERT INTO operator_que (user_id, contract_id, park_id, que_class, que_comment, que_status, created_at, updated_at, operator_id, work_instructions) VALUES (NULL, NULL, @parkId, @queClass, @queComment, 1, NOW(), NOW(), NULL, @workInstructions)"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.Parameters.AddWithValue("@parkId", park_id); + mySqlCommand.Parameters.AddWithValue("@queClass", que_class); + mySqlCommand.Parameters.AddWithValue("@queComment", que_comment); + mySqlCommand.Parameters.AddWithValue("@workInstructions", work_instructions); + mySqlCommand.ExecuteNonQuery(); + } + + public string GenerateSoapRequestPayee1(string username, string seven_no, string amount, string park_name, string userttype_subject1, string enable_months, string payment_due, string pay_code, string payee_name, string phone_number) + { + return "\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n【払込票】 \r\n\r\n受付方法:現金支払 \r\n\r\nお客様名:" + username + "\u3000様 \r\n\r\n払込先名:" + payee_name + " \r\n(収納代行ウェルネット) \r\n\r\n\r\n\r\n【セブンイレブンでのお支払い】 1. レジスタッフに「インターネット代金支払」をお申し出ください。 2.13桁の「" + seven_no + "」をレジスタッフに伝えお支払ください。 \r\n\r\n\r\n\r\n\r\n払込票番号 \r\n\r\n\r\n" + seven_no + " \r\n\r\n\r\n\r\n払込金額 \r\n\r\n" + amount + "円 \r\n\r\n\r\n\r\n" + park_name + " \r\n" + userttype_subject1 + "/" + enable_months + "ヶ月 \r\n支払期限 \r\n\r\n" + payment_due + " \r\n\r\n※期限が切れた場合、下記連絡先にご連絡下さい。 \r\n\r\n\r\n株式会社ソーリン\u3000サポートセンター \r\n" + phone_number + " \r\n\r\n\r\n\r\n\r\n\r\n \r\n "; + } + + public string GenerateSoapRequestPayee2(string username, string paycode, string amount, string park_name, string userttype_subject1, string enable_months, string payment_due, string pay_code, string payee_name, string phone_number) + { + return "\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n【払込票】 \r\n\r\n受付方法:現金支払 \r\n\r\nお客様名:" + username + "\u3000様 \r\n\r\n払込先名:" + payee_name + " \r\n(収納代行ウェルネット) \r\n\r\n\r\n【ファミリーマートでのお支払い】 1.マルチコピー機の画面から「コンビニでお支払い」のボタンを押します 2.「番号入力」を選択します 3.お客様番号 (" + paycode + ") を入力し、次の画面へ\u3000※入力時ハイフンは省く 4.確認番号 (" + pay_code + ") を入力し、次の画面へ 5.表示された画面を確認し、次の画面へ。申込券が発券されます。 6.30分以内にレジにてお支払い下さい。レシート・受領書を必ずお受け取りください。 \r\n\r\n\r\n\r\n\r\n払込票番号 \r\n\r\n\r\n" + paycode + " \r\n\r\n\r\n\r\n確認番号 \r\n\r\n\r\n" + pay_code + " \r\n\r\n\r\n\r\n払込金額 \r\n\r\n" + amount + "円 \r\n\r\n\r\n\r\n" + park_name + " \r\n" + userttype_subject1 + "/" + enable_months + "ヶ月 \r\n支払期限 \r\n\r\n" + payment_due + " \r\n\r\n※期限が切れた場合、下記連絡先にご連絡下さい。 \r\n\r\n\r\n株式会社ソーリン\u3000サポートセンター \r\n" + phone_number + " \r\n\r\n\r\n\r\n\r\n\r\n \r\n "; + } + + public string GenerateSoapRequestPayee3(string username, string paycode, string amount, string park_name, string userttype_subject1, string enable_months, string payment_due, string pay_code, string payee_name, string phone_number) + { + return "\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n【払込票】 \r\n\r\n受付方法:現金支払 \r\n\r\nお客様名:" + username + "\u3000様 \r\n\r\n払込先名:" + payee_name + " \r\n(収納代行ウェルネット) \r\n\r\n\r\n\r\n【デイリーヤマザキでのお支払い】 1.店員に「オンライン決済」とお申し出下さい 2.レジの客面タッチパネルで" + paycode + "を入力「確定」ボタンをタッチ 3.画面に表示される内容、金額を確認後「確定」ボタンをタッチ 4.レシート・領収書(ご案内)は必ずお受け取り下さい \r\n\r\n\r\n\r\n\r\n払込票番号 \r\n\r\n\r\n" + paycode + " \r\n\r\n\r\n\r\n払込金額 \r\n\r\n" + amount + "円 \r\n\r\n\r\n\r\n" + park_name + " \r\n" + userttype_subject1 + "/" + enable_months + "ヶ月 \r\n支払期限 \r\n\r\n" + payment_due + " \r\n\r\n※期限が切れた場合、下記連絡先にご連絡下さい。 \r\n\r\n\r\n株式会社ソーリン\u3000サポートセンター \r\n" + phone_number + " \r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n "; + } + + public string GenerateSoapRequestPayee4(string username, string paycode, string amount, string park_name, string userttype_subject1, string enable_months, string payment_due, string pay_code, string payee_name, string phone_number) + { + return "\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n【払込票】 \r\n\r\n受付方法:現金支払 \r\n\r\nお客様名:" + username + "\u3000様 \r\n\r\n払込先名:" + payee_name + " \r\n(収納代行ウェルネット) \r\n\r\n\r\n\r\n【ローソン、ミニストップでのお支払い】 1. Loppi端末から「各種番号をお持ちの方」のボタンを押します 2.お客様番号 (" + paycode + ") を入力し、次の画面へ\u3000※入力時ハイフンは省く 3.確認番号 (" + pay_code + ") を入力し、次の画面へ 4.表示された画面を確認し、次の画面へ。申込券が発券されます。 5.30分以内にレジにてお支払い下さい。受領証を必ずお受け取りください。 \r\n\r\n\r\n\r\n\r\n払込票番号 \r\n\r\n\r\n" + paycode + " \r\n\r\n\r\n\r\n確認番号 \r\n\r\n\r\n" + pay_code + " \r\n\r\n\r\n\r\n払込金額 \r\n\r\n" + amount + "円 \r\n\r\n\r\n\r\n" + park_name + " \r\n" + userttype_subject1 + "/" + enable_months + "ヶ月 \r\n支払期限 \r\n\r\n" + payment_due + " \r\n\r\n※期限が切れた場合、下記連絡先にご連絡下さい。 \r\n\r\n\r\n\r\n株式会社ソーリン\u3000サポートセンター \r\n" + phone_number + " \r\n\r\n\r\n\r\n\r\n\r\n \r\n "; + } +} diff --git a/SoM_PrnControl/Form1.Designer.cs b/SoM_PrnControl/Form1.Designer.cs deleted file mode 100644 index 0ae45ef..0000000 --- a/SoM_PrnControl/Form1.Designer.cs +++ /dev/null @@ -1,89 +0,0 @@ -namespace qk30ic -{ - partial class Form1 - { - /// - /// 必要なデザイナー変数です。 - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中のリソースをすべてクリーンアップします。 - /// - /// マネージド リソースを破棄する場合は true を指定し、その他の場合は false を指定します。 - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows フォーム デザイナーで生成されたコード - - /// - /// デザイナー サポートに必要なメソッドです。このメソッドの内容を - /// コード エディターで変更しないでください。 - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.button1 = new System.Windows.Forms.Button(); - this.serialPort1 = new System.IO.Ports.SerialPort(this.components); - this.dataGridView1 = new System.Windows.Forms.DataGridView(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); - this.SuspendLayout(); - // - // button1 - // - this.button1.Location = new System.Drawing.Point(414, 382); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(134, 29); - this.button1.TabIndex = 0; - this.button1.Text = "終了"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // serialPort1 - // - this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1_DataReceived); - // - // dataGridView1 - // - this.dataGridView1.AllowUserToAddRows = false; - this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGridView1.Location = new System.Drawing.Point(24, 28); - this.dataGridView1.Name = "dataGridView1"; - this.dataGridView1.RowHeadersVisible = false; - this.dataGridView1.RowHeadersWidth = 60; - this.dataGridView1.RowTemplate.Height = 21; - this.dataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.dataGridView1.Size = new System.Drawing.Size(947, 330); - this.dataGridView1.TabIndex = 1; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(994, 450); - this.Controls.Add(this.dataGridView1); - this.Controls.Add(this.button1); - this.Name = "Form1"; - this.Text = "SoMプリンタ制御プログラム"; - this.TopMost = true; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); - this.Shown += new System.EventHandler(this.Form1_Shown); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button button1; - private System.IO.Ports.SerialPort serialPort1; - private System.Windows.Forms.DataGridView dataGridView1; - } -} - diff --git a/SoM_PrnControl/Form1.cs b/SoM_PrnControl/Form1.cs deleted file mode 100644 index f6ff995..0000000 --- a/SoM_PrnControl/Form1.cs +++ /dev/null @@ -1,2206 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Threading; -using System.Threading.Tasks; -using System.Timers; -using System.IO; -using System.IO.Ports; -using MySql.Data.MySqlClient; -using SATO.MLComponent; - -namespace qk30ic -{ - public partial class Form1 : Form - { - // ====== 开关 ====== - // 硬件模拟:true=不连串口/IC卡/打印机;启动“演示二维码喂料器”自动喂入 QRID1234 - private const bool MOCK_HW = true; - - // 数据库模拟:false=真实 MySQL;true=DB 也走假数据(不访问数据库) - private const bool DEMO_DB = false; - - // ★ DB连接状态判断 - private bool IsDbReady => (DBconnect != null && DBconnect.State == ConnectionState.Open); - - private System.Windows.Forms.Timer demoQrTimer; - - // ログファイル名(フルパス)格納用 - static public string LogfileName = ""; - static public string LogfilePath = ""; - public const int OutLogNum = 15; // ログ表示行数 - public const int OutConfNum = 9; // コンフィグファイルの項目数 - - // ログファイルの内容 - static public string[,] koumoku = new string[OutLogNum, 8]; - - // コンフィグファイルの内容読み取り - static public string[] str_Confile = new string[OutConfNum]; - - // レイアウトファイル - static public string str_layoutFile = Path.Combine(Application.StartupPath, "SOM_layout.mllayx"); - - // コンフィグファイル - static public string CONFIG_PATH = Path.Combine(Application.StartupPath, "SLN_config.dat"); - - dynamic ifd = null; // IFDオブジェクト - dynamic mif = null; // MIfareオブジェクト - dynamic icc = null; // Cardオブジェクト - public static string QRdata = ""; // QRコード受信用 - public static string QRdata2 = ""; // QRコード受信用 - public static byte[] vinfBuff = new byte[257]; // Mifareコード受信用 - public static byte[] vinfBuff2 = new byte[257]; // Mifareコード受信用 - public static uint QRresult = 0; // QRコード受信用 - public static string MFCODE = ""; // Mifareコード - public static string MFCODE_CHK = "4400"; // Mifare識別用 - public static int Retry_num = 0; // DBエラー時のリトライ数 - - // 終了処理 - public int EndType = 0; - - // エラーコード - public const int ERROR_CODE_CONFRD = 80; - public const int ERROR_CODE_LOGFRD = 85; - public const int ERROR_CODE_LOGFWR = 87; - public const int ERROR_CODE_DBOPEN = 100; - public const int ERROR_CODE_PAPRNG = 104; - public const int ERROR_CODE_LAYOUT = 110; - public const int ERROR_CODE_PRNINI = 120; - public const int ERROR_CODE_MFIINI = 130; - public const int ERROR_CODE_QRCINI = 140; - public const int ERROR_CODE_DBERR = 150; - public const int ERROR_CODE_PRNERR = 160; - public const int ERROR_CODE_NONMFC = 1; - public const int ERROR_CODE_NONQRC = 3; - public const int ERROR_CODE_NONUID = 5; - public const int ERROR_CODE_QRCERR = 170; - public const int ERROR_CODE_MFIERR = 175; - - // ログ編集用 - public const int LETYPE_NORMAL = 0; - public const int LETYPE_START = 2; - public const int LETYPE_DBOPEN = 10; - public const int LETYPE_LAYOUT = 11; - public const int LETYPE_PRNINI = 12; - public const int LETYPE_MFIINI = 13; - public const int LETYPE_QRCINI = 14; - public const int LETYPE_DBERR = 15; - public const int LETYPE_NONMFC = 20; - public const int LETYPE_NONUID = 21; - public const int LETYPE_NONQRC = 30; - public const int LETYPE_PRNERR = 40; - public const int LETYPE_QRCERR = 50; - public const int LETYPE_MFIERR = 55; - public const int LETYPE_CONFRD = 80; - public const int LETYPE_LOGFRD = 85; - public const int LETYPE_LOGFWR = 87; - - // MySQL 连接串(按需修改账号密码/库名) - public static string connectionParams = string.Format( - "server={0}; user={1}; password={2}; database={3}; charset={4}; SslMode={5}; AllowPublicKeyRetrieval={6}", - "localhost", - "root", - "", // ← 如果有密码填这里 - "so-manager", // ← 你的库名(保留原值) - "utf8", - "None", - "true" - ); - - // DB読み込みクエリ - public string DBREAD_park_name = "select park_name from park where park_id="; - public string DBREAD_city_name = "select city_name from park, city where park.city_id=city.city_id and park.park_id="; - public string DBREAD_ptype_subj = "select ptype_subject from price , ptype where price.price_ptypeid=ptype.ptype_id and price.park_id="; - public string[] DBREAD_utype_sub1 = { - "select usertype_subject1 from user,usertype,regular_contract where regular_contract.user_categoryid=usertype.user_categoryid and user.user_tag_serial =", - "select usertype_subject1 from user,usertype,regular_contract where regular_contract.user_categoryid=usertype.user_categoryid and regular_contract.contract_qr_id=" }; - - public string[] DBREAD_cont_periods = { - "select contract_periods, contract_periode, contract_id from user,regular_contract where user.user_id=regular_contract.user_id and user_tag_serial =", - "select contract_periods, contract_periode, contract_id from regular_contract where contract_qr_id=" }; - - public string[] DBREAD_cont_sissue = { - "select contract_seal_issue from user, regular_contract where user.user_id=regular_contract.user_id and user_tag_serial =", - "select contract_seal_issue from regular_contract where contract_qr_id="}; - - // ログに書き込む項目 - public string[] str_logkm = new string[8]; - - // キープアライブ用 - public static string KpAlive_devid = ""; - - // 印字データ - public string[] str_Prndat = new string[8]; - public static int Prn_MaxNum; // 印字可能数 - public static int Prn_NowNum; // 現在の印字数 - public static int Prn_Alert_num; // 印字残警告数 - public static int Prn_Alert_flg; // プリンタ印字残警告フラグ - public static string Prn_ParkName; // 駐車場名 - - public static MySqlConnection DBconnect = null; // 延迟初始化 - - public static string[] PortList = new string[20]; - - // 受信データ判別 - public static DateTime date1 = new DateTime(2018, 1, 1, 12, 0, 0); - public static DateTime date2 = new DateTime(2018, 1, 1, 1, 0, 0); - - // MLComponent - 延迟初始化以避免启动时错误 - public static MLComponent SO_MLC = null; - - public Form1() - { - InitializeComponent(); - } - - private void Form1_Shown(object sender, EventArgs e) - { - // 本地小工具:只写本地日志(无 DB 时调用) - void LogOnly(int type, int n) - { - EndType = n; - SO_LogEdit(type); - SO_WriteLog(); - } - - // 本地小工具:启动“演示二维码喂料器” - void StartDemoQrFeeder() - { - if (!MOCK_HW) return; - demoQrTimer = new System.Windows.Forms.Timer(); - demoQrTimer.Interval = 3000; // 每3秒来一个二维码 - demoQrTimer.Tick += (s, ev) => - { - QRdata = "藤本"; - QRresult = 1; // 告知主循环“扫到了码” - }; - demoQrTimer.Start(); - } - - try - { - uint MFresult = 0; - uint result = 0; - uint mode = 0; - bool bResult = true; - string str_uid = ""; - string str_qrc = ""; - string[] str_rctbl = new string[8]; - for (int j = 0; j < str_rctbl.Length; j++) str_rctbl[j] = ""; - - // 读取配置 - result = ConRead.ReadConFile(ref str_Confile); - if (result == 1) - { - MessageBox.Show("設定ファイルの読み込みに失敗しました。\nパス: " + CONFIG_PATH, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); - Application.Exit(); return; - } - for (int i = 0; i < OutConfNum; i++) - { - if (str_Confile[i] == null) - { - MessageBox.Show("設定ファイルの項目" + i + "が空です。\n設定ファイルに" + OutConfNum + "個の項目が必要です。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); - Application.Exit(); return; - } - } - - // MLComponent(即使失败也继续) - try { SO_MLC = new MLComponent(); } - catch (Exception ex) { MessageBox.Show("MLComponentの初期化に失敗しました。\n" + ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } - - // 日志文件名 - try - { - DateTime dtNow = DateTime.Now; - string stPrompt1 = dtNow.ToString("yyyyMMdd"); - LogfilePath = str_Confile[5]; - LogfileName = str_Confile[5] + str_Confile[6] + "_" + stPrompt1 + ".csv"; - Retry_num = Convert.ToInt32(str_Confile[8]); - } - catch (Exception ex) - { - MessageBox.Show("設定ファイルの内容でエラーが発生しました。\n" + ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); - Application.Exit(); return; - } - - // 表格外观 - dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; - dataGridView1.ColumnHeadersHeight = 30; - dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; - dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders; - dataGridView1.ColumnCount = 8; - dataGridView1.Columns[0].HeaderText = "処理ログID"; - dataGridView1.Columns[1].HeaderText = "駐輪場ID"; - dataGridView1.Columns[2].HeaderText = "プロセス名"; - dataGridView1.Columns[3].HeaderText = "ジョブ名"; - dataGridView1.Columns[4].HeaderText = "ステータス"; - dataGridView1.Columns[5].HeaderText = "エラーコード"; - dataGridView1.Columns[6].HeaderText = "ステータスコメント"; - dataGridView1.Columns[7].HeaderText = "登録日時"; - dataGridView1.EnableHeadersVisualStyles = false; - dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.ForestGreen; - - // 读取最近日志(失败也继续,但会把错误写到本地日志) - result = Logfile.ReadLogFile(); - if (result == 1) - { - SO_LogEdit(LETYPE_LOGFRD); - SO_WriteLog(); - Application.Exit(); return; - } - for (int i = 0; i < OutLogNum; i++) - dataGridView1.Rows.Add(Form1.koumoku[i, 0], Form1.koumoku[i, 1], Form1.koumoku[i, 2], Form1.koumoku[i, 3], - Form1.koumoku[i, 4], Form1.koumoku[i, 5], Form1.koumoku[i, 6], Form1.koumoku[i, 7]); - - // ===== 初始化 ===== - - // 尝试连接数据库(不受 MOCK_HW 影响) - try - { - // 如果 DEMO_DB=true,会在各 DB 函数里直接短路返回;这里仍尝试打开连接,便于随时切换 - SO_DBOpen(); - } - catch { /* 具体弹窗已在 SO_DBOpen 内部做了 */ } - - // 印字环境(DB 可用时读库;否则用默认值) - try - { - if (!DEMO_DB && IsDbReady) - { - bResult = SO_PrnEnvRead_rty(); - if (!bResult) { SO_CommIniErr(LETYPE_DBERR, 2); Application.Exit(); return; } - } - else - { - Prn_MaxNum = 1000; Prn_NowNum = 0; Prn_Alert_num = 50; Prn_Alert_flg = 0; Prn_ParkName = "デモ駐輪場"; - } - } - catch (Exception ex) - { - MessageBox.Show("印字環境読み取りでエラーが発生しました。\n" + ex.Message + "\n\nデフォルト値で続行します。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); - Prn_MaxNum = 1000; Prn_NowNum = 0; Prn_Alert_num = 50; Prn_Alert_flg = 0; Prn_ParkName = "デモ駐輪場"; - } - - // 硬件初始化(MOCK_HW=true 则跳过) - if (!MOCK_HW) - { - try - { - bResult = SO_PrnInit(); - if (!bResult) - { - var prnResult = MessageBox.Show("プリンタの初期化に失敗しました。\nプリンタなしで続行しますか?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - if (prnResult == DialogResult.No) { SO_CommIniErr(LETYPE_PRNINI, 3); Application.Exit(); return; } - } - } - catch (Exception ex) { MessageBox.Show("プリンタ初期化でエラーが発生しました。\n" + ex.Message + "\n\nプリンタなしで続行します。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } - - try - { - bResult = SO_MfifareInit(); - if (!bResult) - { - var mfResult = MessageBox.Show("Mifareリーダの初期化に失敗しました。\nMifareリーダなしで続行しますか?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - if (mfResult == DialogResult.No) { SO_CommIniErr(LETYPE_MFIINI, 4); Application.Exit(); return; } - } - } - catch (Exception ex) { MessageBox.Show("Mifareリーダ初期化でエラーが発生しました。\n" + ex.Message + "\n\nMifareリーダなしで続行します。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } - - try - { - bResult = SO_QRcordInit(); - if (!bResult) - { - var qrResult = MessageBox.Show("QRコードリーダの初期化に失敗しました。\nQRコードリーダなしで続行しますか?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - if (qrResult == DialogResult.No) { SO_CommIniErr(LETYPE_QRCINI, 5); Application.Exit(); return; } - } - } - catch (Exception ex) { MessageBox.Show("QRコードリーダ初期化でエラーが発生しました。\n" + ex.Message + "\n\nQRコードリーダなしで続行します。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } - } - else - { - StartDemoQrFeeder(); // 演示:自动“扫”二维码 - } - - // 启动日志:有DB走原逻辑;无DB只写本地文件 - if (!IsDbReady || DEMO_DB) { LogOnly(LETYPE_START, 6); } - else { bResult = SO_ComCont(LETYPE_START, 6); if (!bResult) { Application.Exit(); return; } } - - // KeepAlive - KEEPALIVE.TIM_Main(); - - // ================= 主循环 ================= - while (true) - { - // -------- 等待二维码/Mifare -------- - while (true) - { - Application.DoEvents(); - - if (EndType == 10) { Application.Exit(); return; } - - if (QRresult != 0) - { - if (QRresult == 1) { mode = QRresult; break; } - if (QRresult == 2) - { - if (!IsDbReady || DEMO_DB) { LogOnly(LETYPE_QRCERR, EndType); Application.Exit(); return; } - else { bResult = SO_ComCont(LETYPE_QRCERR, EndType); Application.Exit(); return; } - } - else { QRresult = 0; continue; } - } - else - { - if (MOCK_HW) { continue; } // 演示:完全跳过 Mifare 检查 - MFresult = SO_MfifareCheck(); - if (MFresult == 0) { mode = MFresult; break; } - else if ((MFresult <= 10) || (MFresult == 0xC0020001) || (MFresult == 0xC0020003)) { continue; } - else - { - if (!IsDbReady || DEMO_DB) { LogOnly(LETYPE_MFIERR, EndType); Application.Exit(); return; } - else { bResult = SO_ComCont(LETYPE_MFIERR, EndType); Application.Exit(); return; } - } - } - } - - // 暂停 KeepAlive - KEEPALIVE.MyTimer_stop(); - - // -------- DB 查询重试 -------- - for (int i = 0; i < Retry_num; i++) - { - str_uid = ""; - - if (mode == 1) - { - str_qrc = QRdata; - QRresult = 0; - result = SO_DBChk_qrnum(ref str_qrc, ref str_uid); - } - else - { - result = SO_DBChk_tagnum(ref str_uid); - } - - if (result == 0) - { - result = SO_CommLabelOutput(mode, ref str_uid, ref str_rctbl); - if (result != 0) - { - if (IsDbReady) { try { if (DBconnect.State != ConnectionState.Open) DBconnect.Open(); } catch { } } - continue; - } - break; - } - else if (result == 1) - { - if (IsDbReady) { try { if (DBconnect.State != ConnectionState.Open) DBconnect.Open(); } catch { } } - continue; - } - else - { - break; - } - } - - // -------- 查询结果处理 -------- - switch (result) - { - case 0: bResult = true; break; - case 1: - if (!IsDbReady || DEMO_DB) { LogOnly(LETYPE_DBERR, 6); Application.Exit(); return; } - else { bResult = SO_ComCont(LETYPE_DBERR, 6); Application.Exit(); return; } - case 2: - if (!IsDbReady || DEMO_DB) LogOnly(LETYPE_NONMFC, EndType); - else bResult = SO_ComCont(LETYPE_NONMFC, EndType); - break; - case 3: - if (!IsDbReady || DEMO_DB) LogOnly(LETYPE_NONQRC, EndType); - else bResult = SO_ComCont(LETYPE_NONQRC, EndType); - break; - case 4: - if (!IsDbReady || DEMO_DB) LogOnly(LETYPE_NONUID, EndType); - else bResult = SO_ComCont(LETYPE_NONUID, EndType); - break; - default: bResult = true; break; - } - if (!bResult) { Application.Exit(); return; } - - // -------- 可否与打印 -------- - bResult = SO_PRN_dtatchk(ref str_rctbl); - if (!bResult) break; - - result = SO_PrnOut(); // 演示下始终返回0(成功) - if (result != 0) - { - if (!IsDbReady || DEMO_DB) { LogOnly(LETYPE_PRNERR, EndType); Application.Exit(); return; } - else { bResult = SO_ComCont(LETYPE_PRNERR, EndType); Application.Exit(); return; } - } - - // -------- DB 写入 -------- - Prn_NowNum++; - if (((Prn_MaxNum - Prn_NowNum) < Prn_Alert_num) && (Prn_Alert_flg == 1)) - { - if (IsDbReady && !DEMO_DB) - { - result = SO_DBOpeQue(); - if (result != 0) - { - if (!IsDbReady || DEMO_DB) { LogOnly(LETYPE_DBERR, 6); Application.Exit(); return; } - else { bResult = SO_ComCont(LETYPE_DBERR, 6); Application.Exit(); return; } - } - } - } - else - { - if (IsDbReady && !DEMO_DB) - { - result = SO_DBNowPrnNum_rty(); - if (result != 0) - { - if (!IsDbReady || DEMO_DB) { LogOnly(LETYPE_DBERR, 6); Application.Exit(); return; } - else { bResult = SO_ComCont(LETYPE_DBERR, 6); Application.Exit(); return; } - } - } - } - - // 正常记录 - if (!IsDbReady || DEMO_DB) LogOnly(LETYPE_NORMAL, EndType); - else - { - bResult = SO_ComCont(LETYPE_NORMAL, EndType); - if (!bResult) { Application.Exit(); return; } - } - - KEEPALIVE.MyTimer_start(); - SO_LogFileDelCheck(); - Application.DoEvents(); - } - } - catch (Exception ex) - { - MessageBox.Show("アプリケーションでエラーが発生しました。\n" + ex.Message + "\n\nスタックトレース:\n" + ex.StackTrace, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); - Application.Exit(); - } - } - - //==================================================================================================================== - // エラー時共通の終了処理 - //==================================================================================================================== - private void SO_CommIniErr(int type, int n) - { - EndType = n; - SO_LogEdit(type); - - if ((type != LETYPE_DBOPEN) && (type != LETYPE_DBERR)) - { - SO_DBInsert_pjl(); - } - - SO_WriteLog(); - } - - //==================================================================================================================== - // 初期化以降の共通処理 - //==================================================================================================================== - private bool SO_ComCont(int type, int n) - { - uint ret = 0; - - EndType = n; - SO_LogEdit(type); - - if (type != LETYPE_DBERR) - { - bool bret = SO_DBInsert_pjl(); - if ((bret == false) || (n == LETYPE_DBERR)) - { - SO_LogEdit(LETYPE_DBERR); - SO_WriteLog(); - return false; - } - } - - ret = SO_WriteLog(); - if ((ret == 1) && (type == LETYPE_START) || (type == LETYPE_NORMAL)) - { - SO_LogEdit(LETYPE_LOGFWR); - SO_DBInsert_pjl(); - return false; - } - - return true; - } - - //==================================================================================================================== - // ローカルのログファイルに書き込み - //==================================================================================================================== - private uint SO_CommLabelOutput(uint mode, ref string str_uid, ref string[] str_rctbl) - { - uint uret = 0; - - // 利用者ID検索 - uret = SO_DBChk_usrid(str_uid, ref str_rctbl); - if (uret != 0) return 1; - - // 該当レコードなし(利用者ID) - if (str_rctbl[2].Length == 0) return 4; - - // 印刷情報取得 - uret = SO_PrnLabeEdit(mode); - if (uret == 1) return 1; - - return 0; - } - - //==================================================================================================================== - // ログファイル削除チェック - //==================================================================================================================== - private void SO_LogFileDelCheck() - { - int i = 0; - bool bret = true; - DateTime dtNow = DateTime.Now; - string Nowm = dtNow.ToString("yyyyMM"); - string Tgm = ""; - string work = ""; - - DirectoryInfo dir = new DirectoryInfo(Form1.LogfilePath); - if (!dir.Exists) return; - - FileInfo[] files = dir.GetFiles(); - - for (i = 0; i < files.Length; i++) - { - string f = Convert.ToString(files[i]); - work = f.Substring(f.Length - 12, 12); - Tgm = work.Substring(0, 6); - bret = LogFileChk_Mo(Nowm, Tgm); - if (bret == false) - { - System.IO.File.Delete(Form1.LogfilePath + files[i]); - } - } - } - - private bool LogFileChk_Mo(string Nwm, string Tgm) - { - int Ny, Ty; - int Nm, Tm; - int dy, dm, m, bd; - - Ny = Convert.ToInt32(Nwm.Substring(0, 4)); - Ty = Convert.ToInt32(Tgm.Substring(0, 4)); - Nm = Convert.ToInt32(Nwm.Substring(4, 2)); - Tm = Convert.ToInt32(Tgm.Substring(4, 2)); - bd = Convert.ToInt32(str_Confile[7]); - - dm = Nm - Tm; - if (dm < 0) - { - dm += 12; - --Ny; - } - - dy = Ny - Ty; - if (dy < 0) return true; - - m = dy * 12 + dm; - if (m > bd) return false; - - return true; - } - - //==================================================================================================================== - // 印刷可否判定 - //==================================================================================================================== - private bool SO_PRN_dtatchk(ref string[] str_rctbl) - { - string dateNow = Convert.ToString(DateTime.Now); - - if ((str_rctbl[4] != "1") || (str_rctbl[5] != "1")) return false; - - if ((dateNow.CompareTo(str_rctbl[1]) < 0) || (dateNow.CompareTo(str_rctbl[2]) > 0)) return false; - - if (dateNow.CompareTo(str_rctbl[3]) < 0) return false; - - return true; - } - - private void button1_Click(object sender, EventArgs e) - { - EndType = 10; - } - - //==================================================================================================================== - // ログ編集 - //==================================================================================================================== - private void SO_LogEdit(int n) - { - DateTime dtUtcNow = DateTime.Now; - - switch (n) - { - case LETYPE_NORMAL: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "シール印刷"; - str_logkm[4] = "正常印刷"; - str_logkm[5] = "0"; - str_logkm[6] = " "; - break; - - case LETYPE_START: - str_logkm[0] = " "; - str_logkm[2] = " "; - str_logkm[3] = " "; - str_logkm[4] = "開始"; - str_logkm[5] = "0"; - str_logkm[6] = "起動しました"; - break; - - case LETYPE_DBERR: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "利用者確認"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_DBERR.ToString(); - str_logkm[6] = "DBアクセスエラー"; - break; - - case LETYPE_DBOPEN: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "初期化処理"; - str_logkm[4] = "DBアタッチエラー"; - str_logkm[5] = ERROR_CODE_DBOPEN.ToString(); - str_logkm[6] = "DB OPENに失敗"; - break; - - case LETYPE_LAYOUT: - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "初期化処理"; - str_logkm[4] = "レイアウトファイルエラー"; - str_logkm[5] = ERROR_CODE_LAYOUT.ToString(); - str_logkm[6] = "レイアウトファイルが見つからない"; - break; - - case LETYPE_PRNINI: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "初期化処理"; - str_logkm[4] = "プリンタ初期化エラー"; - str_logkm[5] = ERROR_CODE_PRNINI.ToString(); - str_logkm[6] = "プリンタ初期化に失敗"; - break; - - case LETYPE_MFIINI: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "初期化処理"; - str_logkm[4] = "カードリーダ初期化エラー"; - str_logkm[5] = ERROR_CODE_MFIINI.ToString(); - str_logkm[6] = "Mifareリーダ初期化に失敗"; - break; - - case LETYPE_QRCINI: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "初期化処理"; - str_logkm[4] = "カードリーダ初期化エラー"; - str_logkm[5] = ERROR_CODE_QRCINI.ToString(); - str_logkm[6] = "QRコードリーダ初期化に失敗"; - break; - - case LETYPE_NONMFC: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "利用者確認"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_NONMFC.ToString(); - str_logkm[6] = "タグ利用者なし"; - break; - - case LETYPE_NONUID: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "利用者確認"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_NONUID.ToString(); - str_logkm[6] = "タグ利用者なし"; - break; - - case LETYPE_NONQRC: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "利用者確認"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_NONQRC.ToString(); - str_logkm[6] = "タグ利用者なし"; - break; - - case LETYPE_PRNERR: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "利用者確認"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_PRNERR.ToString(); - str_logkm[6] = "プリンタエラー"; - break; - - case LETYPE_QRCERR: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "利用者確認"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_QRCERR.ToString(); - str_logkm[6] = "QRコード読み取りエラー"; - break; - - case LETYPE_MFIERR: - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "利用者確認"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_MFIERR.ToString(); - str_logkm[6] = "Mifare読み取りエラー"; - break; - - case LETYPE_CONFRD: - str_logkm[0] = ""; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "初期化処理"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_CONFRD.ToString(); - str_logkm[6] = "設定ファイル読み込みエラー"; - break; - - case LETYPE_LOGFRD: - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "初期化処理"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_LOGFRD.ToString(); - str_logkm[6] = "ログファイル読み込みエラー"; - break; - - case LETYPE_LOGFWR: - str_logkm[0] = " "; - str_logkm[2] = "定期シール発行"; - str_logkm[3] = "利用者確認"; - str_logkm[4] = "error"; - str_logkm[5] = ERROR_CODE_LOGFWR.ToString(); - str_logkm[6] = "ログファイル書き込みエラー"; - break; - - default: - break; - } - - str_logkm[1] = str_Confile[3]; - str_logkm[7] = dtUtcNow.ToString(); - } - - //==================================================================================================================== - // ローカルのログファイルに書き込みと表示 - //==================================================================================================================== - private uint SO_WriteLog() - { - uint ret = 0; - - string str_logrec = str_logkm[0] + "," + str_logkm[1] + "," + str_logkm[2] + "," + str_logkm[3] + "," + str_logkm[4] + "," + str_logkm[5] + "," + str_logkm[6] + "," + str_logkm[7]; - System.Diagnostics.Trace.WriteLine(str_logrec); - - try - { - using (StreamWriter writer = new StreamWriter(LogfileName, true, Encoding.GetEncoding("utf-8"))) - { - writer.WriteLine(str_logrec); - } - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - ret = 1; - } - - for (int i = OutLogNum - 1; i > 0; i--) - { - for (int ii = 0; ii < 8; ii++) - { - dataGridView1[ii, i].Value = dataGridView1[ii, i - 1].Value; - } - } - - dataGridView1[0, 0].Value = str_logkm[0]; - dataGridView1[1, 0].Value = str_logkm[1]; - dataGridView1[2, 0].Value = str_logkm[2]; - dataGridView1[3, 0].Value = str_logkm[3]; - dataGridView1[4, 0].Value = str_logkm[4]; - dataGridView1[5, 0].Value = str_logkm[5]; - dataGridView1[6, 0].Value = str_logkm[6]; - dataGridView1[7, 0].Value = str_logkm[7]; - - this.Refresh(); - - return ret; - } - - //==================================================================================================================== - // DBオープン - //==================================================================================================================== - private bool SO_DBOpen() - { - bool ret = true; - - try - { - if (DBconnect == null) - { - DBconnect = new MySqlConnection(connectionParams); - } - - if (DBconnect.State != System.Data.ConnectionState.Open) - { - DBconnect.Open(); - } - } - catch (MySqlException mysqlEx) - { - System.Diagnostics.Trace.WriteLine("MySQL接続エラー: " + mysqlEx.Message); - - string errorMsg = "データベースへの接続に失敗しました。\n\n"; - errorMsg += "エラー詳細: " + mysqlEx.Message + "\n"; - errorMsg += "エラー番号: " + mysqlEx.Number + "\n\n"; - errorMsg += "以下を確認してください:\n"; - errorMsg += "1. MySQLサーバーが起動しているか\n"; - errorMsg += "2. データベース名が正しいか ('so-manager')\n"; - errorMsg += "3. ユーザー名とパスワードが正しいか\n"; - errorMsg += "4. ネットワーク接続が正常か"; - - MessageBox.Show(errorMsg, "データベース接続エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); - ret = false; - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine("データベース接続エラー: " + e.Message); - MessageBox.Show("データベース接続で予期しないエラーが発生しました。\n\nエラー: " + e.Message, - "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); - ret = false; - } - - return ret; - } - - //==================================================================================================================== - // DB更新:デバイス管理マスタ(device) KeepAlive - //==================================================================================================================== - public static int SO_DBKpAlive(string Insert_SQL) - { - // ★ DEMO_DB or 未接続:什么也不做(返回成功) - if (DEMO_DB || DBconnect == null || DBconnect.State != ConnectionState.Open) return 0; - - var transaction = DBconnect.BeginTransaction(); - try - { - using (var DBcmd = new MySqlCommand(Insert_SQL, DBconnect)) - { - DBcmd.CommandTimeout = 3; - DBcmd.ExecuteNonQuery(); - } - transaction.Commit(); - return 0; - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - return 1; - } - } - - //==================================================================================================================== - // DB更新:駐輪場マスタ(print_number) - //==================================================================================================================== - private uint SO_DBNowPrnNum_rty() - { - if (DEMO_DB || !IsDbReady) return 0; - - uint ret = 0; - for (int i = 0; i < Retry_num; i++) - { - ret = SO_DBNowPrnNum(); - if (ret == 1) - { - try { if (DBconnect.State != ConnectionState.Open) DBconnect.Open(); } catch { } - } - else return 0; - } - return 1; - } - - private uint SO_DBNowPrnNum() - { - if (DEMO_DB || !IsDbReady) return 0; - - using (var transaction = DBconnect.BeginTransaction()) - { - string Update_SQL = "update park set print_number=" + Convert.ToString(Prn_NowNum) + - " where park_id=" + str_Confile[3] + ";"; - System.Diagnostics.Trace.WriteLine(Update_SQL); - try - { - using (var DBcmd = new MySqlCommand(Update_SQL, DBconnect)) { DBcmd.CommandTimeout = 3; DBcmd.ExecuteNonQuery(); } - transaction.Commit(); - return 0; - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - return 1; - } - } - } - - //==================================================================================================================== - // DB追加:オペレータキュー(operator_que) - //==================================================================================================================== - private uint SO_DBOpeQue() - { - if (DEMO_DB || !IsDbReady) return 0; - - using (var transaction = DBconnect.BeginTransaction()) - { - DateTime NowDate = DateTime.Now; - string Insert_SQL = - "INSERT INTO operator_que (park_id, que_class, que_status_comment, work_instructions, created_at, que_status) " + - $"VALUES ({str_Confile[3]},104,'{str_Confile[4]}','{Prn_ParkName}の用紙がもうすぐ無くなります。交換してください','{NowDate}',1);"; - try - { - using (var DBcmd = new MySqlCommand(Insert_SQL, DBconnect)) { DBcmd.CommandTimeout = 3; DBcmd.ExecuteNonQuery(); } - transaction.Commit(); - return 0; - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - return 1; - } - } - } - - //==================================================================================================================== - // DB検索:設定マスタ(setting),デバイス管理マスタ(device) - //==================================================================================================================== - private bool SO_PrnEnvRead_rty() - { - if (DEMO_DB || !IsDbReady) - { - Prn_MaxNum = 1000; Prn_NowNum = 0; Prn_Alert_num = 50; Prn_Alert_flg = 0; Prn_ParkName = "デモ駐輪場"; - return true; - } - for (int i = 0; i < Retry_num; i++) - { - if (SO_PrnEnvRead()) return true; - try { if (DBconnect.State != ConnectionState.Open) DBconnect.Open(); } catch { } - } - return false; - } - - private bool SO_PrnEnvRead() - { - if (DEMO_DB || !IsDbReady) - { - Prn_MaxNum = 1000; Prn_NowNum = 0; Prn_Alert_num = 50; Prn_Alert_flg = 0; Prn_ParkName = "デモ駐輪場"; - return true; - } - - string Select_SQL1 = "select printable_alert_flag,printable_number,printable_alert_number from setting;"; - string Select_SQL2 = "select park_name, print_number from park where park_id=" + str_Confile[3] + ";"; - string Select_SQL3 = "select device_id from device where park_id=" + str_Confile[3] + " and device_type='プリンタ' and device_work=1;"; - - var transaction1 = DBconnect.BeginTransaction(); - MySqlCommand DBcmd1 = new MySqlCommand(Select_SQL1, DBconnect); - DBcmd1.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd1.ExecuteReader(); - while (reader.Read()) - { - Prn_Alert_flg = Convert.ToInt32(reader["printable_alert_flag"]); - Prn_MaxNum = Convert.ToInt32(reader["printable_number"]); - Prn_Alert_num = Convert.ToInt32(reader["printable_alert_number"]); - } - reader.Close(); - transaction1.Commit(); - } - catch (MySqlException e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd1.Dispose(); - return false; - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd1.Dispose(); - return false; - } - - var transaction2 = DBconnect.BeginTransaction(); - MySqlCommand DBcmd2 = new MySqlCommand(Select_SQL2, DBconnect); - DBcmd2.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd2.ExecuteReader(); - while (reader.Read()) - { - Prn_ParkName = Convert.ToString(reader["park_name"]); - if (reader.IsDBNull(1)) Prn_NowNum = 0; - else Prn_NowNum = Convert.ToInt32(reader["print_number"]); - } - reader.Close(); - transaction2.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd2.Dispose(); - return false; - } - - var transaction3 = DBconnect.BeginTransaction(); - MySqlCommand DBcmd3 = new MySqlCommand(Select_SQL3, DBconnect); - DBcmd3.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd3.ExecuteReader(); - while (reader.Read()) - { - KpAlive_devid = Convert.ToString(reader["device_id"]); - } - reader.Close(); - transaction3.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd3.Dispose(); - return false; - } - - return true; - } - - //==================================================================================================================== - // DB検索:定期契約マスタ(regular_contract) - QR - //==================================================================================================================== - private uint SO_DBChk_qrnum(ref string str_qrc, ref string str_userid) - { - if (DEMO_DB || !IsDbReady) { str_userid = "1001"; return 0; } - - string Select_SQL = "select user_id from regular_contract where contract_qr_id='" + str_qrc + "';"; - var transaction = DBconnect.BeginTransaction(); - MySqlCommand DBcmd = new MySqlCommand(Select_SQL, DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - str_userid = Convert.ToString(reader["user_id"]); - } - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd.Dispose(); - return 1; - } - - if (str_userid.Length == 0) return 2; - return 0; - } - - //==================================================================================================================== - // DB検索:定期契約マスタ(regular_contract) - by user_id - //==================================================================================================================== - private uint SO_DBChk_usrid(string str_uid, ref string[] str_rctbl) - { - if (DEMO_DB || !IsDbReady) - { - var s = DateTime.Now.AddDays(-1); - var e = DateTime.Now.AddMonths(1).AddDays(-1); - str_rctbl[0] = "RC-DEMO-0001"; - str_rctbl[1] = s.ToString("yyyy/MM/dd HH:mm:ss"); - str_rctbl[2] = e.ToString("yyyy/MM/dd HH:mm:ss"); - str_rctbl[3] = s.ToString("yyyy/MM/dd HH:mm:ss"); - str_rctbl[4] = "1"; - str_rctbl[5] = "1"; - return 0; - } - - string Select_SQL = "select contract_id,contract_periods,contract_periode,printable_date,contract_flag,contract_permission from regular_contract where user_id =" + str_uid + ";"; - MySqlCommand DBcmd = new MySqlCommand(Select_SQL, DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - var transaction = DBconnect.BeginTransaction(); - MySqlDataReader reader = DBcmd.ExecuteReader(); - - while (reader.Read()) - { - str_rctbl[0] = Convert.ToString(reader["contract_id"]); - str_rctbl[1] = Convert.ToString(reader["contract_periods"]); - str_rctbl[2] = Convert.ToString(reader["contract_periode"]); - str_rctbl[3] = Convert.ToString(reader["printable_date"]); - str_rctbl[4] = Convert.ToString(reader["contract_flag"]); - str_rctbl[5] = Convert.ToString(reader["contract_permission"]); - } - - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd.Dispose(); - return 1; - } - - return 0; - } - - //==================================================================================================================== - // DB検索:プリンタ利用者マスタ(user) - Mifare - //==================================================================================================================== - private uint SO_DBChk_tagnum(ref string str_userid) - { - if (DEMO_DB || !IsDbReady) { str_userid = "1001"; return 0; } - - var transaction = DBconnect.BeginTransaction(); - string Select_SQL = "select user_id from user where user_tag_serial='" + MFCODE + "';"; - MySqlCommand DBcmd = new MySqlCommand(Select_SQL, DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - str_userid = Convert.ToString(reader["user_id"]); - } - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd.Dispose(); - return 1; - } - - if (str_userid.Length == 0) return 3; - return 0; - } - - //==================================================================================================================== - // 印刷内容読み取り:駐車場名 - //==================================================================================================================== - private int SO_DBPrndat_pname() - { - if (DEMO_DB || !IsDbReady) { str_Prndat[0] = "デモ駐輪場"; return 0; } - - var transaction = DBconnect.BeginTransaction(); - MySqlCommand DBcmd = new MySqlCommand(DBREAD_park_name + str_Confile[3] + ";", DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - str_Prndat[0] = Convert.ToString(reader["park_name"]); - } - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd.Dispose(); - return 1; - } - - return 0; - } - - //==================================================================================================================== - // 印刷内容読み取り:定期種別 - //==================================================================================================================== - private int SO_DBPrndat_usubj1(uint type) - { - if (DEMO_DB || !IsDbReady) { str_Prndat[1] = " "; return 0; } - string str_Select; - - if (type == 0) - { - str_Select = DBREAD_utype_sub1[type] + "'" + MFCODE + "';"; - } - else - { - str_Select = DBREAD_utype_sub1[type] + "'" + QRdata + "';"; - } - - var transaction = DBconnect.BeginTransaction(); - MySqlCommand DBcmd = new MySqlCommand(str_Select, DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - string str_work = Convert.ToString(reader["usertype_subject1"]); - if (str_work == "学生") str_Prndat[1] = "学"; - else str_Prndat[1] = " "; - } - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd.Dispose(); - return 1; - } - - return 0; - } - - //==================================================================================================================== - // 印刷内容読み取り:場所種別 - //==================================================================================================================== - private int SO_DBPrndat_contid() - { - if (DEMO_DB || !IsDbReady) { str_Prndat[2] = "一般"; return 0; } - var transaction = DBconnect.BeginTransaction(); - MySqlCommand DBcmd = new MySqlCommand(DBREAD_ptype_subj + str_Confile[3] + ";", DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - str_Prndat[2] = Convert.ToString(reader["ptype_subject"]); - } - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - return 1; - } - - return 0; - } - - //==================================================================================================================== - // 印刷内容読み取り:開始日、終了日、定期契約ID - //==================================================================================================================== - private int SO_DBPrndat_cperiod(uint type) - { - if (DEMO_DB || !IsDbReady) - { - var s = DateTime.Now; - var e = DateTime.Now.AddMonths(1).AddDays(-1); - str_Prndat[3] = ""; Cperiods(s.ToString("yy/MM/dd HH:mm:ss"), ref str_Prndat[3]); - str_Prndat[4] = ""; Cperiode(e.ToString("yy/MM/dd HH:mm:ss"), ref str_Prndat[4]); - str_Prndat[6] = "C-DEMO-01234"; - return 0; - } - string str_Select; - string str_work1 = ""; - string str_work2 = ""; - string str_work3 = ""; - - if (type == 0) - { - str_Select = DBREAD_cont_periods[type] + "'" + MFCODE + "';"; - } - else - { - str_Select = DBREAD_cont_periods[type] + "'" + QRdata + "';"; - } - - var transaction = DBconnect.BeginTransaction(); - MySqlCommand DBcmd = new MySqlCommand(str_Select, DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - str_work1 = Convert.ToString(reader["contract_periods"]); - str_work2 = Convert.ToString(reader["contract_periode"]); - str_work3 = Convert.ToString(reader["contract_id"]); - } - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd.Dispose(); - return 1; - } - - Cperiods(str_work1, ref str_Prndat[3]); - Cperiode(str_work2, ref str_Prndat[4]); - str_Prndat[6] = str_work3; - - return 0; - } - - private void Cperiods(string str_work, ref string work) - { - int len = str_work.Length; - int mode = 0; - - work = str_work.Substring(2, 2) + "."; - for (int i = 5; i < len; i++) - { - if (mode == 0) - { - if (str_work[i] == '/') - { - work = work + '.'; - mode = 1; - } - else - { - work = work + str_work[i]; - } - } - else if (mode == 1) - { - if (str_work[i] == ' ') - { - break; - } - work = work + str_work[i]; - } - } - } - - private void Cperiode(string str_work, ref string work) - { - int len = str_work.Length; - - for (int i = 5; i < len; i++) - { - if (str_work[i] == '/') - { - break; - } - else - { - work = work + str_work[i]; - } - } - } - - //==================================================================================================================== - // 印刷内容読み取り:再発行 - //==================================================================================================================== - /* private int SO_DBPrndat_sis(uint type) - { - if (DEMO_DB || !IsDbReady) { str_Prndat[5] = "1"; return 0; } - string str_Select; - string str_work = ""; - - if (type == 0) - { - str_Select = DBREAD_cont_sissue[type] + "'" + MFCODE + "';"; - } - else - { - str_Select = DBREAD_cont_sissue[type] + "'" + QRdata + "';"; - } - - var transaction = DBconnect.BeginTransaction(); - MySqlCommand DBcmd = new MySqlCommand(str_Select, DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - str_work = Convert.ToString(reader["contract_seal_issue"]); - } - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd.Dispose(); - return 1; - } - - int n = Convert.ToInt32(str_work); - if (n > 1) str_Prndat[5] = "再" + str_work; - else str_Prndat[5] = str_work; - - return 0; - }*/ - // 印刷内容読み取り:再発行 (C# 7.3 互換) - private int SO_DBPrndat_sis(uint type) - { - if (DEMO_DB || !IsDbReady) { str_Prndat[5] = "1"; return 0; } - - string str_Select = (type == 0) - ? DBREAD_cont_sissue[0] + "'" + MFCODE + "';" - : DBREAD_cont_sissue[1] + "'" + QRdata + "';"; - - int n = 1; // デフォルト=初回発行 - - try - { - using (var transaction = DBconnect.BeginTransaction()) - using (var DBcmd = new MySqlCommand(str_Select, DBconnect)) - { - DBcmd.CommandTimeout = 3; - // DBcmd.Transaction = transaction; // SELECT なので不要だが付けても良い - - using (var reader = DBcmd.ExecuteReader()) - { - if (reader.Read()) - { - object v = reader["contract_seal_issue"]; - int tmp; - if (v != DBNull.Value && v != null && - int.TryParse(Convert.ToString(v), out tmp)) - { - n = tmp; - } - } - } - - transaction.Commit(); - } - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - try { DBconnect.Close(); } catch { } - return 1; - } - - str_Prndat[5] = (n > 1) ? ("再" + n.ToString()) : n.ToString(); - return 0; - } - - - //==================================================================================================================== - // 印刷内容読み取り:自治体名 - //==================================================================================================================== - private int SO_DBPrndat_cname() - { - if (DEMO_DB || !IsDbReady) { str_Prndat[7] = "デモ市"; return 0; } - var transaction = DBconnect.BeginTransaction(); - MySqlCommand DBcmd = new MySqlCommand(DBREAD_city_name + str_Confile[3] + ";", DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - str_Prndat[7] = Convert.ToString(reader["city_name"]); - } - reader.Close(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - DBcmd.Dispose(); - return 1; - } - - return 0; - } - - //==================================================================================================================== - // DB書き込み:プリンタ制御プログラムログ(print_job_log) - //==================================================================================================================== - private bool SO_DBInsert_pjl() - { - if (DEMO_DB || !IsDbReady) return true; - - string Insert_SQL = "insert into print_job_log ( park_id, process_name,job_name, status, error_code, status_comment, created_at) value (" + str_Confile[3] + ",'" + str_logkm[2] + "','" + str_logkm[3] + "','" + str_logkm[4] + "'," + str_logkm[5] + ",'" + str_logkm[6] + "','" + str_logkm[7] + "');"; - MySqlCommand DBcmd1 = new MySqlCommand(Insert_SQL, DBconnect); - MySqlTransaction transaction = DBconnect.BeginTransaction(); - DBcmd1.Transaction = transaction; - DBcmd1.CommandTimeout = 3; - - try - { - DBcmd1.ExecuteNonQuery(); - transaction.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - return false; - } - - string Select_SQL = "select job_log_id from print_job_log where created_at=" + "'" + str_logkm[7] + "';"; - var transaction1 = DBconnect.BeginTransaction(); - MySqlCommand DBcmd = new MySqlCommand(Select_SQL, DBconnect); - DBcmd.CommandTimeout = 3; - - try - { - MySqlDataReader reader = DBcmd.ExecuteReader(); - while (reader.Read()) - { - str_logkm[0] = Convert.ToString(reader["job_log_id"]); - } - reader.Close(); - transaction1.Commit(); - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - DBconnect.Close(); - return false; - } - - return true; - } - - //==================================================================================================================== - // Mfifareリーダ初期化 - //==================================================================================================================== - private bool SO_MfifareInit() - { - if (MOCK_HW) return true; - - uint result = 0; - result = CreateObject_Ex(); - if (result != AidConst.NORMALEND) return false; - - result = ObjectSetUp_Ex(); - if (result != AidConst.NORMALEND) return false; - - result = RW_Authentication_Ex(); - return true; - } - - //==================================================================================================================== - // QRコードリーダ初期化 - //==================================================================================================================== - private bool SO_QRcordInit() - { - if (MOCK_HW) return true; - - bool ret = true; - - try - { - // 优先使用配置文件 - if (!string.IsNullOrWhiteSpace(str_Confile[0])) - serialPort1.PortName = str_Confile[0]; // 例如 COM3 - else - { - // 兜底取最后一个串口 - PortList = SerialPort.GetPortNames(); - int len = PortList.Length; - serialPort1.PortName = "COM" + len.ToString(); - } - - if (int.TryParse(str_Confile[1], out var baud)) serialPort1.BaudRate = baud; - else serialPort1.BaudRate = 9600; - - // StopBits:配置里“1”当作 One - serialPort1.StopBits = StopBits.One; - - serialPort1.DataBits = 8; - serialPort1.Parity = Parity.None; - - serialPort1.Open(); - } - catch (Exception ex) - { - System.Diagnostics.Trace.WriteLine(ex.Message); - ret = false; - } - - return ret; - } - - //==================================================================================================================== - // Mfifareリーダ確認 - //==================================================================================================================== - public uint SO_MfifareCheck() - { - if (MOCK_HW) return 0xC0020001; // 演示:总是当作“未捕捉到卡” - uint result = 0; - uint vmode = 0; - uint vspeed = 0; - uint vtype = 0; - uint vbuffSize = 0; - uint vinfLen = 0; - - vmode = 1000; // 検出タイムアウト時間を1000ms - vspeed = AidConst.CARDSPEED_DEFAULT; - vtype = 0; - vbuffSize = 64; - - result = (uint)icc.StartTransaction(vmode, vspeed, ref vtype, out vinfBuff, vbuffSize, out vinfLen); - if (result != AidConst.NORMALEND) return result; - - if (((uint)vtype & (~AidConst.CARDTYPE_MORECARD)) == AidConst.CARDTYPE_MIF) - { - string chk = string.Format("{0:X2}{1:X2}", vinfBuff[2], vinfBuff[1]); - if (chk == MFCODE_CHK) return 5; - } - else - { - return 5; - } - - if ((vtype & AidConst.CARDTYPE_MORECARD) != 0) return 6; - - date1 = DateTime.Now; - TimeSpan tc = date1 - date2; - int second = tc.Seconds; - - uint ret = bcmp(vinfBuff, vinfBuff2); - if ((second < 2) && (ret == 0)) result = 10; - - vinfBuff2 = vinfBuff; - date2 = date1; - - MFCODE = string.Format("{0:X2}{1:X2}{2:X2}{3:X2}{4:X2}{5:X2}{6:X2}", vinfBuff[2], vinfBuff[3], vinfBuff[4], vinfBuff[5], vinfBuff[6], vinfBuff[7], vinfBuff[8]); - System.Diagnostics.Trace.WriteLine(MFCODE); - return result; - } - - public static uint bcmp(byte[] buf1, byte[] buf2) - { - for (int i = 0; i < 10; i++) - { - if (buf1[i] != buf2[i]) return 1; - } - return 0; - } - - //==================================================================================================================== - // ラベル出力 - //==================================================================================================================== - public uint SO_PrnOut() - { - if (MOCK_HW || SO_MLC == null) - { - System.Diagnostics.Trace.WriteLine("**** [DEMO] 擬似印刷(実機なし) ****"); - return 0; - } - uint Result = 0; - string Status = ""; - - System.Diagnostics.Trace.WriteLine("**** プリンタ起動 ****"); - - if (Result != 0) return Result; - return Result; - } - - //==================================================================================================================== - // プリンタ初期化 - //==================================================================================================================== - private bool SO_PrnInit() - { - if (MOCK_HW || SO_MLC == null) return true; - - int Result = 0; - - SO_MLC.LayoutFile = str_layoutFile; - SO_MLC.PrnData = "1"; - SO_MLC.Setting = "USB:"; - SO_MLC.Protocol = (Protocols)1; - - Result = SO_MLC.OpenPort(1); - if (Result != 0) return false; - - SO_MLC.EjectCut = true; - SO_MLC.MultiCut = 1; - - return true; - } - - //==================================================================================================================== - // ラベル編集 - //==================================================================================================================== - private uint SO_PrnLabeEdit(uint type) - { - if (SO_DBPrndat_pname() != 0) return 1; - if (SO_DBPrndat_usubj1(type) != 0) return 1; - if (SO_DBPrndat_contid() != 0) return 1; - if (SO_DBPrndat_cperiod(type) != 0) return 1; - if (SO_DBPrndat_sis(type) != 0) return 1; - if (SO_DBPrndat_cname() != 0) return 1; - - if (SO_MLC != null) - { - SO_MLC.SetPrnDataField("駐車場名", str_Prndat[0]); - SO_MLC.SetPrnDataField("定期種別", str_Prndat[1]); - SO_MLC.SetPrnDataField("場所種別", str_Prndat[2]); - SO_MLC.SetPrnDataField("開始日", str_Prndat[3]); - SO_MLC.SetPrnDataField("終了月", str_Prndat[4]); - SO_MLC.SetPrnDataField("再発行", str_Prndat[5]); - SO_MLC.SetPrnDataField("定期番号", str_Prndat[6]); - SO_MLC.SetPrnDataField("自治体名", str_Prndat[7]); - SO_MLC.SetPrnDataField("発行枚数", "1"); - SO_MLC.EjectCut = true; - SO_MLC.MultiCut = 1; - } - return 0; - } - - //==================================================================================================================== - // 串口数据到达 - //==================================================================================================================== - private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) - { - if (serialPort1.IsOpen == false) - { - QRresult = 2; - return; - } - - try - { - date1 = DateTime.Now; - QRdata = serialPort1.ReadExisting(); - System.Text.Encoding hEncoding = System.Text.Encoding.GetEncoding("utf-32"); - QRresult = 1; - } - catch (Exception ex) - { - QRdata = ex.Message; - QRresult = 2; - } - - date1 = DateTime.Now; - - TimeSpan tc = date1 - date2; - int second = tc.Seconds; - bool isEqual = QRdata.SequenceEqual(QRdata2); - - if ((second < 2) && (isEqual)) - { - QRresult = 10; - } - // 为了方便联调,强制改成固定 QR(可注释掉) - QRdata = "QRID1234"; - - QRdata2 = QRdata; - date2 = date1; - } - - //==================================================================================================================== - // IFD/カード/APIオブジェクトの生成 - //==================================================================================================================== - private uint CreateObject_Ex() - { - if ((ifd != null) || (icc != null) || (mif != null)) ReleaseAid_Ex(); - - ifd = Activator.CreateInstance(Type.GetTypeFromProgID("IFD.RW")); - if (ifd == null) return (1); - - icc = Activator.CreateInstance(Type.GetTypeFromProgID("ICC.Card")); - if (icc == null) return (1); - - mif = Activator.CreateInstance(Type.GetTypeFromProgID("Mifare.API")); - if (mif == null) return (1); - - return (AidConst.NORMALEND); - } - - //==================================================================================================================== - // IFD/カード/APIオブジェクトに対するSetUp - //==================================================================================================================== - private uint ObjectSetUp_Ex() - { - uint result = 0; - string portName = ""; - short i = 0; - - for (i = 1; i <= 9; i++) - { - portName = "COM" + Convert.ToString(i); - result = (uint)ifd.SetUp("PR", ref portName); - if (result == AidConst.NORMALEND) break; - } - if (result != AidConst.NORMALEND) return 1; - - result = (uint)icc.SetUp("AM:MIF", ref ifd); - if (result != AidConst.NORMALEND) return 1; - - result = (uint)mif.SetUp(ref icc); - if (result != AidConst.NORMALEND) return 1; - - return result; - } - - //==================================================================================================================== - // IFD/カード/APIオブジェクトの開放 - //==================================================================================================================== - private void ReleaseAid_Ex() - { - if (mif != null) - { - Marshal.ReleaseComObject(mif); - mif = null; - } - if (icc != null) - { - Marshal.ReleaseComObject(icc); - icc = null; - } - if (ifd != null) - { - Marshal.ReleaseComObject(ifd); - ifd = null; - } - System.GC.Collect(); - } - - //==================================================================================================================== - // ホストとリーダライタ間での相互認証 - //==================================================================================================================== - private uint RW_Authentication_Ex() - { - uint result = 0; - uint vtag; - byte[] vinfBuff = new byte[257]; - uint vbuffSize = 0; - uint vinfLen = 0; - byte[] vvalue = {0x03, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00, - 0x00, - 0x00}; - - vtag = 0x4088010; // 制御タグ値 - vbuffSize = 256; - - result = (uint)ifd.SetControl(vtag, ref vvalue, out vinfBuff, vbuffSize, out vinfLen); - if (result != AidConst.NORMALEND) return result; - - Array.Clear(vvalue, 0, vvalue.Length); - vinfLen = 0; - - vtag = 0x4088003; - vvalue[0] = 0; - - result = (uint)ifd.SetControl(ref vtag, ref vvalue, ref vinfBuff, ref vbuffSize, ref vinfLen); - return result; - } - //==================================================================================================================== - // EndTransactionを実行し、カードを開放 - //==================================================================================================================== - private uint ReleaseCard_Ex() - { - uint result; - int vmode; - - - vmode = 0; // 開放条件:モード0 - - // カードオブジェクトを使用したEndTransactionの実行 - result = (uint)icc.EndTransaction(ref vmode); - - return result; - } - - //==================================================================================================================== - // FormClosing - //==================================================================================================================== - private void Form1_FormClosing(object sender, FormClosingEventArgs e) - { - try { if (DBconnect != null && DBconnect.State != ConnectionState.Closed) DBconnect.Close(); } catch { } - - if (EndType < 3) return; - - try { if (SO_MLC != null) SO_MLC.ClosePort(); } catch { } - if (EndType == 3) return; - - try { if (icc != null) ReleaseCard_Ex(); } catch { } - if (EndType == 4) return; - - try { if (serialPort1 != null && serialPort1.IsOpen) serialPort1.Close(); } catch { } - } - } - - //==================================================================================================================== - // コンフィグファイル読み出し - //==================================================================================================================== - class ConRead - { - public static uint ReadConFile(ref string[] con) - { - try - { - using (StreamReader sr1 = new StreamReader(Form1.CONFIG_PATH, System.Text.Encoding.GetEncoding("shift_jis"))) - { - int i = 0; - string a = ""; - while ((a = sr1.ReadLine()) != null && i < con.Length) - { - if (a.Length > 0) - { - string s1 = a.Substring(0, 1); - if (s1 != "#") - { - con[i++] = a; - } - } - } - - if (i < con.Length) - { - System.Diagnostics.Trace.WriteLine("設定ファイルの項目数が不足しています。期待値: " + con.Length + ", 実際: " + i); - return 1; - } - } - } - catch (Exception e) - { - System.Diagnostics.Trace.WriteLine(e.Message); - return 1; - } - - return 0; - } - } - - //==================================================================================================================== - // ログファイル読み出し - //==================================================================================================================== - class Logfile - { - public static uint ReadLogFile() - { - string[,] work = new string[Form1.OutLogNum, 8]; - int ei = 0; - - for (int i = 0; i < Form1.OutLogNum; i++) - { - for (int j = 0; j < 8; j++) - { - work[i, j] = ""; - } - } - - DirectoryInfo dir = new DirectoryInfo(Form1.LogfilePath); - if (!dir.Exists) - { - for (int i = 0; i < Form1.OutLogNum; i++) - { - for (int j = 0; j < 8; j++) - { - Form1.koumoku[i, j] = ""; - } - } - return 0; - } - - FileInfo[] files = dir.GetFiles(); - - if (files.Length == 0) - { - for (int i = 0; i < Form1.OutLogNum; i++) - { - for (int j = 0; j < 8; j++) - { - Form1.koumoku[i, j] = ""; - } - } - return 0; - } - - Array.Sort(files, delegate (FileInfo a, FileInfo b) - { - return a.Name.CompareTo(b.Name); - }); - Array.Reverse(files); - - string DispLogfile = Form1.LogfilePath + files[0].Name; - - try - { - using (var sr = new System.IO.StreamReader(DispLogfile, System.Text.Encoding.GetEncoding("shift_jis"))) - { - int i1 = 0; - while (!sr.EndOfStream && i1 < Form1.OutLogNum) - { - ei = i1; - - var line = sr.ReadLine(); - if (string.IsNullOrEmpty(line)) continue; - - var values = line.Split(','); - int i2 = 0; - foreach (var value in values) - { - if (i2 < 8) - { - work[i1, i2++] = value ?? ""; - } - else - { - break; - } - System.Diagnostics.Trace.WriteLine("{0} ", value); - } - - while (i2 < 8) - { - work[i1, i2++] = ""; - } - - i1++; - } - - for (int i = 0; i < Form1.OutLogNum; i++) - { - if (ei >= 0 && ei < Form1.OutLogNum) - { - for (int j = 0; j < 8; j++) - { - Form1.koumoku[i, j] = work[ei, j] ?? ""; - } - } - else - { - for (int j = 0; j < 8; j++) - { - Form1.koumoku[i, j] = ""; - } - } - ei--; - if (ei < 0) ei = Form1.OutLogNum - 1; - } - } - } - catch (System.Exception e) - { - System.Console.WriteLine(e.Message); - - for (int i = 0; i < Form1.OutLogNum; i++) - { - for (int j = 0; j < 8; j++) - { - Form1.koumoku[i, j] = ""; - } - } - return 1; - } - - return 0; - } - } - - //==================================================================================================================== - // Keep Alive - //==================================================================================================================== - public static class KEEPALIVE - { - public static System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); - - public static void TIM_Main() - { - timer.Tick += new EventHandler(MyTimer); - timer.Interval = Convert.ToInt32(Form1.str_Confile[7]) * 60000; - timer.Enabled = true; - System.Diagnostics.Trace.WriteLine("-----------"); - System.Diagnostics.Trace.WriteLine(timer.Interval); - } - - public static void MyTimer_stop() - { - timer.Enabled = false; - } - - public static void MyTimer_start() - { - timer.Enabled = true; - } - - public static void MyTimer(object sender, EventArgs e) - { - MyTimer_stop(); - - DateTime dtNow = DateTime.Now; - string str_stat = ""; - string use_mem = ""; - string free_mem = ""; - - System.Diagnostics.Process p = System.Diagnostics.Process.GetCurrentProcess(); - System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_OperatingSystem"); - System.Management.ManagementObjectCollection moc = mc.GetInstances(); - - foreach (System.Management.ManagementObject mo in moc) - { - free_mem = Convert.ToString(mo["FreePhysicalMemory"]); - mo.Dispose(); - } - - moc.Dispose(); - mc.Dispose(); - - use_mem = Convert.ToString(p.WorkingSet64 / 1000); - str_stat = "使用メモリ:[" + use_mem + "] 空きメモリ:[" + free_mem + "]"; - - string Insert_SQL = "INSERT INTO hardware_check_log (device_id, status, status_comment, created_at) VALUES (" + Form1.KpAlive_devid + ",1,'" + str_stat + "','" + dtNow + "');"; - - Form1.SO_DBKpAlive(Insert_SQL); - - System.Diagnostics.Trace.WriteLine("-----------"); - System.Diagnostics.Trace.WriteLine(timer.Interval); - - MyTimer_start(); - } - } -} diff --git a/SoM_PrnControl/Form1.resx b/SoM_PrnControl/Form1.resx deleted file mode 100644 index c358324..0000000 --- a/SoM_PrnControl/Form1.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/SoM_PrnControl/MLComponentSettings.xml b/SoM_PrnControl/MLComponentSettings.xml deleted file mode 100644 index 9a2ca06..0000000 --- a/SoM_PrnControl/MLComponentSettings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - false - - true - - false - メイリオ - 9 - true - false - 0 - diff --git a/SoM_PrnControl/Program.cs b/SoM_PrnControl/Program.cs deleted file mode 100644 index b320ff2..0000000 --- a/SoM_PrnControl/Program.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; -using SATO.MLComponent; - - -namespace qk30ic -{ - static class Program - { - /// - /// アプリケーションのメイン エントリ ポイントです。 - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} diff --git a/SoM_PrnControl/Properties/AssemblyInfo.cs b/SoM_PrnControl/Properties/AssemblyInfo.cs deleted file mode 100644 index 8fef15c..0000000 --- a/SoM_PrnControl/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 -// アセンブリに関連付けられている情報を変更するには、 -// これらの属性値を変更してください。 -[assembly: AssemblyTitle("SoM_PenControl")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SoM_PenControl")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから -// 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、 -// その型の ComVisible 属性を true に設定してください。 -[assembly: ComVisible(false)] - -// このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります -[assembly: Guid("40c2b03c-3efc-4f9e-b942-71d4f94f5a37")] - -// アセンブリのバージョン情報は次の 4 つの値で構成されています: -// -// メジャー バージョン -// マイナー バージョン -// ビルド番号 -// Revision -// -// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます -// 既定値にすることができます: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SoM_PrnControl/Properties/MLComponentSettings.xml b/SoM_PrnControl/Properties/MLComponentSettings.xml deleted file mode 100644 index 9a2ca06..0000000 --- a/SoM_PrnControl/Properties/MLComponentSettings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - false - - true - - false - メイリオ - 9 - true - false - 0 - diff --git a/SoM_PrnControl/Properties/Resources.Designer.cs b/SoM_PrnControl/Properties/Resources.Designer.cs deleted file mode 100644 index ef055da..0000000 --- a/SoM_PrnControl/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// このコードはツールによって生成されました。 -// ランタイム バージョン:4.0.30319.42000 -// -// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 -// コードが再生成されるときに損失したりします。 -// -//------------------------------------------------------------------------------ - -namespace SoM_PenControl.Properties { - using System; - - - /// - /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 - /// - // このクラスは StronglyTypedResourceBuilder クラスが ResGen - // または Visual Studio のようなツールを使用して自動生成されました。 - // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に - // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SoM_PenControl.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// すべてについて、現在のスレッドの CurrentUICulture プロパティをオーバーライドします - /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/SoM_PrnControl/Properties/Resources.resx b/SoM_PrnControl/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/SoM_PrnControl/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/SoM_PrnControl/Properties/Settings.Designer.cs b/SoM_PrnControl/Properties/Settings.Designer.cs deleted file mode 100644 index 0859eba..0000000 --- a/SoM_PrnControl/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// このコードはツールによって生成されました。 -// ランタイム バージョン:4.0.30319.42000 -// -// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 -// コードが再生成されるときに損失したりします。 -// -//------------------------------------------------------------------------------ - -namespace SoM_PenControl.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.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/SoM_PrnControl/Properties/Settings.settings b/SoM_PrnControl/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/SoM_PrnControl/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/SoM_PrnControl/SoM_PrnControl.csproj b/SoM_PrnControl/SoM_PrnControl.csproj deleted file mode 100644 index fc71437..0000000 --- a/SoM_PrnControl/SoM_PrnControl.csproj +++ /dev/null @@ -1,135 +0,0 @@ - - - - - Debug - AnyCPU - {40C2B03C-3EFC-4F9E-B942-71D4F94F5A37} - WinExe - SoM_PenControl - SoM_PenControl - v4.8 - 512 - true - true - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\Google.Protobuf.3.5.1\lib\net45\Google.Protobuf.dll - - - False - ..\..\..\ソーリン\ラベル\MLCMP-file-v5_8_4_0\MLComponent.dll - - - False - ..\..\..\ソーリン\ラベル\MLCMP-file-v5_8_4_0\MLComponent.XmlSerializers.dll - - - ..\packages\MySql.Data.8.0.12\lib\net452\MySql.Data.dll - - - - - - - - - - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - False - Microsoft .NET Framework 4.6.1 %28x86 および x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - - \ No newline at end of file diff --git a/SoM_PrnControl/packages.config b/SoM_PrnControl/packages.config deleted file mode 100644 index 16f1413..0000000 --- a/SoM_PrnControl/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app.config b/app.config new file mode 100644 index 0000000..0cbb707 --- /dev/null +++ b/app.config @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app.ico b/app.ico new file mode 100644 index 0000000000000000000000000000000000000000..720aaee3156334bc00d1c450ed611c4e4d31a8eb GIT binary patch literal 67646 zcmeHQ36La36|G@`T~U}-#C1(!RuEmeK{32=5D^gt5yA@;6yl+vqKID*kX;Z74^VCq zQ9(eF!0StR1Dr)>aHXI&!0d4 zl~FVjjYKO~M$t&LELy&3Bzi&=Ma!coS{X(BF#f!b5&Ihu5D*X$5D+jt05Aez0f6-Y zEVN^N0PFJH@btuB0sxOi0G0sQ8o;gqUJc+a0NxAWWB?xpa3+9r0GtcpEC8niI0eA_ z02~3}^#EQ1UAN>QPGyihjJ{G_>0QNKbeHy^G0jvUWJAk_Y`~|?@0sI@l ze*ruM;9)!X|FoU^2Y|lr4d;q{30PGCl2|z42)(Lzu_b~dC?neRm zDuCMn+y~&FM$I4*X(Xj z3@7@G{ys18fAYd4fX@Lq0Kn#f52{6<)8FR@>LgzQa43MMgn6MF%p>|Iyg)wqGJpfQ zcBrNoh8OdY{s|xa3BYGfKUg%p6fB2%On>qL?G9Y8o@jFdZ3yK$WXRyr|JN0+@slw+ zSAS`bx(dLa03J1DBrFA^|CRu50OB<`*WtZBNKe|IXkVngC<`BPt?(NFN85Ta_#iUC z?0<^^yavEweQ?mf@D8&-p9bJkvm4VsalhG$+VKPJ2Y&xn7&7UGX2Y36Sm5NKLQW{i(7viFc`2nq#aH7 zn@ZsU%7^2~1Hncxn6S01v)ClsiCg6Wd4O^t%mo7qThDF`;CKM{rtkpg0>-5Uop3;5 zJn(pnAD}JEmjhfE&`!j-#PtWX3j(5ud_cRwMQviX5n(_)9i%w7tm)E{DuPx^CRp9 z;Lk0(U?LBw55AP&8_+HoYIrh$zQi=25q-yBXAH?)c9f_a5p|Ceb&n25+z0H7uIS@t zAEb>q%{E9mz?g&g)4w!VJRs_piMn@+x>H2m2g2cw6?OZIx~)XrhE>wRWWZJcu4^*~ zkOvq`#(aY+Z=DKJw@~WuJ0fZS_=wjKZnb(jOl1B@$XYi!ex-!Vq;lsMD-UdA~sOwQ27633bC8McuOs6QJ%BVoj43 z8RE(rKR_R0WqN?E@sAUA)3dy*|K8#MCSUwR)SXbqMqsu;`u|y(edr=Zx9XZ z{Q@-ifAb4bw@Y5S`v9;vfIDXy|KtVQg+ItTB>wMMknz?tVWE>;HF&y4Mw< zK>`4~TU>bScu#9z55%=-lAq^>+4*-Cb-xMpFU_~K4<3=52p+7K-7hnYfARzU1)MJm z*QDZ_Mby1R)crTmzcl^-&UK(i&fEYnK8p>=mjkp1alKe*4lup%v7+t@QTM+<|I+lQ zzvRf=ME8)B{#*zA%xcr+)&ouU?_jc@YuI6(x2t;Z`$gTM9yxQvbb7{o_~X3O|BMl0 zeZt)FA);;_QFoANymqas4~F?VcZj-uaueMHfR|fM(oQt@&oNH$BSq}NHus+?>K+PX zzY@Ns4RA+~oVfwuwQX`ke46|JQwLxj+}wU)`Yc4<)nV?hg!ZdN-Np2wNeL zVE^;!&;OZ6oZI$Hd$p+hT^Re7(Eo0;p(W(Z4aWHbSee28-%5YhD?Tvq4QZni$SSg*l#^Mu7r*&}{znSM{UahtEWP>XAM>DCcP>{j0@+zDLw;QO4(+!1ky)62N~7(4X@FYvgaA zTyHkmb6?*lx*yk{4~n`!in^cKn&eBO?(?GVvOYODzf)emU)1f(m_Jdsi1TO_uslEJ zfFyHz-oNw*@1FHpO!ue1vRCsq$M(IVF%N!H)E#cIhg*ueO&DV@>Ne=JgK_cen%yjG zSI-Jt_wACy@0Z3KtRIru_bBRi7j=K=0sSdM>1*U#`C!pF?qtsLTKW;T?-b*{(&|H{ z(K_ujt^p6v`hKErKT-GRIi~-ls5@WO?Ir3Sm-Sf(88-Hr=YL}f*-w68j@U6-`%2Wk z(d6%3$baS%P}h8osC#_YXB>2x&cA`J-C0jKZCq#lj5Yx7U6#oYDC#grwja*%%qL;q zTy7uLAj8J~i-1b%o0ET7lQ>gMu&8^Rtz)`1{<%K>z1=5_`4-sN-xRWu)PFnvu&62okrtMpOOCD<1|waip6{}UacGS z=Q^JAOJ;lIFv03Xvz9#T{dJ;go^yHW&-FI#SXI-Xb{ytGFs^Kv$eIbP?FitFHs{lB zn}^1ozDxR_kwg9;+6DcOcDzeO-Da6OW5{6jeYuZCH}M0=toq-9qVArG$N$Zu z?nOgJ)=aQ`P1<;}*sk)~ZnkecWAiDOtD#%;{{#pA_)QyR{A5=vDUo-wC z>%FtW>|^Xx=EYNQ?ze+`z_XS&_o&+gz_9?-;@FWqwVKY)H&PrZ5k|&>An&=0QLUwGVZyotq;Jc z&7WCnU-Vo5_xgFbAMG(Y)c+Vicud z?3=Z}6L>Meq+=030AsnNg1To<0&r!ZePO=%Ie@Jbx@Lvd{W-OS4#@cT*OyuMo32m$ z*gb*%h3HS6m^DFj=N(!cD{ER8^#il+;T~n;ddyCCLdn?2s^#f?x*q*L?7!T$H>>}^ zx^JxaN?k7R96mIKH*`_B}#1JQr5V^Q7T z=)c5rm%@54zx-#Pald)Sk!79sXTb6q-c&FT^jD&8o09b348RRxye%Pi0qFOk4I%Bav%=&* z_e4(H1F={0>3q5`YsGUP(OLVt6KK0HXbWU~_f94CKl*vDGCTTw>ib?lEA{?&my!KG zY`-VXIR`L*?0H4$Pnb`aam&5(oAsKGMelzzYyM=-_n8e=4}v)%jN{6x2QYqk&ywqZ z`uDj9>RiQ16z%VR`W=0ar*qG!+31=ToWn)kcB1au9Q6OUs5_vf{g1IT+gcsVe(K|X zeip`haLr%H?$Qq49uTB!78$_U57xlQlyi~>(*YSr!`wysG5fjS`{CI*PcjZBm#;r7 zMBOv3wn-NH({IEWlCu6k%7E4yCl|2bFB!@58d0JdrEt8T&k0=tRE zHvUd}0Ox?8h`KGSeiqXS7#qZVig#H~1@}n)*bp6jU*>hPE_|lk&Z=Pb?cSR~7o;8N z%~j|CX)t*}{gCyMhw)(kOYZoNvM`&_lSSPZtPW>8IY2uA_mJ77>^%ee3l<~B7@yhp zgTGTWjwS2Lx-_77uzf;UFMu>|Cj+PlUM}jM)Vn7Q=oTzSfc4@##fmbQgmq;K+k*r8 z7oxE)aIR=u{{YtltOM};{(XypqA-1Mxv2YM2fG000on~%7rp4M0{RrD57I~UjSg!9 z=7pRt>Xrr`7(5scFz)Aj9e99s;Fw#qbntp0z<6L6%m3y2KW$w=9ymkPJ+)i5p@81O zlLMR!+W84s`NUJ=mdiWZ(YE(VJG_l z{RFHz#65>M3w$tG5Oq#8wh?ikk2E=ue0G=Zo5mXClpT)=yf7FrJ0Wew^a;}zkkGvK zFKtDX2h2O;UO;abbuTozKz?9-D(0o|;6CO3a*PCC?F{o5&}YQ`+om$)mXlBTJ<1K* z52-JnX0=5ahs3>V7-Q7ykI4&qtVE$UPEwwHlG!3#gUe^QldKJgH2+%P_+DV2SMsa<$3&`9$~R zSp)q`z~%(*19q&a`=QD8q;KcL-$4HgV7aDT_mL02pEKvQmwXcFUm+~li1j0mFna*? z1Fj2uN#joU4)pH=OdhZv{XXU|T4lOE^9%cdANUNkVbh<*c<4Ee!yXoxt%tQ}s3Xuu ze4*KgXeXK$EnKIx)0l2|j`Zdlly(W$Ibux9TY~?h`>^!__gQCcx~GY{SBbh)MC1A- zx7ohM%sZ=!ClXrIzHq;2T-S(st+YY0zA5WtEjF8Eu>H&-%)dz6FYUqHQ;_w>_7-(V ziMlgI-Ib<8a_=$jIm*2!@3!1U+H3rSwB?>>tXs+2ML)N7$X7+(d7|zZi(%iva+=q- zHA}Gh_8}}!mGi}>W|w6=$}2?O>ntCM@|y9;Jox`1W<#c)L7Nomyv+D2#4HB{1Ox;G z1Ox;O1Zve_YIMeRrlQFIU^TmHy!nl|?R_C`kF=bRRy00{&qre|?S(Dv1ugC7yVZZ+ zyg-|F7VvV&EHd-A;qr87IP?C1?^JzP8?3J_|T*Xm4 z9W~pN^>%|RC+h9wb|fXgpR`E|K5ugS_)(hem{M$yC*#Y$Kko5V{d|*$##ZzD9uLKB zkB3&1@0vV7`mWXXcqBgG+V*%NKJT~JM3LX-Z)db?o!jgr|9&m)cszLLM>t-*_5zMC z?|tGn`N*)aR-5wsXSCjK^xr6n?DcOvzP z2eFT-mNp;QNBn>u)-)NijwZv_G0}1X>y5@^ngnaKZOAs-M*c?IdZ*d0vtzSezhJXn gzd*BHzkt_{FW|M~3narRo;haDm%QT4PN@w42WY3)=>Px# literal 0 HcmV?d00001 diff --git a/app.manifest b/app.manifest new file mode 100644 index 0000000..8f8b41f --- /dev/null +++ b/app.manifest @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/qk30ic.Form1.resx b/qk30ic.Form1.resx new file mode 100644 index 0000000..2958918 --- /dev/null +++ b/qk30ic.Form1.resx @@ -0,0 +1,1221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +text/microsoft-resx1.3System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBD +dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0 +ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5T +aXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdo +dAAACAgCAAAAAAAAAAAAAAAPAwAAAD4IAQACAAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAA +AAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUDZWVlBWVlZQdl +ZWUHZWVlBmVlZQRlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGVlZQBlZWUIZWVlF2VlZStlZWVAZWVlVWVlZWdlZWV2ZWVlgmVlZYtlZWWRZWVllGVl +ZZVlZWWSZWVljWVlZYRlZWV5ZWVlamVlZVllZWVFZWVlMGVlZRxlZWULZWVlAQAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAGVlZQBlZWUEZWVlEWVl +ZSxlZWVSZWVleWVlZZ1lZWW5ZWVlzmVlZdxlZWXlZWVl7GVlZfFlZWX1ZWVl92VlZfllZWX6ZWVl ++mVlZfllZWX4ZWVl9WVlZfJlZWXtZWVl52VlZd9lZWXSZWVlv2VlZaVlZWWDZWVlXGVlZTVlZWUW +ZWVlBmVlZQJlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlEWVlZXFlZWWwZWVl +1GVlZellZWXzZWVl+mVlZf5lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl+2VlZfVlZWXsZWVl22VlZbpl +ZWWLZWVlVWVlZSdlZWUNZWVlBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUnZWVl0WVlZftlZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/WVl +ZfllZWXvZWVl0GVlZZplZWVZZWVlJmVlZQxlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAWVlZShlZWXXZWVl/mVlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX+ZWVl/GVlZfFlZWXIZWVlhmVlZUNlZWUZZWVlAwAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUBZWVlKGVlZddlZWX+ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX8ZWVl4GVlZaJlZWVaZWVlImVlZQMAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUoZWVl12VlZf5lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZellZWWvZWVlY2VlZSFlZWUBAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAWVlZShlZWXXZWVl/mVlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXpZWVlrmVlZVtlZWUWAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUBZWVlKGVlZddlZWX+ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl42VlZZ9lZWVD +ZWVlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUoZWVl12VlZf5lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl+mVlZdRl +ZWV+ZWVlIWVlZQJlZWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAWVlZShlZWXYZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +ZfFlZWW0ZWVlSGVlZQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUBZWVlJWVlZcplZWXvZWVl72VlZe9lZWXv +ZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9l +ZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72Vl +Ze9lZWXvZWVl8WVlZfNlZWX3ZWVl+2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZfxlZWXZZWVlc2VlZRllZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUQZWVlVmVlZWZlZWVmZWVlZmVlZWZl +ZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVl +ZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVl +ZmVlZWdlZWVtZWVleWVlZYxlZWWkZWVlv2VlZddlZWXqZWVl+WVlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf5lZWXuZWVlmWVlZS5lZWUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZWVlAmVlZQtlZWUcZWVlOWVlZWJlZWWTZWVlwmVlZedlZWX+ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX5ZWVlt2VlZUVlZWUHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQhlZWUpZWVlX2VlZaFlZWXcZWVl/WVl +Zf9lZWX/ZWVl/2VlZf9lZWX+ZWVlzGVlZVplZWUKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlF2VlZU5lZWWdZWVl +5mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl2mVlZWplZWUOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZRllZWVc +ZWVlv2VlZfplZWX/ZWVl/2VlZf9lZWX/ZWVl4mVlZXVlZWUQAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQVl +ZWUxZWVlmWVlZfBlZWX/ZWVl/2VlZf9lZWX/ZWVl5mVlZXplZWUQZWVlAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVl +ZQFlZWUbZWVlgmVlZellZWX/ZWVl/2VlZf9lZWX/ZWVl5mVlZXVlZWUOAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AGVlZQBlZWUTZWVle2VlZehlZWX/ZWVl/2VlZf9lZWX/ZWVl4mVlZWplZWUKAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAGVlZQBlZWUUZWVlhmVlZe9lZWX/ZWVl/2VlZf9lZWX+ZWVl2WVlZVllZWUGAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAABlZWUcZWVloGVlZfllZWX/ZWVl/2VlZf9lZWX/ZWVlzGVlZUVlZWUDAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABlZWUzZWVlxmVlZf5lZWX/ZWVl/2VlZf9lZWX+ZWVlt2VlZS5lZWUBAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAGVlZQRlZWVhZWVl6mVlZf9lZWX/ZWVl/2VlZf9lZWX5ZWVlmWVlZRllZWUA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZWVlAGVlZRVlZWWlZWVl/WVlZf9lZWX/ZWVl/2VlZf9lZWXuZWVlc2VlZQkA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAZWVlAmVlZUplZWXkZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXZZWVlR2Vl +ZQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABlZWUAZWVlFWVlZaRlZWX+ZWVl/2VlZf9lZWX/ZWVl/2VlZfxlZWWzZWVl +IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwF1 +shsJdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3Wy +Gwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIb +C3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsL +dbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1 +shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbCXWyGwMAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABlZWUFZWVlXGVlZfBlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfFlZWV9 +ZWVlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbIHWy +G291shuEdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIb +g3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuD +dbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1 +shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3Wy +G4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1sht4dbIbU3WyGyp1shsNAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUqZWVlxWVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZdRl +ZWVDZWVlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwd1sht4dbIb +8HWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/51shvudbIbxXWyG4J1shs5 +dbIbCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAGVlZRFlZWWPZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl+GVl +ZZ9lZWUWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbOHWyG8p1shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb+nWyG8x1 +shtwdbIbGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAZWVlA2VlZV5lZWXwZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +42VlZVtlZWUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGw51shuJdbIb9nWyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G+t1shuSdbIbIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlOmVlZdVlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX9 +ZWVlrmVlZSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbQHWyG9F1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/N1shuTdbIbFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAABlZWUjZWVltmVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWXqZWVlYmVlZQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGxB1shuJdbIb+nWyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG+t1shtxdbIbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAGVlZRNlZWWZZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf5lZWWvZWVlIWVlZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsAdbIbOXWyG851shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/nWyG8t1shs0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAZWVlCGVlZX9lZWX7ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZellZWVZZWVlAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwt1sht6dbIb+HWyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb8nWyG3x1shsDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABlZWUCZWVlamVlZfJlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/mVlZaJlZWUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsAdbIbJ3WyG791shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIbtHWyGx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAGVlZQBlZWVZZWVl6WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl32VlZUNlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwV1shtcdbIb8HWyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shvVdbIbPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAGVlZU1lZWXhZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX8ZWVlhWVlZQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbE3WyG6B1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG+V1shtYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAZWVlRGVlZdplZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWXHZWVlJmVlZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAHWyGwF1shs1dbIb2XWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb7nWyG2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABlZWVAZWVl1mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZfBlZWVZZWVlBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAdbIbBnWyG211shv3dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shvxdbIbcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAGVlZT9lZWXVZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/WVlZZllZWUMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAHWyGwB1shsRdbIbqnWyG/11shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/B1shtuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAZWVlP2VlZdVlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX+ZWVlz2VlZSdlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAdbIbAXWyGzB1shvZdbIb/nWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb6nWyG2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABlZWVDZWVl2WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWXuZWVlVWVlZQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAB1shsCdbIbXnWyG/J1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shvfdbIbTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAGVlZUtlZWXfZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZfllZWWKZWVlBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAHWyGwZ1shuRdbIb+XWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG8t1shsxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZWVlV2VlZehlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/WVlZbllZWUWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAdbIbF3WyG7x1shv9dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv8 +dbIboXWyGxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGVlZQFlZWVpZWVl8mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl2mVlZTQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAB1shs0dbIb23WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+Z1 +shtcdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAZWVlCWVlZYBlZWX7ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWXsZWVlWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAHWyG1h1shvrdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv6dbIbpHWy +GxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAABlZWUVZWVlnGVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZfVlZWWBZWVlAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1 +shsAdbIbe3WyG/N1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/XWyG8B1shs4dbIb +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAGVlZSdlZWW8ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl+2VlZaNlZWULAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWy +Gwd1shuadbIb+XWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/nWyG/R1shuxdbIbPHWyGwQAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl +ZWUAZWVlQ2VlZd1lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX+ZWVlvmVlZRsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIb +E3WyG7R1shv9dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/XWyG/x1shv7dbIb+3Wy +G/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb ++3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7 +dbIb+3WyG/t1shv7dbIb+3WyG/t1shv6dbIb93WyG+11shvFdbIbdHWyGyN1shsDAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVl +ZQdlZWVuZWVl9mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWXRZWVlLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsj +dbIbx3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/l1shvvdbIb4nWyG891shu8dbIbrXWyG6Z1shuldbIb +pXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shul +dbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1 +shuldbIbpXWyG6V1shuldbIbpHWyG5p1sht9dbIbUHWyGyF1shsIdbIbAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVl +GWVlZaRlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZd9lZWVEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGzR1 +shvVdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb+3WyG+h1shvHdbIbmXWyG2l1shtAdbIbJXWyGxV1shsNdbIbCnWyGwp1shsK +dbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1 +shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWy +Gwp1shsKdbIbCnWyGwp1shsKdbIbB3WyGwR1shsCdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWU9 +ZWVl2mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl5mVlZVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbRHWy +G951shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb+nWyG9l1shuhdbIbX3WyGyd1shsIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlC2VlZX9l +ZWX6ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWXsZWVlaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtSdbIb +5HWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+B1 +shuYdbIbSnWyGxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUuZWVly2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZfFlZWV3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyG111shvo +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/Z1shu0dbIbVnWy +GxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlCmVlZYFlZWX3ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl9WVlZYNlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbZXWyG+t1 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvodbIbiXWyGyp1shsCAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWVBZWVl2GVlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX3ZWVljGVlZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtrdbIb7XWy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv+dbIb3XWyG2t1shsUAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlHWVlZaplZWX7ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +ZfllZWWRZWVlBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyG251shvudbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/nWyG9t1shtfdbIbDAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQ1lZWWBZWVl8GVlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl ++WVlZZJlZWUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbbXWyG+51shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvidbIbZXWyGwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUIZWVlZ2VlZeJlZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX5 +ZWVlkmVlZQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtpdbIb7XWyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb73WyG3x1shsRdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlCmVlZV1lZWXYZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfll +ZWWQZWVlBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyG2N1shvrdbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/l1shujdbIbHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAGVlZRBlZWVmZWVl2GVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl92Vl +ZYplZWUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbW3WyG+d1shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb0HWyG0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAABlZWUhZWVlf2VlZeFlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX0ZWVl +gWVlZQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtPdbIb43WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/J1sht+dbIbCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AABlZWUKZWVlR2VlZahlZWXwZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfBlZWV0 +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyG0B1shvcdbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv+dbIbx3WyGy0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUHZWVl +NmVlZYhlZWXVZWVl/GVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl62VlZWUA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbMHWyG9J1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/N1sht+dbIbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUBZWVlAmVlZQRlZWUTZWVlQmVlZYtlZWXP +ZWVl9GVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXkZWVlUwAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsfdbIbw3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb2HWyGzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUEZWVlCGVlZQplZWUKZWVlCmVl +ZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVl +CmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUK +ZWVlCmVlZQplZWUKZWVlCmVlZQplZWUMZWVlFGVlZSVlZWVGZWVleGVlZbJlZWXfZWVl9mVlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZdxlZWU/AAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGxB1shuvdbIb/XWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/t1 +shukdbIbDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQJlZWUSZWVlMmVlZV1lZWWBZWVllmVlZZplZWWaZWVl +mmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWa +ZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZpl +ZWWaZWVlmmVlZZplZWWaZWVlmmVlZaRlZWW4ZWVl0mVlZellZWX2ZWVl/GVlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVlzWVlZSoAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbBXWyG5R1shv4dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb83Wy +G2h1shsDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABlZWUNZWVlRWVlZZllZWXYZWVl9GVlZftlZWX8ZWVl/GVlZfxlZWX8 +ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxl +ZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVl +ZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/WVlZf1lZWX+ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf5lZWW4ZWVlFgAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbc3WyG/J1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvfdbIb +NnWyGwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZWVlFWVlZXNlZWXZZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl+WVlZZtlZWUHAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtQdbIb6XWyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/nWyG711shsY +dbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGVlZQ9lZWV4ZWVl6WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXzZWVld2VlZQAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGy11shvVdbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv8dbIbl3WyGwoA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AABlZWUEZWVlUWVlZeBlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZellZWVQAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbE3WyG7R1shv8dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/p1sht1dbIbBgAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AGVlZRplZWWsZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl02VlZSsAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsFdbIbhnWyG/h1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb9HWyG1l1shsEAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUC +ZWVlR2VlZedlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfxlZWWuZWVlEAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwJ1shtTdbIb7nWyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvrdbIbRnWyGwIAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQdl +ZWV8ZWVl+mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl92VlZXxlZWUEAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAXWyGyd1shvRdbIb/nWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+N1shs5dbIbAQAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlDWVl +ZaVlZWX9ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXoZWVlR2VlZQIAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsAdbIbDXWyG551shv9dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb3HWyGzF1shsAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUXZWVl +vmVlZf5lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/mVlZcJlZWUdZWVlAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsEdbIbYHWyG/N1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvXdbIbLHWyGwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAGVlZR5lZWXK +ZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX7ZWVliGVlZQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwF1shssdbIbz3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG9Z1shsrdbIbAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlIGVlZc1l +ZWX+ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZehlZWVJZWVlAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGw91shuSdbIb/nWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb2HWyGy11shsAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUbZWVlxmVl +Zf5lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVltmVlZRxlZWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbA3WyG1B1shvpdbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvddbIbMnWyGwEAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAGVlZRJlZWW0ZWVl +/WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZfdlZWVyZWVlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbIHWyG7J1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+R1shs6dbIbAQAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlCmVlZZJlZWX8 +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl0GVlZTRlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsHdbIba3WyG/J1shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb7XWyG0h1shsCAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUEZWVlYWVlZfRl +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf1lZWWNZWVlEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwB1shsudbIbwnWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv1dbIbWnWyGwQAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUtZWVlz2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl3GVlZUdlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwt1sht6dbIb9XWyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/t1sht0dbIbBgAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAGVlZQxlZWWDZWVl ++WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZfxlZWWaZWVlFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGzN1shvFdbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/HWyG5R1shsKAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAWVlZS9lZWW/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl3GVlZU1lZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbCXWyG3l1shvxdbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv9dbIbuHWyGxV1shsAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlBmVlZVFl +ZWXVZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +ZfllZWWYZWVlFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbKnWyG711shv9 +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/51shvZdbIbL3WyGwEAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlCmVl +ZVplZWXOZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +1GVlZUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsEdbIbZnWyG+l1 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/F1shtadbIbAgAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVl +CGVlZURlZWWqZWVl72VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfNlZWWG +ZWVlCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsYdbIbpXWy +G/l1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb+nWyG5N1shsIAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +ZWVlAmVlZR9lZWViZWVlsWVlZeVlZWX5ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxl +ZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVl +ZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl +/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8 +ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX6ZWVlwGVlZSwA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwF1shtCdbIb +1nWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv+dbIbyXWyGyUAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGVlZQZlZWUaZWVlQmVlZXBlZWWLZWVlj2VlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVl +ZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVl +jmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWO +ZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5l +ZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVlj2VlZYplZWVLZWVlAwAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwh1sht2 +dbIb8XWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvtdbIbYXWyGwEAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABlZWUCZWVlBmVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVl +CWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJ +ZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQll +ZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVl +ZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCGVlZQQAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAHWyGxx1 +shundbIb+3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/t1shuqdbIbFQAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAnWy +Gzl1shvKdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+F1shtTdbIbAQAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIb +BnWyG1t1shvhdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb+nWyG6h1shsaAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +dbIbD3WyG3t1shvudbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb6XWyG2l1shsGAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAdbIbHHWyG5V1shv1dbIb/3WyG/91shv/dbIb/3WyG/91shv+dbIbx3WyGzsAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAB1shsAdbIbKHWyG6l1shv5dbIb/3WyG/91shv/dbIb/3WyG/91shv6dbIbpXWyGyN1shsAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAB1shsCdbIbM3WyG7Z1shv7dbIb/3WyG/91shv/dbIb/3WyG/91shv0dbIbjXWyGxl1shsA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAB1shsCdbIbOnWyG751shv7dbIb/3WyG/91shv/dbIb/3WyG/91shvvdbIbhnWyGxkA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAB1shsCdbIbPXWyG711shv7dbIb/3WyG/91shv/dbIb/3WyG/91shvvdbIbkHWy +GyR1shsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAB1shsCdbIbOnWyG7Z1shv5dbIb/3WyG/91shv/dbIb/3WyG/91shv2dbIb +qXWyGz91shsIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAB1shsBdbIbMnWyG6h1shv2dbIb/3WyG/91shv/dbIb/3WyG/91shv9 +dbIbzXWyG291shsidbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAB1shsAdbIbKHWyG5V1shvudbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb7XWyG691shtedbIbHnWyGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbG3WyG3t1shvgdbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG+V1shuxdbIbbnWyGzJ1shsMdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbD3WyG1t1shvJdbIb+nWyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/51shvtdbIbz3WyG6F1shtsdbIbPnWyGx51shsMdbIbBXWyGwN1shsD +dbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1 +shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWy +GwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsBdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbBnWyGzl1shumdbIb8HWyG/51shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb+nWyG/B1shvgdbIbx3WyG6l1shuMdbIbdXWyG2Z1 +shtddbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWy +G1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIb +WnWyG1p1shtadbIbWnWyG1p1shtadbIbV3WyGy11shsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAnWyGxt1sht0dbIb1XWyG/l1 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv+dbIb+3WyG/l1shv3dbIb9XWy +G/R1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb +83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvz +dbIb83WyG/N1shvzdbIb83WyG/R1shvsdbIbe3WyGwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAHWyGwh1shtAdbIbpHWy +G+h1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/d1shuBdbIbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwB1shsXdbIb +ZXWyG7x1shvwdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb93WyG4F1shsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsC +dbIbKnWyG3h1shvEdbIb9HWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv3dbIbgXWyGwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAdbIbB3WyGzJ1sht4dbIbwXWyG/J1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/d1shuBdbIbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAHWyGwl1shstdbIbanWyG7F1shvodbIb/nWyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb93WyG4F1shsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAB1shsHdbIbH3WyG051shuQdbIbznWyG/N1shv8dbIb/nWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/nWyG/11shvvdbIbdnWyGwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbA3WyGw91shsqdbIbXnWyG5x1shvPdbIb7XWyG/h1 +shv8dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv9dbIb ++XWyG/B1shvWdbIbpXWyG2d1shsidbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwB1shsEdbIbDXWyGyZ1shtRdbIbhHWy +G7J1shvUdbIb6HWyG/F1shv4dbIb/HWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv9dbIb+XWyG/N1shvqdbIb2HWyG7h1shuM +dbIbWXWyGyx1shsQdbIbBXWyGwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAXWyGwJ1shsFdbIb +EXWyGyt1shtNdbIbcXWyG5F1shusdbIbwXWyG9B1shvbdbIb4nWyG+Z1shvpdbIb7HWyG+x1shvs +dbIb7HWyG+p1shvndbIb43WyG911shvTdbIbxHWyG7B1shuWdbIbd3WyG1N1shswdbIbFXWyGwZ1 +shsCdbIbAXWyGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAdbIbBHWyGw91shsddbIbLXWyGz11shtMdbIbWHWyG2F1shtndbIbaXWyG2l1 +shtndbIbYnWyG1p1shtOdbIbQHWyGzB1shsgdbIbEXWyGwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////// +///////////////////////////////////////////wD//////////////////wAAAP//////// +///////8AAAAAD///////////////AAAAAAP//////////////wAAAAAAf/////////////8AAAA +AAB//////////////AAAAAAAH/////////////wAAAAAAAf////////////8AAAAAAAD//////// +/////AAAAAAAAP////////////wAAAAAAAAf///////////8AAAAAAAAH////////////AAAAAAA +AAf///////////wAAAAAAAAD//////////////////gAAf//////////////////wAD///////// +//////////gAf//////////////////+AD///////////////////wAP//////////////////+A +D///////////////////wAf//////////////////+AD///////////////////4Af////////// +/////////AD///////////////////wAf//////////////////8AH///////////////////gA/ +//////////////////4AP///+AAAAAAAAAAAH///AB////gAAAAAAAAAAAf//wAP///wAAAAAAAA +AAAB//+AD///8AAAAAAAAAAAAP//gAf//+AAAAAAAAAAAAB//8AH///gAAAAAAAAAAAAP//AA/// +wAAAAAAAAAAAAB//wAH//4AAAAAAAAAAAAAf/8AB//+AAAAAAAAAAAAAD//AAf//AAAAAAAAAAAA +AA//wAD//wAAAAAAAAAAAAAP/+AA//8AAAAAAAAAAAAAD//gAH/+AAAAAAAAAAAAAA//4AB//gAA +AAAAAAAAAAAP/+AAf/wAAAAAAAAAAAAAD//gAD/8AAAAAAAAAAAAAA//4AA//AAAAAAAAAAAAAAP +/+AAP/wAAAAAAAAAAAAAD//gAD/8AAAAAAAAAAAAAA//wAA//AAAAAAAAAAAAAAP/8AAP/wAAAAA +AAAAAAAAH//AAB/4AAAAAAAAAAAAAB//wAAf+AAAAAAAAAAAAAA//4AAH/gAAAAAAAAAAAAAf/+A +AB/4AAAAAAAAAAAAAP//gAAf+AAAAAAAAAAAAAP//wAAH/gAAAAAf/////////8AAB/4AAAAA/// +///////+AAAf+AAAAA///////////AAAD/gAAAAf//////////wAAA/4AAAAf//////////4AAAP ++AAAAP//////////+AAAD/gAAAH///////////AAAA/4AAAB///////////gAAAP+AAAB/////// +////wAAAD/gAAA///////////4AAAA/4AAAP//////////4AAAAf+AAAH//////////4AAAAH/gA +AB/////////+AAAAAB/4AAA///wAAAAAAAAAAAAf+AAAP//wAAAAAAAAAAAAH/gAAD//4AAAAAAA +AAAAAB/8AAA//8AAAAAAAAAAAAAf/AAAP/+AAAAAAAAAAAAAH/wAAH//AAAAAAAAAAAAAD/8AAB/ +/wAAAAAAAAAAAAA//AAAf/4AAAAAAAAAAAAAP/wAAH/+AAAAAAAAAAAAAD/8AAB//AAAAAAAAAAA +AAA//AAAf/wAAAAAAAAAAAAAP/4AAH/8AAAAAAAAAAAAAH/+AAB//AAAAAAAAAAAAAB//wAAf/wA +AAAAAAAAAAAAf/8AAH/8AAAAAAAAAAAAAP//gAB//gAAAAAAAAAAAAD//4AAf/4AAAAAAAAAAAAB +//+AAH/+AAAAAAAAAAAAAf//wAB//gAAAAAAAAAAAAP//+AAf/8AAAAAAAAAAAAD///gAD//gAAA +AAAAAAAAB///8AA//8AAAAAAAAAAAA////AAP//gAAAAAAAAAAAP///4AD//8AAAAAAAAAAAH/// ++AA///wAAAAAAAAAAB////wAH///AAAAAAAAAAA////8AB///////////////////gAP//////// +//////////8AD///////////////////gAf//////////////////8AH///////////////////A +Af//////////////////4AD///////////////////AA///////////////////4AD////////// +/////////AAf//////////////////4AB///////////////////AAH//////////////////8AA +P//////////////////gAAAAAAAAB///////////8AAAAAAAAAf///////////gAAAAAAAAH//// +///////8AAAAAAAAB////////////wAAAAAAAAf////////////AAAAAAAAH////////////8AAA +AAAAB/////////////wAAAAAAAf/////////////AAAAAAAH/////////////8AAAAAAB/////// +///////wAAAAAA///////////////gAAAAA////////////////8AAA///////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////8L \ No newline at end of file diff --git a/qk30ic.Form2.resx b/qk30ic.Form2.resx new file mode 100644 index 0000000..2958918 --- /dev/null +++ b/qk30ic.Form2.resx @@ -0,0 +1,1221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +text/microsoft-resx1.3System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBD +dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0 +ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5T +aXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdo +dAAACAgCAAAAAAAAAAAAAAAPAwAAAD4IAQACAAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAA +AAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUDZWVlBWVlZQdl +ZWUHZWVlBmVlZQRlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGVlZQBlZWUIZWVlF2VlZStlZWVAZWVlVWVlZWdlZWV2ZWVlgmVlZYtlZWWRZWVllGVl +ZZVlZWWSZWVljWVlZYRlZWV5ZWVlamVlZVllZWVFZWVlMGVlZRxlZWULZWVlAQAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAGVlZQBlZWUEZWVlEWVl +ZSxlZWVSZWVleWVlZZ1lZWW5ZWVlzmVlZdxlZWXlZWVl7GVlZfFlZWX1ZWVl92VlZfllZWX6ZWVl ++mVlZfllZWX4ZWVl9WVlZfJlZWXtZWVl52VlZd9lZWXSZWVlv2VlZaVlZWWDZWVlXGVlZTVlZWUW +ZWVlBmVlZQJlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlEWVlZXFlZWWwZWVl +1GVlZellZWXzZWVl+mVlZf5lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl+2VlZfVlZWXsZWVl22VlZbpl +ZWWLZWVlVWVlZSdlZWUNZWVlBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUnZWVl0WVlZftlZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/WVl +ZfllZWXvZWVl0GVlZZplZWVZZWVlJmVlZQxlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAWVlZShlZWXXZWVl/mVlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX+ZWVl/GVlZfFlZWXIZWVlhmVlZUNlZWUZZWVlAwAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUBZWVlKGVlZddlZWX+ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX8ZWVl4GVlZaJlZWVaZWVlImVlZQMAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUoZWVl12VlZf5lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZellZWWvZWVlY2VlZSFlZWUBAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAWVlZShlZWXXZWVl/mVlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXpZWVlrmVlZVtlZWUWAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUBZWVlKGVlZddlZWX+ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl42VlZZ9lZWVD +ZWVlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUoZWVl12VlZf5lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl+mVlZdRl +ZWV+ZWVlIWVlZQJlZWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAWVlZShlZWXYZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +ZfFlZWW0ZWVlSGVlZQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUBZWVlJWVlZcplZWXvZWVl72VlZe9lZWXv +ZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9l +ZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72VlZe9lZWXvZWVl72Vl +Ze9lZWXvZWVl8WVlZfNlZWX3ZWVl+2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZfxlZWXZZWVlc2VlZRllZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUQZWVlVmVlZWZlZWVmZWVlZmVlZWZl +ZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVl +ZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVlZmVlZWZlZWVmZWVl +ZmVlZWdlZWVtZWVleWVlZYxlZWWkZWVlv2VlZddlZWXqZWVl+WVlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf5lZWXuZWVlmWVlZS5lZWUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZWVlAmVlZQtlZWUcZWVlOWVlZWJlZWWTZWVlwmVlZedlZWX+ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX5ZWVlt2VlZUVlZWUHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQhlZWUpZWVlX2VlZaFlZWXcZWVl/WVl +Zf9lZWX/ZWVl/2VlZf9lZWX+ZWVlzGVlZVplZWUKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlF2VlZU5lZWWdZWVl +5mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl2mVlZWplZWUOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZRllZWVc +ZWVlv2VlZfplZWX/ZWVl/2VlZf9lZWX/ZWVl4mVlZXVlZWUQAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQVl +ZWUxZWVlmWVlZfBlZWX/ZWVl/2VlZf9lZWX/ZWVl5mVlZXplZWUQZWVlAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVl +ZQFlZWUbZWVlgmVlZellZWX/ZWVl/2VlZf9lZWX/ZWVl5mVlZXVlZWUOAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AGVlZQBlZWUTZWVle2VlZehlZWX/ZWVl/2VlZf9lZWX/ZWVl4mVlZWplZWUKAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAGVlZQBlZWUUZWVlhmVlZe9lZWX/ZWVl/2VlZf9lZWX+ZWVl2WVlZVllZWUGAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAABlZWUcZWVloGVlZfllZWX/ZWVl/2VlZf9lZWX/ZWVlzGVlZUVlZWUDAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABlZWUzZWVlxmVlZf5lZWX/ZWVl/2VlZf9lZWX+ZWVlt2VlZS5lZWUBAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAGVlZQRlZWVhZWVl6mVlZf9lZWX/ZWVl/2VlZf9lZWX5ZWVlmWVlZRllZWUA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZWVlAGVlZRVlZWWlZWVl/WVlZf9lZWX/ZWVl/2VlZf9lZWXuZWVlc2VlZQkA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAZWVlAmVlZUplZWXkZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXZZWVlR2Vl +ZQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABlZWUAZWVlFWVlZaRlZWX+ZWVl/2VlZf9lZWX/ZWVl/2VlZfxlZWWzZWVl +IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwF1 +shsJdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3Wy +Gwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIb +C3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsL +dbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1 +shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbC3WyGwt1shsLdbIbCXWyGwMAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABlZWUFZWVlXGVlZfBlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfFlZWV9 +ZWVlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbIHWy +G291shuEdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIb +g3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuD +dbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1 +shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3Wy +G4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1shuDdbIbg3WyG4N1sht4dbIbU3WyGyp1shsNAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUqZWVlxWVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZdRl +ZWVDZWVlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwd1sht4dbIb +8HWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/51shvudbIbxXWyG4J1shs5 +dbIbCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAGVlZRFlZWWPZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl+GVl +ZZ9lZWUWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbOHWyG8p1shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb+nWyG8x1 +shtwdbIbGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAZWVlA2VlZV5lZWXwZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +42VlZVtlZWUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGw51shuJdbIb9nWyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G+t1shuSdbIbIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlOmVlZdVlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX9 +ZWVlrmVlZSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbQHWyG9F1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/N1shuTdbIbFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAABlZWUjZWVltmVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWXqZWVlYmVlZQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGxB1shuJdbIb+nWyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG+t1shtxdbIbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAGVlZRNlZWWZZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf5lZWWvZWVlIWVlZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsAdbIbOXWyG851shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/nWyG8t1shs0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAZWVlCGVlZX9lZWX7ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZellZWVZZWVlAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwt1sht6dbIb+HWyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb8nWyG3x1shsDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABlZWUCZWVlamVlZfJlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/mVlZaJlZWUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsAdbIbJ3WyG791shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIbtHWyGx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAGVlZQBlZWVZZWVl6WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl32VlZUNlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwV1shtcdbIb8HWyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shvVdbIbPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAGVlZU1lZWXhZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX8ZWVlhWVlZQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbE3WyG6B1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG+V1shtYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAZWVlRGVlZdplZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWXHZWVlJmVlZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAHWyGwF1shs1dbIb2XWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb7nWyG2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABlZWVAZWVl1mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZfBlZWVZZWVlBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAdbIbBnWyG211shv3dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shvxdbIbcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAGVlZT9lZWXVZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/WVlZZllZWUMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAHWyGwB1shsRdbIbqnWyG/11shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/B1shtuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAZWVlP2VlZdVlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX+ZWVlz2VlZSdlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAdbIbAXWyGzB1shvZdbIb/nWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb6nWyG2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABlZWVDZWVl2WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWXuZWVlVWVlZQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAB1shsCdbIbXnWyG/J1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shvfdbIbTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAGVlZUtlZWXfZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZfllZWWKZWVlBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAHWyGwZ1shuRdbIb+XWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG8t1shsxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZWVlV2VlZehlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/WVlZbllZWUWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAdbIbF3WyG7x1shv9dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv8 +dbIboXWyGxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGVlZQFlZWVpZWVl8mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl2mVlZTQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAB1shs0dbIb23WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+Z1 +shtcdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAZWVlCWVlZYBlZWX7ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWXsZWVlWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAHWyG1h1shvrdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv6dbIbpHWy +GxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAABlZWUVZWVlnGVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZfVlZWWBZWVlAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1 +shsAdbIbe3WyG/N1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/XWyG8B1shs4dbIb +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAGVlZSdlZWW8ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl+2VlZaNlZWULAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWy +Gwd1shuadbIb+XWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/nWyG/R1shuxdbIbPHWyGwQAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl +ZWUAZWVlQ2VlZd1lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX+ZWVlvmVlZRsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIb +E3WyG7R1shv9dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/XWyG/x1shv7dbIb+3Wy +G/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb ++3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7dbIb+3WyG/t1shv7 +dbIb+3WyG/t1shv7dbIb+3WyG/t1shv6dbIb93WyG+11shvFdbIbdHWyGyN1shsDAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVl +ZQdlZWVuZWVl9mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWXRZWVlLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsj +dbIbx3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/l1shvvdbIb4nWyG891shu8dbIbrXWyG6Z1shuldbIb +pXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shul +dbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1shuldbIbpXWyG6V1 +shuldbIbpXWyG6V1shuldbIbpHWyG5p1sht9dbIbUHWyGyF1shsIdbIbAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVl +GWVlZaRlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZd9lZWVEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGzR1 +shvVdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb+3WyG+h1shvHdbIbmXWyG2l1shtAdbIbJXWyGxV1shsNdbIbCnWyGwp1shsK +dbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1 +shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWyGwp1shsKdbIbCnWy +Gwp1shsKdbIbCnWyGwp1shsKdbIbB3WyGwR1shsCdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWU9 +ZWVl2mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl5mVlZVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbRHWy +G951shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb+nWyG9l1shuhdbIbX3WyGyd1shsIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlC2VlZX9l +ZWX6ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWXsZWVlaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtSdbIb +5HWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+B1 +shuYdbIbSnWyGxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUuZWVly2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZfFlZWV3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyG111shvo +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/Z1shu0dbIbVnWy +GxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlCmVlZYFlZWX3ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl9WVlZYNlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbZXWyG+t1 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvodbIbiXWyGyp1shsCAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWVBZWVl2GVlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX3ZWVljGVlZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtrdbIb7XWy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv+dbIb3XWyG2t1shsUAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlHWVlZaplZWX7ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +ZfllZWWRZWVlBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyG251shvudbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/nWyG9t1shtfdbIbDAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQ1lZWWBZWVl8GVlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl ++WVlZZJlZWUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbbXWyG+51shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvidbIbZXWyGwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUIZWVlZ2VlZeJlZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX5 +ZWVlkmVlZQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtpdbIb7XWyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb73WyG3x1shsRdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlCmVlZV1lZWXYZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfll +ZWWQZWVlBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyG2N1shvrdbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/l1shujdbIbHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAGVlZRBlZWVmZWVl2GVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl92Vl +ZYplZWUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbW3WyG+d1shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb0HWyG0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAABlZWUhZWVlf2VlZeFlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX0ZWVl +gWVlZQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtPdbIb43WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/J1sht+dbIbCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AABlZWUKZWVlR2VlZahlZWXwZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfBlZWV0 +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyG0B1shvcdbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv+dbIbx3WyGy0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUHZWVl +NmVlZYhlZWXVZWVl/GVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl62VlZWUA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbMHWyG9J1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/N1sht+dbIbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUBZWVlAmVlZQRlZWUTZWVlQmVlZYtlZWXP +ZWVl9GVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXkZWVlUwAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsfdbIbw3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb2HWyGzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUEZWVlCGVlZQplZWUKZWVlCmVl +ZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVl +CmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUKZWVlCmVlZQplZWUK +ZWVlCmVlZQplZWUKZWVlCmVlZQplZWUMZWVlFGVlZSVlZWVGZWVleGVlZbJlZWXfZWVl9mVlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZdxlZWU/AAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGxB1shuvdbIb/XWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/t1 +shukdbIbDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQJlZWUSZWVlMmVlZV1lZWWBZWVllmVlZZplZWWaZWVl +mmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWa +ZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZplZWWaZWVlmmVlZZpl +ZWWaZWVlmmVlZZplZWWaZWVlmmVlZaRlZWW4ZWVl0mVlZellZWX2ZWVl/GVlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVlzWVlZSoAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbBXWyG5R1shv4dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb83Wy +G2h1shsDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABlZWUNZWVlRWVlZZllZWXYZWVl9GVlZftlZWX8ZWVl/GVlZfxlZWX8 +ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxl +ZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVl +ZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/WVlZf1lZWX+ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf5lZWW4ZWVlFgAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbc3WyG/J1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvfdbIb +NnWyGwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAZWVlFWVlZXNlZWXZZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl+WVlZZtlZWUHAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shtQdbIb6XWyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/nWyG711shsY +dbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGVlZQ9lZWV4ZWVl6WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXzZWVld2VlZQAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGy11shvVdbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv8dbIbl3WyGwoA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AABlZWUEZWVlUWVlZeBlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZellZWVQAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbE3WyG7R1shv8dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/p1sht1dbIbBgAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AGVlZRplZWWsZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl02VlZSsAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsFdbIbhnWyG/h1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb9HWyG1l1shsEAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUC +ZWVlR2VlZedlZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfxlZWWuZWVlEAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwJ1shtTdbIb7nWyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvrdbIbRnWyGwIAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQdl +ZWV8ZWVl+mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl92VlZXxlZWUEAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAXWyGyd1shvRdbIb/nWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+N1shs5dbIbAQAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlDWVl +ZaVlZWX9ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWXoZWVlR2VlZQIAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsAdbIbDXWyG551shv9dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb3HWyGzF1shsAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUXZWVl +vmVlZf5lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/mVlZcJlZWUdZWVlAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsEdbIbYHWyG/N1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvXdbIbLHWyGwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAGVlZR5lZWXK +ZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX7ZWVliGVlZQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwF1shssdbIbz3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG9Z1shsrdbIbAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUAZWVlIGVlZc1l +ZWX+ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZehlZWVJZWVlAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGw91shuSdbIb/nWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb2HWyGy11shsAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQBlZWUbZWVlxmVl +Zf5lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVltmVlZRxlZWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbA3WyG1B1shvpdbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvddbIbMnWyGwEAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAGVlZRJlZWW0ZWVl +/WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZfdlZWVyZWVlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbIHWyG7J1shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+R1shs6dbIbAQAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlCmVlZZJlZWX8 +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl0GVlZTRlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsHdbIba3WyG/J1shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb7XWyG0h1shsCAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlZWUEZWVlYWVlZfRl +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf1lZWWNZWVlEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwB1shsudbIbwnWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv1dbIbWnWyGwQAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVlZQFlZWUtZWVlz2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl3GVlZUdlZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwt1sht6dbIb9XWyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/t1sht0dbIbBgAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAGVlZQxlZWWDZWVl ++WVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZfxlZWWaZWVlFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGzN1shvFdbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/HWyG5R1shsKAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlAWVlZS9lZWW/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl3GVlZU1lZWUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbCXWyG3l1shvxdbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv9dbIbuHWyGxV1shsAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlBmVlZVFl +ZWXVZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +ZfllZWWYZWVlFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbKnWyG711shv9 +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/51shvZdbIbL3WyGwEAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVlCmVl +ZVplZWXOZWVl/mVlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +1GVlZUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsEdbIbZnWyG+l1 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/F1shtadbIbAgAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWVl +CGVlZURlZWWqZWVl72VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ +ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9l +ZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2Vl +Zf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl +/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZfNlZWWG +ZWVlCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsYdbIbpXWy +G/l1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb+nWyG5N1shsIAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +ZWVlAmVlZR9lZWViZWVlsWVlZeVlZWX5ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxl +ZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVl +ZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl +/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8 +ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX8ZWVl/GVlZfxlZWX6ZWVlwGVlZSwA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwF1shtCdbIb +1nWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv+dbIbyXWyGyUAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGVlZQZlZWUaZWVlQmVlZXBlZWWLZWVlj2VlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVl +ZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVl +jmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWO +ZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5l +ZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVljmVlZY5lZWWOZWVlj2VlZYplZWVLZWVlAwAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwh1sht2 +dbIb8XWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shvtdbIbYXWyGwEAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABlZWUCZWVlBmVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVl +CWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJ +ZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQll +ZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVl +ZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCWVlZQllZWUJZWVlCGVlZQQAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAHWyGxx1 +shundbIb+3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/t1shuqdbIbFQAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAnWy +Gzl1shvKdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG+F1shtTdbIbAQAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIb +BnWyG1t1shvhdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb+nWyG6h1shsaAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +dbIbD3WyG3t1shvudbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb6XWyG2l1shsGAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAdbIbHHWyG5V1shv1dbIb/3WyG/91shv/dbIb/3WyG/91shv+dbIbx3WyGzsAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAB1shsAdbIbKHWyG6l1shv5dbIb/3WyG/91shv/dbIb/3WyG/91shv6dbIbpXWyGyN1shsAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAB1shsCdbIbM3WyG7Z1shv7dbIb/3WyG/91shv/dbIb/3WyG/91shv0dbIbjXWyGxl1shsA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAB1shsCdbIbOnWyG751shv7dbIb/3WyG/91shv/dbIb/3WyG/91shvvdbIbhnWyGxkA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAB1shsCdbIbPXWyG711shv7dbIb/3WyG/91shv/dbIb/3WyG/91shvvdbIbkHWy +GyR1shsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAB1shsCdbIbOnWyG7Z1shv5dbIb/3WyG/91shv/dbIb/3WyG/91shv2dbIb +qXWyGz91shsIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAB1shsBdbIbMnWyG6h1shv2dbIb/3WyG/91shv/dbIb/3WyG/91shv9 +dbIbzXWyG291shsidbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAB1shsAdbIbKHWyG5V1shvudbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb7XWyG691shtedbIbHnWyGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbG3WyG3t1shvgdbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG+V1shuxdbIbbnWyGzJ1shsMdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbD3WyG1t1shvJdbIb+nWyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/51shvtdbIbz3WyG6F1shtsdbIbPnWyGx51shsMdbIbBXWyGwN1shsD +dbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1 +shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWy +GwJ1shsCdbIbAnWyGwJ1shsCdbIbAnWyGwJ1shsBdbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbBnWyGzl1shumdbIb8HWyG/51shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb+nWyG/B1shvgdbIbx3WyG6l1shuMdbIbdXWyG2Z1 +shtddbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWy +G1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIbWnWyG1p1shtadbIb +WnWyG1p1shtadbIbWnWyG1p1shtadbIbV3WyGy11shsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAnWyGxt1sht0dbIb1XWyG/l1 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv+dbIb+3WyG/l1shv3dbIb9XWy +G/R1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb +83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvzdbIb83WyG/N1shvz +dbIb83WyG/N1shvzdbIb83WyG/R1shvsdbIbe3WyGwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAHWyGwh1shtAdbIbpHWy +G+h1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/d1shuBdbIbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwB1shsXdbIb +ZXWyG7x1shvwdbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb93WyG4F1shsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1shsC +dbIbKnWyG3h1shvEdbIb9HWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv3dbIbgXWyGwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAdbIbB3WyGzJ1sht4dbIbwXWyG/J1shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/d1shuBdbIbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAHWyGwl1shstdbIbanWyG7F1shvodbIb/nWyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb93WyG4F1shsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAB1shsHdbIbH3WyG051shuQdbIbznWyG/N1shv8dbIb/nWyG/91shv/ +dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91 +shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/nWyG/11shvvdbIbdnWyGwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbA3WyGw91shsqdbIbXnWyG5x1shvPdbIb7XWyG/h1 +shv8dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3Wy +G/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv9dbIb ++XWyG/B1shvWdbIbpXWyG2d1shsidbIbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHWyGwB1shsEdbIbDXWyGyZ1shtRdbIbhHWy +G7J1shvUdbIb6HWyG/F1shv4dbIb/HWyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv/dbIb +/3WyG/91shv/dbIb/3WyG/91shv/dbIb/3WyG/91shv9dbIb+XWyG/N1shvqdbIb2HWyG7h1shuM +dbIbWXWyGyx1shsQdbIbBXWyGwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdbIbAXWyGwJ1shsFdbIb +EXWyGyt1shtNdbIbcXWyG5F1shusdbIbwXWyG9B1shvbdbIb4nWyG+Z1shvpdbIb7HWyG+x1shvs +dbIb7HWyG+p1shvndbIb43WyG911shvTdbIbxHWyG7B1shuWdbIbd3WyG1N1shswdbIbFXWyGwZ1 +shsCdbIbAXWyGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAdbIbBHWyGw91shsddbIbLXWyGz11shtMdbIbWHWyG2F1shtndbIbaXWyG2l1 +shtndbIbYnWyG1p1shtOdbIbQHWyGzB1shsgdbIbEXWyGwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////// +///////////////////////////////////////////wD//////////////////wAAAP//////// +///////8AAAAAD///////////////AAAAAAP//////////////wAAAAAAf/////////////8AAAA +AAB//////////////AAAAAAAH/////////////wAAAAAAAf////////////8AAAAAAAD//////// +/////AAAAAAAAP////////////wAAAAAAAAf///////////8AAAAAAAAH////////////AAAAAAA +AAf///////////wAAAAAAAAD//////////////////gAAf//////////////////wAD///////// +//////////gAf//////////////////+AD///////////////////wAP//////////////////+A +D///////////////////wAf//////////////////+AD///////////////////4Af////////// +/////////AD///////////////////wAf//////////////////8AH///////////////////gA/ +//////////////////4AP///+AAAAAAAAAAAH///AB////gAAAAAAAAAAAf//wAP///wAAAAAAAA +AAAB//+AD///8AAAAAAAAAAAAP//gAf//+AAAAAAAAAAAAB//8AH///gAAAAAAAAAAAAP//AA/// +wAAAAAAAAAAAAB//wAH//4AAAAAAAAAAAAAf/8AB//+AAAAAAAAAAAAAD//AAf//AAAAAAAAAAAA +AA//wAD//wAAAAAAAAAAAAAP/+AA//8AAAAAAAAAAAAAD//gAH/+AAAAAAAAAAAAAA//4AB//gAA +AAAAAAAAAAAP/+AAf/wAAAAAAAAAAAAAD//gAD/8AAAAAAAAAAAAAA//4AA//AAAAAAAAAAAAAAP +/+AAP/wAAAAAAAAAAAAAD//gAD/8AAAAAAAAAAAAAA//wAA//AAAAAAAAAAAAAAP/8AAP/wAAAAA +AAAAAAAAH//AAB/4AAAAAAAAAAAAAB//wAAf+AAAAAAAAAAAAAA//4AAH/gAAAAAAAAAAAAAf/+A +AB/4AAAAAAAAAAAAAP//gAAf+AAAAAAAAAAAAAP//wAAH/gAAAAAf/////////8AAB/4AAAAA/// +///////+AAAf+AAAAA///////////AAAD/gAAAAf//////////wAAA/4AAAAf//////////4AAAP ++AAAAP//////////+AAAD/gAAAH///////////AAAA/4AAAB///////////gAAAP+AAAB/////// +////wAAAD/gAAA///////////4AAAA/4AAAP//////////4AAAAf+AAAH//////////4AAAAH/gA +AB/////////+AAAAAB/4AAA///wAAAAAAAAAAAAf+AAAP//wAAAAAAAAAAAAH/gAAD//4AAAAAAA +AAAAAB/8AAA//8AAAAAAAAAAAAAf/AAAP/+AAAAAAAAAAAAAH/wAAH//AAAAAAAAAAAAAD/8AAB/ +/wAAAAAAAAAAAAA//AAAf/4AAAAAAAAAAAAAP/wAAH/+AAAAAAAAAAAAAD/8AAB//AAAAAAAAAAA +AAA//AAAf/wAAAAAAAAAAAAAP/4AAH/8AAAAAAAAAAAAAH/+AAB//AAAAAAAAAAAAAB//wAAf/wA +AAAAAAAAAAAAf/8AAH/8AAAAAAAAAAAAAP//gAB//gAAAAAAAAAAAAD//4AAf/4AAAAAAAAAAAAB +//+AAH/+AAAAAAAAAAAAAf//wAB//gAAAAAAAAAAAAP//+AAf/8AAAAAAAAAAAAD///gAD//gAAA +AAAAAAAAB///8AA//8AAAAAAAAAAAA////AAP//gAAAAAAAAAAAP///4AD//8AAAAAAAAAAAH/// ++AA///wAAAAAAAAAAB////wAH///AAAAAAAAAAA////8AB///////////////////gAP//////// +//////////8AD///////////////////gAf//////////////////8AH///////////////////A +Af//////////////////4AD///////////////////AA///////////////////4AD////////// +/////////AAf//////////////////4AB///////////////////AAH//////////////////8AA +P//////////////////gAAAAAAAAB///////////8AAAAAAAAAf///////////gAAAAAAAAH//// +///////8AAAAAAAAB////////////wAAAAAAAAf////////////AAAAAAAAH////////////8AAA +AAAAB/////////////wAAAAAAAf/////////////AAAAAAAH/////////////8AAAAAAB/////// +///////wAAAAAA///////////////gAAAAA////////////////8AAA///////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////8L \ No newline at end of file diff --git a/qk30ic.Properties/Resources.cs b/qk30ic.Properties/Resources.cs new file mode 100644 index 0000000..d450bf7 --- /dev/null +++ b/qk30ic.Properties/Resources.cs @@ -0,0 +1,49 @@ +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Globalization; +using System.Resources; +using System.Runtime.CompilerServices; + +namespace qk30ic.Properties; + +[GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] +[DebuggerNonUserCode] +[CompilerGenerated] +internal class Resources +{ + private static ResourceManager resourceMan; + + private static CultureInfo resourceCulture; + + [EditorBrowsable(EditorBrowsableState.Advanced)] + internal static ResourceManager ResourceManager + { + get + { + if (resourceMan == null) + { + ResourceManager resourceManager = new ResourceManager("SoM_PrnControl.Properties.Resources", typeof(Resources).Assembly); + resourceMan = resourceManager; + } + return resourceMan; + } + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + internal static CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + internal Resources() + { + } +} diff --git a/qk30ic.Properties/Settings.cs b/qk30ic.Properties/Settings.cs new file mode 100644 index 0000000..bcd0801 --- /dev/null +++ b/qk30ic.Properties/Settings.cs @@ -0,0 +1,14 @@ +using System.CodeDom.Compiler; +using System.Configuration; +using System.Runtime.CompilerServices; + +namespace qk30ic.Properties; + +[CompilerGenerated] +[GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")] +internal sealed class Settings : ApplicationSettingsBase +{ + private static Settings defaultInstance = (Settings)SettingsBase.Synchronized(new Settings()); + + public static Settings Default => defaultInstance; +} diff --git a/qk30ic/ConRead.cs b/qk30ic/ConRead.cs new file mode 100644 index 0000000..17c0bde --- /dev/null +++ b/qk30ic/ConRead.cs @@ -0,0 +1,42 @@ +#define TRACE +#define DEBUG +using System; +using System.Diagnostics; +using System.IO; +using System.Text; + +namespace qk30ic; + +internal class ConRead +{ + public static uint ReadConFile(ref string[] con) + { + try + { + string text = Directory.GetCurrentDirectory() + "\\" + Form1.CONFIG_PATH; + Debug.WriteLine(text); + using StreamReader streamReader = new StreamReader(text, Encoding.GetEncoding("shift_jis")); + int num = 0; + string text2 = ""; + while ((text2 = streamReader.ReadLine()) != null) + { + if (text2.Length > 0) + { + string text3 = text2.Substring(0, 1); + if (text3 != "#") + { + Debug.WriteLine(num + ":" + text2); + con[num++] = text2; + } + } + } + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_27"); + Trace.WriteLine(ex.Message); + return 1u; + } + return 0u; + } +} diff --git a/qk30ic/Form1.cs b/qk30ic/Form1.cs new file mode 100644 index 0000000..cf739d6 --- /dev/null +++ b/qk30ic/Form1.cs @@ -0,0 +1,5632 @@ +#define TRACE +#define DEBUG +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Dynamic; +using System.Globalization; +using System.IO; +using System.IO.Ports; +using System.Linq; +using System.Net; +using System.Net.NetworkInformation; +using System.Reflection; +using System.Runtime.InteropServices; +using System.ServiceModel; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows.Forms; +using System.Xml; +using Citizen.LayoutUtilities.Printing; +using com.citizen.sdk.LabelPrint; +using MySql.Data.MySqlClient; +using PCSC; +using PCSC.Exceptions; +using PCSC.Iso7816; +using SoM_PrnControl; +using SoM_PrnControl.YoyakuServiceReference; + + +namespace qk30ic; + +public class Form1 : Form +{ + public string Tag_LED = "IT0\rID0\r"; + + public string Tag_LED_ERR = "IT1\rID4\r"; + + public static string LogfileName = ""; + + public static string LogfilePath = ""; + + public const int OutLogNum = 15; + + public const int OutConfNum = 34; + + public const int RESTART_TIME = 60; + + public static string[,] koumoku = new string[15, 8]; + + public static string[] str_Confile = new string[34]; + + public static int GIP_NUM = 12; + + public static int MSG_NUM = 13; + + public static string str_layoutFile = ""; + + public static string READGIP = ""; + + public static string HTTPGIP = ""; + + public static string CONFIG_PATH = "SOM_config.dat"; + + public static string TESTQR_STRING = "So-Manager TestQR"; + + private dynamic ifd = null; + + private dynamic mif = null; + + private dynamic icc = null; + + public static string readerName = "Circle CIR315 CL 0"; + + public static string QRdata = ""; + + public static string QRdata2 = ""; + + public static byte[] vinfBuff = new byte[257]; + + public static byte[] vinfBuff2 = new byte[257]; + + public static uint QRresult = 0u; + + public static uint MFresult = 10u; + + public static string MFCODE = ""; + + public static string MFCODE_CHK = "4400"; + + public static int Retry_num = 5; + + public static string DB_PORT_NUMBER; + + public static string DB_NAME; + + public static string ERRORINFO = ""; + + public static string DEBUG_MODE = "0"; + + public static string BEEP_MODE = "1"; + + public static string TodayLogName; + + public static string ReceptionType = ""; + + private Form2 form2 = new Form2(); + + public int EndType = 0; + + public const int ERROR_CODE_NONMFC = 1; + + public const int ERROR_CODE_NONQRC = 3; + + public const int ERROR_CODE_NONUID = 5; + + public const int ERROR_CODE_PRNPM1 = 50; + + public const int ERROR_CODE_PRNPM2 = 51; + + public const int ERROR_CODE_PRNPM3 = 52; + + public const int ERROR_CODE_PRNPM4 = 53; + + public const int ERROR_CODE_CONFRD = 80; + + public const int ERROR_CODE_LOGFRD = 111; + + public const int ERROR_CODE_LOGFWR = 112; + + public const int ERROR_CODE_DBOPEN = 100; + + public const int ERROR_CODE_PAPRNG = 104; + + public const int ERROR_CODE_LAYOUT = 110; + + public const int ERROR_CODE_PRNINI = 200; + + public const int ERROR_CODE_MFIINI = 300; + + public const int ERROR_CODE_QRCINI = 301; + + public const int ERROR_CODE_DBERR = 113; + + public const int ERROR_CODE_PRNERR = 201; + + public const int ERROR_CODE_QRCERR = 303; + + public const int ERROR_CODE_MFIERR = 302; + + public const int ERROR_CODE_QRTEST = 400; + + public const int LETYPE_NORMAL = 0; + + public const int LETYPE_START = 2; + + public const int LETYPE_DBOPEN = 10; + + public const int LETYPE_LAYOUT = 11; + + public const int LETYPE_PRNINI = 12; + + public const int LETYPE_MFIINI = 13; + + public const int LETYPE_QRCINI = 14; + + public const int LETYPE_DBERR = 15; + + public const int LETYPE_NONMFC = 20; + + public const int LETYPE_NONUID = 21; + + public const int LETYPE_NONQRC = 30; + + public const int LETYPE_PRNERR = 40; + + public const int LETYPE_QRCERR = 50; + + public const int LETYPE_MFIERR = 55; + + public const int LETYPE_CONFRD = 80; + + public const int LETYPE_LOGFRD = 85; + + public const int LETYPE_LOGFWR = 87; + + public const int LETYPE_PRNPR1 = 81; + + public const int LETYPE_PRNPR2 = 82; + + public const int LETYPE_PRNPR3 = 83; + + public const int LETYPE_PRNPR4 = 84; + + public const int LETYPE_PRNPR5 = 85; + + public const int LETYPE_PRNPR6 = 86; + + public const int LETYPE_PRNPR7 = 87; + + public const int LETYPE_PRNPR8 = 88; + + public const int LETYPE_QRTEST = 90; + + public const int LETYPE_ISDQRC = 91; + + public const int LETYPE_ISDMFC = 92; + + public const int LETYPE_UNPMFC = 93; + + public const int LETYPE_NWERR = 100; + + public static string connectionParams; + + public static string genmenQR = "Bf7EW8ZMNMCoqaOVA1qyR7pQD03qFRYXKDMIuzDLH3vEhjoQ25rRa0VYBC+SW+JO"; + + public string DBREAD_print_layout = "select print_layout from park, city where park.city_id=city.city_id and park.park_id="; + + public string[] DBREAD_Prndat01 = new string[4] { "select distinct ta3.contract_id, ta3.park_id, t1.park_name, t3.ptype_subject, t4.city_name, ta1.user_seq, ta1.user_id, ta2.usertype_subject1, ta3.contract_periods, ta3.contract_periode, ta3.contract_id, ta3.contract_seal_issue, ta3.printable_date, ta3.contract_flag, ta3.contract_permission, ta3.pplace_no, CAST(ta3.tag_qr_flag AS CHAR) AS tag_qr_flag, t5.zone_name from (park t1 ,user ta1) inner join price_a t2 on t1.park_id = t2.park_id inner join ptype t3 on t2.ptype_id = t3.ptype_id inner join city t4 on t1.city_id = t4.city_id inner join regular_contract ta3 on ta1.user_seq = ta3.user_id join usertype ta2 on ta3.user_categoryid = ta2.user_categoryid and ta3.price_parkplaceid = t2.price_parkplaceid left join zone t5 on ta3.zone_id = t5.zone_id where ta3.park_id = t1.park_id and ta3.contract_flag = 1 and ta3.contract_permission = 1 ", "select distinct t1.park_name, t3.ptype_subject, t4.city_name ,ta1.user_seq, ta1.user_id, ta2.usertype_subject1, ta3.contract_periods, ta3.contract_periode, ta3.contract_id, ta3.contract_seal_issue, ta3.printable_date, ta3.contract_flag, ta3.contract_permission, ta3.pplace_no, CAST(ta3.tag_qr_flag AS CHAR) AS tag_qr_flag, ta3.park_id, t5.zone_name from (park t1, user ta1, usertype ta2) inner join price_a t2 on t1.park_id = t2.park_id inner join ptype t3 on t2.ptype_id = t3.ptype_id inner join city t4 on t1.city_id = t4.city_id inner join regular_contract ta3 on ta3.user_categoryid=ta2.user_categoryid and ta3.price_parkplaceid = t2.price_parkplaceid left join zone t5 on ta3.zone_id = t5.zone_id where ta3.park_id = t1.park_id and ta1.user_seq = ta3.user_id and ", "select distinct ta3.contract_id, ta3.park_id, t1.park_name, t3.ptype_subject, t4.city_name, ta1.user_seq, ta1.user_id, ta2.usertype_subject1, ta3.contract_periods, ta3.contract_periode, ta3.contract_id, ta3.contract_seal_issue, ta3.printable_date, ta3.contract_flag, ta3.contract_permission, ta3.pplace_no, ta3.tag_qr_flag, t5.zone_name from (park t1 ,user ta1) inner join price_a t2 on t1.park_id = t2.park_id inner join ptype t3 on t2.ptype_id = t3.ptype_id inner join city t4 on t1.city_id = t4.city_id inner join regular_contract ta3 on ta1.user_seq = ta3.user_id INNER JOIN new_contract ON new_contract.contract_id = ta3.contract_id join usertype ta2 on ta3.user_categoryid = ta2.user_categoryid and ta3.price_parkplaceid = t2.price_parkplaceid left join zone t5 on ta3.zone_id = t5.zone_id where new_contract.type = 1 and new_contract.validity = 1 ", "select distinct ta3.contract_id, ta3.park_id, t1.park_name, t3.ptype_subject, t4.city_name, ta1.user_seq, ta1.user_id, ta2.usertype_subject1, ta3.contract_periods, ta3.contract_periode, ta3.contract_id, ta3.contract_seal_issue, ta3.printable_date, ta3.contract_flag, ta3.contract_permission, ta3.pplace_no, ta3.tag_qr_flag, t5.zone_name from (park t1 ,user ta1) inner join price_a t2 on t1.park_id = t2.park_id inner join ptype t3 on t2.ptype_id = t3.ptype_id inner join city t4 on t1.city_id = t4.city_id inner join regular_contract ta3 on ta1.user_seq = ta3.user_id join usertype ta2 on ta3.user_categoryid = ta2.user_categoryid and ta3.price_parkplaceid = t2.price_parkplaceid left join zone t5 on ta3.zone_id = t5.zone_id where ta3.park_id = t1.park_id " }; + + public string[] DBREAD_Prndat02 = new string[4] { " and ta1.user_tag_serial = ", " ta3.contract_qr_id = ", " and ta1.user_tag_serial = ", " and ta1.user_tag_serial = " }; + + public string LOC_contract_id = " "; + + public string LOC_park_id = " "; + + public string[] str_logkm = new string[8]; + + public static string[] str_rctbl = new string[10]; + + public static string KpAlive_devid = ""; + + public string[] str_Prndat = new string[13]; + + public static int Prn_MaxNum; + + public static int Prn_NowNum; + + public static int Prn_Alert_num; + + public static int Prn_Alert_flg; + + public static string Prn_ParkName; + + public static string Prn_ParkName_Contract; + + public static string Tag_ParkID; + + public static string vertext; + + public static MySqlConnection DBconnect; + + public static string[] PortList = new string[20]; + + public static DateTime date1 = new DateTime(2018, 1, 1, 12, 0, 0); + + public static DateTime date2 = new DateTime(2018, 1, 1, 1, 0, 0); + + public static string str_uid = " "; + + public static string str_park_name = ""; + + public static int[] park_id_set = new int[500]; + + public static bool test_mode = false; + + public static LabelPrinter printer = new LabelPrinter(); + private EpsonPrinterTMM30Service epsonPrinter; + + public Dictionary PrnDataField = new Dictionary(); + + private string printerPortName = ""; + + public string genmenUsercode = ""; + + public bool genmenFlg = false; + + public bool genmenFlg_2 = false; + + private static dynamic kessaiYoyakuArray; + + private Button kessaiButton; + + private Label kessaiLabel; + + private static bool view_mode = false; + + public bool waiting = true; + + private string page_name = null; + + private string[,] storeArray = new string[5, 3] + { + { "1", "セブンイレブン", "SRJ" }, + { "3", "ファミリーマート", "SRI" }, + { "5", "デイリーヤマザキ", "SRI" }, + { "2", "ローソン", "SRI" }, + { "4", "ミニストップ", "SRI" } + }; + + private IContainer components = null; + + private Button button1; + + private SerialPort serialPort1; + + private DataGridView dataGridView1; + + private Label label2; + + private Label label1; + private bool quitRequested = false; + + public Form1() + { + InitializeComponent(); + // 允许点 × 或 Alt+F4 时安全退出 + // 允许 Esc / × / Alt+F4 时安全退出(不做耗时操作) + this.FormClosing += (s, e) => + { + // 只做“发信号”,不要做耗时清理;清理放到主循环外的 EndProc() + quitRequested = true; // 让所有 while(!quitRequested) 失效 + EndType = 10; // 你的循环里 EndType==10 会触发退出 + genmenFlg_2 = true; // 让外层分支走到 else + QRresult = 2; // 你的代码:QRresult==2 -> SO_ComCont(50, ...) -> break + MFresult = 11; // >10 也会触发错误分支并跳出 + + + + // 立刻把焦点和消息泵让出来 + BeginInvoke(new Action(() => { /* 空,使关闭事件尽快返回 */ })); + }; + base.TopMost = false; + } + + private int CheckNewContractRenewalPeriod(int contract_id) + { + string cmdText = "\r\n SELECT rc.*, p.*\r\n FROM regular_contract rc\r\n INNER JOIN park p ON rc.park_id = p.park_id\r\n WHERE rc.contract_id = @contract_id;"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.Parameters.AddWithValue("@contract_id", contract_id); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + DateTime now = DateTime.Now; + DateTime dateTime = now; + int num = int.Parse((string)mySqlDataReader["update_grace_period_start_date"]); + TimeSpan timeSpan = TimeSpan.Parse((string)mySqlDataReader["update_grace_period_start_time"]); + int num2 = int.Parse((string)mySqlDataReader["update_grace_period_end_date"]); + TimeSpan timeSpan2 = TimeSpan.Parse((string)mySqlDataReader["update_grace_period_end_time"]); + DateTime dateTime2; + if (num > DateTime.DaysInMonth(dateTime.Year, dateTime.Month)) + { + int day = DateTime.DaysInMonth(dateTime.Year, dateTime.Month); + dateTime2 = new DateTime(dateTime.Year, dateTime.Month, day) + timeSpan; + } + else + { + dateTime2 = new DateTime(dateTime.Year, dateTime.Month, num) + timeSpan; + } + if (dateTime2 > now) + { + dateTime = dateTime.AddMonths(-1); + if (num > DateTime.DaysInMonth(dateTime.Year, dateTime.Month)) + { + int day2 = DateTime.DaysInMonth(dateTime.Year, dateTime.Month); + dateTime2 = new DateTime(dateTime.Year, dateTime.Month, day2) + timeSpan; + } + else + { + dateTime2 = new DateTime(dateTime.Year, dateTime.Month, num) + timeSpan; + } + } + if (num2 <= 19) + { + dateTime = dateTime.AddMonths(1); + } + DateTime dateTime3; + if (num2 > DateTime.DaysInMonth(dateTime.Year, dateTime.Month)) + { + int day3 = DateTime.DaysInMonth(dateTime.Year, dateTime.Month); + dateTime3 = new DateTime(dateTime.Year, dateTime.Month, day3) + timeSpan2; + } + else + { + dateTime3 = new DateTime(dateTime.Year, dateTime.Month, num2) + timeSpan2; + } + mySqlDataReader.Close(); + Debug.WriteLine("☆☆現在の日: " + now.ToString("yyyy-MM-dd HH:mm:ss")); + Debug.WriteLine("☆☆更新期間開始日: " + dateTime2.ToString("yyyy-MM-dd HH:mm:ss")); + Debug.WriteLine("☆☆更新期間終了日: " + dateTime3.ToString("yyyy-MM-dd HH:mm:ss")); + if (now >= dateTime2 && now <= dateTime3) + { + return 1; + } + } + mySqlDataReader.Close(); + ShowContractRenewalPeriodErr(); + return 0; + } + + private int CheckContractRenewalPeriod(int contract_id) + { + string cmdText = "\r\n SELECT rc.*, p.*\r\n FROM regular_contract rc\r\n INNER JOIN park p ON rc.park_id = p.park_id\r\n WHERE rc.contract_id = @contract_id;"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.Parameters.AddWithValue("@contract_id", contract_id); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + DateTime dateTime = DateTime.Now; + int num = DateTime.DaysInMonth(dateTime.Year, dateTime.Month); + DateTime now = DateTime.Now; + int num2 = int.Parse((string)mySqlDataReader["update_grace_period_start_date"]); + TimeSpan timeSpan = TimeSpan.Parse((string)mySqlDataReader["update_grace_period_start_time"]); + int num3 = int.Parse((string)mySqlDataReader["update_grace_period_end_date"]); + TimeSpan timeSpan2 = TimeSpan.Parse((string)mySqlDataReader["update_grace_period_end_time"]); + string s = mySqlDataReader["contract_periode"].ToString(); + DateTime dateTime2 = DateTime.ParseExact(s, "yyyy/MM/dd H:mm:ss", null).AddDays(1.0); + mySqlDataReader.Close(); + DateTime dateTime3; + if (num2 > DateTime.DaysInMonth(dateTime.Year, dateTime.Month)) + { + int day = DateTime.DaysInMonth(dateTime.Year, dateTime.Month); + dateTime3 = new DateTime(dateTime.Year, dateTime.Month, day) + timeSpan; + } + else + { + dateTime3 = new DateTime(dateTime.Year, dateTime.Month, num2) + timeSpan; + } + if (dateTime3 > now) + { + dateTime = dateTime.AddMonths(-1); + if (num2 > DateTime.DaysInMonth(dateTime.Year, dateTime.Month)) + { + int day2 = DateTime.DaysInMonth(dateTime.Year, dateTime.Month); + dateTime3 = new DateTime(dateTime.Year, dateTime.Month, day2) + timeSpan; + } + else + { + dateTime3 = new DateTime(dateTime.Year, dateTime.Month, num2) + timeSpan; + } + } + if (num3 <= 19) + { + dateTime = dateTime.AddMonths(1); + } + DateTime dateTime4; + if (num3 > DateTime.DaysInMonth(dateTime.Year, dateTime.Month)) + { + int day3 = DateTime.DaysInMonth(dateTime.Year, dateTime.Month); + dateTime4 = new DateTime(dateTime.Year, dateTime.Month, day3) + timeSpan; + } + else + { + dateTime4 = new DateTime(dateTime.Year, dateTime.Month, num3) + timeSpan2; + } + if (now >= dateTime3 && now <= dateTime4 && dateTime2 >= dateTime3 && dateTime2 <= dateTime4 && dateTime2 >= dateTime3 && dateTime2 <= dateTime4) + { + return 1; + } + } + mySqlDataReader.Close(); + ShowContractRenewalPeriodErr(); + return 0; + } + + private void KessaiKikanErrButton_Click(object sender, EventArgs e) + { + waiting = false; + } + + private void ShowContractRenewalPeriodErr() + { + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_err_01.png"); + form2.BackgroundImage = backgroundImage; + SetHomeButton(); + Button button = new Button + { + Name = "KessaiKikanErrButton", + FlatStyle = FlatStyle.Flat, + BackColor = Color.Transparent, + ForeColor = Color.Transparent, + Size = new Size(500, 100), + Location = new Point(420, 630) + }; + button.FlatAppearance.BorderSize = 0; + button.FlatAppearance.MouseOverBackColor = Color.Transparent; + button.FlatAppearance.MouseDownBackColor = Color.Transparent; + button.Click += KessaiKikanErrButton_Click; + form2.Controls.Add(button); + Application.DoEvents(); + DateTime now = DateTime.Now; + waiting = true; + while (waiting && (DateTime.Now - now).TotalSeconds < 5.0) + { + Application.DoEvents(); + Thread.Sleep(100); + } + form2.Controls.Remove(button); + Application.DoEvents(); + } + + private int CheckContractRenewal(string usercode) + { + int result = 0; + genmenUsercode = usercode; + string text = "select distinct t2.user_id, t2.contract_id, t2.contract_flag, t2.contract_permission, t2.contract_renewal from (user t1, regular_contract t2) where t1.user_seq = t2.user_id and t1.user_tag_serial='" + usercode + "' and t1.user_quit_flag = 0 and t1.tag_qr_flag = 0 and t2.contract_flag = 1 and t2.contract_renewal IS NULL AND (t2.contract_cancel_flag NOT IN (1, 2) OR t2.contract_cancel_flag IS NULL) ORDER BY t2.updated_at DESC , t2.contract_id DESC LIMIT 1;"; + Debug.WriteLine("\u3000〓〓更新情報取得:" + text); + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + result = int.Parse(Convert.ToString(mySqlDataReader["contract_id"])); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "更新用データのチェック時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + } + return result; + } + + private int CheckNewContract(string MFCODE) + { + int num = -1; + int num2 = -1; + int result = -1; + int contract_id = 0; + string text = "SELECT * FROM user INNER JOIN regular_contract ON user.user_seq = regular_contract.user_id INNER JOIN new_contract ON new_contract.contract_id = regular_contract.contract_id WHERE user.user_tag_serial = '" + MFCODE + "' AND user.user_quit_flag = 0 AND user.tag_qr_flag = 0 ;"; + Debug.WriteLine("\u3000〓〓new_contract情報取得:" + text); + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + num = mySqlDataReader.GetByte(mySqlDataReader.GetOrdinal("validity")); + num2 = mySqlDataReader.GetByte(mySqlDataReader.GetOrdinal("type")); + contract_id = int.Parse(Convert.ToString(mySqlDataReader["contract_id"])); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "更新用データのチェック時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + } + if (num == 0) + { + result = -1; + } + if (num == 1) + { + result = num2; + if (CheckNewContractRenewalPeriod(contract_id) == 0) + { + result = 3; + } + } + return result; + } + + private int CheckGenmen(string usercode, int oldContractID) + { + view_mode = true; + string text = ""; + string text2 = ""; + string text3 = ""; + string text4 = ""; + string s = ""; + string s2 = ""; + string text5 = ""; + string text6 = "SELECT rc.*, ut.usertype_subject1, ut.usertype_subject3, p.student_id_confirm_type, rec.reduction_confirm_type FROM regular_contract rc JOIN usertype ut ON rc.user_categoryid = ut.user_categoryid JOIN park p ON rc.park_id = p.park_id LEFT JOIN reduction_confirm rec ON rc.park_id = rec.park_id AND rc.user_categoryid = rec.user_categoryid WHERE rc.contract_id = '" + oldContractID + "'; "; + Debug.WriteLine("\u3000〓〓更新情報取得:" + text6); + MySqlCommand mySqlCommand = new MySqlCommand(text6, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + s = mySqlDataReader["park_id"].ToString(); + text = mySqlDataReader["contract_money"].ToString(); + text2 = mySqlDataReader["usertype_subject1"].ToString(); + text3 = mySqlDataReader["usertype_subject3"].ToString(); + s2 = mySqlDataReader["contract_periode"].ToString(); + text5 = ((int)mySqlDataReader.GetByte(mySqlDataReader.GetOrdinal("reduction_confirm_type"))).ToString(); + text4 = ((int)mySqlDataReader.GetByte(mySqlDataReader.GetOrdinal("student_id_confirm_type"))).ToString(); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "減免のチェック時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + if (text == "0") + { + if (text3 == "該当なし") + { + if (!(text2 == "学生")) + { + return 0; + } + switch (text4) + { + case "0": + return 1; + case "1": + { + int maxMonth = GetMaxMonth(int.Parse(s)); + DateTime dateTime = DateTime.Parse(s2); + DateTime dateTime2 = new DateTime(dateTime.Year, dateTime.Month, 1).AddMonths(1); + DateTime dateTime3 = dateTime2.AddMonths(maxMonth); + DateTime dateTime4 = new DateTime(dateTime3.Year, 4, 1); + if (dateTime2.Year == dateTime3.Year) + { + dateTime4 = dateTime4.AddYears(1); + } + if (dateTime3 > dateTime4) + { + if (genmenCheckStey()) + { + return 1; + } + return 2; + } + return 1; + } + case "2": + if (genmenCheckStey()) + { + return 1; + } + return 2; + } + } + else + { + switch (text5) + { + case "0": + return 1; + case "1": + { + int maxMonth2 = GetMaxMonth(int.Parse(s)); + DateTime dateTime5 = DateTime.Parse(s2); + DateTime dateTime6 = new DateTime(dateTime5.Year, dateTime5.Month, 1).AddMonths(1); + DateTime dateTime7 = dateTime6.AddMonths(maxMonth2); + DateTime dateTime8 = new DateTime(dateTime7.Year, 4, 1); + if (dateTime6.Year == dateTime7.Year) + { + dateTime8 = dateTime8.AddYears(1); + } + if (dateTime7 > dateTime8) + { + if (genmenCheckStey()) + { + return 1; + } + return 2; + } + break; + } + case "2": + if (genmenCheckStey()) + { + return 1; + } + return 2; + } + } + } + else if (text3 == "該当なし") + { + if (!(text2 == "学生")) + { + return 0; + } + switch (text4) + { + case "0": + return 0; + case "1": + { + int maxMonth3 = GetMaxMonth(int.Parse(s)); + DateTime dateTime9 = DateTime.Parse(s2); + DateTime dateTime10 = new DateTime(dateTime9.Year, dateTime9.Month, 1).AddMonths(1); + DateTime dateTime11 = dateTime10.AddMonths(maxMonth3); + DateTime dateTime12 = new DateTime(dateTime11.Year, 4, 1); + if (dateTime10.Year == dateTime11.Year) + { + dateTime12 = dateTime12.AddYears(1); + } + if (dateTime11 > dateTime12) + { + if (genmenCheckStey()) + { + return 0; + } + return 2; + } + break; + } + case "2": + if (genmenCheckStey()) + { + return 0; + } + return 2; + } + } + else + { + switch (text5) + { + case "0": + return 0; + case "1": + { + int maxMonth4 = GetMaxMonth(int.Parse(s)); + DateTime dateTime13 = DateTime.Parse(s2); + DateTime dateTime14 = new DateTime(dateTime13.Year, dateTime13.Month, 1).AddMonths(1); + DateTime dateTime15 = dateTime14.AddMonths(maxMonth4); + DateTime dateTime16 = new DateTime(dateTime15.Year, 4, 1); + if (dateTime14.Year == dateTime15.Year) + { + dateTime16 = dateTime16.AddYears(1); + } + if (dateTime15 > dateTime16) + { + if (genmenCheckStey()) + { + return 0; + } + return 2; + } + break; + } + case "2": + if (genmenCheckStey()) + { + return 0; + } + return 2; + } + } + return 0; + } + + private bool genmenCheckStey() + { + genmenFlg = true; + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\QRkakuninn.png"); + form2.BackgroundImage = backgroundImage; + SetHomeButton(); + for (int num = form2.Controls.Count - 1; num >= 0; num--) + { + Control control = form2.Controls[num]; + if (control.Name == "homeButton") + { + control.Click -= HomeButton_Click; + control.Click += GenmenHomeButton_Click; + } + } + DateTime now = DateTime.Now; + while (genmenFlg) + { + Application.DoEvents(); + if (Convert.ToString(QRresult) != "0") + { + KEEPALIVE.MyTimer_stop(); + Debug.WriteLine(Convert.ToString(QRdata)); + SO_QRcordInit(); + SO_MfifareInit(); + if (Convert.ToString(QRdata) == genmenQR) + { + genmenFlg = false; + genmenFlg_2 = true; + return true; + } + genmenFlg = false; + genmenFlg_2 = true; + return false; + } + if ((DateTime.Now - now).TotalSeconds >= 20.0) + { + genmenFlg = false; + return false; + } + } + genmenFlg = false; + return false; + } + + private void GenmenHomeButton_Click(object sender, EventArgs e) + { + genmenFlg = false; + } + + private int GetMaxMonth(int park_id) + { + int result = 0; + Dictionary dictionary = new Dictionary(); + string cmdText = "SELECT * FROM park JOIN regular_type ON regular_type.city_id = park.city_id WHERE park.park_id = " + park_id + " ORDER BY park.updated_at DESC LIMIT 1;"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + dictionary["1"] = mySqlDataReader["regular_class_1"].ToString(); + dictionary["2"] = mySqlDataReader["regular_class_2"].ToString(); + dictionary["3"] = mySqlDataReader["regular_class_3"].ToString(); + dictionary["6"] = mySqlDataReader["regular_class_6"].ToString(); + dictionary["12"] = mySqlDataReader["regular_class_12"].ToString(); + } + mySqlDataReader.Close(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "契約最大月取得時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + if (dictionary["12"] == "True") + { + return 12; + } + if (dictionary["6"] == "True") + { + return 6; + } + if (dictionary["3"] == "True") + { + return 3; + } + if (dictionary["2"] == "True") + { + return 2; + } + if (dictionary["1"] == "True") + { + return 1; + } + return result; + } + + private void ZeroenKoushin(string usercode, int oldContractID) + { + Bitmap bitmap = null; + Console.WriteLine("☆☆ゼロ円更新"); + page_name = "ZeroenKoushin"; + view_mode = true; + Dictionary dictionary = new Dictionary(); + kessaiYoyakuArray = new ExpandoObject(); + kessaiYoyakuArray.usercode = usercode; + kessaiYoyakuArray.old_contract_id = Convert.ToString(oldContractID); + string text = "SELECT DISTINCT rc.user_id, rc.user_categoryid, rc.park_id, rc.price_parkplaceid, rc.user_securitynum, rc.contract_reduction, CAST(rc.psection_id AS CHAR) AS psection_id, rc.zone_id, rc.pplace_no, rc.price_parkplaceid, rc.contract_updated_at, rc.contract_periods, rc.contract_periode, rc.park_position, rc.storage_company_code, rc.share_storage_company_code, rc.pplace_allocation_flag, rc.tag_change_flag, u.user_seq, u.user_mobile, u.user_homephone, u.user_name, u.user_graduate, us.usertype_subject1 FROM regular_contract rc INNER JOIN user u ON rc.user_id = u.user_seq JOIN usertype us ON rc.user_categoryid = us.user_categoryid WHERE rc.contract_id = '" + oldContractID + "';"; + Debug.WriteLine("\u3000〓〓更新情報取得:" + text); + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + kessaiYoyakuArray.user_id = mySqlDataReader["user_id"]; + kessaiYoyakuArray.user_categoryid = mySqlDataReader["user_categoryid"]; + kessaiYoyakuArray.park_id = mySqlDataReader["park_id"]; + kessaiYoyakuArray.price_parkplaceid = mySqlDataReader["price_parkplaceid"]; + kessaiYoyakuArray.user_securitynum = mySqlDataReader["user_securitynum"]; + kessaiYoyakuArray.contract_reduction = mySqlDataReader["contract_reduction"]; + kessaiYoyakuArray.user_graduate = mySqlDataReader["park_position"].ToString(); + kessaiYoyakuArray.psection_id = Convert.ToInt32(mySqlDataReader["psection_id"]); + kessaiYoyakuArray.zone_id = mySqlDataReader["zone_id"]; + kessaiYoyakuArray.pplace_no = mySqlDataReader["pplace_no"]; + kessaiYoyakuArray.storage_company_code = mySqlDataReader["storage_company_code"]; + kessaiYoyakuArray.share_storage_company_code = mySqlDataReader["share_storage_company_code"]; + kessaiYoyakuArray.pplace_allocation_flag = mySqlDataReader["pplace_allocation_flag"]; + kessaiYoyakuArray.user_graduate = mySqlDataReader["user_graduate"].ToString(); + kessaiYoyakuArray.userttype_subject1 = mySqlDataReader["usertype_subject1"]; + kessaiYoyakuArray.user_seq = mySqlDataReader["user_seq"]; + kessaiYoyakuArray.user_mobile = mySqlDataReader["user_mobile"].ToString(); + kessaiYoyakuArray.user_homephone = mySqlDataReader["user_homephone"].ToString(); + kessaiYoyakuArray.user_name = mySqlDataReader["user_name"].ToString(); + kessaiYoyakuArray.old_contract_updated_at = mySqlDataReader["contract_updated_at"].ToString(); + kessaiYoyakuArray.old_contract_periods = mySqlDataReader["contract_periods"].ToString(); + kessaiYoyakuArray.old_contract_periode = mySqlDataReader["contract_periode"].ToString(); + kessaiYoyakuArray.old_tag_change_flag = mySqlDataReader["tag_change_flag"]; + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "更新用データのチェック時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + DateTime now = DateTime.Now; + string cmdText = "\r\n INSERT INTO regular_contract \r\n (old_contract_id, created_at, updated_at, user_id, user_categoryid, park_id, price_parkplaceid, \r\n user_securitynum, contract_reduction, contract_flag, update_flag, contract_permission, \r\n 800m_flag, tag_qr_flag, psection_id, zone_id, pplace_no, storage_company_code, share_storage_company_code, pplace_allocation_flag,contract_cancel_flag,tag_change_flag) \r\n VALUES \r\n (@old_contract_id, @createdAt, @updatedAt, @userId, @userCategoryId, @parkId, @priceParkplaceId, \r\n @userSecurityNum, @contractReduction, @contractFlag, @updateFlag, @contractPermission, \r\n @eightHundredMFlag, @tagQrFlag, @psectionId, @zoneId, @pplaceNo, @storageCompanyCode, @shareStorageCompanyCode, @pplaceAllocationFlag,@contractCancelFlag,@tag_change_flag);\r\n SELECT LAST_INSERT_ID();"; + MySqlCommand mySqlCommand2 = new MySqlCommand(cmdText, DBconnect); + mySqlCommand2.Parameters.AddWithValue("@old_contract_id", kessaiYoyakuArray.old_contract_id); + mySqlCommand2.Parameters.AddWithValue("@createdAt", now); + mySqlCommand2.Parameters.AddWithValue("@updatedAt", now); + mySqlCommand2.Parameters.AddWithValue("@userId", kessaiYoyakuArray.user_id); + mySqlCommand2.Parameters.AddWithValue("@userCategoryId", kessaiYoyakuArray.user_categoryid); + mySqlCommand2.Parameters.AddWithValue("@parkId", kessaiYoyakuArray.park_id); + mySqlCommand2.Parameters.AddWithValue("@priceParkplaceId", kessaiYoyakuArray.price_parkplaceid); + mySqlCommand2.Parameters.AddWithValue("@userSecurityNum", kessaiYoyakuArray.user_securitynum); + mySqlCommand2.Parameters.AddWithValue("@contractReduction", kessaiYoyakuArray.contract_reduction); + mySqlCommand2.Parameters.AddWithValue("@contractFlag", 0); + mySqlCommand2.Parameters.AddWithValue("@updateFlag", 1); + mySqlCommand2.Parameters.AddWithValue("@contractPermission", 0); + mySqlCommand2.Parameters.AddWithValue("@eightHundredMFlag", 0); + mySqlCommand2.Parameters.AddWithValue("@tagQrFlag", 0); + mySqlCommand2.Parameters.AddWithValue("@psectionId", kessaiYoyakuArray.psection_id); + mySqlCommand2.Parameters.AddWithValue("@zoneId", kessaiYoyakuArray.zone_id); + mySqlCommand2.Parameters.AddWithValue("@pplaceNo", kessaiYoyakuArray.pplace_no); + mySqlCommand2.Parameters.AddWithValue("@storageCompanyCode", kessaiYoyakuArray.storage_company_code); + mySqlCommand2.Parameters.AddWithValue("@shareStorageCompanyCode", kessaiYoyakuArray.share_storage_company_code); + mySqlCommand2.Parameters.AddWithValue("@pplaceAllocationFlag", kessaiYoyakuArray.pplace_allocation_flag); + mySqlCommand2.Parameters.AddWithValue("@contractCancelFlag", 0); + mySqlCommand2.Parameters.AddWithValue("@tag_change_flag", kessaiYoyakuArray.old_tag_change_flag); + try + { + MySqlTransaction mySqlTransaction2 = DBconnect.BeginTransaction(); + object obj = mySqlCommand2.ExecuteScalar(); + if (obj != null && obj != DBNull.Value) + { + kessaiYoyakuArray.contract_id = Convert.ToInt32(obj); + } + mySqlTransaction2.Commit(); + Console.WriteLine("新しいレコードが作成されました。 新しい契約ID: " + kessaiYoyakuArray.contract_id); + } + catch (Exception ex2) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex2.Message); + ERRORINFO = "更新用作成時時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + string text2 = ""; + string text3 = ""; + string s = ""; + string text4 = ""; + string s2 = ""; + int num = 1; + string text5 = ""; + text = "SELECT * FROM park JOIN regular_type ON regular_type.city_id = park.city_id JOIN regular_contract ON regular_contract.park_id = park.park_id JOIN user ON regular_contract.user_id = user.user_seq JOIN usertype ON regular_contract.user_categoryid = usertype.user_categoryid WHERE regular_contract.contract_id = '" + kessaiYoyakuArray.contract_id + "' " + "ORDER BY park.updated_at DESC " + "LIMIT 1; "; + Debug.WriteLine("\u3000〓〓料金テーブル名取得:" + text); + mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlDataReader mySqlDataReader2 = mySqlCommand.ExecuteReader(); + if (mySqlDataReader2.Read()) + { + dictionary["1"] = mySqlDataReader2["regular_class_1"].ToString(); + dictionary["2"] = mySqlDataReader2["regular_class_2"].ToString(); + dictionary["3"] = mySqlDataReader2["regular_class_3"].ToString(); + dictionary["6"] = mySqlDataReader2["regular_class_6"].ToString(); + dictionary["12"] = mySqlDataReader2["regular_class_12"].ToString(); + text2 = mySqlDataReader2["park_name"].ToString(); + text3 = mySqlDataReader2["update_grace_period_start_date"].ToString(); + s = mySqlDataReader2["update_grace_period_start_time"].ToString(); + text4 = mySqlDataReader2["price_parkplaceid"].ToString(); + s2 = mySqlDataReader2["user_graduate"].ToString(); + text5 = mySqlDataReader2["usertype_subject1"].ToString(); + kessaiYoyakuArray.update_grace_period_start_date = text3; + kessaiYoyakuArray.contract_id = mySqlDataReader2["contract_id"].ToString(); + } + mySqlDataReader2.Close(); + } + catch (Exception ex3) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex3.Message); + ERRORINFO = "ゼロ円更新\u3000契約可能月取得時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + int day = int.Parse(text3); + TimeSpan timeSpan = TimeSpan.Parse(s); + DateTime now2 = DateTime.Now; + DateTime dateTime; + try + { + dateTime = new DateTime(now2.Year, now2.Month, day, timeSpan.Hours, timeSpan.Minutes, 0); + } + catch (ArgumentOutOfRangeException) + { + int day2 = DateTime.DaysInMonth(now2.Year, now2.Month); + dateTime = new DateTime(now2.Year, now2.Month, day2, timeSpan.Hours, timeSpan.Minutes, 0); + } + DateTime dateTime2 = ((!(now2 > dateTime)) ? new DateTime(now2.Year, now2.Month, 1) : new DateTime(now2.Year, now2.Month, 1).AddMonths(1)); + Console.WriteLine("契約開始日: " + dateTime2.ToString("yyyy年MM月dd日")); + kessaiYoyakuArray.contract_updated_at = dateTime.ToString("yyyy-MM-dd"); + kessaiYoyakuArray.contract_periods = dateTime2.ToString("yyyy-MM-dd"); + foreach (KeyValuePair item in dictionary) + { + bool flag = true; + if (text5 == "学生") + { + DateTime dateTime3 = dateTime2.AddMonths(int.Parse(Convert.ToString(item.Key))).AddDays(-1.0); + DateTime dateTime4 = DateTime.ParseExact(s2, "yyyy/MM/dd H:mm:ss", null); + if (dateTime3 > dateTime4) + { + flag = false; + } + } + if (item.Value == "True" && flag) + { + string key = item.Key; + string text6 = "0"; + CreateKessaiKikanButton(text4, key, text6, num++); + string key2 = "kessaiKikan_" + key.ToString() + "_" + text6 + "_" + text4; + if (form2.Controls.Find(key2, searchAllChildren: true).FirstOrDefault() is Button button) + { + button.Click -= KessaiKikanButton_Click; + button.Click += SOMPR_120Button_Click; + } + } + } + if (num == 1) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_1_2.png"); + form2.BackgroundImage = bitmap; + SetHomeButton(); + } + else + { + kessaiButton = new Button(); + kessaiButton.BackgroundImageLayout = ImageLayout.Stretch; + kessaiButton.FlatStyle = FlatStyle.Flat; + kessaiButton.FlatAppearance.BorderSize = 0; + kessaiButton.BackColor = Color.Transparent; + kessaiButton.BackgroundImage = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "\\syuuryou_btn.png"); + kessaiButton.Name = "kessaiCancel"; + kessaiButton.Size = new Size(450, 100); + kessaiButton.Location = new Point(50, 650); + kessaiButton.Click += KessaiCancelButton_Click; + form2.Controls.Add(kessaiButton); + } + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_genmen_120.png"); + form2.BackgroundImage = bitmap; + SetHomeButton(); + Application.DoEvents(); + DateTime now3 = DateTime.Now; + waiting = true; + while (waiting && (DateTime.Now - now3).TotalSeconds < 20.0) + { + Application.DoEvents(); + Thread.Sleep(100); + } + if (page_name == "ZeroenKoushin") + { + KessaiEnd(); + } + Application.DoEvents(); + } + + private void SOMPR_120(string type = "") + { + Console.WriteLine("☆☆新規契約 (減免) 決済期間選択"); + page_name = "SOMPR_120"; + view_mode = true; + KessaiPartsRemove(); + Bitmap bitmap = null; + Dictionary dictionary = new Dictionary(); + kessaiYoyakuArray = new ExpandoObject(); + string text = ""; + string text2 = ""; + string s = ""; + string text3 = ""; + string s2 = ""; + int num = 1; + string text4 = ""; + string text5 = "SELECT * FROM park JOIN regular_type ON regular_type.city_id = park.city_id JOIN regular_contract ON regular_contract.park_id = park.park_id JOIN user ON regular_contract.user_id = user.user_seq JOIN usertype ON regular_contract.user_categoryid = usertype.user_categoryid INNER JOIN new_contract ON new_contract.contract_id = regular_contract.contract_id WHERE user.user_tag_serial = '" + MFCODE + "' AND new_contract.validity = 1 AND new_contract.type = 1 ORDER BY park.updated_at DESC LIMIT 1; "; + Debug.WriteLine("\u3000〓〓料金テーブル名取得:" + text5); + MySqlCommand mySqlCommand = new MySqlCommand(text5, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + dictionary["1"] = mySqlDataReader["regular_class_1"].ToString(); + dictionary["2"] = mySqlDataReader["regular_class_2"].ToString(); + dictionary["3"] = mySqlDataReader["regular_class_3"].ToString(); + dictionary["6"] = mySqlDataReader["regular_class_6"].ToString(); + dictionary["12"] = mySqlDataReader["regular_class_12"].ToString(); + text = mySqlDataReader["park_name"].ToString(); + text2 = mySqlDataReader["update_grace_period_start_date"].ToString(); + s = mySqlDataReader["update_grace_period_start_time"].ToString(); + text3 = mySqlDataReader["price_parkplaceid"].ToString(); + s2 = mySqlDataReader["user_graduate"].ToString(); + text4 = mySqlDataReader["usertype_subject1"].ToString(); + kessaiYoyakuArray.update_grace_period_start_date = text2; + kessaiYoyakuArray.contract_id = mySqlDataReader["contract_id"].ToString(); + } + mySqlDataReader.Close(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "SOMPR_120\u3000契約可能月取得時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + int day = int.Parse(text2); + TimeSpan timeSpan = TimeSpan.Parse(s); + DateTime now = DateTime.Now; + DateTime dateTime; + try + { + dateTime = new DateTime(now.Year, now.Month, day, timeSpan.Hours, timeSpan.Minutes, 0); + } + catch (ArgumentOutOfRangeException) + { + int day2 = DateTime.DaysInMonth(now.Year, now.Month); + dateTime = new DateTime(now.Year, now.Month, day2, timeSpan.Hours, timeSpan.Minutes, 0); + } + DateTime dateTime2 = ((!(now > dateTime)) ? new DateTime(now.Year, now.Month, 1) : new DateTime(now.Year, now.Month, 1).AddMonths(1)); + Console.WriteLine("契約開始日: " + dateTime2.ToString("yyyy年MM月dd日")); + kessaiYoyakuArray.contract_updated_at = dateTime.ToString("yyyy-MM-dd"); + kessaiYoyakuArray.contract_periods = dateTime2.ToString("yyyy-MM-dd"); + foreach (KeyValuePair item in dictionary) + { + bool flag = true; + if (text4 == "学生") + { + Console.WriteLine("学生のチェック"); + DateTime dateTime3 = dateTime2.AddMonths(int.Parse(Convert.ToString(item.Key))).AddDays(-1.0); + DateTime dateTime4 = DateTime.ParseExact(s2, "yyyy/MM/dd H:mm:ss", null); + if (dateTime3 > dateTime4) + { + flag = false; + } + } + if (item.Value == "True" && flag) + { + string key = item.Key; + string text6 = "0"; + CreateKessaiKikanButton(text3, key, text6, num++); + string key2 = "kessaiKikan_" + key.ToString() + "_" + text6 + "_" + text3; + if (form2.Controls.Find(key2, searchAllChildren: true).FirstOrDefault() is Button button) + { + button.Click -= KessaiKikanButton_Click; + button.Click += SOMPR_120Button_Click; + } + } + } + if (num == 1) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_1_2.png"); + form2.BackgroundImage = bitmap; + SetHomeButton(); + } + else + { + kessaiButton = new Button(); + kessaiButton.BackgroundImageLayout = ImageLayout.Stretch; + kessaiButton.FlatStyle = FlatStyle.Flat; + kessaiButton.FlatAppearance.BorderSize = 0; + kessaiButton.BackColor = Color.Transparent; + kessaiButton.BackgroundImage = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "\\syuuryou_btn.png"); + kessaiButton.Name = "kessaiCancel"; + kessaiButton.Size = new Size(450, 100); + kessaiButton.Location = new Point(50, 650); + kessaiButton.Click += KessaiCancelButton_Click; + form2.Controls.Add(kessaiButton); + } + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_genmen_120.png"); + form2.BackgroundImage = bitmap; + SetHomeButton(); + Application.DoEvents(); + DateTime now2 = DateTime.Now; + waiting = true; + while (waiting && (DateTime.Now - now2).TotalSeconds < 20.0) + { + Application.DoEvents(); + Thread.Sleep(100); + } + if (page_name == "SOMPR_120") + { + KessaiEnd(); + } + Application.DoEvents(); + } + + private void SOMPR_120Button_Click(object sender, EventArgs e) + { + KessaiPartsRemove(); + uint num = 0u; + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic2-1.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + Application.DoEvents(); + Button button = (Button)sender; + if (!button.Name.StartsWith("kessaiKikan_")) + { + return; + } + string[] array = button.Name.Split('_'); + kessaiYoyakuArray.enable_months = array[1]; + string text = array[2].Replace(",", "").Replace("円", ""); + kessaiYoyakuArray.billing_amount = text; + int months = int.Parse(kessaiYoyakuArray.enable_months); + int num2 = int.Parse(kessaiYoyakuArray.update_grace_period_start_date); + DateTime dateTime = ((DateTime)DateTime.ParseExact(kessaiYoyakuArray.contract_periods, "yyyy-MM-dd", null)).AddMonths(months).AddDays(-1.0); + int num3 = DateTime.DaysInMonth(dateTime.Year, dateTime.Month); + dateTime = dateTime.AddDays(num3 - dateTime.Day); + kessaiYoyakuArray.contract_periode = dateTime.ToString("yyyy-MM-dd"); + DateTime dateTime2 = new DateTime(dateTime.Year, dateTime.Month, num2); + dateTime2 = ((num2 <= DateTime.DaysInMonth(dateTime.Year, dateTime.Month)) ? new DateTime(dateTime.Year, dateTime.Month, num2, 0, 0, 0) : new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month), 0, 0, 0)); + kessaiYoyakuArray.contract_updated_at = dateTime2.ToString("yyyy-MM-20"); + int num4 = 0; + str_Prndat = new string[13]; + PrnDataField = new Dictionary(); + PrnDataField.Add("駐車場名", ""); + PrnDataField.Add("定期種別", ""); + PrnDataField.Add("場所種別", ""); + PrnDataField.Add("開始日", ""); + PrnDataField.Add("終了月", ""); + PrnDataField.Add("再発行", ""); + PrnDataField.Add("定期番号", ""); + PrnDataField.Add("自治体名", ""); + PrnDataField.Add("利用者ID", ""); + PrnDataField.Add("ゾーン、車室名", ""); + PrnDataField.Add("発行枚数", ""); + PrnDataField.Add("タグ", ""); + PrnDataField.Add("ゾーン", ""); + num4 = (((bool)(((IDictionary)kessaiYoyakuArray).ContainsKey("old_contract_id") && !string.IsNullOrEmpty(kessaiYoyakuArray.old_contract_id?.ToString()))) ? SO_DBPrndat_01(3u) : SO_DBPrndat_01(2u)); + if (num4 == 1) + { + bool flag = SO_ComCont(40, EndType); + Debug.WriteLine(" --処理1a Result " + num4); + KessaiEnd(); + Bitmap backgroundImage2 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic5.png"); + form2.BackgroundImage = backgroundImage2; + RemoveHomeButton(); + Debug.WriteLine(" --エラー\u3000 Result " + num4); + Application.DoEvents(); + Thread.Sleep(3000); + Bitmap backgroundImage3 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + form2.BackgroundImage = backgroundImage3; + RemoveHomeButton(); + Application.DoEvents(); + return; + } + PrnDataField["駐車場名"] = str_Prndat[0]; + PrnDataField["定期種別"] = str_Prndat[1]; + PrnDataField["場所種別"] = str_Prndat[2]; + PrnDataField["開始日"] = str_Prndat[3]; + PrnDataField["終了月"] = str_Prndat[4]; + PrnDataField["再発行"] = str_Prndat[5]; + PrnDataField["定期番号"] = str_Prndat[6]; + PrnDataField["自治体名"] = str_Prndat[7]; + PrnDataField["利用者ID"] = str_Prndat[8]; + PrnDataField["ゾーン、車室名"] = str_Prndat[9]; + PrnDataField["タグ"] = str_Prndat[10]; + PrnDataField["ゾーン"] = str_Prndat[11]; + PrnDataField["利用者連番"] = str_Prndat[12]; + PrnDataField["発行枚数"] = "1"; + backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic2-1.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + Application.DoEvents(); + num = SO_PrnOut(); + Debug.WriteLine(" --処理印刷\u3000 result " + num); + if (num != 0) + { + Debug.WriteLine(" --処理1a bResult " + SO_ComCont(40, EndType)); + KessaiEnd(); + Bitmap backgroundImage4 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic5.png"); + form2.BackgroundImage = backgroundImage4; + RemoveHomeButton(); + Debug.WriteLine(" --エラー\u3000 result " + num); + Application.DoEvents(); + Thread.Sleep(3000); + Bitmap backgroundImage5 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + form2.BackgroundImage = backgroundImage5; + RemoveHomeButton(); + Application.DoEvents(); + } + else + { + bool flag = SO_DBInsert_seal2(120u); + string text2 = ""; + string value = ""; + string cmdText = "SELECT web_master FROM setting LIMIT 1;"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + text2 = mySqlDataReader["web_master"].ToString(); + } + mySqlDataReader.Close(); + cmdText = "SELECT* FROM price" + text2 + " WHERE price_month = @priceMonth AND park_id = (SELECT park_id FROM price_a WHERE price_parkplaceid = @PriceParkplaceid) AND psection_id = (SELECT psection_id FROM price_a WHERE price_parkplaceid = @PriceParkplaceid) AND ptype_id = (SELECT ptype_id FROM price_a WHERE price_parkplaceid = @PriceParkplaceid) AND user_categoryid = (SELECT user_categoryid FROM price_a WHERE price_parkplaceid = @PriceParkplaceid);"; + mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.Parameters.AddWithValue("@priceMonth", kessaiYoyakuArray.enable_months); + mySqlCommand.Parameters.AddWithValue("@PriceParkplaceid", array[3]); + mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + value = mySqlDataReader["price_parkplaceid"].ToString(); + } + mySqlDataReader.Close(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_120"); + Trace.WriteLine(ex.Message); + ERRORINFO = "更新用データのチェック時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + string cmdText2 = "UPDATE regular_contract SET updated_at = NOW(), contract_created_at = NOW(), contract_updated_at = @contractUpdatedAt, contract_periods = @contractPeriods, contract_periode = @contractPeriode, enable_months = @enableMonths, printable_date = CURDATE(), billing_amount = @billingAmount, contract_payment_day = NOW(), contract_money = 0, contract_flag = 1, contract_seal_issue = COALESCE(contract_seal_issue, 0) + 1 ,contract_permission = 0, 800m_flag = 0 ,price_parkplaceid = @PriceParkplaceid WHERE contract_id = @contractId;"; + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + mySqlCommand = new MySqlCommand(cmdText2, DBconnect); + try + { + mySqlCommand.CommandTimeout = 30; + mySqlCommand.Parameters.AddWithValue("@contractUpdatedAt", kessaiYoyakuArray.contract_updated_at); + mySqlCommand.Parameters.AddWithValue("@contractPeriods", kessaiYoyakuArray.contract_periods); + mySqlCommand.Parameters.AddWithValue("@contractPeriode", kessaiYoyakuArray.contract_periode); + mySqlCommand.Parameters.AddWithValue("@enableMonths", kessaiYoyakuArray.enable_months); + mySqlCommand.Parameters.AddWithValue("@billingAmount", kessaiYoyakuArray.billing_amount); + mySqlCommand.Parameters.AddWithValue("@contractId", kessaiYoyakuArray.contract_id); + mySqlCommand.Parameters.AddWithValue("@PriceParkplaceid", value); + mySqlCommand.ExecuteNonQuery(); + if (((IDictionary)kessaiYoyakuArray).ContainsKey("old_contract_id")) + { + cmdText2 = "UPDATE regular_contract SET contract_renewal = 1 WHERE contract_id = @contractId;"; + mySqlCommand = new MySqlCommand(cmdText2, DBconnect); + mySqlCommand.Parameters.AddWithValue("@contractId", kessaiYoyakuArray.old_contract_id); + mySqlCommand.ExecuteNonQuery(); + } + cmdText2 = "UPDATE new_contract SET validity=0 WHERE contract_id = @contractId;"; + mySqlCommand = new MySqlCommand(cmdText2, DBconnect); + mySqlCommand.Parameters.AddWithValue("@contractId", kessaiYoyakuArray.contract_id); + mySqlCommand.ExecuteNonQuery(); + mySqlTransaction.Commit(); + } + catch (Exception ex2) + { + mySqlTransaction.Rollback(); + Debug.WriteLine("\u3000〓〓_ERROR_120"); + Trace.WriteLine(ex2.Message); + ERRORINFO = "更新用データのチェック時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + } + Debug.WriteLine(" --処理3"); + Application.DoEvents(); + Debug.WriteLine(" --処理おわり"); + Debug.WriteLine(" --印刷完了表示"); + Bitmap backgroundImage6 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic3.png"); + form2.BackgroundImage = backgroundImage6; + RemoveHomeButton(); + Application.DoEvents(); + Thread.Sleep(5000); + KessaiEnd(); + } + + private void SOMPR_110() + { + Console.WriteLine("☆☆新規契約決済期間選択"); + page_name = "SOMPR_110"; + view_mode = true; + string text = ""; + KessaiPartsRemove(); + Console.WriteLine("☆☆決済予約開始"); + view_mode = true; + kessaiYoyakuArray = new ExpandoObject(); + string text2 = "SELECT DISTINCT rc.user_id, rc.contract_id, rc.user_categoryid, rc.park_id, rc.price_parkplaceid, rc.user_securitynum, rc.contract_reduction, CAST(rc.psection_id AS CHAR) AS psection_id, rc.zone_id, rc.pplace_no, rc.price_parkplaceid, rc.contract_updated_at, rc.contract_periods, rc.contract_periode, p.park_name, u.user_seq, u.user_mobile, u.user_homephone, u.user_name, u.user_graduate, us.usertype_subject1 FROM regular_contract rc INNER JOIN user u ON rc.user_id = u.user_seq JOIN usertype us ON rc.user_categoryid = us.user_categoryid INNER JOIN new_contract nc ON nc.contract_id = rc.contract_id INNER JOIN park p ON p.park_id = rc.park_id WHERE u.user_tag_serial = '" + MFCODE + "' AND nc.validity = 1 AND nc.type = 0; "; + Debug.WriteLine("\u3000〓〓更新情報取得:" + text2); + MySqlCommand mySqlCommand = new MySqlCommand(text2, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + kessaiYoyakuArray.user_id = mySqlDataReader["user_id"]; + kessaiYoyakuArray.user_categoryid = mySqlDataReader["user_categoryid"]; + kessaiYoyakuArray.user_graduate = mySqlDataReader["user_graduate"].ToString(); + kessaiYoyakuArray.userttype_subject1 = mySqlDataReader["usertype_subject1"]; + kessaiYoyakuArray.park_id = mySqlDataReader["park_id"]; + kessaiYoyakuArray.price_parkplaceid = mySqlDataReader["price_parkplaceid"]; + kessaiYoyakuArray.user_securitynum = mySqlDataReader["user_securitynum"]; + kessaiYoyakuArray.contract_reduction = mySqlDataReader["contract_reduction"]; + kessaiYoyakuArray.psection_id = Convert.ToInt32(mySqlDataReader["psection_id"]); + kessaiYoyakuArray.zone_id = mySqlDataReader["zone_id"]; + kessaiYoyakuArray.pplace_no = mySqlDataReader["pplace_no"]; + kessaiYoyakuArray.user_seq = mySqlDataReader["user_seq"]; + kessaiYoyakuArray.user_mobile = mySqlDataReader["user_mobile"].ToString(); + kessaiYoyakuArray.user_homephone = mySqlDataReader["user_homephone"].ToString(); + kessaiYoyakuArray.user_name = mySqlDataReader["user_name"].ToString(); + kessaiYoyakuArray.old_contract_updated_at = mySqlDataReader["contract_updated_at"].ToString(); + kessaiYoyakuArray.old_contract_periods = ""; + kessaiYoyakuArray.old_contract_periode = ""; + kessaiYoyakuArray.contract_id = Convert.ToInt32(mySqlDataReader["contract_id"].ToString()); + kessaiYoyakuArray.old_contract_id = Convert.ToString(mySqlDataReader["contract_id"].ToString()); + text = mySqlDataReader["park_name"].ToString(); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "更新用データのチェック時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_0.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + kessaiButton = new Button(); + kessaiButton.BackgroundImageLayout = ImageLayout.Stretch; + kessaiButton.FlatStyle = FlatStyle.Flat; + kessaiButton.FlatAppearance.BorderSize = 0; + kessaiButton.BackColor = Color.Transparent; + kessaiButton.ForeColor = Color.Transparent; + kessaiButton.FlatAppearance.MouseOverBackColor = Color.Transparent; + kessaiButton.FlatAppearance.MouseDownBackColor = Color.Transparent; + kessaiButton.Name = "kessaiSinki"; + kessaiButton.Size = new Size(800, 200); + kessaiButton.Location = new Point(250, 500); + kessaiButton.Click += SOMPR_110Button_Click; + form2.Controls.Add(kessaiButton); + kessaiLabel = new Label(); + kessaiLabel.Text = "こちらの駐輪場は\r\n" + text + "です。"; + kessaiLabel.Font = new Font("MS PGothic", 80f, FontStyle.Bold); + kessaiLabel.TextAlign = ContentAlignment.MiddleCenter; + kessaiLabel.Size = new Size(1280, 350); + kessaiLabel.Location = new Point(0, 180); + kessaiLabel.BackColor = Color.Transparent; + kessaiLabel.Name = "kessaiSinkiLabel"; + form2.Controls.Add(kessaiLabel); + Application.DoEvents(); + DateTime now = DateTime.Now; + waiting = true; + while (waiting && (DateTime.Now - now).TotalSeconds < 20.0) + { + Application.DoEvents(); + Thread.Sleep(100); + } + if (page_name == "SOMPR_110") + { + KessaiEnd(); + } + Application.DoEvents(); + } + + private void SOMPR_110Button_Click(object sender, EventArgs e) + { + kessaiYoyakuArray.shinki = true; + KessaiYoyaku_1(); + } + + private void KessaiYoyaku(string usercode, int oldContractID, int genmenType) + { + Console.WriteLine("☆☆決済予約開始"); + view_mode = true; + kessaiYoyakuArray = new ExpandoObject(); + kessaiYoyakuArray.usercode = usercode; + kessaiYoyakuArray.old_contract_id = Convert.ToString(oldContractID); + kessaiYoyakuArray.genmen_type = Convert.ToString(genmenType); + string text = "SELECT DISTINCT rc.user_id, rc.user_categoryid, rc.park_id, rc.price_parkplaceid, rc.user_securitynum, rc.contract_reduction, CAST(rc.psection_id AS CHAR) AS psection_id, rc.zone_id, rc.pplace_no, rc.price_parkplaceid, rc.contract_updated_at, rc.contract_periods, rc.contract_periode, CAST(rc.800m_flag AS CHAR) AS 800m_flag, CAST(rc.tag_qr_flag AS CHAR) AS tag_qr_flag, CAST(rc.tag_change_flag AS CHAR) AS tag_change_flag, u.user_seq, u.user_mobile, u.user_homephone, u.user_name, u.user_graduate, us.usertype_subject1 FROM regular_contract rc INNER JOIN user u ON rc.user_id = u.user_seq JOIN usertype us ON rc.user_categoryid = us.user_categoryid WHERE rc.contract_id = '" + oldContractID + "';"; + Debug.WriteLine("\u3000〓〓更新情報取得:" + text); + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + kessaiYoyakuArray.user_id = mySqlDataReader["user_id"]; + kessaiYoyakuArray.user_categoryid = mySqlDataReader["user_categoryid"]; + kessaiYoyakuArray.user_graduate = mySqlDataReader["user_graduate"].ToString(); + kessaiYoyakuArray.userttype_subject1 = mySqlDataReader["usertype_subject1"]; + kessaiYoyakuArray.park_id = mySqlDataReader["park_id"]; + kessaiYoyakuArray.price_parkplaceid = mySqlDataReader["price_parkplaceid"]; + kessaiYoyakuArray.user_securitynum = mySqlDataReader["user_securitynum"]; + kessaiYoyakuArray.contract_reduction = mySqlDataReader["contract_reduction"]; + kessaiYoyakuArray.psection_id = Convert.ToInt32(mySqlDataReader["psection_id"]); + kessaiYoyakuArray.zone_id = mySqlDataReader["zone_id"]; + kessaiYoyakuArray.pplace_no = mySqlDataReader["pplace_no"]; + kessaiYoyakuArray.user_seq = mySqlDataReader["user_seq"]; + kessaiYoyakuArray.user_mobile = mySqlDataReader["user_mobile"].ToString(); + kessaiYoyakuArray.user_homephone = mySqlDataReader["user_homephone"].ToString(); + kessaiYoyakuArray.user_name = mySqlDataReader["user_name"].ToString(); + kessaiYoyakuArray.old_contract_updated_at = mySqlDataReader["contract_updated_at"].ToString(); + kessaiYoyakuArray.old_contract_periods = mySqlDataReader["contract_periods"].ToString(); + kessaiYoyakuArray.old_contract_periode = mySqlDataReader["contract_periode"].ToString(); + kessaiYoyakuArray.old_800m_flag = mySqlDataReader["800m_flag"].ToString(); + kessaiYoyakuArray.old_tag_qr_flag = mySqlDataReader["tag_qr_flag"].ToString(); + kessaiYoyakuArray.old_tag_change_flag = mySqlDataReader["tag_change_flag"].ToString(); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "更新用データのチェック時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + string cmdText = "INSERT INTO regular_contract (old_contract_id,user_id, user_categoryid, park_id, price_parkplaceid, user_securitynum, contract_reduction, psection_id, zone_id, pplace_no, contract_created_at, created_at, updated_at,update_flag,800m_flag,tag_qr_flag,tag_change_flag,contract_cancel_flag) VALUES (@old_contract_id,@userId, @userCategoryId, @parkId, @priceParkplaceId, @userSecurityNum, @contractReduction, @psectionId, @zoneId, @pplaceNo, NOW(), NOW(), NOW(),1,@800m_flag,@tag_qr_flag,@tag_change_flag,@contract_cancel_flag);SELECT LAST_INSERT_ID();"; + MySqlCommand mySqlCommand2 = new MySqlCommand(cmdText, DBconnect); + mySqlCommand2.Parameters.AddWithValue("@old_contract_id", kessaiYoyakuArray.old_contract_id); + mySqlCommand2.Parameters.AddWithValue("@userId", kessaiYoyakuArray.user_id); + mySqlCommand2.Parameters.AddWithValue("@userCategoryId", kessaiYoyakuArray.user_categoryid); + mySqlCommand2.Parameters.AddWithValue("@parkId", kessaiYoyakuArray.park_id); + mySqlCommand2.Parameters.AddWithValue("@priceParkplaceId", kessaiYoyakuArray.price_parkplaceid); + mySqlCommand2.Parameters.AddWithValue("@userSecurityNum", kessaiYoyakuArray.user_securitynum); + mySqlCommand2.Parameters.AddWithValue("@contractReduction", kessaiYoyakuArray.contract_reduction); + mySqlCommand2.Parameters.AddWithValue("@psectionId", kessaiYoyakuArray.psection_id); + mySqlCommand2.Parameters.AddWithValue("@zoneId", kessaiYoyakuArray.zone_id); + mySqlCommand2.Parameters.AddWithValue("@pplaceNo", kessaiYoyakuArray.pplace_no); + mySqlCommand2.Parameters.AddWithValue("@800m_flag", kessaiYoyakuArray.old_800m_flag); + mySqlCommand2.Parameters.AddWithValue("@tag_qr_flag", kessaiYoyakuArray.old_tag_qr_flag); + mySqlCommand2.Parameters.AddWithValue("@tag_change_flag", kessaiYoyakuArray.old_tag_change_flag); + mySqlCommand2.Parameters.AddWithValue("@contract_cancel_flag", 0); + try + { + MySqlTransaction mySqlTransaction2 = DBconnect.BeginTransaction(); + object obj = mySqlCommand2.ExecuteScalar(); + if (obj != null && obj != DBNull.Value) + { + kessaiYoyakuArray.contract_id = Convert.ToInt32(obj); + } + string cmdText2 = "UPDATE regular_contract SET contract_payment_number = @contractPaymentNumber WHERE contract_id = @contract_id;"; + mySqlCommand2 = new MySqlCommand(cmdText2, DBconnect); + mySqlCommand2.Parameters.AddWithValue("@contractPaymentNumber", kessaiYoyakuArray.contract_id); + mySqlCommand2.Parameters.AddWithValue("@contract_id", kessaiYoyakuArray.contract_id); + mySqlCommand2.ExecuteNonQuery(); + mySqlTransaction2.Commit(); + Console.WriteLine("新しいレコードが作成されました。 新しい契約ID: " + kessaiYoyakuArray.contract_id); + } + catch (Exception ex2) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex2.Message); + ERRORINFO = "更新用作成時時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + KessaiYoyaku_1(); + } + + private void KessaiYoyaku_1() + { + Console.WriteLine("☆☆決済期間選択"); + page_name = "kessai_1"; + view_mode = true; + KessaiPartsRemove(); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_1.png"); + form2.BackgroundImage = backgroundImage; + SetHomeButton(); + string text = ""; + string text2 = ""; + Dictionary dictionary = new Dictionary(); + int num = 1; + string text3 = "SELECT web_master FROM setting LIMIT 1;"; + Debug.WriteLine("\u3000〓〓料金テーブル名取得:" + text3); + MySqlCommand mySqlCommand = new MySqlCommand(text3, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + text = mySqlDataReader["web_master"].ToString(); + } + mySqlDataReader.Close(); + text3 = "SELECT * FROM park JOIN regular_type ON regular_type.city_id = park.city_id WHERE park.park_id = " + kessaiYoyakuArray.park_id + " ORDER BY park.updated_at DESC LIMIT 1; "; + Debug.WriteLine("\u3000〓〓料金テーブル名取得:" + text3); + mySqlCommand = new MySqlCommand(text3, DBconnect); + mySqlCommand.CommandTimeout = 1; + mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + dictionary["1"] = mySqlDataReader["regular_class_1"].ToString(); + dictionary["2"] = mySqlDataReader["regular_class_2"].ToString(); + dictionary["3"] = mySqlDataReader["regular_class_3"].ToString(); + dictionary["6"] = mySqlDataReader["regular_class_6"].ToString(); + dictionary["12"] = mySqlDataReader["regular_class_12"].ToString(); + kessaiYoyakuArray.park_name = mySqlDataReader["park_name"].ToString(); + kessaiYoyakuArray.update_grace_period_start_date = mySqlDataReader["update_grace_period_start_date"].ToString(); + kessaiYoyakuArray.update_grace_period_start_time = mySqlDataReader["update_grace_period_start_time"].ToString(); + } + mySqlDataReader.Close(); + if (kessaiYoyakuArray.old_contract_periode == "") + { + int day = int.Parse(kessaiYoyakuArray.update_grace_period_start_date); + TimeSpan timeSpan = TimeSpan.Parse(kessaiYoyakuArray.update_grace_period_start_time); + DateTime now = DateTime.Now; + DateTime dateTime; + try + { + dateTime = new DateTime(now.Year, now.Month, day, timeSpan.Hours, timeSpan.Minutes, 0); + } + catch (ArgumentOutOfRangeException) + { + int day2 = DateTime.DaysInMonth(now.Year, now.Month); + dateTime = new DateTime(now.Year, now.Month, day2, timeSpan.Hours, timeSpan.Minutes, 0); + } + DateTime dateTime2 = ((!(now > dateTime)) ? new DateTime(now.Year, now.Month, 1) : new DateTime(now.Year, now.Month, 1).AddMonths(1)); + Console.WriteLine("契約開始日: " + dateTime2.ToString("yyyy年MM月dd日")); + kessaiYoyakuArray.old_contract_periode = dateTime2.AddDays(-1.0).ToString("yyyy/MM/dd") + " 0:00:00"; + } + text3 = "SELECT * FROM price" + text + " WHERE ptype_id = (SELECT ptype_id FROM price" + text + " WHERE price_parkplaceid = " + kessaiYoyakuArray.price_parkplaceid + " LIMIT 1);"; + Debug.WriteLine("\u3000〓〓料金テーブル名取得:" + text3); + mySqlCommand = new MySqlCommand(text3, DBconnect); + mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + text2 = mySqlDataReader["ptype_id"].ToString(); + Console.WriteLine("ptype_idカラムの値: " + text2); + } + mySqlDataReader.Close(); + } + catch (Exception ex2) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex2.Message); + ERRORINFO = "料金テーブル名取得時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + text3 = "SELECT * FROM price" + text + " WHERE park_id = " + kessaiYoyakuArray.park_id + " and psection_id = " + kessaiYoyakuArray.psection_id + " and ptype_id = " + text2 + " and user_categoryid = " + kessaiYoyakuArray.user_categoryid + " ORDER BY price_month; "; + Debug.WriteLine("\u3000〓〓料金チェック:" + text3); + mySqlCommand = new MySqlCommand(text3, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlDataReader mySqlDataReader2 = mySqlCommand.ExecuteReader(); + while (mySqlDataReader2.Read()) + { + bool flag = true; + if (Convert.ToString(kessaiYoyakuArray.userttype_subject1) == "学生") + { + DateTime dateTime3 = ((DateTime)DateTime.ParseExact(kessaiYoyakuArray.old_contract_periode, "yyyy/MM/dd H:mm:ss", null)).AddDays(1.0).AddMonths(int.Parse(Convert.ToString(mySqlDataReader2["price_month"]))).AddDays(-1.0); + Console.WriteLine("user_graduateの日付: " + kessaiYoyakuArray.user_graduate); + DateTime dateTime4 = DateTime.ParseExact(kessaiYoyakuArray.user_graduate, "yyyy/MM/dd H:mm:ss", null); + Console.WriteLine("contractEndの日付: " + dateTime3.ToString()); + Console.WriteLine("comparisonDateの日付: " + dateTime4.ToString()); + if (dateTime3 > dateTime4) + { + flag = false; + } + } + Debug.WriteLine(mySqlDataReader2["price_month"]); + string key = Convert.ToString(mySqlDataReader2["price_month"]); + if (dictionary.ContainsKey(key) && dictionary[key] == "True" && flag) + { + string price_parkplaceid = Convert.ToString(mySqlDataReader2["price_parkplaceid"]); + string kikan = Convert.ToString(mySqlDataReader2["price_month"]); + string label = Convert.ToString(mySqlDataReader2["price"]); + CreateKessaiKikanButton(price_parkplaceid, kikan, label, num++); + } + } + mySqlDataReader2.Close(); + } + catch (Exception ex3) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex3.Message); + ERRORINFO = "料金テーブル名取得時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + if (num == 1) + { + backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_1_2.png"); + form2.BackgroundImage = backgroundImage; + SetHomeButton(); + } + else + { + CreateKessaiCancelButton(); + } + Application.DoEvents(); + DateTime now2 = DateTime.Now; + waiting = true; + while (waiting && (DateTime.Now - now2).TotalSeconds < 20.0) + { + Application.DoEvents(); + Thread.Sleep(100); + } + if (page_name == "kessai_1") + { + KessaiEnd(); + } + Application.DoEvents(); + } + + private bool GetDisplaySetting(string webMasterValue, string month) + { + string cmdText = "SELECT * FROM park JOIN regular_type ON regular_type.city_id = park.city_id WHERE park.park_id = " + kessaiYoyakuArray.park_id + "ORDER BY park.updated_at DESC LIMIT 1; "; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + if (mySqlDataReader.Read()) + { + if (Convert.ToString(mySqlDataReader["display_setting"]) == "1") + { + return true; + } + return false; + } + mySqlDataReader.Close(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "料金テーブル名取得時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + return false; + } + + private void CreateKessaiCancelButton() + { + kessaiButton = new Button(); + kessaiButton.BackgroundImageLayout = ImageLayout.Stretch; + kessaiButton.FlatStyle = FlatStyle.Flat; + kessaiButton.FlatAppearance.BorderSize = 0; + kessaiButton.BackColor = Color.Transparent; + kessaiButton.BackgroundImage = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "\\kessaiCancelButton.png"); + kessaiButton.Name = "kessaiCancel"; + kessaiButton.Size = new Size(450, 100); + int num = (form2.ClientSize.Width - kessaiButton.Width) / 2; + kessaiButton.Location = new Point(420, 650); + kessaiButton.Click += KessaiCancelButton_Click; + form2.Controls.Add(kessaiButton); + } + + private void KessaiCancelButton_Click(object sender, EventArgs e) + { + waiting = false; + } + + private void CreateKessaiKikanButton(string price_parkplaceid, string kikan, string label, int order) + { + kessaiButton = new Button(); + kessaiButton.BackgroundImageLayout = ImageLayout.Stretch; + kessaiButton.FlatStyle = FlatStyle.Flat; + kessaiButton.FlatAppearance.BorderSize = 0; + kessaiButton.BackColor = Color.Transparent; + kessaiButton.ForeColor = Color.Transparent; + kessaiButton.FlatAppearance.MouseOverBackColor = Color.Transparent; + kessaiButton.FlatAppearance.MouseDownBackColor = Color.Transparent; + kessaiButton.BackgroundImage = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "\\kessaiKikanButton_" + kikan.ToString() + ".png"); + kessaiButton.Name = "kessaiKikan_" + kikan.ToString() + "_" + label + "_" + price_parkplaceid; + kessaiButton.Size = new Size(290, 290); + kessaiButton.Location = new Point(125 + 370 * (order - 1), 305); + kessaiButton.Click += KessaiKikanButton_Click; + form2.Controls.Add(kessaiButton); + string text = int.Parse(label).ToString("N0"); + string text2 = text + "円"; + kessaiLabel = new Label(); + kessaiLabel.Text = text2; + kessaiLabel.Font = new Font("MS PGothic", 30f, FontStyle.Bold); + kessaiLabel.TextAlign = ContentAlignment.MiddleCenter; + kessaiLabel.Size = new Size(300, 50); + kessaiLabel.Location = new Point(kessaiButton.Left + kessaiButton.Width / 2 - kessaiLabel.Width / 2, kessaiButton.Bottom); + kessaiLabel.BackColor = Color.Transparent; + kessaiLabel.Name = "kessaiKikanLabel_" + kikan.ToString(); + form2.Controls.Add(kessaiLabel); + } + + private void KessaiKikanButton_Click(object sender, EventArgs e) + { + page_name = null; + Button button = (Button)sender; + if (!button.Name.StartsWith("kessaiKikan_")) + { + return; + } + string[] array = button.Name.Split('_'); + kessaiYoyakuArray.enable_months = array[1]; + string text = array[2].Replace(",", "").Replace("円", ""); + kessaiYoyakuArray.billing_amount = text; + DateTime dateTime = DateTime.ParseExact(kessaiYoyakuArray.old_contract_periode, "yyyy/MM/dd H:mm:ss", null); + int months = int.Parse(kessaiYoyakuArray.enable_months); + int num = int.Parse(kessaiYoyakuArray.update_grace_period_start_date); + DateTime dateTime2 = dateTime.AddDays(1.0); + DateTime dateTime3 = dateTime2.AddMonths(months).AddDays(-1.0); + int num2 = DateTime.DaysInMonth(dateTime3.Year, dateTime3.Month); + dateTime3 = dateTime3.AddDays(num2 - dateTime3.Day); + DateTime dateTime4 = new DateTime(dateTime3.Year, dateTime3.Month, num); + dateTime4 = ((num <= DateTime.DaysInMonth(dateTime3.Year, dateTime3.Month)) ? new DateTime(dateTime3.Year, dateTime3.Month, num, 0, 0, 0) : new DateTime(dateTime3.Year, dateTime3.Month, DateTime.DaysInMonth(dateTime3.Year, dateTime3.Month), 0, 0, 0)); + string cmdText = "UPDATE regular_contract SET updated_at = @UpdatedAt, contract_updated_at = @ContractUpdatedAt, contract_periods = @ContractPeriods, contract_periode = @ContractPeriode, enable_months = @EnableMonths, billing_amount = @BillingAmount WHERE contract_id = @ContractId"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.Parameters.AddWithValue("@UpdatedAt", DateTime.Now); + mySqlCommand.Parameters.AddWithValue("@ContractUpdatedAt", dateTime4.ToString("yyyy-MM-dd")); + mySqlCommand.Parameters.AddWithValue("@ContractPeriods", dateTime2.ToString("yyyy-MM-dd")); + mySqlCommand.Parameters.AddWithValue("@ContractPeriode", dateTime3.ToString("yyyy-MM-dd")); + mySqlCommand.Parameters.AddWithValue("@EnableMonths", kessaiYoyakuArray.enable_months); + mySqlCommand.Parameters.AddWithValue("@BillingAmount", kessaiYoyakuArray.billing_amount); + mySqlCommand.Parameters.AddWithValue("@ContractId", kessaiYoyakuArray.contract_id); + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + int num3 = mySqlCommand.ExecuteNonQuery(); + if (num3 > 0) + { + mySqlTransaction.Commit(); + Console.WriteLine("レコードが更新されました。 更新された契約ID: " + kessaiYoyakuArray.contract_id); + } + else + { + mySqlTransaction.Rollback(); + Console.WriteLine("レコードの更新に失敗しました。"); + } + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "料金テーブル名取得時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + KessaiEnd(); + } + KessaiYoyaku_2(); + } + + private void KessaiYoyaku_2() + { + Console.WriteLine("☆☆決済コンビニ選択"); + page_name = "kessai_2"; + view_mode = true; + KessaiPartsRemove(); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_2.png"); + form2.BackgroundImage = backgroundImage; + SetHomeButton(); + CreateKessaiStoreButton("0", storeArray[0, 1], 1, 1); + CreateKessaiStoreButton("1", storeArray[1, 1], 1, 2); + CreateKessaiStoreButton("2", storeArray[2, 1], 1, 3); + CreateKessaiStoreButton("3", storeArray[3, 1], 2, 1); + CreateKessaiStoreButton("4", storeArray[4, 1], 2, 2); + Application.DoEvents(); + DateTime now = DateTime.Now; + waiting = true; + while (waiting && (DateTime.Now - now).TotalSeconds < 20.0) + { + Application.DoEvents(); + Thread.Sleep(100); + } + if (page_name == "kessai_2") + { + KessaiEnd(); + } + Application.DoEvents(); + } + + private void CreateKessaiStoreButton(string store, string method, int xOder, int yOder) + { + kessaiButton = new Button(); + kessaiButton.BackgroundImageLayout = ImageLayout.Stretch; + kessaiButton.FlatStyle = FlatStyle.Flat; + kessaiButton.FlatAppearance.BorderSize = 0; + kessaiButton.BackColor = Color.Transparent; + kessaiButton.ForeColor = Color.Transparent; + kessaiButton.FlatAppearance.MouseOverBackColor = Color.Transparent; + kessaiButton.FlatAppearance.MouseDownBackColor = Color.Transparent; + kessaiButton.Name = "kessaiStore_" + store.ToString() + "_" + method.ToString(); + kessaiButton.Size = new Size(565, 140); + kessaiButton.Location = new Point(65 + 585 * (xOder - 1), 300 + 155 * (yOder - 1)); + kessaiButton.Click += KessaiStoreButton_Click; + form2.Controls.Add(kessaiButton); + } + + private void KessaiStoreButton_Click(object sender, EventArgs e) + { + page_name = null; + Button button = (Button)sender; + if (button.Name.StartsWith("kessaiStore_")) + { + string[] array = button.Name.Split('_'); + kessaiYoyakuArray.kessai_ID = storeArray[int.Parse(array[1]), 2]; + kessaiYoyakuArray.store_name = storeArray[int.Parse(array[1]), 1]; + kessaiYoyakuArray.payee = storeArray[int.Parse(array[1]), 0]; + KessaiYoyaku_3(); + } + } + + private void KessaiYoyaku_3() + { + Console.WriteLine("☆☆決済期間確認"); + page_name = "kessai_3"; + view_mode = true; + KessaiPartsRemove(); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_3.png"); + form2.BackgroundImage = backgroundImage; + SetHomeButton(); + string text = int.Parse(kessaiYoyakuArray.billing_amount).ToString("N0"); + string text2 = text + "円"; + Label label = new Label(); + label.Text = kessaiYoyakuArray.enable_months + "か月更新:" + text2; + label.Font = new Font("MS PGothic", 75f, FontStyle.Bold); + Size size = TextRenderer.MeasureText(label.Text, label.Font); + int num = (1200 - size.Width) / 2; + int num2 = (800 - size.Height) / 2; + label.Location = new Point(num, num2); + label.Size = size; + label.BackColor = Color.White; + label.Name = "kessaiLabel"; + form2.Controls.Add(label); + num2 = 600; + int num3 = 600; + CreateAndConfigureButton("kessaiOK", new Point(235, num3), KessaiOKButton_Click); + CreateAndConfigureButton("kessaiChange", new Point(650, num3), KessaiChangeButton_Click); + } + + private void CreateAndConfigureButton(string buttonName, Point location, EventHandler clickHandler) + { + Button button = new Button + { + Name = buttonName, + FlatStyle = FlatStyle.Flat, + BackColor = Color.Transparent, + ForeColor = Color.Transparent, + Size = new Size(390, 100), + Location = location + }; + button.FlatAppearance.BorderSize = 0; + button.FlatAppearance.MouseOverBackColor = Color.Transparent; + button.FlatAppearance.MouseDownBackColor = Color.Transparent; + button.Click += clickHandler; + form2.Controls.Add(button); + } + + private void KessaiOKButton_Click(object sender, EventArgs e) + { + Button button = (Button)sender; + KessaiYoyaku_4(); + } + + private void KessaiChangeButton_Click(object sender, EventArgs e) + { + Button button = (Button)sender; + KessaiYoyaku_1(); + } + + private void KessaiYoyaku_4() + { + Console.WriteLine("☆☆決済最終確認"); + view_mode = true; + KessaiPartsRemove(); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_4.png"); + form2.BackgroundImage = backgroundImage; + SetHomeButton(); + string text = int.Parse(kessaiYoyakuArray.billing_amount).ToString("N0"); + Label label = new Label(); + label.Text = kessaiYoyakuArray.enable_months + "か月更新:" + text + "円"; + label.Font = new Font("MS PGothic", 50f, FontStyle.Bold); + Size size = TextRenderer.MeasureText(label.Text, label.Font); + int num = (1200 - size.Width) / 2; + int num2 = (800 - size.Height) / 2 - 30; + label.Location = new Point(num, num2); + label.AutoSize = true; + label.BackColor = Color.White; + label.Name = "kessaiLabel_1"; + form2.Controls.Add(label); + Label label2 = new Label(); + label2.Text = "支払い場所:" + kessaiYoyakuArray.store_name; + label2.Font = new Font("MS PGothic", 50f, FontStyle.Bold); + size = TextRenderer.MeasureText(label2.Text, label2.Font); + num = (1200 - size.Width) / 2; + num2 = (800 - size.Height) / 2 + 65; + label2.Location = new Point(num, num2); + label2.AutoSize = true; + label2.BackColor = Color.White; + label2.Name = "kessaiLabel_2"; + form2.Controls.Add(label2); + CreateAndConfigureButton("kessaiPrint", new Point(450, 600), KessaiPrintButton_Click); + } + + private void KessaiPrintButton_Click(object sender, EventArgs e) + { + Button button = (Button)sender; + view_mode = true; + KessaiPartsRemove(); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_4-1.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + Application.DoEvents(); + string text = KessaiYoyakuKessai(); + if (text == "0000") + { + if (KessaiPrint(text)) + { + KessaiYoyaku_5(); + } + } + else + { + KessaiError(text); + } + } + + private string KessaiYoyakuKessai() + { + YoyakuSoapClient yoyakuSoapClient = new YoyakuSoapClient(); + yoyakuSoapClient.Endpoint.Address = new EndpointAddress(str_Confile[17]); + DateTime today = DateTime.Today; + DateTime dateTime = today.AddDays(10.0).Date.AddHours(23.0).AddMinutes(59.0); + string text = str_Confile[33]; + text = Regex.Replace(text.Trim().Normalize(NormalizationForm.FormKC).ToUpperInvariant(), "\\s+", ""); + if (text == "TYPE-M") + { + DateTime dateTime2 = new DateTime(today.Year, today.Month, DateTime.DaysInMonth(today.Year, today.Month), 23, 59, 0); + dateTime = dateTime2; + } + string text2 = null; + if (kessaiYoyakuArray.user_mobile.Length > 0) + { + text2 = kessaiYoyakuArray.user_mobile; + } + else if (kessaiYoyakuArray.user_homephone.Length > 0) + { + text2 = kessaiYoyakuArray.user_homephone; + } + SyunoFree[] syunoFreeArray = ((!(text == "TYPE-M")) ? new SyunoFree[9] + { + new SyunoFree + { + Index = 1, + SyunoFreeStr = "So-Manager駐輪場" + }, + new SyunoFree + { + Index = 2, + SyunoFreeStr = kessaiYoyakuArray.user_seq.ToString() + }, + new SyunoFree + { + Index = 3, + SyunoFreeStr = kessaiYoyakuArray.store_name + }, + new SyunoFree + { + Index = 19, + SyunoFreeStr = "株式会社ソーリン サポートセンター" + }, + new SyunoFree + { + Index = 20, + SyunoFreeStr = "03-5856-4720" + }, + new SyunoFree + { + Index = 21, + SyunoFreeStr = "12:00-22:00" + }, + new SyunoFree + { + Index = 30, + SyunoFreeStr = "0" + }, + new SyunoFree + { + Index = 39, + SyunoFreeStr = "1" + }, + new SyunoFree + { + Index = 40, + SyunoFreeStr = "ご利用ありがとうございました" + } + } : new SyunoFree[9] + { + new SyunoFree + { + Index = 1, + SyunoFreeStr = "So-Manager駐輪場" + }, + new SyunoFree + { + Index = 2, + SyunoFreeStr = kessaiYoyakuArray.user_seq.ToString() + }, + new SyunoFree + { + Index = 3, + SyunoFreeStr = kessaiYoyakuArray.store_name + }, + new SyunoFree + { + Index = 19, + SyunoFreeStr = "株式会社ソーリン サポートセンター" + }, + new SyunoFree + { + Index = 20, + SyunoFreeStr = "03-5856-6777" + }, + new SyunoFree + { + Index = 21, + SyunoFreeStr = "00:00-24:00" + }, + new SyunoFree + { + Index = 30, + SyunoFreeStr = "0" + }, + new SyunoFree + { + Index = 39, + SyunoFreeStr = "1" + }, + new SyunoFree + { + Index = 40, + SyunoFreeStr = "ご利用ありがとうございました" + } + }); + WellnetSoapHeader wellnetSoapHeader; + InParamSyunoBarCode inParamSyunoBarCode2; + if (kessaiYoyakuArray.payee == "1") + { + wellnetSoapHeader = new WellnetSoapHeader + { + UserId = str_Confile[19], + Password = str_Confile[20] + }; + InParamSyunoBarCode inParamSyunoBarCode = new InParamSyunoBarCode(); + inParamSyunoBarCode.DataSyubetsu = "4"; + inParamSyunoBarCode.SyunoPayCode = str_Confile[21]; + inParamSyunoBarCode.SyunoRecvNum = kessaiYoyakuArray.contract_id.ToString().PadLeft(3, '0'); + inParamSyunoBarCode.BcJigyosyaNo = str_Confile[22]; + inParamSyunoBarCode.BcAnkenNo = str_Confile[23]; + inParamSyunoBarCode.BcNinsyoKey = kessaiYoyakuArray.contract_id.ToString(); + inParamSyunoBarCode.SyunoOpCode = "I"; + inParamSyunoBarCode.SyunoCorpCode = str_Confile[24]; + inParamSyunoBarCode.SyunoTel = text2.ToString(); + inParamSyunoBarCode.SyunoNameKanji = kessaiYoyakuArray.user_name.ToString(); + inParamSyunoBarCode.SyunoPayLimit = dateTime.ToString("yyyyMMddHHmm"); + inParamSyunoBarCode.SyunoPayAmount = kessaiYoyakuArray.billing_amount.ToString(); + inParamSyunoBarCode2 = inParamSyunoBarCode; + inParamSyunoBarCode2.SyunoFreeArray = syunoFreeArray; + } + else + { + wellnetSoapHeader = new WellnetSoapHeader + { + UserId = str_Confile[25], + Password = str_Confile[26] + }; + InParamSyunoBarCode inParamSyunoBarCode = new InParamSyunoBarCode(); + inParamSyunoBarCode.DataSyubetsu = "4"; + inParamSyunoBarCode.SyunoPayCode = str_Confile[27]; + inParamSyunoBarCode.SyunoRecvNum = kessaiYoyakuArray.contract_id.ToString().PadLeft(3, '0'); + inParamSyunoBarCode.BcJigyosyaNo = str_Confile[28]; + inParamSyunoBarCode.BcAnkenNo = str_Confile[29]; + inParamSyunoBarCode.BcNinsyoKey = kessaiYoyakuArray.contract_id.ToString(); + inParamSyunoBarCode.SyunoOpCode = "I"; + inParamSyunoBarCode.SyunoCorpCode = str_Confile[30]; + inParamSyunoBarCode.SyunoTel = text2.ToString(); + inParamSyunoBarCode.SyunoNameKanji = kessaiYoyakuArray.user_name.ToString(); + inParamSyunoBarCode.SyunoPayLimit = dateTime.ToString("yyyyMMddHHmm"); + inParamSyunoBarCode.SyunoPayAmount = kessaiYoyakuArray.billing_amount.ToString(); + inParamSyunoBarCode2 = inParamSyunoBarCode; + inParamSyunoBarCode2.SyunoFreeArray = syunoFreeArray; + } + string cmdText = "INSERT INTO paycheck (user_id, contract_id, payee, amount, created_at, updated_at) VALUES (@userId, @contractId, @payee, @amount, @createdAt, @updatedAt);SELECT LAST_INSERT_ID();"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.Parameters.AddWithValue("@userId", kessaiYoyakuArray.user_id); + mySqlCommand.Parameters.AddWithValue("@contractId", kessaiYoyakuArray.contract_id); + mySqlCommand.Parameters.AddWithValue("@payee", kessaiYoyakuArray.payee); + mySqlCommand.Parameters.AddWithValue("@amount", kessaiYoyakuArray.billing_amount); + mySqlCommand.Parameters.AddWithValue("@createdAt", DateTime.Now); + mySqlCommand.Parameters.AddWithValue("@updatedAt", DateTime.Now); + object value = mySqlCommand.ExecuteScalar(); + int num = Convert.ToInt32(value); + OutParamSyunoBarCode outParamSyunoBarCode = yoyakuSoapClient.YoyakuSyunoBarCode(wellnetSoapHeader, inParamSyunoBarCode2); + string cmdText2 = "UPDATE paycheck SET result = @result, kessai_no = @kessaiNo, pay_code = @payCode, recv_num = @recvNum, jigyou_no = @jigyouNo, anken_no = @ankenNo, ninsyo_key = @ninsyoKey, mms_no = @mmsNo, url = @url, seven_no = @sevenNo, payment_due = @paymentDue, updated_at = @updatedAt WHERE paycheck_id = @paycheckId"; + MySqlCommand mySqlCommand2 = new MySqlCommand(cmdText2, DBconnect); + DateTime.TryParseExact(outParamSyunoBarCode.BcSyoriDate, "yyyyMMddHHmm", CultureInfo.InvariantCulture, DateTimeStyles.None, out var result); + mySqlCommand2.Parameters.AddWithValue("@result", outParamSyunoBarCode.Result); + mySqlCommand2.Parameters.AddWithValue("@kessaiNo", outParamSyunoBarCode.KKessaiNo); + mySqlCommand2.Parameters.AddWithValue("@payCode", outParamSyunoBarCode.SyunoPayCode); + mySqlCommand2.Parameters.AddWithValue("@recvNum", outParamSyunoBarCode.SyunoRecvNum); + mySqlCommand2.Parameters.AddWithValue("@jigyouNo", outParamSyunoBarCode.BcJigyosyaNo); + mySqlCommand2.Parameters.AddWithValue("@ankenNo", outParamSyunoBarCode.BcAnkenNo); + mySqlCommand2.Parameters.AddWithValue("@ninsyoKey", outParamSyunoBarCode.BcNinsyoKey); + mySqlCommand2.Parameters.AddWithValue("@mmsNo", outParamSyunoBarCode.SyunoMMSNo); + mySqlCommand2.Parameters.AddWithValue("@url", outParamSyunoBarCode.BcUrl); + mySqlCommand2.Parameters.AddWithValue("@updatedAt", result); + mySqlCommand2.Parameters.AddWithValue("@paycheckId", num); + kessaiYoyakuArray.kessai_no = outParamSyunoBarCode.KKessaiNo; + kessaiYoyakuArray.pay_code = outParamSyunoBarCode.SyunoPayCode.Trim(); + string result2 = outParamSyunoBarCode.Result; + if (kessaiYoyakuArray.payee == "1") + { + if (result2 == "0000") + { + string[] array = outParamSyunoBarCode.BcUrl.Split(' '); + kessaiYoyakuArray.sevenNo = outParamSyunoBarCode.BcUrl.Split(' ')[0]; + kessaiYoyakuArray.paymentDue = outParamSyunoBarCode.BcUrl.Split(' ')[1]; + mySqlCommand2.Parameters.AddWithValue("@sevenNo", kessaiYoyakuArray.sevenNo); + mySqlCommand2.Parameters.AddWithValue("@paymentDue", kessaiYoyakuArray.paymentDue); + } + else + { + kessaiYoyakuArray.sevenNo = ""; + kessaiYoyakuArray.paymentDue = dateTime.ToString("yyyy-MM-dd HH:mm"); + mySqlCommand2.Parameters.AddWithValue("@sevenNo", null); + mySqlCommand2.Parameters.AddWithValue("@paymentDue", kessaiYoyakuArray.paymentDue); + } + } + else + { + kessaiYoyakuArray.sevenNo = ""; + kessaiYoyakuArray.paymentDue = dateTime.ToString("yyyy-MM-dd HH:mm"); + mySqlCommand2.Parameters.AddWithValue("@sevenNo", null); + mySqlCommand2.Parameters.AddWithValue("@paymentDue", kessaiYoyakuArray.paymentDue); + kessaiYoyakuArray.paymentDue = dateTime.ToString("yyyy/MM/dd"); + } + int num2 = mySqlCommand2.ExecuteNonQuery(); + yoyakuSoapClient.Close(); + return result2; + } + + private bool KessaiPrint(string result) + { + string ipAddress = str_Confile[18]; + string deviceId = "local_printer"; + int timeout = 30; + EpsonPrinterTMM30Service epsonPrinterTMM30Service = new EpsonPrinterTMM30Service(ipAddress, deviceId, timeout); + string soapRequest = ""; + if (kessaiYoyakuArray.payee == "1") + { + soapRequest = epsonPrinterTMM30Service.GenerateSoapRequestPayee1(kessaiYoyakuArray.user_name, kessaiYoyakuArray.sevenNo, kessaiYoyakuArray.billing_amount, kessaiYoyakuArray.park_name, kessaiYoyakuArray.userttype_subject1, kessaiYoyakuArray.enable_months, kessaiYoyakuArray.paymentDue, kessaiYoyakuArray.pay_code, str_Confile[31], str_Confile[32]); + } + else if (kessaiYoyakuArray.payee == "3") + { + soapRequest = epsonPrinterTMM30Service.GenerateSoapRequestPayee2(kessaiYoyakuArray.user_name, kessaiYoyakuArray.kessai_no, kessaiYoyakuArray.billing_amount, kessaiYoyakuArray.park_name, kessaiYoyakuArray.userttype_subject1, kessaiYoyakuArray.enable_months, kessaiYoyakuArray.paymentDue, kessaiYoyakuArray.pay_code, str_Confile[31], str_Confile[32]); + } + else if (kessaiYoyakuArray.payee == "5") + { + soapRequest = epsonPrinterTMM30Service.GenerateSoapRequestPayee3(kessaiYoyakuArray.user_name, kessaiYoyakuArray.kessai_no, kessaiYoyakuArray.billing_amount, kessaiYoyakuArray.park_name, kessaiYoyakuArray.userttype_subject1, kessaiYoyakuArray.enable_months, kessaiYoyakuArray.paymentDue, kessaiYoyakuArray.pay_code, str_Confile[31], str_Confile[32]); + } + else if (kessaiYoyakuArray.payee == "2" || kessaiYoyakuArray.payee == "4") + { + soapRequest = epsonPrinterTMM30Service.GenerateSoapRequestPayee4(kessaiYoyakuArray.user_name, kessaiYoyakuArray.kessai_no, kessaiYoyakuArray.billing_amount, kessaiYoyakuArray.park_name, kessaiYoyakuArray.userttype_subject1, kessaiYoyakuArray.enable_months, kessaiYoyakuArray.paymentDue, kessaiYoyakuArray.pay_code, str_Confile[31], str_Confile[32]); + } + string text = epsonPrinterTMM30Service.PrintXml(soapRequest); + if (text != "") + { + XmlDocument xmlDocument = new XmlDocument(); + xmlDocument.LoadXml(text); + XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xmlDocument.NameTable); + xmlNamespaceManager.AddNamespace("s", "http://schemas.xmlsoap.org/soap/envelope/"); + xmlNamespaceManager.AddNamespace("epos", "http://www.epson-pos.com/schemas/2011/03/epos-print"); + XmlNode xmlNode = xmlDocument.SelectSingleNode("//s:Body/epos:response", xmlNamespaceManager); + string value = xmlNode.Attributes["success"].Value; + string value2 = xmlNode.Attributes["status"].Value; + string value3 = xmlNode.Attributes["code"].Value; + int num = ((value == "true") ? 1 : 0); + string cmdText = "INSERT INTO receipt_log (contract_id, success, status, code,created_at) VALUES (@contract_id, @success, @status, @code, NOW())"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.Parameters.AddWithValue("@contract_id", kessaiYoyakuArray.contract_id); + mySqlCommand.Parameters.AddWithValue("@success", num); + mySqlCommand.Parameters.AddWithValue("@status", value2); + mySqlCommand.Parameters.AddWithValue("@code", value3); + mySqlCommand.ExecuteNonQuery(); + if (!(value == "true")) + { + string text2 = epsonPrinterTMM30Service.PrinterErrorHandling(value2, kessaiYoyakuArray.park_id.ToString(), DBconnect); + if (!string.IsNullOrEmpty(text2)) + { + KessaiPrinterError(text2); + return false; + } + return true; + } + epsonPrinterTMM30Service.PrinterPapperCheck(value2, kessaiYoyakuArray.park_id.ToString(), DBconnect); + return true; + } + string value4 = "102"; + string value5 = "TM プリンター無応答"; + string value6 = "プリンタを確認し、必要に応じて再起動してください。"; + string cmdText2 = "INSERT INTO operator_que (user_id, contract_id, park_id, que_class, que_comment, que_status, created_at, updated_at, operator_id, work_instructions) VALUES (NULL, NULL, @parkId, @queClass, @queComment, 1, NOW(), NOW(), NULL, @workInstructions)"; + MySqlCommand mySqlCommand2 = new MySqlCommand(cmdText2, DBconnect); + mySqlCommand2.Parameters.AddWithValue("@parkId", kessaiYoyakuArray.park_id); + mySqlCommand2.Parameters.AddWithValue("@queClass", value4); + mySqlCommand2.Parameters.AddWithValue("@queComment", value5); + mySqlCommand2.Parameters.AddWithValue("@workInstructions", value6); + mySqlCommand2.ExecuteNonQuery(); + string error_bitmap = "pic_kessai_err_00.png"; + KessaiPrinterError(error_bitmap); + return false; + } + + private void KessaiErrButton_Click(object sender, EventArgs e) + { + waiting = false; + } + + private void KessaiPrinterError(string error_bitmap) + { + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\" + error_bitmap); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + Button button = new Button(); + button.FlatStyle = FlatStyle.Flat; + button.FlatAppearance.BorderSize = 0; + button.BackColor = Color.Transparent; + button.ForeColor = Color.Transparent; + button.FlatAppearance.MouseOverBackColor = Color.Transparent; + button.FlatAppearance.MouseDownBackColor = Color.Transparent; + button.Size = new Size(450, 100); + button.Location = new Point(420, 580); + button.Click += KessaiErrButton_Click; + form2.Controls.Add(button); + Application.DoEvents(); + waiting = true; + while (waiting) + { + Application.DoEvents(); + Thread.Sleep(100); + } + form2.Controls.Remove(button); + KessaiEnd(); + Application.DoEvents(); + } + + private void KessaiError(string result) + { + Console.WriteLine("☆☆決済エラー終了"); + view_mode = true; + KessaiPartsRemove(); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_err_02.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + Button button = new Button(); + button.FlatStyle = FlatStyle.Flat; + button.FlatAppearance.BorderSize = 0; + button.BackColor = Color.Transparent; + button.ForeColor = Color.Transparent; + button.FlatAppearance.MouseOverBackColor = Color.Transparent; + button.FlatAppearance.MouseDownBackColor = Color.Transparent; + button.Size = new Size(450, 100); + button.Location = new Point(420, 580); + button.Click += KessaiErrButton_Click; + form2.Controls.Add(button); + Label label = new Label(); + label.Text = "we_" + result; + label.Font = new Font("MS PGothic", 30f); + Size size = TextRenderer.MeasureText(label.Text, label.Font); + label.Location = new Point(650, 80); + label.AutoSize = true; + label.BackColor = Color.Transparent; + label.ForeColor = Color.White; + label.Name = "kessaiLabel_1"; + form2.Controls.Add(label); + Application.DoEvents(); + waiting = true; + while (waiting) + { + Application.DoEvents(); + Thread.Sleep(100); + } + form2.Controls.Remove(button); + KessaiEnd(); + Application.DoEvents(); + } + + private void KessaiYoyaku_5() + { + Console.WriteLine("☆☆決済完了"); + page_name = "kessai_5"; + view_mode = true; + KessaiPartsRemove(); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_kessai_5.png"); + form2.BackgroundImage = backgroundImage; + SetHomeButton(); + Button button = new Button(); + button.FlatStyle = FlatStyle.Flat; + button.FlatAppearance.BorderSize = 0; + button.BackColor = Color.Transparent; + button.ForeColor = Color.Transparent; + button.FlatAppearance.MouseOverBackColor = Color.Transparent; + button.FlatAppearance.MouseDownBackColor = Color.Transparent; + button.Size = new Size(450, 100); + button.Location = new Point(420, 630); + button.Name = "kessaiComplate"; + button.Click += KessaiComplateButton_Click; + form2.Controls.Add(button); + Application.DoEvents(); + DateTime now = DateTime.Now; + waiting = true; + while (waiting && (DateTime.Now - now).TotalSeconds < 10.0) + { + Application.DoEvents(); + Thread.Sleep(100); + } + KessaiEnd(); + Application.DoEvents(); + } + + private void KessaiComplateButton_Click(object sender, EventArgs e) + { + waiting = false; + } + + private void KessaiPartsRemove() + { + form2.SuspendLayout(); + List list = new List(); + foreach (Control control in form2.Controls) + { + if (control is Button button && button.Name.StartsWith("kessai")) + { + list.Add(button); + } + else if (control is Label label && label.Name.StartsWith("kessai")) + { + list.Add(label); + } + } + foreach (Control item in list) + { + form2.Controls.Remove(item); + item.Dispose(); + } + form2.ResumeLayout(performLayout: true); + } + + public void KessaiEnd() + { + KessaiPartsRemove(); + waiting = false; + page_name = null; + MFCODE = ""; + kessaiYoyakuArray = new ExpandoObject(); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + view_mode = false; + } + + private void Form1_Shown(object sender, EventArgs e) + { + uint num = 0u; + int num2 = 0; + uint num3 = 0u; + bool flag = true; + string text = ""; + string str_prnprm = ""; + num = ConRead.ReadConFile(ref str_Confile); + if (num == 1) + { + Application.Exit(); + return; + } + SO_FullScreen(MSG_NUM, 0); + DateTime now = DateTime.Now; + TodayLogName = now.ToString("yyyyMMdd"); + LogfilePath = str_Confile[8]; + LogfileName = str_Confile[8] + str_Confile[9] + "_" + TodayLogName + ".csv"; + if (str_Confile[5] == "1") + { + DEBUG_MODE = "1"; + Form3 form = new Form3(); + form.Show(); + form.TopMost = true; + } + else + { + DEBUG_MODE = "0"; + } + DB_PORT_NUMBER = str_Confile[4]; + DB_NAME = str_Confile[3]; + dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; + dataGridView1.ColumnHeadersHeight = 30; + dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders; + dataGridView1.ColumnCount = 8; + dataGridView1.Columns[0].HeaderText = "処理ログID"; + dataGridView1.Columns[1].HeaderText = "駐輪場ID"; + dataGridView1.Columns[2].HeaderText = "プロセス名"; + dataGridView1.Columns[3].HeaderText = "ジョブ名"; + dataGridView1.Columns[4].HeaderText = "ステータス"; + dataGridView1.Columns[5].HeaderText = "エラーコード"; + dataGridView1.Columns[6].HeaderText = "ステータスコメント"; + dataGridView1.Columns[7].HeaderText = "登録日時"; + dataGridView1.Columns[0].Width = 60; + dataGridView1.Columns[1].Width = 70; + dataGridView1.Columns[2].Width = 70; + dataGridView1.Columns[3].Width = 70; + dataGridView1.Columns[4].Width = 90; + dataGridView1.Columns[5].Width = 60; + dataGridView1.Columns[7].Width = 120; + dataGridView1.EnableHeadersVisualStyles = false; + dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.ForestGreen; + string text2 = Convert.ToString(DateTime.Now); + num = Logfile.ReadLogFile(); + for (int i = 0; i < 15; i++) + { + dataGridView1.Rows.Add(koumoku[i, 0], koumoku[i, 1], koumoku[i, 2], koumoku[i, 3], koumoku[i, 4], koumoku[i, 5], koumoku[i, 6], koumoku[i, 7]); + } + if (num == 1) + { + SO_CommIniErr(85, 0); + SO_WriteLog(85); + EndProc(); + Application.Exit(); + return; + } + READGIP = GetGIP(str_Confile[GIP_NUM]); + Debug.WriteLine("★★初期化完了。QR/タグ待ち受けに移行★★\u3000\u3000" + now.ToString()); + while (!quitRequested) + { + if (!SO_DBOpen()) + { + SO_CommIniErr(10, 1); + KEEPALIVE.AutoClosingMessageBox.Show("ネットワークが切断されました", "N/Wエラー", 10000); + Thread.Sleep(3000); + } + if (!SO_PrnEnvRead_rty()) + { + SO_CommIniErr(15, 2); + EndProc(); + Application.Exit(); + return; + } + if (SO_DBLayoutFile() != 0) + { + SO_CommIniErr(15, 2); + EndProc(); + Application.Exit(); + return; + } + if (!File.Exists(str_layoutFile)) + { + Debug.WriteLine(str_layoutFile); + Trace.WriteLine("★レイアウトファイルがありません★"); + MessageBox.Show("レイアウトファイルがありません。以下のファイルの存在を確認してください: " + Environment.NewLine + str_layoutFile, "レイアウトファイルエラー", MessageBoxButtons.OK, MessageBoxIcon.Hand); + SO_CommIniErr(11, 2); + EndProc(); + Application.Exit(); + return; + } + form2.Text = form2.Text + " デバイスID:" + KpAlive_devid + " レイアウト:" + str_layoutFile; + if (!SO_PrnInit()) + { + Debug.WriteLine("☆☆プリンタ初期化エラー☆☆"); + form2.label1.Text = "エラー"; + form2.label1.ForeColor = Color.White; + form2.label1.BackColor = Color.Red; + Application.DoEvents(); + SO_CommIniErr(12, 3); + Thread.Sleep(5000); + Debug.WriteLine("☆☆アプリケーションリブートします☆☆"); + EndProc(); + Debug.WriteLine("\u3000\u3000☆アプリケーションリブート2"); + Application.Restart(); + Application.Exit(); + return; + } + Trace.WriteLine("★プリンター初期化完了★"); + + + + if (!SO_MfifareInit()) + { + SO_CommIniErr(13, 4); + EndProc(); + Application.Exit(); + return; + } + + if (DEBUG_MODE == "0") + { + MFresult = SO_MfifareCheck(); + } + + if (!SO_QRcordInit()) + { + SO_CommIniErr(14, 5); + EndProc(); + Application.Exit(); + return; + } + if (!SO_ComCont(2, 6)) + { + break; + } + KEEPALIVE.TIM_Main(); + uint num4 = SO_DBChk_print_area(int.Parse(str_Confile[6])); + string text3 = ""; + int[] array = park_id_set; + for (int j = 0; j < array.Length; j++) + { + int num5 = array[j]; + text3 = text3 + Convert.ToString(num5) + "/"; + if (num5 == 0) + { + break; + } + Debug.WriteLine(" --許可駐輪場ID(configまたはprint_area):" + num5); + } + text3 = text3.Replace("/0/", ""); + form2.Text = vertext + " " + Prn_ParkName + " " + text3 + " " + form2.Text; + Debug.WriteLine("☆☆処理待ちループ開始☆☆"); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + while (!quitRequested) + { + KEEPALIVE.MyTimer_start(); + while (!quitRequested) + { + Application.DoEvents(); + if (EndType == 10) + { + EndProc(); + Application.Exit(); + return; + } + if (QRresult != 0) + { + Debug.WriteLine("☆☆QRresult" + Convert.ToString(QRresult) + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); + if (QRresult == 1) + { + if (DEBUG_MODE == "0") + { + serialPort1.Write(Tag_LED); + } + Thread.Sleep(500); + num3 = QRresult; + break; + } + if (QRresult == 2) + { + flag = SO_ComCont(50, EndType); + EndProc(); + break; + } + QRresult = 0u; + } + else + { + if (DEBUG_MODE == "0") + { + MFresult = SO_MfifareCheck(); + } + else if (MFresult != 0) + { + continue; + } + if (MFresult == 0) + { + num3 = MFresult; + break; + } + if (MFresult > 10 && MFresult != 3221356545u && MFresult != 3221356547u) + { + flag = SO_ComCont(55, EndType); + EndProc(); + break; + } + } + } + if (!genmenFlg_2) + { + form2.RemoveMachiukeButtons(); + Bitmap backgroundImage2 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic2.png"); + form2.BackgroundImage = backgroundImage2; + RemoveHomeButton(); + Application.DoEvents(); + if ((num3 == 0 && MFresult != 0) || (num3 == 1 && QRresult == 2)) + { + MFresult = 0u; + QRresult = 0u; + break; + } + KEEPALIVE.MyTimer_stop(); + for (int k = 0; k < Retry_num; k++) + { + str_uid = ""; + if (num3 == 1) + { + text = QRdata; + QRresult = 0u; + ReceptionType = "QR"; + num = SO_DBChk_qrcheck(ref text); + Debug.WriteLine("\u3000\u3000☆1:" + num); + } + else + { + ReceptionType = "TAG"; + test_mode = false; + num = SO_DBChk_tagnum(); + MFresult = 10u; + } + Debug.WriteLine("\u3000\u3000str_uid:" + str_uid); + Debug.WriteLine("\u3000\u3000SO_DBChk_tagnum result:" + num); + switch (num) + { + case 0u: + num = SO_CommLabelOutput(num3); + Debug.WriteLine("\u3000\u3000☆3:" + num); + if (num != 0) + { + DBconnect.Open(); + continue; + } + break; + case 1u: + DBconnect.Open(); + continue; + } + break; + } + switch (num) + { + case 0u: + flag = true; + break; + case 1u: + flag = SO_ComCont(15, 6); + EndProc(); + break; + case 2u: + flag = SO_ComCont(20, EndType); + if (flag) + { + continue; + } + break; + case 3u: + flag = SO_ComCont(30, EndType); + if (flag) + { + continue; + } + break; + case 4u: + flag = SO_ComCont(21, EndType); + if (flag) + { + continue; + } + break; + case 5u: + flag = SO_ComCont(90, EndType); + if (flag) + { + continue; + } + break; + case 6u: + flag = SO_ComCont(91, EndType); + if (flag) + { + continue; + } + break; + case 7u: + flag = SO_ComCont(92, EndType); + if (flag) + { + continue; + } + break; + case 8u: + flag = SO_ComCont(93, EndType); + if (flag) + { + continue; + } + break; + case 9u: + Debug.WriteLine("\u3000◆読み取ったタグは対象外駐輪場"); + flag = SO_ComCont(84, EndType); + if (flag) + { + continue; + } + break; + case 10u: + Debug.WriteLine("\u3000◆読み取ったQRは対象外駐輪場"); + flag = SO_ComCont(88, EndType); + if (flag) + { + continue; + } + break; + default: + flag = true; + continue; + } + if (!flag || num == 1) + { + break; + } + uint num6 = SO_DBChk_print_area(int.Parse(str_Confile[6])); + int[] array2 = park_id_set; + for (int l = 0; l < array2.Length; l++) + { + int num7 = array2[l]; + Debug.WriteLine("\u3000◆取得駐輪場ID:" + num7); + if (num7 == 0) + { + break; + } + } + num2 = SO_PRN_datchk(ref str_prnprm); + str_logkm[6] = str_prnprm; + Debug.WriteLine("\u3000\u3000☆SO_PRN_datchk:\u3000" + num2); + if (num2 != 0) + { + if (num3 == 1) + { + Bitmap backgroundImage3 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_err_202.png"); + form2.BackgroundImage = backgroundImage3; + RemoveHomeButton(); + Application.DoEvents(); + Thread.Sleep(3000); + } + Bitmap backgroundImage4 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + form2.BackgroundImage = backgroundImage4; + RemoveHomeButton(); + Application.DoEvents(); + if (!SO_ComCont(num2, EndType)) + { + EndProc(); + break; + } + continue; + } + Debug.WriteLine(" --処理0"); + Bitmap backgroundImage5 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic2-1.png"); + form2.BackgroundImage = backgroundImage5; + RemoveHomeButton(); + Application.DoEvents(); + // 立刻结束程序 + Environment.Exit(0); + num = SO_PrnOut(); + //num = SO_PrnOut_EpsonNetwork(); + Debug.WriteLine(" --処理印刷\u3000 result " + num); + if (num != 0) + { + Debug.WriteLine(" --処理1a bResult " + SO_ComCont(40, EndType)); + Bitmap backgroundImage6 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic5.png"); + form2.BackgroundImage = backgroundImage6; + RemoveHomeButton(); + Debug.WriteLine(" --エラー\u3000 result " + num); + Application.DoEvents(); + Thread.Sleep(3000); + Bitmap backgroundImage7 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + form2.BackgroundImage = backgroundImage7; + RemoveHomeButton(); + Application.DoEvents(); + EndProc(); + break; + } + flag = SO_DBInsert_seal2(num3); + if (!test_mode) + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + string cmdText = "UPDATE new_contract SET validity=0 WHERE contract_id = @contractId;"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.Parameters.AddWithValue("@contractId", LOC_contract_id); + mySqlCommand.ExecuteNonQuery(); + mySqlTransaction.Commit(); + } + Debug.WriteLine(" --処理1b bResult " + flag); + num = SO_DBPrnPrm(); + if (num != 0) + { + flag = SO_ComCont(15, EndType); + EndProc(); + break; + } + Debug.WriteLine(" --処理2"); + Prn_NowNum++; + if (Prn_MaxNum - Prn_NowNum < Prn_Alert_num && Prn_Alert_flg == 1) + { + num = SO_DBOpeQue(); + if (num != 0) + { + flag = SO_ComCont(15, 6); + EndProc(); + break; + } + } + else + { + num = SO_DBNowPrnNum_rty(); + if (num != 0) + { + flag = SO_ComCont(15, 6); + EndProc(); + break; + } + } + Debug.WriteLine(" --処理3"); + uint num8 = SO_DBChk_print_area(int.Parse(str_Confile[6])); + if (test_mode) + { + flag = SO_ComCont(90, EndType); + Debug.WriteLine(" --処理3a bResult " + flag); + if (!flag) + { + EndProc(); + break; + } + } + else + { + str_logkm[6] = "定期契約駐輪場ID=" + str_rctbl[9] + "、駐輪場名=" + SO_DBChk_park_name(int.Parse(str_rctbl[9])) + "、" + ReceptionType; + flag = SO_ComCont(0, EndType); + Debug.WriteLine(" --処理3b bResult " + flag); + if (!flag) + { + EndProc(); + break; + } + } + Application.DoEvents(); + Debug.WriteLine(" --処理おわり"); + Debug.WriteLine(" --印刷完了表示"); + Bitmap backgroundImage8 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic3.png"); + form2.BackgroundImage = backgroundImage8; + RemoveHomeButton(); + Application.DoEvents(); + Thread.Sleep(5000); + Debug.WriteLine(" --待ち受け表示"); + Bitmap backgroundImage9 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + form2.BackgroundImage = backgroundImage9; + RemoveHomeButton(); + Application.DoEvents(); + Thread.Sleep(5000); + Debug.WriteLine(" --待ち受け表示おわり"); + continue; + } + MFresult = 0u; + QRresult = 0u; + genmenFlg_2 = false; + break; + } + } + EndProc(); + Application.Exit(); + } + + private void SO_FullScreen(int msgn, int mode) + { + try + { + if (!string.IsNullOrWhiteSpace(str_Confile[msgn]) && str_Confile[msgn].Length > 2) + { + int num = str_Confile[msgn].Length; + string text = str_Confile[msgn]; + if (num > 6) + { + num = 6; + text = str_Confile[9].Substring(0, 6); + } + int num2 = 300 - (num - 3) * 40; + int num3 = 110 + (num - 3) * 110; + if (mode == 0) + { + form2.Show(); + } + form2.label1.Text = text; + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic0.png"); + form2.BackgroundImage = backgroundImage; + Debug.WriteLine("ラベル表示名: " + text); + form2.Text = "駐ID: " + str_Confile[6] + " LOG:" + str_Confile[8] + " DBG:" + str_Confile[5]; + form2.label1.TextAlign = ContentAlignment.MiddleCenter; + form2.TopMost = true; + form2.WindowState = FormWindowState.Maximized; + } + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_イメージリソースエラー:" + ex.Message + " --> " + ex); + MessageBox.Show("起動に必要なイメージリソースが見つかりません。正しくセットアップしてください。", "リソースエラー", MessageBoxButtons.OK, MessageBoxIcon.Hand); + Close(); + Application.Exit(); + Console.WriteLine("Exit"); + } + } + + public string GetGIP(string url) + { + string input = ""; + try + { + HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url); + using HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); + using Stream stream = httpWebResponse.GetResponseStream(); + using StreamReader streamReader = new StreamReader(stream, Encoding.UTF8); + input = streamReader.ReadToEnd(); + } + catch + { + Debug.WriteLine("★★_ERROR_1"); + return "N/A"; + } + Regex regex = new Regex("(?.*?)", RegexOptions.IgnoreCase | RegexOptions.Singleline); + Match match = regex.Match(input); + string value = match.Groups["body"].Value; + return (!string.IsNullOrWhiteSpace(value)) ? value.TrimStart() : "N/A"; + } + + private void SO_CommIniErr(int type, int n) + { + EndType = n; + SO_LogEdit(type); + if (type != 10 && type != 15) + { + SO_DBInsert_pjl(type); + } + SO_WriteLog(type); + switch (type) + { + case 12: + { + Bitmap backgroundImage3 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic5.png"); + form2.BackgroundImage = backgroundImage3; + RemoveHomeButton(); + break; + } + case 13: + { + Bitmap backgroundImage2 = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic6.png"); + form2.BackgroundImage = backgroundImage2; + RemoveHomeButton(); + break; + } + default: + { + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic7.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + break; + } + } + Application.DoEvents(); + Thread.Sleep(20000); + } + + private bool SO_ComCont(int type, int n) + { + Debug.WriteLine(" ◎SO_ComCont.type:" + type); + Debug.WriteLine(" ◎SO_ComCont.n:" + n); + uint num = 0u; + EndType = n; + SO_LogEdit(type); + if (type != 15 && (!SO_DBInsert_pjl(type) || n == 15)) + { + SO_LogEdit(15); + SO_WriteLog(15); + return false; + } + Debug.WriteLine(" ◎To\u3000SO_WriteLog:" + type); + num = SO_WriteLog(type); + if (num == 1) + { + SO_LogEdit(87); + Debug.WriteLine(" SO_DBInsert_pjl2:" + 87); + SO_DBInsert_pjl(87); + return false; + } + return true; + } + + private uint SO_CommLabelOutput(uint mode) + { + uint num = 0u; + num = SO_PrnLabeEdit(mode); + if (num == 1) + { + return 1u; + } + return 0u; + } + + public static void SO_LogFileDelCheck() + { + int num = 0; + bool flag = true; + string nwm = DateTime.Now.ToString("yyyyMM"); + string text = ""; + string text2 = ""; + DirectoryInfo directoryInfo = new DirectoryInfo(LogfilePath); + if (!directoryInfo.Exists) + { + return; + } + FileInfo[] files = directoryInfo.GetFiles(); + for (num = 0; num < files.Length; num++) + { + string text3 = Convert.ToString(files[num]); + if (text3.Length == 24) + { + text2 = text3.Substring(text3.Length - 12, 12); + text = text2.Substring(0, 6); + if (!LogFileChk_Mo(nwm, text)) + { + File.Delete(LogfilePath + files[num]); + } + } + } + } + + public static bool LogFileChk_Mo(string Nwm, string Tgm) + { + string text = Nwm.Substring(0, 4); + int num = Convert.ToInt32(Nwm.Substring(0, 4)); + int num2 = Convert.ToInt32(Tgm.Substring(0, 4)); + int num3 = Convert.ToInt32(Nwm.Substring(4, 2)); + int num4 = Convert.ToInt32(Tgm.Substring(4, 2)); + int num5 = Convert.ToInt32(str_Confile[10]); + int num6 = num3 - num4; + if (num6 < 0) + { + num6 += 12; + num--; + } + int num7 = num - num2; + if (num7 < 0) + { + return true; + } + int num8 = num7 * 12 + num6; + if (num8 > num5) + { + return false; + } + return true; + } + + private int SO_PRN_datchk(ref string str_prnprm) + { + string text = DateTime.Now.ToString("yyyy/MM/dd"); + if (test_mode) + { + return 0; + } + if (str_rctbl[4] != "1" || str_rctbl[5] != "1") + { + str_prnprm = $"シール発行不可 授受フラグ={str_rctbl[4]}、 シール発行許可={str_rctbl[5]}"; + return 81; + } + if (text.CompareTo(str_rctbl[2]) > 0) + { + str_prnprm = $"シール発行不可 本日={text}、 有効期間E={str_rctbl[2]}"; + return 82; + } + if (text.CompareTo(str_rctbl[3]) < 0) + { + str_prnprm = $"シール発行不可 本日={text}、 シール印刷可能日={str_rctbl[3]}"; + return 83; + } + if (SO_Chk_print_area(int.Parse(str_rctbl[9])) == 0) + { + string text2 = ""; + int[] array = park_id_set; + foreach (int num in array) + { + text2 = text2 + Convert.ToString(num) + "/"; + if (num == 0) + { + break; + } + } + Debug.WriteLine(" ++定期契約駐輪場ID:" + str_rctbl[9]); + Debug.WriteLine(" ++許可駐輪場群ID:" + text2); + str_prnprm = string.Format("対象駐輪場範囲外 定期契約駐輪場ID={0}、 許可された駐輪場ID群={1}", str_rctbl[9], text2.Replace("/0/", "")); + return 84; + } + return 0; + } + + private void button1_Click(object sender, EventArgs e) + { + EndType = 10; + } + + private void SO_LogEdit(int n) + { + DateTime now = DateTime.Now; + FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location); + Console.WriteLine(versionInfo.ProductVersion); + vertext = " Ver." + versionInfo.ProductVersion; + switch (n) + { + case 0: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "シール印刷"; + str_logkm[4] = "正常印刷"; + str_logkm[5] = "0"; + break; + case 2: + str_logkm[0] = " "; + str_logkm[2] = " "; + str_logkm[3] = " "; + str_logkm[4] = "開始"; + str_logkm[5] = "0"; + str_logkm[6] = "[" + str_Confile[0] + "](自機GIP=" + READGIP + ") " + Prn_ParkName + vertext; + break; + case 15: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 113.ToString(); + str_logkm[6] = "DBアクセスエラー"; + break; + case 10: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "初期化処理"; + str_logkm[4] = "DBアタッチエラー"; + str_logkm[5] = 100.ToString(); + str_logkm[6] = "DB OPENに失敗"; + break; + case 11: + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "初期化処理"; + str_logkm[4] = "レイアウトファイルエラー"; + str_logkm[5] = 110.ToString(); + str_logkm[6] = "レイアウトファイルが見つからない " + str_layoutFile; + break; + case 12: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "初期化処理"; + str_logkm[4] = "プリンタ初期化エラー"; + str_logkm[5] = 200.ToString(); + str_logkm[6] = "プリンタ初期化に失敗"; + break; + case 13: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "初期化処理"; + str_logkm[4] = "カードリーダ初期化エラー"; + str_logkm[5] = 300.ToString(); + str_logkm[6] = "Mifareリーダ初期化に失敗"; + break; + case 14: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "初期化処理"; + str_logkm[4] = "カードリーダ初期化エラー"; + str_logkm[5] = 301.ToString(); + str_logkm[6] = "QRコードリーダ初期化に失敗"; + break; + case 20: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 1.ToString(); + str_logkm[6] = "タグ利用者なし (該当Mifareコードなし) CODE=(" + MFCODE + ")"; + break; + case 92: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 1.ToString(); + str_logkm[6] = "タグ\u3000シール発行済 CODE=(" + MFCODE + " → " + LOC_contract_id + ")"; + break; + case 93: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 1.ToString(); + str_logkm[6] = "タグ\u3000費用未払い CODE=(" + MFCODE + " → " + LOC_contract_id + ")"; + break; + case 21: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 5.ToString(); + str_logkm[6] = "タグ利用者なし (該当利用者IDなし)"; + break; + case 30: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 3.ToString(); + str_logkm[6] = "該当QRコードなし CODE=(" + QRdata + ")"; + break; + case 91: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 3.ToString(); + str_logkm[6] = "該当QRシール発行済 CODE=(" + QRdata + " → " + LOC_contract_id + ")"; + break; + case 40: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 201.ToString(); + str_logkm[6] = "プリンタエラー"; + break; + case 50: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 303.ToString(); + str_logkm[6] = "QRコード読み取りエラー"; + break; + case 55: + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 302.ToString(); + str_logkm[6] = "Mifare読み取りエラー"; + break; + case 80: + str_logkm[0] = ""; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "初期化処理"; + str_logkm[4] = "error"; + str_logkm[5] = 80.ToString(); + str_logkm[6] = "設定ファイル読み込みエラー"; + break; + case 85: + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "初期化処理"; + str_logkm[4] = "error"; + str_logkm[5] = 111.ToString(); + str_logkm[6] = "ログファイル読み込みエラー"; + break; + case 87: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 112.ToString(); + str_logkm[6] = "ログファイル書き込みエラー"; + break; + case 81: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 50.ToString(); + str_logkm[6] = "授受フラグまたはシール発行許可エラー"; + break; + case 82: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 51.ToString(); + str_logkm[6] = "「有効期間S」と「有効期間E」の間でない"; + break; + case 83: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "利用者確認"; + str_logkm[4] = "error"; + str_logkm[5] = 52.ToString(); + str_logkm[6] = "「シール印刷可能日」以降でない"; + break; + case 84: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "対象駐輪場外"; + str_logkm[4] = "error"; + str_logkm[5] = 53.ToString(); + str_logkm[6] = "対象駐輪場範囲外(TAG) 定期契約駐輪場ID=" + Tag_ParkID + " TAG=" + MFCODE; + break; + case 88: + str_logkm[0] = " "; + str_logkm[2] = "定期シール発行"; + str_logkm[3] = "対象駐輪場外"; + str_logkm[4] = "error"; + str_logkm[5] = 53.ToString(); + str_logkm[6] = "対象駐輪場範囲外(QR) 定期契約駐輪場ID=" + LOC_park_id; + break; + case 90: + str_logkm[0] = " "; + str_logkm[2] = "シール発行テスト"; + str_logkm[3] = "テスト"; + str_logkm[4] = "test"; + str_logkm[5] = 400.ToString(); + str_logkm[6] = "QRコードによるテスト印刷"; + break; + } + str_logkm[1] = str_Confile[6]; + str_logkm[7] = now.ToString(); + } + + private uint SO_WriteLog(int type) + { + uint result = 0u; + string text = ""; + string text2 = Convert.ToString(DateTime.Now); + string text3 = DateTime.Now.ToString("yyyyMMdd"); + if (string.Compare(text3, TodayLogName) != 0) + { + LogfilePath = str_Confile[8]; + LogfileName = str_Confile[8] + str_Confile[9] + "_" + TodayLogName + ".csv"; + TodayLogName = text3; + } + try + { + using StreamWriter streamWriter = new StreamWriter(LogfileName, append: true, Encoding.GetEncoding("utf-8")); + if (type != 0) + { + Debug.WriteLine(" ◎◎SO_WriteLog.type:" + type); + Bitmap bitmap = null; + if (type == 30 || type == 91 || type == 20 || type == 92 || type == 93 || type == 84 || type == 88 || type == 82) + { + Application.DoEvents(); + if (DEBUG_MODE == "0" && BEEP_MODE == "1") + { + Debug.WriteLine("★BEEP:" + str_logkm[5]); + for (int i = 0; i < 10; i++) + { + serialPort1.Write(Tag_LED_ERR); + Application.DoEvents(); + Thread.Sleep(200); + } + } + int num = 0; + int num2 = -1; + int num3 = -1; + if (MFresult == 10 && MFCODE != "") + { + num3 = CheckNewContract(MFCODE); + switch (num3) + { + case 0: + Console.WriteLine("SOMPR-110に進む"); + SOMPR_110(); + break; + case 1: + Console.WriteLine("SOMPR-120に進む"); + SOMPR_120(); + break; + case 3: + Console.WriteLine("更新期間外"); + break; + default: + num = CheckContractRenewal(MFCODE); + break; + } + } + if (num != 0 && num3 != 0 && num3 != 1 && num3 != 3) + { + num2 = CheckContractRenewalPeriod(num); + if (num2 > 0) + { + Console.WriteLine("減免のチェックをする"); + int num4 = CheckGenmen(MFCODE, num); + switch (num4) + { + case 1: + ZeroenKoushin(MFCODE, num); + break; + case 2: + MFCODE = ""; + break; + default: + Console.WriteLine("決済チェックOK。決済処理に進む"); + KessaiYoyaku(MFCODE, num, num4); + while (view_mode) + { + Application.DoEvents(); + } + break; + } + } + } + else if (num3 != 0 && num3 != 1 && num3 != 3) + { + if (num != 0) + { + num2 = CheckContractRenewalPeriod(num); + } + if (num2 != 0) + { + if (type == 30) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_err_202.png"); + form2.BackgroundImage = bitmap; + RemoveHomeButton(); + } + if (type == 91) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_err_204.png"); + form2.BackgroundImage = bitmap; + RemoveHomeButton(); + } + if (type == 20) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_err_201.png"); + form2.BackgroundImage = bitmap; + RemoveHomeButton(); + } + if (type == 92) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_err_203.png"); + form2.BackgroundImage = bitmap; + RemoveHomeButton(); + } + if (type == 93) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_err_205.png"); + form2.BackgroundImage = bitmap; + RemoveHomeButton(); + } + if (type == 84) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_err_201.png"); + form2.BackgroundImage = bitmap; + RemoveHomeButton(); + } + if (type == 88) + { + bitmap = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic_err_202.png"); + form2.BackgroundImage = bitmap; + RemoveHomeButton(); + } + Application.DoEvents(); + Thread.Sleep(3000); + } + } + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + form2.BackgroundImage = backgroundImage; + RemoveHomeButton(); + Application.DoEvents(); + } + text = str_logkm[0] + "," + str_uid + "," + LOC_contract_id + "," + str_logkm[1] + "," + str_logkm[2] + "," + str_logkm[3] + "," + str_logkm[4] + "," + str_logkm[5] + "," + str_logkm[6] + "," + str_logkm[7] + "," + ERRORINFO + "," + DEBUG_MODE; + Debug.WriteLine("!アラートログ書込み:" + text); + } + else + { + text = str_logkm[0] + "," + str_uid + "," + LOC_contract_id + "," + str_logkm[1] + "," + str_logkm[2] + "," + str_logkm[3] + "," + str_logkm[4] + "," + str_logkm[5] + "," + str_logkm[6] + "," + str_logkm[7] + ",," + DEBUG_MODE; + Debug.WriteLine("!ノーマルログ書込み:" + text); + } + streamWriter.WriteLine(text); + } + catch (Exception ex) when (ex is IOException) + { + Debug.WriteLine("★★_ERROR_2\u3000ログファイルオープンエラー:" + ex.Message + " --> " + ex); + MessageBox.Show("SOM_config.datのログフォルダ指定に誤りがあるか、ログファイルが別のプログラムで開かれています。閉じてください。", "ログファイルオープンエラー", MessageBoxButtons.OK, MessageBoxIcon.Hand); + Trace.WriteLine(ex.Message); + result = 1u; + } + catch (Exception ex2) + { + Debug.WriteLine("★★_ERROR_2B\u3000その他エラー:" + ex2.Message + " --> " + ex2); + Trace.WriteLine(ex2.Message); + result = 1u; + } + for (int num5 = 14; num5 > 0; num5--) + { + for (int j = 0; j < 8; j++) + { + dataGridView1[j, num5].Value = dataGridView1[j, num5 - 1].Value; + } + } + dataGridView1[0, 0].Value = str_logkm[0]; + dataGridView1[1, 0].Value = str_logkm[1]; + dataGridView1[2, 0].Value = str_logkm[2]; + dataGridView1[3, 0].Value = str_logkm[3]; + dataGridView1[4, 0].Value = str_logkm[4]; + dataGridView1[5, 0].Value = str_logkm[5]; + dataGridView1[6, 0].Value = str_logkm[6]; + dataGridView1[7, 0].Value = str_logkm[7]; + Refresh(); + ERRORINFO = ""; + return result; + } + + private bool SO_DBOpen() + { + bool result = true; + Debug.WriteLine("★DBパラメータ:server={0};port={1};user={2};password={3};database={4};SSL Mode=None", str_Confile[0], DB_PORT_NUMBER, str_Confile[1], str_Confile[2], DB_NAME); + connectionParams = $"server={str_Confile[0]};port={DB_PORT_NUMBER};user={str_Confile[1]};password={str_Confile[2]};database={DB_NAME};SSL Mode=None"; + DBconnect = new MySqlConnection(connectionParams); + try + { + DBconnect.Open(); + Debug.WriteLine("DBconnect open"); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_3"); + Trace.WriteLine(ex.Message); + ERRORINFO = "DBOPENエラー=" + ex.Message; + result = false; + } + return result; + } + + public static uint SO_DBPrnPrm() + { + if (test_mode) + { + return 0u; + } + DateTime now = DateTime.Now; + string text = "update regular_contract set contract_seal_issue=" + Convert.ToString(Convert.ToInt32(str_rctbl[7]) + 1) + ", contract_permission=0 , updated_at = '" + now.ToString() + "' where user_id=" + str_uid + " and contract_id=" + str_rctbl[0] + ";"; + Debug.WriteLine("★シール印刷後更新SQL:" + text); + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + mySqlCommand.ExecuteNonQuery(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_4"); + Trace.WriteLine(ex.Message); + ERRORINFO = "定期契約マスタ更新エラー=" + ex.Message; + DBconnect.Close(); + return 1u; + } + return 0u; + } + + public static int SO_DBKpAlive(string Insert_SQL) + { + try + { + if (DBconnect.State != ConnectionState.Open) + { + DBconnect.Open(); + Debug.WriteLine("KeepAlive_DB再接続しました"); + } + else + { + Debug.WriteLine("KeepAlive_DB接続中"); + } + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlCommand mySqlCommand = new MySqlCommand(Insert_SQL, DBconnect); + mySqlCommand.CommandTimeout = 1; + mySqlCommand.ExecuteNonQuery(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_5 N/W停止:" + ex.Message); + Trace.WriteLine(ex.Message); + ERRORINFO = "デバイス管理マスタ書き込みエラー=" + ex.Message; + DBconnect.Close(); + return 1; + } + return 0; + } + + private uint SO_DBNowPrnNum_rty() + { + uint num = 0u; + if (test_mode) + { + return 0u; + } + for (int i = 0; i < Retry_num; i++) + { + num = SO_DBNowPrnNum(); + if (num == 1) + { + Trace.WriteLine("error"); + ERRORINFO = "駐輪場マスタ:印字数更新時エラー"; + DBconnect.Open(); + continue; + } + return 0u; + } + return 1u; + } + + private uint SO_DBNowPrnNum() + { + DateTime now = DateTime.Now; + string cmdText = "update park set print_number=" + Convert.ToString(Prn_NowNum) + " where park_id=" + str_Confile[6] + ";"; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.CommandTimeout = 1; + mySqlCommand.ExecuteNonQuery(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_6"); + Trace.WriteLine(ex.Message); + DBconnect.Close(); + return 1u; + } + return 0u; + } + + private uint SO_DBOpeQue() + { + if (test_mode) + { + return 0u; + } + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + DateTime now = DateTime.Now; + string text = "INSERT INTO operator_que (park_id, que_class, que_status_comment, work_instructions, created_at, que_status) VALUES (" + str_Confile[6] + ",104,'" + str_Confile[7] + "','" + Prn_ParkName + "の用紙がもうすぐ無くなります。交換してください','" + now.ToString() + "',1);"; + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + Trace.WriteLine(text); + try + { + mySqlCommand.ExecuteNonQuery(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_7"); + Trace.WriteLine(ex.Message); + ERRORINFO = "オペレータキューテーブルレコード追加時エラー"; + return 1u; + } + return 0u; + } + + private int SO_DBLayoutFile() + { + string text = ""; + MySqlCommand mySqlCommand = new MySqlCommand(DBREAD_print_layout + str_Confile[6] + ";", DBconnect); + Trace.WriteLine("★ :" + DBREAD_print_layout + str_Confile[6]); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + text = Convert.ToString(mySqlDataReader["print_layout"]); + Trace.WriteLine("★レイアウトファイル:" + text); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_8"); + Trace.WriteLine(ex.Message); + ERRORINFO = "印字レイアウトファイル名読み取り時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + return 1; + } + str_layoutFile = Directory.GetCurrentDirectory() + "\\" + text + ".CLF"; + return 0; + } + + private bool SO_PrnEnvRead_rty() + { + bool flag = true; + for (int i = 0; i < Retry_num; i++) + { + if (!SO_PrnEnvRead()) + { + Trace.WriteLine("error"); + ERRORINFO = "設定マスタ(setting),デバイス管理マスタ(device)読み取り時エラー発生"; + DBconnect.Open(); + continue; + } + return true; + } + return false; + } + + private bool SO_PrnEnvRead() + { + string text = "select printable_alert_flag,printable_number,printable_alert_number from setting ORDER BY setting_id DESC;"; + string text2 = "select park_name, print_number from park where park_id=" + str_Confile[6] + ";"; + string text3 = "select device_id from device where park_id=" + str_Confile[6] + " and device_type='プリンタ' and device_work='1';"; + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + Debug.WriteLine("★設定取得SQL:" + text); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + Prn_Alert_flg = Convert.ToInt32(mySqlDataReader["printable_alert_flag"]); + Prn_MaxNum = Convert.ToInt32(mySqlDataReader["printable_number"]); + Prn_Alert_num = Convert.ToInt32(mySqlDataReader["printable_alert_number"]); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (MySqlException ex) + { + Debug.WriteLine("★★_ERROR_9"); + Trace.WriteLine(ex.Message); + DBconnect.Close(); + mySqlCommand.Dispose(); + return false; + } + catch (Exception ex2) + { + Debug.WriteLine("★★_ERROR_10"); + Trace.WriteLine(ex2.Message); + DBconnect.Close(); + mySqlCommand.Dispose(); + return false; + } + MySqlCommand mySqlCommand2 = new MySqlCommand(text2, DBconnect); + Debug.WriteLine("★駐車場取得取得SQL:" + text2); + mySqlCommand2.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction2 = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader2 = mySqlCommand2.ExecuteReader(); + while (mySqlDataReader2.Read()) + { + Prn_ParkName = Convert.ToString(mySqlDataReader2["park_name"]); + if (mySqlDataReader2.IsDBNull(1)) + { + Prn_NowNum = 0; + } + else + { + Prn_NowNum = Convert.ToInt32(mySqlDataReader2["print_number"]); + } + } + mySqlDataReader2.Close(); + mySqlTransaction2.Commit(); + } + catch (Exception ex3) + { + Debug.WriteLine("★★_ERROR_11"); + Trace.WriteLine(ex3.Message); + DBconnect.Close(); + mySqlCommand2.Dispose(); + return false; + } + MySqlCommand mySqlCommand3 = new MySqlCommand(text3, DBconnect); + Debug.WriteLine("★デバイスID取得SQL:" + text3); + mySqlCommand3.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction3 = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader3 = mySqlCommand3.ExecuteReader(); + while (mySqlDataReader3.Read()) + { + KpAlive_devid = Convert.ToString(mySqlDataReader3["device_id"]); + } + mySqlDataReader3.Close(); + mySqlTransaction3.Commit(); + } + catch (Exception ex4) + { + Debug.WriteLine("★★_ERROR_12"); + Trace.WriteLine(ex4.Message); + DBconnect.Close(); + mySqlCommand3.Dispose(); + return false; + } + if (string.IsNullOrWhiteSpace(KpAlive_devid)) + { + KpAlive_devid = "99"; + } + return true; + } + + private uint SO_DBChk_qrnum(ref string str_qrc) + { + string cmdText = "select user_id, contract_id ,park_id from regular_contract where contract_qr_id='" + str_qrc + "';"; + MySqlCommand mySqlCommand = new MySqlCommand(cmdText, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + if (object.Equals(str_qrc, TESTQR_STRING)) + { + test_mode = true; + Debug.WriteLine("◆QRテストモード\u3000オン"); + mySqlTransaction.Commit(); + return 0u; + } + test_mode = false; + Debug.WriteLine("◆QRテストモード\u3000オフ"); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + str_uid = Convert.ToString(mySqlDataReader["user_id"]); + LOC_contract_id = Convert.ToString(mySqlDataReader["contract_id"]); + LOC_park_id = Convert.ToString(mySqlDataReader["park_id"]); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_13"); + Trace.WriteLine(ex.Message); + ERRORINFO = "該当定期契約QRID検索時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + return 1u; + } + if (str_uid.Length == 0) + { + return 3u; + } + return 0u; + } + + private uint SO_DBChk_qrcheck(ref string str_qrc) + { + int num = 0; + string text = ""; + string text2 = ""; + string text3 = "select user_id, contract_id, contract_flag, contract_permission,park_id from regular_contract where contract_qr_id='" + str_qrc + "' ORDER BY updated_at DESC limit 1;"; + Debug.WriteLine("◆◆_SO_DBChk_qrcheck: " + text3); + MySqlCommand mySqlCommand = new MySqlCommand(text3, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + if (object.Equals(str_qrc, TESTQR_STRING)) + { + test_mode = true; + Debug.WriteLine("◆QRテストモード\u3000オン"); + mySqlTransaction.Commit(); + return 0u; + } + test_mode = false; + Debug.WriteLine("◆QRテストモード\u3000オフ"); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + num = 1; + text = Convert.ToString(mySqlDataReader["contract_permission"]); + text2 = Convert.ToString(mySqlDataReader["contract_flag"]); + str_uid = Convert.ToString(mySqlDataReader["user_id"]); + LOC_contract_id = Convert.ToString(mySqlDataReader["contract_id"]); + LOC_park_id = Convert.ToString(mySqlDataReader["park_id"]); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("◆◆_ERROR_20"); + Trace.WriteLine(ex.Message); + ERRORINFO = "該当定期契約QRIDチェックエラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + return 1u; + } + if (num == 0) + { + Debug.WriteLine("◆◆_SO_DBChk_qrcheck_エラー:該当QRレコードなし: " + str_qrc); + return 3u; + } + Debug.WriteLine("◆◆_SO_DBChk_qrcheck_contract_permission: " + text); + if (text2.Equals("False")) + { + Debug.WriteLine("◆◆_SO_DBChk_qrcheck_エラー:QR未決済: " + str_qrc); + return 3u; + } + if (text.Equals("False")) + { + Debug.WriteLine("◆◆_SO_DBChk_qrcheck_エラー:シール発行済: " + str_qrc); + return 6u; + } + if (SO_Chk_print_area(int.Parse(LOC_park_id)) == 0) + { + Debug.WriteLine("◆◆_SO_DBChk_qrcheck_エラー:対象駐輪場外: " + LOC_park_id); + return 10u; + } + Debug.WriteLine("◆◆_SO_DBChk_qrcheck_正常終了: " + str_qrc); + return 0u; + } + + private uint SO_DBChk_print_area(int set_park_id) + { + Array.Clear(park_id_set, 0, 500); + string text = "select park_id from print_area where print_area_name = (select print_area_name from print_area where park_id= '" + set_park_id + "');"; + Debug.WriteLine("★シール印刷範囲マスタ取得SQL:" + text); + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + int num = 0; + while (mySqlDataReader.Read()) + { + park_id_set[num] = Convert.ToInt32(mySqlDataReader["park_id"]); + num++; + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_14"); + Trace.WriteLine(ex.Message); + ERRORINFO = "シール印刷範囲マスタ検索時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + return 1u; + } + if (park_id_set[0] == 0) + { + park_id_set[0] = set_park_id; + return 0u; + } + return 0u; + } + + private string SO_DBChk_park_name(int park_id) + { + string result = ""; + string text = "select park_name from park where park_id =" + park_id; + Debug.WriteLine("★駐輪場名取得SQL:" + text); + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + int num = 0; + while (mySqlDataReader.Read()) + { + result = Convert.ToString(mySqlDataReader["park_name"]); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_15"); + Trace.WriteLine(ex.Message); + ERRORINFO = "駐輪場名検索時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + return "N/A"; + } + return result; + } + + private int SO_Chk_print_area(int park_id) + { + Debug.WriteLine("★シール印刷範囲チェック:" + park_id); + int[] array = park_id_set; + for (int i = 0; i < array.Length; i++) + { + int num = array[i]; + Debug.WriteLine(" --チェック取得駐輪場ID:" + num); + if (num == park_id) + { + Debug.WriteLine(" --チェックOK"); + return 1; + } + if (num == 0) + { + break; + } + } + Debug.WriteLine(" --チェックNG"); + return 0; + } + + private uint SO_DBChk_tagnum() + { + string text = ""; + string text2 = ""; + string text3 = ""; + string text4 = "select distinct t2.user_id, t2.contract_id, t2.park_id, t2.contract_flag, t2.contract_permission from (user t1, regular_contract t2) where t1.user_seq = t2.user_id and t1.user_tag_serial='" + MFCODE + "' ORDER BY t2.updated_at DESC , t2.contract_id DESC LIMIT 1;"; + Debug.WriteLine("\u3000〓〓タグからユーザー取得SQL:" + text4); + MySqlCommand mySqlCommand = new MySqlCommand(text4, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + str_uid = Convert.ToString(mySqlDataReader["user_id"]); + LOC_contract_id = Convert.ToString(mySqlDataReader["contract_id"]); + text = Convert.ToString(mySqlDataReader["contract_flag"]); + text2 = Convert.ToString(mySqlDataReader["contract_permission"]); + text3 = (Tag_ParkID = Convert.ToString(mySqlDataReader["park_id"])); + } + mySqlDataReader.Close(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("\u3000〓〓_ERROR_16"); + Trace.WriteLine(ex.Message); + ERRORINFO = "該当タグシリアル検索時エラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + return 1u; + } + if (str_uid.Length == 0) + { + Debug.WriteLine("\u3000〓〓_SO_DBChk_tagnum_エラー:該当レコード無し: " + MFCODE); + return 2u; + } + Debug.WriteLine("\u3000\u3000〓〓_SO_DBChk_tagnum:s_contract_flag(授受フラグ): " + text); + Debug.WriteLine("\u3000\u3000〓〓_SO_DBChk_tagnum:s_contract_permission(印刷許可フラグ): " + text2); + Debug.WriteLine("\u3000\u3000〓〓_SO_DBChk_tagnum:最新定期契約 park_id: " + text3); + if (SO_Chk_print_area(int.Parse(text3)) == 0) + { + Debug.WriteLine("\u3000〓〓_SO_DBChk_tagnum_エラー:該当駐輪場外: " + text3); + return 9u; + } + if (!text.Equals("True")) + { + Debug.WriteLine("\u3000〓〓_SO_DBChk_tagnum_エラー:未授受: " + LOC_contract_id); + return 8u; + } + if (text2.Equals("False")) + { + Debug.WriteLine("\u3000〓〓_SO_DBChk_tagnum_エラー:シール発行済: " + LOC_contract_id); + return 7u; + } + return 0u; + } + + /*private int SO_DBPrndat_01(uint type) + { + str_rctbl = new string[11]; + string text = ""; + string text2 = ""; + string text3 = ""; + string text4 = ((type == 0 || type == 3) ? (DBREAD_Prndat01[type] + DBREAD_Prndat02[type] + "'" + MFCODE + "' ORDER BY ta3.updated_at DESC LIMIT 1;") : ((type != 2) ? (DBREAD_Prndat01[type] + DBREAD_Prndat02[type] + "'" + QRdata + "';") : (DBREAD_Prndat01[type] + DBREAD_Prndat02[type] + "'" + MFCODE + "' ORDER BY ta3.updated_at DESC LIMIT 1;"))); + if (DEBUG_MODE == "1") + { + MessageBox.Show("シール印刷用SQL:" + text4, "デバッグモード", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + } + Debug.WriteLine("★シール印刷データ取得SQL_A:" + DBREAD_Prndat01[type]); + Debug.WriteLine("★シール印刷データ取得SQL_B(park_id):" + str_Confile[6]); + Debug.WriteLine("★シール印刷データ取得SQL_C:" + DBREAD_Prndat02[type]); + Debug.WriteLine("★シール印刷データ取得SQL_D:" + MFCODE); + Debug.WriteLine("★シール印刷データ取得SQL_E:" + QRdata); + Debug.WriteLine("★シール印刷データ取得SQL_ALL:" + text4); + MySqlCommand mySqlCommand = new MySqlCommand(text4, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + int num = 0; + MySqlTransaction mySqlTransaction = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); + while (mySqlDataReader.Read()) + { + str_Prndat[0] = Convert.ToString(mySqlDataReader["park_name"]); + str_Prndat[2] = Convert.ToString(mySqlDataReader["ptype_subject"]); + str_Prndat[7] = Convert.ToString(mySqlDataReader["city_name"]); + str_Prndat[8] = Convert.ToString(mySqlDataReader["user_id"]); + str_Prndat[12] = Convert.ToString(mySqlDataReader["user_seq"]); + str_Prndat[11] = Convert.ToString(mySqlDataReader["zone_name"]); + if (string.IsNullOrEmpty(Convert.ToString(mySqlDataReader["pplace_no"]))) + { + str_Prndat[9] = str_Prndat[11]; + } + else + { + str_Prndat[9] = str_Prndat[11] + ":" + Convert.ToString(mySqlDataReader["pplace_no"]); + } + text = Convert.ToString(mySqlDataReader["contract_periode"]); + text2 = Convert.ToString(mySqlDataReader["contract_id"]); + text3 = Convert.ToString(mySqlDataReader["usertype_subject1"]); + str_rctbl[3] = Convert.ToString(mySqlDataReader["printable_date"]); + str_rctbl[4] = ((mySqlDataReader["contract_flag"] != DBNull.Value) ? Convert.ToString(Convert.ToInt16(mySqlDataReader["contract_flag"])) : "0"); + str_rctbl[5] = ((mySqlDataReader["contract_permission"] != DBNull.Value) ? Convert.ToString(Convert.ToInt16(mySqlDataReader["contract_permission"])) : "0"); + str_rctbl[7] = Convert.ToString(mySqlDataReader["contract_seal_issue"]); + str_rctbl[8] = Convert.ToString(mySqlDataReader["user_id"]); + str_rctbl[9] = Convert.ToString(mySqlDataReader["park_id"]); + str_rctbl[10] = Convert.ToString(Convert.ToInt16(mySqlDataReader["tag_qr_flag"])); + if (string.IsNullOrWhiteSpace(str_rctbl[7])) + { + str_rctbl[7] = "0"; + num = 0; + } + else + { + num = Convert.ToInt32(str_rctbl[7]); + } + } + mySqlDataReader.Close(); + if (text3 == "学生") + { + str_Prndat[1] = "学"; + } + else + { + str_Prndat[1] = " "; + } + if (num > 0) + { + str_Prndat[5] = "再" + str_rctbl[7]; + } + else + { + str_Prndat[5] = ""; + } + if (str_rctbl[10] == "0" || str_rctbl[10] == "False") + { + str_Prndat[10] = "●"; + } + else + { + str_Prndat[10] = ""; + } + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_17"); + Trace.WriteLine(ex.Message); + ERRORINFO = "シールの印字内容を読み取り時にエラー発生"; + DBconnect.Close(); + mySqlCommand.Dispose(); + for (int i = 0; i < 8; i++) + { + str_rctbl[i] = " "; + } + return 1; + } + if (type == 2 || type == 3) + { + text = kessaiYoyakuArray.contract_periode; + str_rctbl[3] = kessaiYoyakuArray.contract_periode; + } + if (string.IsNullOrWhiteSpace(str_Prndat[0]) || string.IsNullOrWhiteSpace(str_Prndat[2]) || string.IsNullOrWhiteSpace(text) || string.IsNullOrWhiteSpace(text2) || string.IsNullOrWhiteSpace(str_rctbl[3]) || string.IsNullOrWhiteSpace(str_rctbl[5]) || string.IsNullOrWhiteSpace(str_rctbl[8])) + { + DBconnect.Close(); + ERRORINFO = "シールの印字内容を読み取り時にエラー発生"; + return 1; + } + Cperiods(text, ref str_Prndat[3]); + Cperiode(text, ref str_Prndat[4]); + str_Prndat[6] = text2; + str_rctbl[0] = text2; + str_rctbl[2] = text.Substring(0, 10); + str_rctbl[3] = str_rctbl[3].Substring(0, 10); + str_Prndat[0] = SO_DBChk_park_name(int.Parse(str_rctbl[9])); + Debug.WriteLine("\u3000\u3000☆定期契約X park_id:" + str_rctbl[9]); + Debug.WriteLine("\u3000\u3000☆定期契約X park_name:" + str_Prndat[0]); + return 0; + }*/ + private int SO_DBPrndat_01(uint type) + { + // 清空/准备缓冲 + str_rctbl = new string[11]; + string periode = ""; + string contractId = ""; + string userType1 = ""; + + // 组SQL + string sql = + (type == 0 || type == 3) + ? (DBREAD_Prndat01[type] + DBREAD_Prndat02[type] + "'" + MFCODE + "' ORDER BY ta3.updated_at DESC LIMIT 1;") + : (type != 2) + ? (DBREAD_Prndat01[type] + DBREAD_Prndat02[type] + "'" + QRdata + "';") + : (DBREAD_Prndat01[type] + DBREAD_Prndat02[type] + "'" + MFCODE + "' ORDER BY ta3.updated_at DESC LIMIT 1;"); + + if (DEBUG_MODE == "1") + MessageBox.Show("シール印刷用SQL:" + sql, "デバッグモード", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + + Debug.WriteLine("★シール印刷データ取得SQL_A:" + DBREAD_Prndat01[type]); + Debug.WriteLine("★シール印刷データ取得SQL_B(park_id):" + str_Confile[6]); + Debug.WriteLine("★シール印刷データ取得SQL_C:" + DBREAD_Prndat02[type]); + Debug.WriteLine("★シール印刷データ取得SQL_D:" + MFCODE); + Debug.WriteLine("★シール印刷データ取得SQL_E:" + QRdata); + Debug.WriteLine("★シール印刷データ取得SQL_ALL:" + sql); + + using (var cmd = new MySqlCommand(sql, DBconnect)) + { + cmd.CommandTimeout = 10; // 读1行给10秒更稳 + + try + { + using (var r = cmd.ExecuteReader()) + { + if (!r.HasRows) + { + Trace.WriteLine("[Prndat01] NO ROWS for QR=" + QRdata + ", park_id=" + str_Confile[6]); + ERRORINFO = "印字データが見つかりません"; + return 1; + } + + // 便捷安全取值 + string S(string col) => r[col] == DBNull.Value ? "" : Convert.ToString(r[col]); + int I(string col, int def = 0) => r[col] == DBNull.Value ? def : Convert.ToInt32(r[col]); + + int reissueCount = 0; + + // 只要第一条完整记录 + while (r.Read()) + { + str_Prndat[0] = S("park_name"); + str_Prndat[2] = S("ptype_subject"); + str_Prndat[7] = S("city_name"); + str_Prndat[8] = S("user_id"); + str_Prndat[12] = S("user_seq"); + str_Prndat[11] = S("zone_name"); + + var pplace = S("pplace_no"); + str_Prndat[9] = string.IsNullOrEmpty(pplace) ? str_Prndat[11] : $"{str_Prndat[11]}:{pplace}"; + + periode = S("contract_periode"); + contractId = S("contract_id"); + userType1 = S("usertype_subject1"); + + str_rctbl[3] = S("printable_date"); + str_rctbl[4] = I("contract_flag", 0).ToString(); + str_rctbl[5] = I("contract_permission", 0).ToString(); + str_rctbl[7] = S("contract_seal_issue"); + str_rctbl[8] = S("user_id"); + str_rctbl[9] = S("park_id"); + str_rctbl[10] = I("tag_qr_flag", 0).ToString(); // ← 允许为NULL + + // 再发回数 + reissueCount = string.IsNullOrWhiteSpace(str_rctbl[7]) ? 0 : I("contract_seal_issue", 0); + + // 学生标记/再発/タグ● + str_Prndat[1] = (userType1 == "学生") ? "学" : " "; + str_Prndat[5] = (reissueCount > 0) ? ("再" + reissueCount) : ""; + str_Prndat[10] = (str_rctbl[10] == "0" || str_rctbl[10].Equals("False", StringComparison.OrdinalIgnoreCase)) ? "●" : ""; + + break; // 取到第一条就够了 + } + } + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_17"); + Trace.WriteLine("[Prndat01 EX] " + ex.GetType().Name + ": " + ex.Message); + ERRORINFO = "シールの印字内容を読み取り時にエラー発生"; + try { DBconnect.Close(); } catch { } + return 1; + } + } + + // 外部予約时覆盖 + if (type == 2 || type == 3) + { + periode = kessaiYoyakuArray.contract_periode; + str_rctbl[3] = kessaiYoyakuArray.contract_periode; + } + + // 必填校验 + if (string.IsNullOrWhiteSpace(str_Prndat[0]) || + string.IsNullOrWhiteSpace(str_Prndat[2]) || + string.IsNullOrWhiteSpace(periode) || + string.IsNullOrWhiteSpace(contractId) || + string.IsNullOrWhiteSpace(str_rctbl[3]) || + string.IsNullOrWhiteSpace(str_rctbl[5]) || + string.IsNullOrWhiteSpace(str_rctbl[8])) + { + ERRORINFO = "印字データの必須項目が不足しています"; + try { DBconnect.Close(); } catch { } + return 1; + } + + // 派生字段与子串保护 + Cperiods(periode, ref str_Prndat[3]); + Cperiode(periode, ref str_Prndat[4]); + + str_Prndat[6] = contractId; + str_rctbl[0] = contractId; + str_rctbl[2] = (!string.IsNullOrEmpty(periode) && periode.Length >= 10) ? periode.Substring(0, 10) : ""; + str_rctbl[3] = (!string.IsNullOrEmpty(str_rctbl[3]) && str_rctbl[3].Length >= 10) ? str_rctbl[3].Substring(0, 10) : ""; + + // 取公园名(park_id 解析保护) + if (int.TryParse(str_rctbl[9], out var parkId) && parkId > 0) + str_Prndat[0] = SO_DBChk_park_name(parkId); + + Debug.WriteLine(" ☆定期契約X park_id:" + str_rctbl[9]); + Debug.WriteLine(" ☆定期契約X park_name:" + str_Prndat[0]); + + return 0; + } + + + private void Cperiods(string str_work, ref string work) + { + int length = str_work.Length; + work = str_work.Substring(0, 4); + } + + private void Cperiode(string str_work, ref string work) + { + if (str_work[5] == '0') + { + work = str_work.Substring(6, 1); + } + else + { + work = str_work.Substring(5, 2); + } + } + + private bool SO_DBInsert_pjl(int type) + { + string text = ""; + switch (type) + { + case 0: + case 81: + case 82: + case 83: + text = "insert into print_job_log ( park_id, user_id, contract_id, process_name,job_name, status, error_code, status_comment, created_at) value (" + str_Confile[6] + "," + str_rctbl[8] + "," + str_rctbl[0] + ",'" + str_logkm[2] + "','" + str_logkm[3] + "','" + str_logkm[4] + "'," + str_logkm[5] + ",'" + str_logkm[6] + "','" + str_logkm[7] + "');"; + break; + case 84: + case 88: + text = "insert into print_job_log ( park_id, contract_id, process_name,job_name, status, error_code, status_comment, created_at) value (" + str_Confile[6] + "," + LOC_contract_id + ",'" + str_logkm[2] + "','" + str_logkm[3] + "','" + str_logkm[4] + "'," + str_logkm[5] + ",'" + str_logkm[6] + "','" + str_logkm[7] + "');"; + break; + case 21: + text = "insert into print_job_log ( park_id, user_id, process_name,job_name, status, error_code, status_comment, created_at) value (" + str_Confile[6] + "," + str_rctbl[8] + ",'" + str_logkm[2] + "','" + str_logkm[3] + "','" + str_logkm[4] + "'," + str_logkm[5] + ",'" + str_logkm[6] + "','" + str_logkm[7] + "');"; + break; + default: + text = "insert into print_job_log ( park_id, process_name,job_name, status, error_code, status_comment, created_at) value (" + str_Confile[6] + ",'" + str_logkm[2] + "','" + str_logkm[3] + "','" + str_logkm[4] + "'," + str_logkm[5] + ",'" + str_logkm[6] + "','" + str_logkm[7] + "');"; + break; + } + Debug.WriteLine("\u3000\u3000☆print_job_log\u3000SQL:" + text); + Debug.WriteLine("\u3000\u3000☆print_job_log\u3000TYPE:" + type); + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction = (mySqlCommand.Transaction = DBconnect.BeginTransaction()); + mySqlCommand.ExecuteNonQuery(); + mySqlTransaction.Commit(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_18"); + Trace.WriteLine(ex.Message); + ERRORINFO = "プリンタ制御プログラムログテーブル追加時にエラー2発生"; + return false; + } + string cmdText = "select job_log_id from print_job_log where created_at='" + str_logkm[7] + "';"; + MySqlCommand mySqlCommand2 = new MySqlCommand(cmdText, DBconnect); + mySqlCommand2.CommandTimeout = 1; + try + { + MySqlTransaction mySqlTransaction3 = DBconnect.BeginTransaction(); + MySqlDataReader mySqlDataReader = mySqlCommand2.ExecuteReader(); + while (mySqlDataReader.Read()) + { + str_logkm[0] = Convert.ToString(mySqlDataReader["job_log_id"]); + } + mySqlDataReader.Close(); + mySqlTransaction3.Commit(); + } + catch (Exception ex2) + { + Debug.WriteLine("★★_ERROR_19"); + Trace.WriteLine(ex2.Message); + ERRORINFO = "処理ログID読み取り時にエラー発生"; + DBconnect.Close(); + return false; + } + return true; + } + + private bool SO_DBInsert_seal2(uint mode) + { + string text = ""; + uint num = 1u; + string text2 = mode switch + { + 1u => "QR通常印刷", + 120u => "Mifareゼロ円印刷", + _ => "Mifare通常印刷", + }; + if (test_mode) + { + text2 = "QRテスト印刷"; + str_rctbl[0] = "0"; + } + string text3 = DateTime.Now.ToString("yyyy-MM-dd"); + string text4 = "1"; + text = "insert into seal ( park_id, contract_id, psection_id, seal_day, created_at, updated_at, contract_seal_issue, seal_reason) value (" + str_Confile[6] + "," + str_rctbl[0] + ",'" + num + "','" + text3 + "','" + str_logkm[7] + "','" + str_logkm[7] + "','" + Convert.ToString(Convert.ToInt32(str_rctbl[7]) + 1) + "','" + text2 + "');"; + MySqlCommand mySqlCommand = new MySqlCommand(text, DBconnect); + mySqlCommand.CommandTimeout = 1; + Debug.WriteLine(text, "InsertSQL "); + try + { + Debug.WriteLine(" --InsertSQL1A "); + MySqlTransaction mySqlTransaction = (mySqlCommand.Transaction = DBconnect.BeginTransaction()); + mySqlCommand.ExecuteNonQuery(); + mySqlTransaction.Commit(); + Debug.WriteLine(" --InsertSQL1B "); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_20"); + Debug.WriteLine(" --InsertSQL2 ERROR "); + Trace.WriteLine(ex.Message); + ERRORINFO = "シール発行履歴テーブル追加2時にエラー発生"; + return false; + } + return true; + } + + private bool SO_MfifareInit() + { + Trace.WriteLine("★リーダーの初期化開始★"); + uint num = 0u; + if (DEBUG_MODE == "1") + { + return true; + } + try + { + Trace.WriteLine("★デバックモードじゃないので初期化開始★"); + using (ISCardContext iSCardContext = ContextFactory.Instance.Establish(SCardScope.System)) + { + string[] readers = iSCardContext.GetReaders(); + if (readers == null || readers.Length == 0) + { + MessageBox.Show("スマートカードリーダが見つかりません", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Hand); + return false; + } + string[] array = readers; + foreach (string text in array) + { + readerName = text; + } + } + return true; + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_21"); + Bitmap backgroundImage = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic6.png"); + form2.BackgroundImage = backgroundImage; + Application.DoEvents(); + Thread.Sleep(10000); + Trace.WriteLine(ex.Message); + return false; + } + } + + /*private bool SO_QRcordInit() + { + if (DEBUG_MODE == "1") + { + return true; + } + serialPort1.Close(); + Debug.WriteLine("☆☆QRコードリーダ初期化☆☆"); + serialPort1.PortName = str_Confile[16]; + serialPort1.DataBits = 8; + serialPort1.Parity = Parity.None; + serialPort1.StopBits = StopBits.One; + try + { + serialPort1.Open(); + return true; + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_22"); + Trace.WriteLine(ex.Message); + } + return false; + }*/ + private bool SO_QRcordInit() + { + if (DEBUG_MODE == "1") return true; + + try + { + if (serialPort1.IsOpen) serialPort1.Close(); + + Debug.WriteLine("☆☆QRコードリーダ初期化☆☆"); + + // === 基本参数(常见默认:9600 8N1) === + serialPort1.PortName = str_Confile[16]; // 例: "COM3" + serialPort1.BaudRate = 9600; + serialPort1.DataBits = 8; + serialPort1.Parity = Parity.None; + serialPort1.StopBits = StopBits.One; + serialPort1.Handshake = Handshake.None; + + // 一些扫码器需要拉起 DTR/RTS 才会发数据 + serialPort1.DtrEnable = true; + serialPort1.RtsEnable = true; + + // 与扫码器“后缀”一致(建议把枪设为 CR/LF) + serialPort1.NewLine = "\r\n"; + + // 读写细节 + serialPort1.Encoding = Encoding.ASCII; // 或 Encoding.UTF8;不要用 UTF-32 + serialPort1.DiscardNull = true; + serialPort1.ReadTimeout = 800; // 可根据需要调整 + serialPort1.ReceivedBytesThreshold = 1; + + // 端口存在性检查(可选) + var ports = SerialPort.GetPortNames(); + if (!ports.Contains(serialPort1.PortName, StringComparer.OrdinalIgnoreCase)) + { + Trace.WriteLine($"[QR] 指定端口不存在: {serialPort1.PortName}. 可用端口: {string.Join(",", ports)}"); + return false; + } + + serialPort1.Open(); + serialPort1.DiscardInBuffer(); + + Trace.WriteLine($"[QR] Opened {serialPort1.PortName} @ {serialPort1.BaudRate}, 8N1, CRLF"); + return true; + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_22 " + ex.Message); + return false; + } + } + + + public uint SO_MfifareCheck() + { + + uint result = 0u; + uint num = 0u; + uint num2 = 0u; + uint num3 = 0u; + uint num4 = 0u; + uint num5 = 0u; + num = 1000u; + num2 = 0u; + num3 = 0u; + num4 = 64u; + string text = ""; + using (ISCardContext iSCardContext = ContextFactory.Instance.Establish(SCardScope.System)) + { + try + { + using ICardReader cardReader = iSCardContext.ConnectReader(readerName, SCardShareMode.Shared, SCardProtocol.Any); + CommandApdu commandApdu = new CommandApdu(IsoCase.Case2Short, cardReader.Protocol) + { + CLA = byte.MaxValue, + Instruction = InstructionCode.GetData, + P1 = 0, + P2 = 0, + Le = 0 + }; + using (cardReader.Transaction(SCardReaderDisposition.Leave)) + { + IntPtr pci = SCardPCI.GetPci(cardReader.Protocol); + SCardPCI receivePci = new SCardPCI(); + byte[] array = new byte[256]; + byte[] array2 = commandApdu.ToArray(); + int length = cardReader.Transmit(pci, array2, array2.Length, receivePci, array, array.Length); + ResponseApdu responseApdu = new ResponseApdu(array, length, IsoCase.Case2Short, cardReader.Protocol); + if (responseApdu.HasData) + { + StringBuilder stringBuilder = new StringBuilder(BitConverter.ToString(responseApdu.GetData())); + text = stringBuilder.Replace("-", string.Empty).ToString(); + Debug.WriteLine("========================================"); + Debug.WriteLine("☆☆" + text + "☆☆"); + Debug.WriteLine("========================================"); + } + else + { + MessageBox.Show("このカードではIDを取得できません", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + } + catch (RemovedCardException) + { + return 10u; + } + catch (PCSCException ex2) + { + MessageBox.Show(ex2.Message, "スマートカードエラー", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + } + date1 = DateTime.Now; + int seconds = (date1 - date2).Seconds; + uint num6 = bcmp(vinfBuff, vinfBuff2); + if (seconds < 2 && num6 == 0) + { + result = 10u; + } + vinfBuff2 = vinfBuff; + date2 = date1; + MFCODE = text; + Thread.Sleep(500); + return result; + } + + + + + public static uint bcmp(byte[] buf1, byte[] buf2) + { + for (int i = 0; i < 10; i++) + { + if (buf1[i] != buf2[i]) + { + return 1u; + } + } + return 0u; + } + + private uint SO_PrnOut() + { + if (DEBUG_MODE == "1") + { + string path = LogfilePath + "DEBUG_OUTPUT.txt"; + string text = ""; + try + { + using StreamWriter streamWriter = new StreamWriter(path, append: true, Encoding.GetEncoding("utf-8")); + text += "===<印字データ>=============================\r"; + text = text + "ゾーン名、車室番号=(" + str_Prndat[9] + ")\r"; + text = text + "駐車場名=(" + str_Prndat[0] + ")\r"; + text = text + "定期種別=(" + str_Prndat[1] + ")\r"; + text = text + "場所種別=(" + str_Prndat[2] + ")\r"; + text = text + "開始日=(" + str_Prndat[3] + ")\r"; + text = text + "終了月=(" + str_Prndat[4] + ")\r"; + text = text + "再発行=(" + str_Prndat[5] + ")\r"; + text = text + "定期番号=(" + str_Prndat[6] + ")\r"; + text = text + "自治体名=(" + str_Prndat[7] + ")\r"; + text = text + "利用者ID=(" + str_Prndat[8] + ")\r"; + text += "発行枚数=(1)\r\r"; + streamWriter.WriteLine(text); + MessageBox.Show(text, "定期シール印刷情報", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_24"); + Trace.WriteLine(ex.Message); + } + Trace.WriteLine("===<印字データ>============================="); + Trace.WriteLine("ゾーン名、車室番号=(" + str_Prndat[9] + ")"); + Trace.WriteLine("駐車場名=(" + str_Prndat[0] + ")"); + Trace.WriteLine("定期種別=(" + str_Prndat[1] + ")"); + Trace.WriteLine("場所種別=(" + str_Prndat[2] + ")"); + Trace.WriteLine("開始日=(" + str_Prndat[3] + ")"); + Trace.WriteLine("終了月=(" + str_Prndat[4] + ")"); + Trace.WriteLine("再発行=(" + str_Prndat[5] + ")"); + Trace.WriteLine("定期番号=(" + str_Prndat[6] + ")"); + Trace.WriteLine("自治体名=(" + str_Prndat[7] + ")"); + Trace.WriteLine("利用者ID=(" + str_Prndat[8] + ")"); + Trace.WriteLine("発行枚数=(1)"); + Trace.WriteLine(""); + return 0u; + } + if (!SO_PrnGetStatus()) + { + return 1u; + } + Debug.WriteLine("プリンタデータの取得済み"); + printer.Disconnect(); + if (printer.Connect(3, printerPortName) != 0) + { + Debug.WriteLine("印刷できていない"); + return 0u; + } + printer.SetMeasurementUnit(1); + LabelDesign design = new LabelDesign(); + DesignLabel_Pattern(design, str_Prndat); + printer.Print(design, 1); + Debug.WriteLine(" --印刷成功"); + return 0u; + } + + + + + + + + + + private bool SO_PrnInit_Epson() + { + if (DEBUG_MODE == "1") return true; + + try + { + // 1) 目标打印机 + string ipAddress = str_Confile[18]; // e.g. "192.168.0.179" + string deviceId = "local_printer"; // TM-m30III 系列默认 + int timeout = 30; // 秒(与你的封装一致) + + // 2) 实例化与生成“测试票据”XML(沿用 KessaiPrint 的生成方法) + var svc = new EpsonPrinterTMM30Service(ipAddress, deviceId, timeout); + + // --- 测试数据(随便但合法) --- + string user_name = "TEST USER"; + string kessai_no = "TEST0001"; + string billing_amount = "1"; // 1円 + string park_name = "TEST駐輪場"; + string usertype_subject1 = "TEST-TYPE"; + string enable_months = "1"; // 1ヶ月 + string paymentDue = "2099/12/31"; + string pay_code = "000000"; + string label_title = str_Confile[31]; // 票据抬头(例:So-Manager駐輪場) + string label_tel = str_Confile[32]; // 电话 + + // 用 Payee2 模板生成 SOAP/ePOS XML(与 KessaiPrint 一致的方式) + string soapRequest = + svc.GenerateSoapRequestPayee4( + user_name, kessai_no, billing_amount, + park_name, usertype_subject1, enable_months, + paymentDue, pay_code, label_title, label_tel + ); + + // 3) 发送打印请求 + string respXml = svc.PrintXml(soapRequest); + System.Diagnostics.Debug.WriteLine("statusXml------" + respXml); + + if (string.IsNullOrWhiteSpace(respXml)) + { + ERRORINFO = "プリンタから応答がありません。"; + return false; + } + + // 4) 解析回包(和 KessaiPrint 同样的解析路径/命名空间) + var doc = new System.Xml.XmlDocument(); + doc.LoadXml(respXml); + var nsmgr = new System.Xml.XmlNamespaceManager(doc.NameTable); + nsmgr.AddNamespace("s", "http://schemas.xmlsoap.org/soap/envelope/"); + nsmgr.AddNamespace("epos", "http://www.epson-pos.com/schemas/2011/03/epos-print"); + var node = doc.SelectSingleNode("//s:Body/epos:response", nsmgr) as System.Xml.XmlElement; + + if (node == null) + { + ERRORINFO = "ステータス解析失敗(responseノードなし)"; + return false; + } + + string success = node.GetAttribute("success"); // "true"/"false" + string status = node.GetAttribute("status"); // "0" 正常 + string code = node.GetAttribute("code"); // エラーコード + + // 5) 依据 success 分支处理(与 KessaiPrint 一致) + if (!string.Equals(success, "true", StringComparison.OrdinalIgnoreCase)) + { + string errText = svc.PrinterErrorHandling(status, "34", DBconnect); + if (!string.IsNullOrEmpty(errText)) + { + // 这里不重启应用;把错误信息挂出去即可 + ERRORINFO = "プリンタ異常: " + errText + $" (code={code})"; + return false; + } + // 没有明确错误映射,则视作可继续 + return true; + } + + // 成功:做纸量等检查 + svc.PrinterPapperCheck(status, "34", DBconnect); + return true; + } + catch (Exception ex) + { + ERRORINFO = "プリンタ初期化エラー: " + ex.Message; + return false; + } + } + + + + + private uint SO_PrnOut_EpsonNetwork() + { + try + { + // ラベルデザイン作成 + LabelDesign design = new LabelDesign(); + DesignLabel_Pattern(design, str_Prndat); + + // 印刷用XML生成 + string xmlPrint = epsonPrinter.GenerateSoapRequestPayee1( + str_Prndat[8], // 利用者ID + str_Prndat[6], // 定期番号 + "1000", // 金額(必要に応じて変更) + str_Prndat[0], // 駐車場名 + str_Prndat[1], // 定期種別 + "1", // 枚数 + str_Prndat[3], // 開始日 + str_Prndat[6], // 定期番号 + "ウェルネット", // 支払先 + "03-1234-5678" // 電話番号 + ); + + // 印刷実行 + string response = epsonPrinter.PrintXml(xmlPrint); + if (string.IsNullOrEmpty(response)) + { + Debug.WriteLine("印刷に失敗しました"); + return 1u; + } + + Debug.WriteLine("ネットワーク印刷成功"); + return 0u; + } + catch (Exception ex) + { + Debug.WriteLine("ネットワーク印刷エラー: " + ex.Message); + return 99u; + } + } + + + + + // 最終送印 + + + private bool SO_PrnInit() + { + if (DEBUG_MODE == "1") + { + return true; + } + try + { + int num = 0; + short num2 = 0; + for (num2 = 1; num2 <= 9; num2++) + { + printerPortName = "USB00" + Convert.ToString(num2); + Debug.WriteLine(printerPortName + "が接続されているか確認しています。"); + printer.Disconnect(); + num = printer.Connect(3, printerPortName); + Debug.WriteLine("返り値:" + Convert.ToString(num)); + if (num == 0) + { + break; + } + } + if (num != 0) + { + return SO_PrnGetStatus(); + } + Debug.WriteLine("コネクト確認までクリア"); + return SO_PrnGetStatus(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_25"); + MessageBox.Show("プリンタの初期化に失敗しました。PCを起動後にプリンタの電源を入れてください。", "プリンタ初期化エラー", MessageBoxButtons.OK, MessageBoxIcon.Hand); + Trace.WriteLine(ex.Message); + return false; + } + } + + + + + + + private bool SO_PrnGetStatus() + { + string text = ""; + int num = printer.PrinterCheck(); + if (num == 0) + { + int commandInterpreterInAction = printer.GetCommandInterpreterInAction(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetCommandInterpreterInAction\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(コマンド処理中)"; + return false; + } + commandInterpreterInAction = printer.GetPaperError(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetPaperError\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(ペーパーエラー)"; + return false; + } + commandInterpreterInAction = printer.GetRibbonEnd(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetRibbonEnd\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(プリンターのリボンエンド状態)"; + return false; + } + commandInterpreterInAction = printer.GetBatchProcessing(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetBatchProcessing\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(バッチ処理印字中)"; + return false; + } + commandInterpreterInAction = printer.GetPrinting(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetPrinting\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(印字中)"; + return false; + } + commandInterpreterInAction = printer.GetPause(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetPause\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(ポーズ中)"; + return false; + } + commandInterpreterInAction = printer.GetWaitingForPeeling(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetWaitingForPeeling\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(剥離待ち中)"; + return false; + } + commandInterpreterInAction = printer.GetPrintHeadLowTemp(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetPrintHeadLowTemp\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(プリントヘッド低温エラー)"; + return false; + } + commandInterpreterInAction = printer.GetPrintHeadFailure(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetPrintHeadFailure\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(プリントヘッド切れエラー)"; + return false; + } + commandInterpreterInAction = printer.GetPrintHeadOverheat(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetPrintHeadOverheat\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(プリントヘッドオーバーヒートエラー)"; + return false; + } + commandInterpreterInAction = printer.GetMechanismOpen(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetMechanismOpen\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(プリントヘッドオープンエラー)"; + return false; + } + commandInterpreterInAction = printer.GetAutoCutterError(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetAutoCutterError\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(オートカッター異常)"; + return false; + } + commandInterpreterInAction = printer.GetFanMotorError(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetFanMotorError\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(ファンモーターエラー)"; + return false; + } + commandInterpreterInAction = printer.GetMiscError(); + if (commandInterpreterInAction == 1) + { + ERRORINFO = "GetMiscError\u3000戻り値=" + commandInterpreterInAction + " プリンタステータス(その他のエラー)"; + return false; + } + return true; + } + ERRORINFO = "PrinterCheck Error\u3000戻り値=" + num + " プリンタステータス =(PrinterCheck Error)"; + return false; + } + + private uint SO_PrnLabeEdit(uint type) + { + int num = 0; + str_Prndat = new string[13]; + PrnDataField = new Dictionary(); + PrnDataField.Add("駐車場名", ""); + PrnDataField.Add("定期種別", ""); + PrnDataField.Add("場所種別", ""); + PrnDataField.Add("開始日", ""); + PrnDataField.Add("終了月", ""); + PrnDataField.Add("再発行", ""); + PrnDataField.Add("定期番号", ""); + PrnDataField.Add("自治体名", ""); + PrnDataField.Add("利用者ID", ""); + PrnDataField.Add("ゾーン、車室名", ""); + PrnDataField.Add("発行枚数", ""); + PrnDataField.Add("タグ", ""); + if (test_mode) + { + PrnDataField["駐車場名"] = Convert.ToString(DateTime.Now); + PrnDataField["定期種別"] = ""; + PrnDataField["場所種別"] = ""; + PrnDataField["開始日"] = "**"; + PrnDataField["終了月"] = "X"; + PrnDataField["再発行"] = ""; + PrnDataField["定期番号"] = "by Sorin"; + if (NetworkInterface.GetIsNetworkAvailable()) + { + PrnDataField["自治体名"] = "動作確認OK"; + } + else + { + PrnDataField["自治体名"] = "プリンタOK、N/W NG"; + } + PrnDataField["利用者ID"] = "So-Manager"; + PrnDataField["ゾーン、車室名"] = "テスト印刷"; + PrnDataField["発行枚数"] = "1"; + PrnDataField["ゾーン"] = ""; + PrnDataField["利用者連番"] = "So-Manager"; + return 0u; + } + if (SO_DBPrndat_01(type) != 0) + { + return 1u; + } + PrnDataField["駐車場名"] = str_Prndat[0]; + PrnDataField["定期種別"] = str_Prndat[1]; + PrnDataField["場所種別"] = str_Prndat[2]; + PrnDataField["開始日"] = str_Prndat[3]; + PrnDataField["終了月"] = str_Prndat[4]; + PrnDataField["再発行"] = str_Prndat[5]; + PrnDataField["定期番号"] = str_Prndat[6]; + PrnDataField["自治体名"] = str_Prndat[7]; + PrnDataField["利用者ID"] = str_Prndat[8]; + PrnDataField["ゾーン、車室名"] = str_Prndat[9]; + PrnDataField["タグ"] = str_Prndat[10]; + PrnDataField["ゾーン"] = str_Prndat[11]; + PrnDataField["利用者連番"] = str_Prndat[12]; + PrnDataField["発行枚数"] = "1"; + return 0u; + } + + /*private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + Debug.WriteLine("データ受信"); + if (!serialPort1.IsOpen) + { + QRresult = 2u; + return; + } + try + { + date1 = DateTime.Now; + QRdata = serialPort1.ReadExisting(); + QRdata = QRdata.Substring(0, QRdata.Length - 1); + Encoding encoding = Encoding.GetEncoding("utf-32"); + QRresult = 1u; + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_26"); + QRdata = ex.Message; + QRresult = 2u; + } + date1 = DateTime.Now; + int seconds = (date1 - date2).Seconds; + bool flag = QRdata.SequenceEqual(QRdata2); + if (seconds < 2 && flag) + { + QRresult = 10u; + } + Trace.WriteLine(QRdata); + QRdata2 = QRdata; + date2 = date1; + }*/ + private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + Debug.WriteLine("データ受信"); + + if (!serialPort1.IsOpen) + { + QRresult = 2u; // ポート未オープン + return; + } + + try + { + while (serialPort1.IsOpen && serialPort1.BytesToRead > 0) + { + // 1) 按行读取(直到 NewLine,建议设为 "\r\n") + string line = serialPort1.ReadLine(); + + // 2) 清理控制字符 + 前后空白 + string cleaned = CleanCtrl(line); // ↓见下方辅助函数 + + // 空行就跳过 + if (string.IsNullOrEmpty(cleaned)) + continue; + + // 3) 重复判定(2秒内同一内容) + date1 = DateTime.Now; + bool isDup = (date1 - date2).TotalSeconds < 2 && + string.Equals(cleaned, QRdata2, StringComparison.Ordinal); + + if (isDup) + { + QRresult = 10u; // 重复 + } + else + { + QRdata = cleaned; + QRresult = 1u; // 正常 + QRdata2 = cleaned; + date2 = date1; + Trace.WriteLine(cleaned); + } + } + } + catch (TimeoutException) + { + // 读超时可忽略 + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_26 " + ex.Message); + QRdata = ex.Message; + QRresult = 2u; // エラー + } + } + + // 去掉所有控制字符(0x00–0x1F和0x7F)、再Trim + private static string CleanCtrl(string s) + { + if (string.IsNullOrEmpty(s)) return string.Empty; + var filtered = new string(s.Where(ch => ch >= ' ' && ch != '\x7F').ToArray()); + return filtered.Trim(); + } + + private uint CreateObject_Ex_TEST() + { + mif = Activator.CreateInstance(Type.GetTypeFromProgID("Mifare.API")); + if (mif == null) + { + return 1u; + } + return 0u; + } + + private uint CreateObject_Ex() + { + if (ifd != null || icc != null || mif != null) + { + } + ifd = Activator.CreateInstance(Type.GetTypeFromProgID("IFD.RW")); + if (ifd == null) + { + return 1u; + } + icc = Activator.CreateInstance(Type.GetTypeFromProgID("ICC.Card")); + if (icc == null) + { + return 1u; + } + mif = Activator.CreateInstance(Type.GetTypeFromProgID("Mifare.API")); + if (mif == null) + { + return 1u; + } + return 0u; + } + + private uint ObjectSetUp_Ex() + { + uint num = 0u; + string text = ""; + short num2 = 0; + for (num2 = 1; num2 <= 9; num2++) + { + text = "COM" + Convert.ToString(num2); + Debug.WriteLine(text + "が接続されているか確認しています。"); + num = (uint)ifd.SetUp("PR", ref text); + if (num == 0) + { + break; + } + } + if (num != 0) + { + return 1u; + } + if ((uint)icc.SetUp("AM:MIF", ref ifd) != 0) + { + return 1u; + } + num = (uint)mif.SetUp(ref icc); + if (num != 0) + { + return 1u; + } + return num; + } + + private void ReleaseAid_Ex() + { + if (mif != null) + { + Marshal.ReleaseComObject(mif); + mif = null; + } + if (icc != null) + { + Marshal.ReleaseComObject(icc); + icc = null; + } + if (ifd != null) + { + Marshal.ReleaseComObject(ifd); + ifd = null; + } + GC.Collect(); + } + + private uint RW_Authentication_Ex() + { + uint num = 0u; + byte[] array = new byte[257]; + uint num2 = 0u; + uint num3 = 0u; + byte[] array2 = new byte[28] + { + 3, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 0, 0, 0 + }; + uint num4 = 67665936u; + num2 = 256u; + num = (uint)ifd.SetControl(num4, ref array2, out array, num2, out num3); + if (num != 0) + { + return num; + } + Array.Clear(array2, 0, array2.Length); + num3 = 0u; + num4 = 67665923u; + array2[0] = 0; + return (uint)ifd.SetControl(ref num4, ref array2, ref array, ref num2, ref num3); + } + + private uint ReleaseCard_Ex() + { + int num = 0; + return (uint)icc.EndTransaction(ref num); + } + + private void Form1_FormClosing(object sender, FormClosingEventArgs e) + { + Application.DoEvents(); + } + + private void EndProc() + { + if (EndType == 0) + { + return; + } + DBconnect.Close(); + if (EndType < 3) + { + return; + } + if (DEBUG_MODE == "0") + { + printer.Disconnect(); + if (EndType == 3 || EndType == 4) + { + return; + } + serialPort1.Close(); + } + if (EndType != 10 && EndType > 5) + { + EndWait(); + } + } + + private void EndWait() + { + SO_FullScreen(MSG_NUM + 1, 1); + for (int i = 0; i < 60; i++) + { + if (EndType == 10) + { + Environment.Exit(0); + return; + } + Application.DoEvents(); + Thread.Sleep(1000); + } + SO_FullScreen(MSG_NUM, 1); + } + + private void DesignLabel_Pattern(LabelDesign design, string[] str_Prndat) + { + Controller controller = new Controller(); + if (controller.Open(str_layoutFile) == 0) + { + controller.BeginPrint(); + int frameIndex = controller.InitFrame("Frame1"); + int parts = controller.GetParts(frameIndex, "発行枚数"); + controller.SetPartsData(frameIndex, parts, PrnDataField["発行枚数"]); + int parts2 = controller.GetParts(frameIndex, "駐車場名"); + controller.SetPartsData(frameIndex, parts2, PrnDataField["駐車場名"]); + int parts3 = controller.GetParts(frameIndex, "場所種別"); + controller.SetPartsData(frameIndex, parts3, PrnDataField["場所種別"]); + int parts4 = controller.GetParts(frameIndex, "開始日"); + controller.SetPartsData(frameIndex, parts4, PrnDataField["開始日"]); + int parts5 = controller.GetParts(frameIndex, "終了月"); + controller.SetPartsData(frameIndex, parts5, PrnDataField["終了月"]); + int parts6 = controller.GetParts(frameIndex, "定期番号"); + controller.SetPartsData(frameIndex, parts6, PrnDataField["定期番号"]); + int parts7 = controller.GetParts(frameIndex, "自治体名"); + controller.SetPartsData(frameIndex, parts7, PrnDataField["自治体名"]); + int parts8 = controller.GetParts(frameIndex, "再発行"); + controller.SetPartsData(frameIndex, parts8, PrnDataField["再発行"]); + int parts9 = controller.GetParts(frameIndex, "定期種別"); + controller.SetPartsData(frameIndex, parts9, PrnDataField["定期種別"]); + int parts10 = controller.GetParts(frameIndex, "利用者ID"); + controller.SetPartsData(frameIndex, parts10, PrnDataField["利用者ID"]); + int parts11 = controller.GetParts(frameIndex, "ゾーン、車室名"); + controller.SetPartsData(frameIndex, parts11, PrnDataField["ゾーン、車室名"]); + int parts12 = controller.GetParts(frameIndex, "タグ"); + controller.SetPartsData(frameIndex, parts12, PrnDataField["タグ"]); + int parts13 = controller.GetParts(frameIndex, "ゾーン"); + controller.SetPartsData(frameIndex, parts13, PrnDataField["ゾーン"]); + int parts14 = controller.GetParts(frameIndex, "有効期限年"); + controller.SetPartsData(frameIndex, parts14, "有効期限" + PrnDataField["開始日"] + "年"); + int parts15 = controller.GetParts(frameIndex, "利用者連番"); + controller.SetPartsData(frameIndex, parts15, PrnDataField["利用者連番"]); + controller.AddFrame(frameIndex); + controller.DoPrint("Citizen CL-E331J"); + controller.EndPrint(); + controller.Close(); + } + else + { + MessageBox.Show("レイアウトファイルがありません。以下のファイルの存在を確認してください: " + Environment.NewLine + str_layoutFile, "レイアウトファイルエラー", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + } + + private void SetHomeButton() + { + Control control = base.Controls.Find("homeButton", searchAllChildren: true).FirstOrDefault(); + if (control != null) + { + base.Controls.Remove(control); + control.Dispose(); + } + PictureBox pictureBox = new PictureBox(); + pictureBox.Image = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "\\homeButton.png"); + pictureBox.BackColor = Color.Transparent; + pictureBox.ForeColor = Color.Transparent; + pictureBox.Size = new Size(125, 125); + int num = Screen.PrimaryScreen.WorkingArea.Height; + pictureBox.Location = new Point(1275 - pictureBox.Width, 795 - pictureBox.Height); + pictureBox.Click += HomeButton_Click; + pictureBox.Name = "homeButton"; + form2.Controls.Add(pictureBox); + pictureBox.BringToFront(); + } + + private void RemoveHomeButton() + { + for (int num = form2.Controls.Count - 1; num >= 0; num--) + { + Control control = form2.Controls[num]; + if (control.Name == "homeButton") + { + form2.Controls.Remove(control); + control.Dispose(); + } + } + } + + private void HomeButton_Click(object sender, EventArgs e) + { + for (int num = form2.Controls.Count - 1; num >= 0; num--) + { + Control control = form2.Controls[num]; + if (control is Button || control is Label || control is PictureBox) + { + form2.Controls.Remove(control); + control.Dispose(); + } + } + KessaiEnd(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && components != null) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(qk30ic.Form1)); + this.button1 = new System.Windows.Forms.Button(); + this.serialPort1 = new System.IO.Ports.SerialPort(this.components); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)this.dataGridView1).BeginInit(); + base.SuspendLayout(); + this.button1.Location = new System.Drawing.Point(538, 380); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(134, 29); + this.button1.TabIndex = 0; + this.button1.Text = "終了"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(button1_Click); + this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataReceived); + this.dataGridView1.AllowUserToAddRows = false; + dataGridViewCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle.Font = new System.Drawing.Font("MS UI Gothic", 9f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 128); + dataGridViewCellStyle.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Location = new System.Drawing.Point(24, 36); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.RowHeadersVisible = false; + this.dataGridView1.RowHeadersWidth = 60; + this.dataGridView1.RowTemplate.Height = 21; + this.dataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.dataGridView1.Size = new System.Drawing.Size(1161, 330); + this.dataGridView1.TabIndex = 1; + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("MS UI Gothic", 12f, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 128); + this.label2.Location = new System.Drawing.Point(20, 9); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(126, 16); + this.label2.TabIndex = 2; + this.label2.Text = "ローカルステータス"; + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(554, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(200, 12); + this.label1.TabIndex = 3; + this.label1.Text = " "; + base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f); + base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + base.ClientSize = new System.Drawing.Size(1210, 421); + base.Controls.Add(this.label1); + base.Controls.Add(this.label2); + base.Controls.Add(this.dataGridView1); + base.Controls.Add(this.button1); + base.Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); + base.Name = "Form1"; + this.Text = "シール発行プログラム"; + base.TopMost = true; + base.WindowState = System.Windows.Forms.FormWindowState.Minimized; + base.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form1_FormClosing); + base.Shown += new System.EventHandler(Form1_Shown); + ((System.ComponentModel.ISupportInitialize)this.dataGridView1).EndInit(); + base.ResumeLayout(false); + base.PerformLayout(); + } +} diff --git a/qk30ic/Form2.cs b/qk30ic/Form2.cs new file mode 100644 index 0000000..5715ce8 --- /dev/null +++ b/qk30ic/Form2.cs @@ -0,0 +1,251 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Timers; +using System.Windows.Forms; + +namespace qk30ic; + +public class Form2 : Form +{ + private Bitmap bitmapA = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png"); + + private Bitmap bitmapB = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1_B.png"); + + private Bitmap bitmapC = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1_C.png"); + + private Bitmap bitmapD = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1_D.png"); + + private System.Timers.Timer timer; + + private IContainer components = null; + + public Label label1; + + public Form2() + { + InitializeComponent(); + DoubleBuffered = true; + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + } + + private void Form2_Load(object sender, EventArgs e) + { + base.FormBorderStyle = FormBorderStyle.None; + string[] commandLineArgs = Environment.GetCommandLineArgs(); + string[] array = commandLineArgs; + foreach (string text in array) + { + if (text.Equals("/debug")) + { + base.FormBorderStyle = FormBorderStyle.FixedSingle; + } + } + } + + private void Form2_FormClosing(object sender, FormClosingEventArgs e) + { + } + + private void label1_Click(object sender, EventArgs e) + { + } + + private void Form2_Click(object sender, EventArgs e) + { + if (CompareImages(bitmapA, BackgroundImage)) + { + Button button = new Button(); + button.Size = new Size(500, 500); + button.FlatStyle = FlatStyle.Flat; + button.FlatAppearance.BorderSize = 0; + button.BackColor = Color.Transparent; + button.ForeColor = Color.Transparent; + button.FlatAppearance.MouseOverBackColor = Color.Transparent; + button.FlatAppearance.MouseDownBackColor = Color.Transparent; + button.Location = new Point(100, 230); + button.Name = "QRButton"; + button.Click += QrIcButton_Click; + base.Controls.Add(button); + Button button2 = new Button(); + button2.Size = new Size(500, 500); + button2.FlatStyle = FlatStyle.Flat; + button2.FlatAppearance.BorderSize = 0; + button2.BackColor = Color.Transparent; + button2.ForeColor = Color.Transparent; + button2.FlatAppearance.MouseOverBackColor = Color.Transparent; + button2.FlatAppearance.MouseDownBackColor = Color.Transparent; + button2.Location = new Point(700, 230); + button2.Name = "ICButton"; + button2.Click += QrIcButton_Click; + base.Controls.Add(button2); + BackgroundImage = bitmapB; + SetHomeButton(); + StartTimer(10000); + } + } + + private void QrIcButton_Click(object sender, EventArgs e) + { + if (CompareImages(bitmapB, BackgroundImage)) + { + Button button = (Button)sender; + string name = button.Name; + if (name == "QRButton") + { + BackgroundImage = bitmapC; + } + else if (name == "ICButton") + { + BackgroundImage = bitmapD; + } + } + RemoveMachiukeButtons(); + SetHomeButton(); + StartTimer(10000); + } + + public void RemoveMachiukeButtons() + { + if (base.Controls["QRButton"] is Button value) + { + base.Controls.Remove(value); + } + if (base.Controls["ICButton"] is Button value2) + { + base.Controls.Remove(value2); + } + } + + public void StartTimer(int ms) + { + if (timer != null) + { + timer.Stop(); + timer.Dispose(); + } + timer = new System.Timers.Timer(ms); + timer.Elapsed += Timer_Elapsed; + timer.Start(); + } + + private void Timer_Elapsed(object sender, EventArgs e) + { + Invoke((MethodInvoker)delegate + { + Console.WriteLine("タイマーが経過しました."); + System.Timers.Timer timer = (System.Timers.Timer)sender; + timer.Stop(); + RemoveMachiukeButtons(); + if (CompareImages(bitmapB, BackgroundImage) || CompareImages(bitmapC, BackgroundImage) || CompareImages(bitmapD, BackgroundImage)) + { + Control control = base.Controls.Find("homeButton", searchAllChildren: true).FirstOrDefault(); + if (control != null) + { + base.Controls.Remove(control); + control.Dispose(); + } + BackgroundImage = bitmapA; + } + }); + } + + private bool CompareImages(Bitmap imageA, Image backgroundImage) + { + for (int i = 0; i < imageA.Width; i += 10) + { + for (int j = 0; j < imageA.Height; j += 10) + { + if (imageA.GetPixel(i, j) != ((Bitmap)backgroundImage).GetPixel(i, j)) + { + return false; + } + } + } + return true; + } + + private void SetHomeButton() + { + Control control = base.Controls.Find("homeButton", searchAllChildren: true).FirstOrDefault(); + if (control != null) + { + base.Controls.Remove(control); + control.Dispose(); + } + PictureBox pictureBox = new PictureBox(); + pictureBox.Image = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "\\homeButton.png"); + pictureBox.BackColor = Color.Transparent; + pictureBox.ForeColor = Color.Transparent; + pictureBox.Size = new Size(125, 125); + int num = Screen.PrimaryScreen.WorkingArea.Height; + pictureBox.Location = new Point(1275 - pictureBox.Width, 795 - pictureBox.Height); + pictureBox.Click += HomeButton_Click; + pictureBox.Name = "homeButton"; + base.Controls.Add(pictureBox); + pictureBox.BringToFront(); + } + + private void HomeButton_Click(object sender, EventArgs e) + { + RemoveMachiukeButtons(); + for (int num = base.Controls.Count - 1; num >= 0; num--) + { + Control control = base.Controls[num]; + if (control is Button || control is Label || control is PictureBox) + { + base.Controls.Remove(control); + control.Dispose(); + } + } + BackgroundImage = bitmapA; + } + + protected override void Dispose(bool disposing) + { + if (disposing && components != null) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(qk30ic.Form2)); + this.label1 = new System.Windows.Forms.Label(); + base.SuspendLayout(); + this.label1.AllowDrop = true; + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label1.AutoEllipsis = true; + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("MS UI Gothic", 30f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 128); + this.label1.ImageAlign = System.Drawing.ContentAlignment.BottomRight; + this.label1.Location = new System.Drawing.Point(1, 1); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(137, 40); + this.label1.TabIndex = 0; + this.label1.Text = "起動中"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label1.Visible = false; + this.label1.Click += new System.EventHandler(label1_Click); + base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f); + base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + base.ClientSize = new System.Drawing.Size(1796, 646); + base.Controls.Add(this.label1); + base.Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); + base.Name = "Form2"; + this.Text = "Form2"; + base.WindowState = System.Windows.Forms.FormWindowState.Maximized; + base.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form2_FormClosing); + base.Load += new System.EventHandler(Form2_Load); + base.Click += new System.EventHandler(Form2_Click); + base.ResumeLayout(false); + base.PerformLayout(); + } +} diff --git a/qk30ic/Form3.cs b/qk30ic/Form3.cs new file mode 100644 index 0000000..eff486a --- /dev/null +++ b/qk30ic/Form3.cs @@ -0,0 +1,91 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace qk30ic; + +public class Form3 : Form +{ + private IContainer components = null; + + private TextBox textBox1; + + private Button button1; + + private Button button2; + + private Label label1; + + public Form3() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + Form1.QRdata = textBox1.Text; + Form1.MFresult = 10u; + Form1.QRresult = 1u; + } + + private void button2_Click(object sender, EventArgs e) + { + Form1.MFCODE = textBox1.Text; + Form1.MFresult = 0u; + Form1.QRresult = 0u; + } + + protected override void Dispose(bool disposing) + { + if (disposing && components != null) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + base.SuspendLayout(); + this.textBox1.Location = new System.Drawing.Point(33, 40); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(459, 19); + this.textBox1.TabIndex = 0; + this.button1.Location = new System.Drawing.Point(33, 75); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(116, 23); + this.button1.TabIndex = 1; + this.button1.Text = "QRコード"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(button1_Click); + this.button2.Location = new System.Drawing.Point(33, 104); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(116, 23); + this.button2.TabIndex = 2; + this.button2.Text = "Tag"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(button2_Click); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(31, 18); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(56, 12); + this.label1.TabIndex = 3; + this.label1.Text = "コード入力"; + base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f); + base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + base.ClientSize = new System.Drawing.Size(572, 148); + base.Controls.Add(this.label1); + base.Controls.Add(this.button2); + base.Controls.Add(this.button1); + base.Controls.Add(this.textBox1); + base.Name = "Form3"; + this.Text = "QR/タグコード入力"; + base.ResumeLayout(false); + base.PerformLayout(); + } +} diff --git a/qk30ic/KEEPALIVE.cs b/qk30ic/KEEPALIVE.cs new file mode 100644 index 0000000..99cb09c --- /dev/null +++ b/qk30ic/KEEPALIVE.cs @@ -0,0 +1,126 @@ +#define TRACE +#define DEBUG +using System; +using System.Diagnostics; +using System.IO; +using System.Management; +using System.Runtime.InteropServices; +using System.Threading; +using System.Windows.Forms; + +namespace qk30ic; + +public static class KEEPALIVE +{ + public class AutoClosingMessageBox + { + private int text_max_length = 200; + + private System.Threading.Timer _timeoutTimer; + + private string _caption; + + private const int WM_CLOSE = 16; + + private AutoClosingMessageBox(string text, string caption, int timeout) + { + if (text.Length > text_max_length) + { + text = text.Substring(0, text_max_length); + } + _caption = caption; + _timeoutTimer = new System.Threading.Timer(OnTimerElapsed, null, timeout, -1); + MessageBox.Show(text, caption, MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + + public static void Show(string text, string caption, int timeout) + { + new AutoClosingMessageBox(text, caption, timeout); + } + + private void OnTimerElapsed(object state) + { + IntPtr intPtr = FindWindow(null, _caption); + if (intPtr != IntPtr.Zero) + { + SendMessage(intPtr, 16u, IntPtr.Zero, IntPtr.Zero); + } + _timeoutTimer.Dispose(); + } + + [DllImport("user32.dll", SetLastError = true)] + private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + } + + public static System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); + + public static void TIM_Main() + { + timer.Tick += MyTimer; + timer.Interval = Convert.ToInt32(Form1.str_Confile[11]) * 1000; + timer.Enabled = true; + } + + public static void MyTimer_stop() + { + timer.Enabled = false; + } + + public static void MyTimer_start() + { + timer.Enabled = true; + } + + public static void MyTimer(object sender, EventArgs e) + { + try + { + MyTimer_stop(); + DateTime now = DateTime.Now; + string text = ""; + string text2 = ""; + string text3 = ""; + string text4 = ""; + string text5 = ""; + Process currentProcess = Process.GetCurrentProcess(); + ManagementClass managementClass = new ManagementClass("Win32_OperatingSystem"); + ManagementObjectCollection instances = managementClass.GetInstances(); + foreach (ManagementObject item in instances) + { + text3 = string.Format("{0:#,#}", item["FreePhysicalMemory"]); + item.Dispose(); + } + instances.Dispose(); + managementClass.Dispose(); + text2 = $"{currentProcess.WorkingSet64 / 1000:#,#}"; + DriveInfo driveInfo = new DriveInfo("C"); + text4 = $"{driveInfo.TotalFreeSpace / 1024:#,#}"; + text = "使用メモリ:[" + text2 + "]KB 空きメモリ:[" + text3 + "]KB 空きHDD容量:[" + text4 + "]KB"; + if (Form1.str_Confile[15] == "1") + { + text5 = "INSERT INTO hardware_check_log (device_id, status, status_comment, created_at) VALUES (" + Form1.KpAlive_devid + ",2,'" + text + "','" + now.ToString() + "');"; + Debug.WriteLine("キープアライブ追記MODE:" + text5); + } + else + { + text5 = "update hardware_check_log set status='1',status_comment='" + text + "',updated_at= '" + now.ToString() + "' where device_id = " + Form1.KpAlive_devid + " ORDER BY created_at DESC LIMIT 1;"; + Debug.WriteLine("キープアライブ更新MODE:" + text5); + } + Form1.SO_DBKpAlive(text5); + Random random = new Random(); + timer.Interval = Convert.ToInt32(Form1.str_Confile[11]) * 1000 + random.Next(60) * 1000; + Form1.SO_LogFileDelCheck(); + MyTimer_start(); + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_29"); + Debug.WriteLine("キープアライブエラー"); + Trace.WriteLine(ex.Message); + MyTimer_start(); + } + } +} diff --git a/qk30ic/Logfile.cs b/qk30ic/Logfile.cs new file mode 100644 index 0000000..d72c7a7 --- /dev/null +++ b/qk30ic/Logfile.cs @@ -0,0 +1,80 @@ +#define DEBUG +using System; +using System.Diagnostics; +using System.IO; +using System.Text; + +namespace qk30ic; + +internal class Logfile +{ + public static uint ReadLogFile() + { + string[,] array = new string[15, 12]; + int num = 0; + Debug.WriteLine(Form1.LogfilePath, "★LogFileName"); + if (!Directory.Exists(Form1.LogfilePath)) + { + return 1u; + } + DirectoryInfo directoryInfo = new DirectoryInfo(Form1.LogfilePath); + if (!directoryInfo.Exists) + { + return 0u; + } + FileInfo[] files = directoryInfo.GetFiles(); + if (files.Length == 0) + { + return 0u; + } + Array.Sort(files, (FileInfo a, FileInfo b) => a.Name.CompareTo(b.Name)); + Array.Reverse(files); + string path = Form1.LogfilePath + files[0]; + try + { + using StreamReader streamReader = new StreamReader(path, Encoding.GetEncoding("shift_jis")); + int num2 = 0; + while (!streamReader.EndOfStream) + { + num = num2; + string text = streamReader.ReadLine(); + string[] array2 = text.Split(','); + int num3 = 0; + string[] array3 = array2; + foreach (string text2 in array3) + { + array[num2, num3++] = text2; + } + num2++; + if (num2 == 15) + { + num2 = 0; + } + } + for (int num5 = 0; num5 < 15; num5++) + { + Form1.koumoku[num5, 0] = array[num, 0]; + Form1.koumoku[num5, 1] = array[num, 3]; + Form1.koumoku[num5, 2] = array[num, 4]; + Form1.koumoku[num5, 3] = array[num, 5]; + Form1.koumoku[num5, 4] = array[num, 6]; + Form1.koumoku[num5, 5] = array[num, 7]; + Form1.koumoku[num5, 6] = array[num, 8]; + Form1.koumoku[num5, 7] = array[num, 9]; + num--; + if (num < 0) + { + num = 14; + } + } + } + catch (Exception ex) + { + Debug.WriteLine("★★_ERROR_28"); + Console.WriteLine(ex.Message); + KEEPALIVE.AutoClosingMessageBox.Show("ログファイルのフォーマットエラーがありますが、そのまま起動します。", "起動ワーニング", 5000); + return 0u; + } + return 0u; + } +} diff --git a/qk30ic/Program.cs b/qk30ic/Program.cs new file mode 100644 index 0000000..1fa28a2 --- /dev/null +++ b/qk30ic/Program.cs @@ -0,0 +1,36 @@ +#define DEBUG +using System; +using System.Diagnostics; +using System.Threading; +using System.Windows.Forms; + +namespace qk30ic; + +internal static class Program +{ + [STAThread] + private static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(defaultValue: false); + Application.ThreadException += Application_ThreadException; + Application.Run(new Form1()); + } + + private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) + { + try + { + } + catch + { + Debug.WriteLine("★★_ERROR_100"); + } + /*finally + { + Debug.WriteLine("\u3000\u3000☆アプリケーションリブート1"); + Thread.Sleep(10000); + Application.Restart(); + }*/ + } +}