<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal-compose;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoPlainText>Hi Terry,<o:p></o:p></p><p class=MsoPlainText><span style='color:black'>Thanks for your comment.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText>>To better help us help you, what exact version of Python?<o:p></o:p></p><p class=MsoPlainText>I use Python 2.7.5<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>>Please post plain text without html.<o:p></o:p></p><p class=MsoPlainText><span style='color:black'>Sorry, I will do it.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText>>Please post programs single spaced with just occasional blank lines.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><span style='color:black'>File my_program.py<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:blue'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:blue'>import</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> wx.aui</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:blue'>import</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> paramiko</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:blue'>import</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> telnetlib</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:blue'>from</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <u>LinuxHostPage </u></span><u><span style='font-size:10.0pt;font-family:Consolas;color:blue'>import</span></u><u><span style='font-size:10.0pt;font-family:Consolas;color:black'> *</span></u><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:blue'>from</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <u>WindowsHostPage </u></span><u><span style='font-size:10.0pt;font-family:Consolas;color:blue'>import</span></u><u><span style='font-size:10.0pt;font-family:Consolas;color:black'> *</span></u><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:blue'>from</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <u>AIXHostPage </u></span><u><span style='font-size:10.0pt;font-family:Consolas;color:blue'>import</span></u><u><span style='font-size:10.0pt;font-family:Consolas;color:black'> *</span></u><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>Publisher = pub.Publisher()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>TIMEOUT = </span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>3</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:blue'>class</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>MainWindow</b>(wx.Frame):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>__init__</b>(<i>self</i>, parent, title):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.os = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>''</span></i><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.connection = []</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        wx.Frame.__init__(<i>self</i>, parent, title=title)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.SetBackgroundColour(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'LightGray'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># A <u>Statusbar</u> in the bottom of the window</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.CreateStatusBar() </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.SetStatusText(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>"Please input credentials."</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Publisher</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        Publisher().subscribe(<i>self</i>.change_statusbar, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'change_statusbar'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Input box</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_panel = wx.Panel(<i>self</i>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.host = wx.StaticText(<i>self</i>.input_panel, -</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>1</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Host'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.host_entry = wx.TextCtrl(<i>self</i>.input_panel)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.username = wx.StaticText(<i>self</i>.input_panel, -</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>1</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>Username</u>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.username_entry = wx.TextCtrl(<i>self</i>.input_panel)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.password = wx.StaticText(<i>self</i>.input_panel, -</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>1</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Password'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.password_entry = wx.TextCtrl(<i>self</i>.input_panel, style = wx.TE_PASSWORD)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.connect_btn = wx.Button(<i>self</i>.input_panel, -</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>1</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Connect'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'>## List box</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.os_text = wx.StaticText(<i>self</i>.input_panel, -</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>1</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'OS'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.choice_list = wx.Choice(<i>self</i>.input_panel, choices=[</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>Redhat</u>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'SuSE'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Windows'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>Solaris</u>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'AIX'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>])</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.choice_list.SetSelection(</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>2</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer = wx.BoxSizer(wx.HORIZONTAL)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.os_text, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.choice_list, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.host, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.host_entry, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.username, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.username_entry, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.password, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.password_entry, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_sizer.Add(<i>self</i>.connect_btn, flag = wx.ALIGN_CENTER)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.input_panel.SetSizer(<i>self</i>.input_sizer)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>                       </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Function panel</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.notebook = wx.aui.AuiNotebook(<i>self</i>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Top Sizer</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.sizer = wx.BoxSizer(wx.VERTICAL)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.sizer.Add(<i>self</i>.input_panel, border = </span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>10</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.sizer.Add(<i>self</i>.notebook, </span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>1</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>, wx.EXPAND)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.sizer.Add((</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>0</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>,</span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>7</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>))</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.SetSizerAndFit(<i>self</i>.sizer)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Show Frame</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.Show()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Events</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.connect_btn.Bind(wx.EVT_BUTTON, <i>self</i>.on_connect)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.Bind(wx.EVT_CLOSE, <i>self</i>.on_close)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>change_statusbar</b>(<i>self</i>, msg):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.SetStatusText(msg.data)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>ssh</b>(<i>self</i>, host, username, password):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        connection = paramiko.SSHClient()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        connection.set_missing_host_key_policy(paramiko.AutoAddPolicy())</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        connection.connect(host, </span><span style='font-size:10.0pt;font-family:Consolas;color:maroon'>22</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>, username, password)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        stdin, <u>stdout</u>, <u>stderr</u> = connection.exec_command(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>ls</u>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        stdin.write(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'expected_input\n'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        stdin.flush()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>return</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> connection</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>telnet</b>(<i>self</i>, host, os, username, password):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        connection = telnetlib.Telnet(host)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        connection.read_until(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'login: '</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <span style='background:yellow;mso-highlight:yellow'>connection.write(username + </span></span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00;background:yellow;mso-highlight:yellow'>'\r'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black;background:yellow;mso-highlight:yellow'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        connection.read_until(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>assword</u>: '</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        connection.write(password + </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'\r'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>if</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> os == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'windows'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            connection.read_until(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, timeout = TIMEOUT)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>elif</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> os == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>aix</u>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            connection.read_until(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'#'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, timeout = TIMEOUT)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>return</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> connection</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>get_os</b>(<i>self</i>):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        os = <i>self</i>.choice_list.GetLabel()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>return</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> os.lower()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>on_connect</b>(<i>self</i>, event):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.os = <i>self</i>.get_os()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.connect_btn.Disable()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        host = <i>self</i>.host_entry.GetValue()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        username = <i>self</i>.username_entry.GetValue()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        password = <i>self</i>.password_entry.GetValue()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.SetStatusText(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Connecting... Please wait.'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.connect_btn.Disable()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>if</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <i>self</i>.os == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>redhat</u>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>or</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <i>self</i>.os == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>suse</u>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            <i>self</i>.connection = <i>self</i>.ssh(host, username, password)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            page = LinuxHostPage(<i>self</i>, <i>self</i>.connection, <i>self</i>.os, Publisher)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>elif</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <i>self</i>.os == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'windows'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            <i>self</i>.connection = <i>self</i>.telnet(host, <i>self</i>.os, username, password)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            page = WindowsHostPage(<i>self</i>, <i>self</i>.connection, <i>self</i>.os, Publisher)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>elif</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <i>self</i>.os == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'<u>aix</u>'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            <i>self</i>.connection = <i>self</i>.telnet(host, <i>self</i>.os, username, password)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            page = AIXHostPage(<i>self</i>, <i>self</i>.connection, <i>self</i>.os, Publisher)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.SetStatusText(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Connected'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.connect_btn.Enable()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Connection tab</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.notebook.AddPage(page, host, select = </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>True</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>                </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>close_connection</b>(<i>self</i>):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.connection.close() </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Clean up and close</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>on_close</b>(<i>self</i>, event):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.close_connection</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.Destroy()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>on_gen</b>(<i>self</i>, event):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Validate inputs</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>if</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <i>self</i>.src_input.GetLabel() == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>''</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>or</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <i>self</i>.protocol_input.GetLabel()==</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>''</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Set status bar</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            wx.MessageBox(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Please input all required fields!'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Info'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, wx.OK | wx.ICON_INFORMATION)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>return</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># <u>Src</u> IP</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        src_ip = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'-s '</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> + <i>self</i>.src_input.GetLabel()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Protocol</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        proto = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'-p '</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> + <i>self</i>.protocol_input.GetLabel().lower()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># <u>Src</u> port</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        src_port = <i>self</i>.src_port_input.GetLabel().lower().strip()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>if</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>  src_port == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'(optional)'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>or</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> src_port == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>''</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            src_port = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>''</span></i><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>else</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            src_port = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'--sport '</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> + src_port </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># <u>Dst</u> port</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        dst_port = <i>self</i>.dst_port_input.GetLabel().lower().strip()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>if</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>  dst_port != </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>''</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            dst_port = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'--<u>dport</u> '</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> + dst_port </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Target</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        target = <i>self</i>.target_input.GetLabel().strip()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>if</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> target == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'(optional)'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>or</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> target == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>''</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            target = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'-j ACCEPT'</span></i><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>else</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            target = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'-j '</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'> + target.upper()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Rule</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>if</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> src_port == </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>''</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            rule = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'{:10s}{:30s}{:10s}{:20s}{:22s}{:20s}'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>.format(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'-A INPUT'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, src_ip, proto, dst_port, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'-m state --state NEW'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, target)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>else</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>:</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            rule = </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'{:10s}{:30s}{:10s}{:20s}{:20s}{:22s}{:20s}'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>.format(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'-A INPUT'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, src_ip, proto, src_port, dst_port, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'-m state --state NEW'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>, target)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.rule.Clear()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.rule.WriteText(rule)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.rule.Enable()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas;color:silver'># Set status bar</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        <i>self</i>.set_status_bar(</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'Generated rule successfully.'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>    </span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>def</span><span style='font-size:10.0pt;font-family:Consolas;color:black'> <b>set_status_bar</b>(<i>self</i>, <u>str</u>):</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>        Publisher().sendMessage((</span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>'change_statusbar'</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>), str)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>            </span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>app = wx.App(</span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>False</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>frame = MainWindow(</span><span style='font-size:10.0pt;font-family:Consolas;color:blue'>None</span><span style='font-size:10.0pt;font-family:Consolas;color:black'>, </span><i><span style='font-size:10.0pt;font-family:Consolas;color:#00AA00'>"<u>Firewall</u> Management Tool"</span></i><span style='font-size:10.0pt;font-family:Consolas;color:black'>)</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:Consolas;color:black'>frame.Maximize()</span><span style='font-size:10.0pt;font-family:Consolas'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:black'>app.MainLoop()</span><o:p></o:p></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:black'>I can run the program in Eclipse and telnet successfully to a Windows host.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:black'>But when I export to .exe file by py2exe:<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText style='text-indent:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>python gen_exe.py py2exe<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:black'>File gen_exe.py:<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:Consolas;color:black'><o:p> </o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>from distutils.core import setup<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>import py2exe<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'><o:p> </o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>setup(<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>    options = {<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>            "py2exe":{<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>            "packages": ['wx.lib.pubsub'],<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>            "dll_excludes": ["MSVCP90.dll", "HID.DLL", "w9xpopen.exe"],<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>        }<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>    },<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>    console = [{'script': ‘my_program.py'}]<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>)<o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:black'>When I run my_program.exe, this error is displayed:<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText style='text-indent:.5in'><span style='font-size:9.0pt;font-family:Consolas;color:black'>UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:black'>at line:<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:Consolas;color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:Consolas;color:black'>       connection.write(username + '\r')<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:Consolas;color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:Consolas;color:black'>--<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'>Viet<o:p></o:p></span></p></div></body></html>