a „oeHŒã@s\ddlZddlZddlZddlZddlZddlZddlZddlZddlZ ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZdZdZe jjjZddlZddlmZe d¡jZe dej¡jZd d ¡Z d Z!d Z"d Z#d Z$dZ%dZ&dZ'dZ(dZ)z ej*Wn e+�yde_*de_,Yn0dGdd„Z-dd„Z.dd„Z/dZ0dZ1dZ2dZ3d Z4d!Z5e0e1e2e3e4e5gZ6e jjj7Z8Gd"d#„d#e8ƒZ9Gd$d%„d%ej:ƒZ;Gd&d'„d'ƒZGd*d+„d+ej?ƒZ@Gd,d-„d-ejAƒZBd.ZCe>ZDGd/d0„d0eDƒZEGd1d2„d2e@ƒZFd3d4„ZGd5d6„ZHejIZJdaKdHd7d8„ZLdId9d:„ZMdJd;d<„ZNd=d>„ZOd?d@„ZPdAdB„ZQdCdD„ZRdEdF„ZSdS)KéNi i é)Úwinoutz :\s*(#.*)?$zU \s* ( return | break | continue | raise | pass ) \b z Traceback (ÚasciiúInteractive WindowZ FormatTitleZ FormatInputZ FormatOutputZFormatOutputError)iàréÜriÿé¸é"ZArial)éèréÈrrré1ú Courier New)r rr ri€€rr r )r rr réÿrr r ú>>> ú... ÚcCst t||¡S©N©Úwin32uiZ GetProfileValÚsectionProfile)Z preferenceÚdefault©rúCC:\Program Files\Certbot\pkgs\pythonwin\pywin\framework\interact.pyÚLoadPreferenceGsrcCst t||¡dSr)rZWriteProfileValr)ZprefNameZ prefValuerrrÚSavePreferenceKsrcCs@tj}|dt|ƒ…|kr|Stj}|dt|ƒ…|kr<|SdSr)ÚsysÚps1ÚlenÚps2)ÚlinerrrrrÚGetPromptPrefixOs rzInteractive EOLzInteractive OutputzInteractive PromptzInteractive BannerzInteractive ErrorzInteractive Error (final line)c@s6eZdZdd„Zdd„Zdd„Zdd„Zdd d „Zd S)ÚInteractiveFormattercCst ||¡d|_dS)NF)ÚFormatterParentÚ__init__ÚbannerDisplayed)ÚselfÚ scintillarrrr"qs zInteractiveFormatter.__init__cCsxt |¡tjjj}| |ttƒ¡| |tt ƒ¡| |t t ƒ¡| |t t ƒ¡| |ttƒ¡| |ttƒ¡dSr)r!Ú SetStylesÚpywinr%Ú formatterÚStyleZ RegisterStyleÚSTYLE_INTERACTIVE_EOLÚSTYLE_INTERACTIVE_PROMPTÚ formatInputÚSTYLE_INTERACTIVE_OUTPUTÚ formatOutputÚSTYLE_INTERACTIVE_BANNERÚ formatTitleÚSTYLE_INTERACTIVE_ERRORÚformatOutputErrorÚ!STYLE_INTERACTIVE_ERROR_FINALLINE)r$r)rrrr&us  ÿzInteractiveFormatter.SetStylescCs(t d||¡}||kr$t t||¡}|S)NZFormatr)r$ÚnamerÚrcrrrr�sz#InteractiveFormatter.LoadPreferencec Cst|ƒ}|dkrdS|}|dd… d¡}d}d}|} ||k�rà|} ||d|d… d¡}|tkrÈ| dvrÄ| ||d|¡|}| tjdtjdfvr¢t}n"|||ttƒ…tkrÀt }nt }�n|tk�r| tjtjdv�rÈ| ||d|¡|}| dv�rt}n|}�n²|t fv�rJ| dv�rÈ| ||d|¡|}t}�n~|t k�rÀ| dv�rŒ|�rŒ|t j v�rŒ| |||¡|d}t }n0|dk�rÈ| t j v�rÈ| ||d|¡|}t }�n|t k�rð| dv�rÈ| ||d|¡|}t}nØ|tk�r4| dv�rÈ|dk�s|dv�rÈ| ||d|¡|}t}n”|} | |k�rb|| d d ¡v�rb| d} �q8| |d| …||¡| | d¡}|du�rœtjjj}n|j}| }| d}|| | d… d¡}t}| |k�rÖ|} |d}q6||k�rü| ||d|¡dS) Nrrzlatin-1éú ú rz>[r)rÚdecoder*ZColorSegrrrr+ÚtracebackHeaderr1r-ÚstringÚ whitespacer3r/ÚencodeZColorizePythonCodeÚGetStringStyler'r%r(Ú STYLE_DEFAULTr4) r$ZcdocÚ styleStartÚ stylePyStartZ lengthDocÚstateZchNextZstartSegÚiZ lastStateZchÚendrrrÚColorizeInteractiveCode‡sˆ               z,InteractiveFormatter.ColorizeInteractiveCoderéÿÿÿÿc Cs‚|jj||dd�}d}d}|dkræ|d}|rH|j |¡dvrH|d}q*|ræ||dkræ| |¡}d}|duræ|jtjjjkr„d}n|jtjjjkr˜d}|duræ|dkræ|j |d¡|j |d¡|j |¡} | |dkræ|j}|durøtjjj }|d k�r |j  |d¡} |  | ¡j}n|j �r.t }n t}d |_ |j |d ¡t d d t|ƒ¡|_| |||¡|j |j¡d|_dS)NF)r9rz ú'ú"r6érTéÚb)r)r%Z GetTextRangeZ SCIGetCharAtr>r4r'r(ZSTYLE_TQSSTRINGZSTYLE_TQDSTRINGr?Z SCIGetStyleAtZ GetStyleByNumr#r*r/ZSCIStartStylingÚarrayrZ style_bufferrEZSCISetStylingEx) r$ÚstartrDZ stringValr@rAZlookZstrstyleZ quote_charZlook_strZstylenumrrrÚColorizeßsN  ÿ þÿ   zInteractiveFormatter.ColorizeN)rrF)Ú__name__Ú __module__Ú __qualname__r"r&rrErNrrrrr ps  Xr c@s(eZdZddd„Zd dd„Zdd„ZdS) ÚPythonwinInteractiveInterpreterNcCs2|durtj}|dur|}||_tj ||¡dSr)Ú__main__Ú__dict__ÚglobalsÚcodeÚInteractiveInterpreterr")r$ÚlocalsrUrrrr"s z(PythonwinInteractiveInterpreter.__init__cCs$tj t d¡¡tj ||¡dS)Nr)rÚstderrÚwriter:r9rVrWÚshowsyntaxerror)r$Úfilenamerrrr[&sÿz/PythonwinInteractiveInterpreter.showsyntaxerrorcCs@zt||j|jƒWn&ty(‚Yn| ¡Yn0dSr)ÚexecrUrXÚ SystemExitZ showtraceback)r$rVrrrÚruncode,s  z'PythonwinInteractiveInterpreter.runcode)NN)N)rOrPrQr"r[r_rrrrrRs  rRc@sÄeZdZd0dd„Zdd„Zd1dd„Zd d „Zd2d d „Zd3dd„Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„ZdS)4ÚInteractiveCoreNcCs ||_dSr)Úbanner)r$rarrrr"6szInteractiveCore.__init__cCsød|_|_tƒ|_| ¡| ¡dkr||jdurpd}tjr@d}t j   dt j t j |f¡t j   dtjf¡n t j   t¡tj d¡}|rêddl}z*ttt|dƒ ¡|dd d �|j|jƒWn*t j   d |¡tjt j d �Yn0| g¡dS) Nrrz , debug buildzPythonWin %s on %s%s. zLPortions %s - see 'Help/About PythonWin' for further copyright information. Z PYTHONSTARTUPÚrbr]T)Ú dont_inheritz->>> Error executing PYTHONSTARTUP script %r )Úfile)Ú oldStdOutÚ oldStdErrrRÚinterpÚ OutputGrabÚ GetTextLengthrarÚdebugrrYrZÚversionÚplatformÚ copyrightÚosÚenvironÚgetrSr]ÚcompileÚopenÚreadrTÚ tracebackÚ print_excÚAppendToPrompt)r$ÚsuffixZrcfilerSrrrÚInit:sD   ÿÿÿ  ÿûÿzInteractiveCore.InitÚDbgcCsZtj}|dur&dt_dt_tj}}nd|t_d|t_||j_||j_| g|¡dS)Nrrz[%s]>>> z[%s]... ) rrrrSrTrgrXrUrv)r$rUrXr4Ú oldPromptrrrÚ SetContextcs   zInteractiveCore.SetContextcCs|jj|jjfSr)rgrUrX©r$rrrÚ GetContextqszInteractiveCore.GetContextrFcCs<|dkr| ¡}| |¡}|r8|ddvr8|dd…}q|S)NrF)ú Ú )Ú LineFromCharZGetLine)r$rrrrÚ DoGetLinets  zInteractiveCore.DoGetLinecCsø| ¡| ¡d}| |¡}|rT||krT| | ¡t|ƒ| ¡¡| tj¡n0|t tjƒkr„t|ƒdkrx|  d¡|  tj¡| ¡|j j   dd¡|s¤dSdtjgt|ƒddg}t||ƒD]\}}| ¡rÌ|  ||¡qÌ| ¡dS)z`Take a command and stick it at the end of the buffer (with python prompts inserted if required).rrrZiomarkzend-1cNr)ÚflushÚ GetLineCountr�ÚSetSelrirÚ ReplaceSelrrÚstrrZÚidleÚtextZmark_setrÚzipÚstrip)r$ZbufLinesrzÚ lastLineNorZtermsZbufLineZtermrrrrv|s&      zInteractiveCore.AppendToPromptcCsh| ¡| ¡d}| |¡}|r2|tjtjfvrZ| | ¡t|ƒ| ¡¡|  d¡n |  d¡dS)Nrrr) r‚rƒr�rrrr„rirr…rZ)r$r‹rrrrÚEnsureNoPrompt’s   zInteractiveCore.EnsureNoPromptcCsdgS)NÚ interactiverr|rrrÚ_GetSubConfigNamesžsz"InteractiveCore._GetSubConfigNamescCsf| |jtj¡| |jt¡| |jt¡tj j   d¡}|dur\|  |j jdtj¡|_nd|_dS)NZ IdleHistoryr)Z HookCommandÚ OnSelectBlockrÚID_EDIT_SELECT_BLOCKÚOnEditCopyCodeÚID_EDIT_COPY_CODEÚOnEditExecClipboardÚID_EDIT_EXEC_CLIPBOARDr'r%ZIDLEenvironmentZ GetIDLEModuleZHistoryr‡rˆrrÚhistory)r$ÚmodrrrÚ HookHandlers¡szInteractiveCore.HookHandlerscCs | |¡}| ¡d}t|ƒ}|durˆd}|}|dkrXt| |d¡ƒdurNqX|d}q.|}||kr†t| |d¡ƒdur|q†|d}q\nŽd}|}|dkrÌ|ttjƒkrÌt| |d¡ƒ}|durÂqÌ|d}q�|}||k�rt| |d¡ƒ}|durø�q|ttjƒk�r �q|d}qÐ|||fS)Nrr)r�rƒrr†rr)r$ÚlineNorZ maxLineNoÚprefixÚflagZ startLineNoZ endLineNorrrÚGetBlockBoundaryµs>       z InteractiveCore.GetBlockBoundarycCsJ|\}}g}||krF| |¡}tt|ƒƒ}||d…g|}|d}q |S©Nr)r�rr)r$ÚlinesrMrDZretListZthisLineZ promptLenrrrÚExtractCommandÙs   zInteractiveCore.ExtractCommandcCs(tj|_tj|_|t_|t_| ¡dSr)rÚstdoutrerYrfr‚r|rrrrhãs zInteractiveCore.OutputGrabcCsP|jdurtj|kr|jt_|jdur8tj|kr8|jt_d|_d|_| ¡dSr)rerrŸrfrYr‚r|rrrÚ OutputReleaseës    zInteractiveCore.OutputReleasec Cs.| ¡r| ¡| ¡dS| ¡d}| ¡r4dS| ¡}| |¡\}}}|sp| g¡t t  t j ¡¡dS|  ||f¡}||  ¡dkr°t d¡| |¡| d¡dSt tj¡dkpÎt tj¡dk}|rà| d¡nª| d¡| d¡d |¡} | �r | ddv�r | dd…} qþ| ¡zV|j | d¡�r@d}n4|jdu�rX|j | ¡| g¡t t  t j ¡¡W| ¡n | ¡0|�r*t d ¡| |¡ttjƒd…} d} d } t| ƒ| k�rð| | t j!v�rð| | | } | d} �qºt"| ƒ�r| d } nt#| ƒ�r| dd…} | tj| ¡dS) NrrzPress ENTER to execute commandéþÿÿÿrrFz zzReady to continue the commandrú )$ÚSCIAutoCActiveZSCIAutoCCompleteÚ SCICancelZHandleSpecialLiner€r›rvrÚ SetStatusTextZ LoadStringÚafxresZAFX_IDS_IDLEMESSAGEržrƒr„Úwin32apiZ GetKeyStateÚwin32conZVK_SHIFTZ VK_CONTROLr…ÚjoinrhrgZ runsourcer•Z history_storer r�rrrr;r<Ú_is_block_openerÚ_is_block_closer) r$ÚeventZhaveGrabbedOutputr˜rMrDÚisCoder�Z bNeedIndentÚsourceZcurLineÚposÚindentrrrÚProcessEnterEventýsr    þ    ÿ    ÿ       z!InteractiveCore.ProcessEnterEventcCs2| ¡s| ¡r| ¡nt d¡| d¡dS)Nz Cancelled.)rr)r£ZSCICallTipActiver¤rr¥rv©r$r¬rrrÚProcessEscEventLs    zInteractiveCore.ProcessEscEventc CsP| ¡}| |¡\}}}| |¡}| |d¡d}|dkr@d}| ||¡dS)Nrr6rr¡)r€r›Z LineIndexr„) r$ÚcommandrVr˜rMrDr­Z startIndexZendIndexrrrr�Us zInteractiveCore.OnSelectBlockcCs²| ¡}| ¡}g}|D]V}| tj¡rF|ttjƒd…}| |¡q| tj¡r|ttjƒd…}| |¡qtj   |¡}t   ¡zt   t jt|ƒ¡Wt  ¡n t  ¡0dS)zmSanitizes code from interactive window, removing prompts and output, and inserts it in the clipboard.N)Z GetSelTextÚ splitlinesÚ startswithrrrÚappendrrnÚlinesepr©Úwin32clipboardÚ OpenClipboardZSetClipboardDataÚCF_UNICODETEXTr†ÚCloseClipboard)r$r´rVr�Z out_linesrZout_coderrrr‘^s"      ÿzInteractiveCore.OnEditCopyCodecCsrt ¡zt tj¡}Wt ¡n t ¡0| dd¡d}zt|ddƒ}t|tj ƒWnt   ¡Yn0dS)z1Executes python code directly from the clipboard.r7rz r]N) r¹rºZGetClipboardDatar»r¼Úreplacerqr]rSrTrtru)r$r´rVÚorrrr“ts z#InteractiveCore.OnEditExecClipboardcCsâg}d}| |tjdf¡| tj¡| |tjdf¡| |tjdf¡| ¡\}}||krn| |tdf¡t   t j ¡rŠ| |t df¡| |tj df¡| tj¡| |tjdf¡| |tjd f¡| |tjd f¡|S) Nrz&UndozCu&tz&CopyzCopy code without promptsz"Execute python code from clipboardz&Pastez &Select allz Select &blockzView &Whitespace)r·rZ ID_EDIT_UNDOr¨Z MF_SEPARATORZ ID_EDIT_CUTZ ID_EDIT_COPYZGetSelr’r¹ZIsClipboardFormatAvailabler»r”Z ID_EDIT_PASTEZID_EDIT_SELECT_ALLr�ZID_VIEW_WHITESPACE)r$ÚretÚflagsrMrDrrrÚGetRightMenuItemsƒs&   ÿ z!InteractiveCore.GetRightMenuItemscCst ¡ d¡dS©Nr©rÚ GetMainFrameZMDINextr²rrrÚ MDINextEvent›szInteractiveCore.MDINextEventcCst ¡ d¡dSrÂrÃr²rrrÚ MDIPrevEventžszInteractiveCore.MDIPrevEventcCs¼| ¡}|t ¡krDz| ¡\}}| ¡Wq¸tjy@Yq¸0ntzD| ¡j}|dur†|jdusn| ¡dkr†d}| ¡_t  d¡Wnt y¦t dƒd}Yn0|dur¸|  ¡dS)Nrz'The last active Window has been closed.z"Can't find the last active window!) ÚGetParentFramerrÄZ MDIGetActiveÚSetFocusÚerrorÚ lastActiveZ_obj_Z GetSafeHwndr¥ÚAttributeErrorÚprintÚ MDIActivate)r$r¬ÚparentÚwndZisactiverÊrrrÚWindowBackEvent¡s*    ÿ ÿ  zInteractiveCore.WindowBackEvent)N)ry)rF)N)rOrPrQr"rxr{r}r�rvrŒrŽr—r›ržrhr r±r³r�r‘r“rÁrÅrÆrÐrrrrr`5s, )    $ O  r`c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚInteractiveViewcCs$t |¡tj ||¡tj|_dSr)r`r"rÚWindowOutputViewr'Zdefault_scintilla_encodingÚencoding)r$Údocrrrr"½s zInteractiveView.__init__cCst|ƒSr)r r|rrrÚ_MakeColorizerÂszInteractiveView._MakeColorizercCs tj |¡| ¡| ¡dSr)rrÒÚOnInitialUpdateZ SetWordWraprxr|rrrrÖÅs zInteractiveView.OnInitialUpdatecCstj |¡t |¡dSr)rrÒr—r`r|rrrr—Ês zInteractiveView.HookHandlersN)rOrPrQr"rÕrÖr—rrrrrѼsrÑc@s&eZdZddd„Zdd„Zdd„ZdS) ÚCInteractivePythonNc Cs2d|_tj |tttjjdd||t¡ | ¡dS©Nrr) ÚIsFinalDestroyrÚ WindowOutputr"rrÀZWQ_LINErÑÚCreate)r$ÚmakeDocÚ makeFramerrrr"Ðs÷ zCInteractivePython.__init__cCs |jr| ¡tj ||¡dSr)rÙr rrÚÚ OnViewDestroy)r$ÚviewrrrrÞßsz CInteractivePython.OnViewDestroycCsd|_tj |¡dSrœ)rÙrrÚÚCloser|rrrràäszCInteractivePython.Close)NN)rOrPrQr"rÞràrrrrr×Ïs r×c@seZdZdd„Zdd„ZdS)ÚInteractiveFramecCsd|_tj |¡dSr)rÊrÚWindowOutputFramer"r|rrrr"êszInteractiveFrame.__init__cCs|r ||_dSr)rÊ)r$ZbActiveZ wndActiveZ wndDeactiverrrÚ OnMDIActivateîszInteractiveFrame.OnMDIActivateN)rOrPrQr"rãrrrrráésráièc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚDockedInteractiveViewcCs.t |¡| |jtj¡| |jtj¡dSr)ÚDockedInteractiveViewParentr—Z HookMessageÚ OnSetFocusr¨Z WM_SETFOCUSÚ OnKillFocusZ WM_KILLFOCUSr|rrrr—þs z"DockedInteractiveView.HookHandlerscCs| ¡ |¡dSrœ)rÇÚ SetActiveView)r$Úmsgrrrræsz DockedInteractiveView.OnSetFocuscCsZ|d}}zt |¡}| ¡| ¡k}WntjyBd}Yn0|rV| ¡ d¡dS)Nr6rr)rZCreateWindowFromHandleZGetTopLevelFramerÉrÇrè)r$réZhwndZwparamrÏÚresetrrrrçs   z!DockedInteractiveView.OnKillFocuscCs˜| ¡d}tjj d|d¡z | ¡j|kr<| ¡ d¡Wntj yRYn0z"t  ¡ ¡|krtt  ¡ d¡Wntj yŠYn0t   ||¡S)NérÚdocked) ZGetWindowPlacementr'Ú frameworkÚappZSaveWindowSizerÇZ GetActiveViewrèrrÉrÄråÚ OnDestroy)r$réZnewSizerrrrïs zDockedInteractiveView.OnDestroyN)rOrPrQr—rærçrïrrrrräýs räc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚCDockedInteractivePythoncCsd|_||_t |¡dSrÂ)Ú bFirstCreatedÚdockbarr×r"©r$ròrrrr"$sz!CDockedInteractivePython.__init__c Csp|jr dSzt ¡}|jr WdSWntjtfy<YdS0z| t¡}| ¡ WStjyjYdS0dSrØ) Ú bCreatingrrÄÚclosingrÉrËÚ GetControlBarÚ ID_DOCKED_INTERACTIVE_CONTROLBARZIsWindowVisible)r$ÚframeÚcbrrrÚNeedRecreateWindow)s   z+CDockedInteractivePython.NeedRecreateWindowcCsDz$t ¡ t¡}t ¡ |dd¡Wntjy>tƒYn0dSrœ)rrÄrör÷ÚShowControlBarrÉÚCreateDockedInteractiveWindowrórrrÚRecreateWindow8sÿz'CDockedInteractivePython.RecreateWindowcCs d|_td| ¡ƒ}t|ƒ}tjj dd¡}|d|ddkrDd}tj tj Btj B}d}|  |j |||¡| ¡d|_| ¡|_d|_|jrœ| |j¡dS)Nrrrìr6r)rriôr i)rôÚInteractiveDocumentZ DoCreateDocrär'rírîZLoadWindowSizer¨ZWS_CHILDZ WS_VISIBLEZ WS_BORDERÚ CreateWindowròrÖrñZ GetFirstViewÚ currentViewÚtitleZSetTitle)r$rÔrßZdefRectZstyleÚidrrrrÛAs zCDockedInteractivePython.CreateN)rOrPrQr"rúrýrÛrrrrrð#s rðcCst|ƒatjSr)rðÚeditr©rÎrrrÚInteractiveViewCreatorUsrcCslddlm}|ƒ}t}| t ¡|dt¡| | ¡t j Bt j Bt j B¡|  t j¡t ¡ |t j¡dS)Nr)Ú DockingBarr)Zpywin.docking.DockingBarrrrÿrrÄr÷Z SetBarStyleZ GetBarStyler¦Z CBRS_TOOLTIPSZ CBRS_FLYBYZCBRS_SIZE_DYNAMICZ EnableDockingZCBRS_ALIGN_ANYZDockControlBarZAFX_IDW_DOCKBAR_BOTTOM)rZbarZcreatorrrrrü[s( üÿþýÿ rücCstddƒ}|rt||ƒdS)zNCreate some sort of interactive window if the user's preference say we should.zShow at startuprN)rÚCreateInteractiveWindow)rÜrÝZbCreaterrrÚ%CreateInteractiveWindowUserPreferences rcCsNtdusJdƒ‚tddƒ}|r&tƒn t||ƒtdus@Jdƒ‚tj ¡dS)z>Create a standard or docked interactive window unconditionallyNz#Creating second interactive window!ZDockingrz7Created interactive window, but did not set the global!)rrrüÚCreateMDIInteractiveWindowrrÈ)rÜrÝZbDockingrrrr†s  rcCs(|dur t}|durt}t||d�adS)zACreate a standard (non-docked) interactive window unconditionallyN©rÜrÝ)rþrár×rr rrrr ’s r cCs6tdur2tjdur2tj ¡t ¡kr&n t ¡dadS)a&Destroy the interactive window. This is different to Closing the window, which may automatically re-appear. Once destroyed, it can never be recreated, and a complete new instance must be created (which the various other helper functions will then do after making this call N)rrrÇrrÄràrrrrÚDestroyInteractiveWindowœs r cCsXtdurTtjdurTtj ¡t ¡krFt ¡}| t¡}| |dd¡ntj ¡ ¡dS)zEClose the interactive window, allowing it to be re-created on demand.Nrr) rrrÇrrÄrör÷rûZ DestroyWindow)rørùrrrÚCloseInteractiveWindow®s  r cCs,tdurtƒnt ¡r"t ¡ntƒdS)zAIf the interactive window is visible, hide it, otherwise show it.N)rrrúrýr rrrrÚToggleInteractiveWindow¼s  r cCsjtdurtƒnVt ¡r"t ¡nDtj ¡}|t ¡krDtj ¡n"tj ¡  ¡t ¡  tj ¡¡dS)z5Shows (or creates if necessary) an interactive windowN) rrrúrýrrÇrrÄrÈZ AutoRestorerÍrrrrÚShowInteractiveWindowÈs    rcCstduot ¡ Sr)rrúrrrrÚIsInteractiveWindowVisibleØsr)r)NN)NN)NN)TrLrVrnr;rrtrSr¦Zpywin.framework.appr'Zpywin.scintilla.controlZpywin.scintilla.formatterZpywin.scintilla.IDLEenvironmentr§r¹r¨rr’r”r%r(ZtraceÚrerrrqÚsearchrªÚVERBOSEÚmatchr«r=r:rZvalueFormatTitleZvalueFormatInputZvalueFormatOutputZvalueFormatOutputErrorr0r,r.r2rrËrrrrr*r-r+r/r1r3ZINTERACTIVE_STYLESZPythonSourceFormatterr!r rWrRr`rÒrÑrÚr×rârár÷rårärðrrüZWindowOutputDocumentrþrrrr r r r rrrrrrÚs¦    õ    ú . &2