JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB  fc @sbddlZddlZddlmZdZGdddeZeZddZ dd Z da d d Z dd d Z dS)N)wrapsTc@seZdZddZddZdS)_InterruptHandlercCsNd|_||_t|trD|tjkr(tj}n|tjkr.default_handlerzYexpected SIGINT signal handler to be signal.SIG_IGN, signal.SIG_DFL, or a callable object) calledoriginal_handler isinstanceintsignalSIG_DFLdefault_int_handlerSIG_IGN TypeErrorr)selfrrrr__init__ s    z_InterruptHandler.__init__cCsVttj}||k r ||||jr2|||d|_xtD] }|qBWdS)NT)r getsignalSIGINTrr_resultskeysstop)rZsignumframeZinstalled_handlerresultrrr__call__s   z_InterruptHandler.__call__N)__name__ __module__ __qualname__rrrrrrr srcCs dt|<dS)N)r)rrrrregisterResult*srcCstt|dS)N)boolrpop)rrrr removeResult-sr!cCs.tdkr*ttj}t|attjtdS)N)_interrupt_handlerr rrr)rrrrinstallHandler1s r#cs<dk r tfdd}|Stdk r8ttjtjdS)Nc s2ttj}tz ||Sttj|XdS)N)r rr removeHandler)argskwargsinitial)methodrrinner;s   zremoveHandler..inner)rr"r rr)r(r)r)r(rr$9s r$)N)r weakref functoolsrZ __unittestobjectrWeakKeyDictionaryrrr!r"r#r$rrrrs