ELF]4A(4 (# 444    t   ((( Qtd/lib/ld-linux.so.2GNUElq+.x/ j'<yFOu6&\JIw[ `*! uo[b${&k  (^KnBvO;/RXU=D%}c7joABU(qRZ#zAz#Ge((fU~lxaC,4DR'`fNH}e;:z83`ap<D\s c yNaNwam;f5,E |$k Un8~ji? ^lt84//6I.u0h Nm{Q@<gS&cbP2$}7M)9\0;X!~{|Kq4hS1FHr i.*=>a^iWJ u6i-'Z"29>c-SsdQ1of]El58pZ?hP#wxMR0s?=TAyd2CYg6T&'k173M:b<-9-vzZ|t C]bpI 0@*!S"vV@V:^P_E*  +A 5 W0 OTmU,.!{yi"s%)fY}^DX5_X7FM:6.#t3+,KL%L]CP@WG{lv?Y=(>oM2VC[\J1eh$9XDGdH'Q\Tu4> g, w3n`)K4h g;|B_jR$YG*T%Zeq +bO?~F#}HxO9c 2g3dpdP8JInH"@B|x W _~n7S e!/)V]kz%jksFA[o5vL+I-:B>[YN_J GQrqpELt1m< w"mr&]rQVL)yWt=K`rm   , &h >, y r   >,O$* b8 #  /  P2* dq h w]) s 0 <sV i    j q%" 9c" F R Qq ^)U u@4T  @(!:  +*=  &v ] 1  >T    r  G S @  =4Y 9 ] n )  o ! kg> V * %   * R:  U  `j*  l()! P n) Y   > {F    R >,` " v -2 ~ {   #  _  l* [P   _ >,g $n0 :  , z 71 S E J  V  K 6im (4 u L n >, η/ Z = Uc"  z~  n  , X  F lO B G ` N k X!V/w * Y Y `, >,  >, 3B  @$x j + y  > \ P O p J  ,O , ? #  > L < `_ x.[5 9 2X N Q ;  /  J@A7\d q``1 y)>,) P"  { ,    x s ) " D. b[*jB  toc s u X *Do@zH*  3 C - #Sz6j _ G[ L +^F_ L|p;~ `1#H]  z'A 1   | T/ Ö    82B  F F q` )n@u ! p , b   4 5 a>,>,/M O g-!@s  tPlj* _*n& |t n @(  - R  G`D@T#= 5$ * = :*,Ɏ U @ ? [@+o`i*/ #].pT6  +>  [ F >,E  : +  sA>,Uj V b5 v>,mJ K _Ln :    <,~ Y 6 @>,EO<T dy$a :/t   b % s% >,-%BKJ h+>    )IP =`*JY  Y  m] ]  Z1  9"`r*  w ] V$   E  +N <ғg Y  i8 u+ g  $ =J   ܎  Gt@ b )( ?%|   N / Om<  ;g ]*" C  PW _ % - 's% i93 Qvd [!h+|#"K 3 A H   z; . >,q  X |>  ? ( *: X Os1 YZ ,!\  v T R)- | *J$ nj} _x / .9. BtB 2 PF  `DU  m K G RX@v  h f @*JQ# `@" & k:7(! K[  ^F  v+R: ă  yU R @%=\    " p(*7z L  V7V F dP G zHQ y>,! w  )W  gB  $(gC :À k O ,:'?>,SNf oX  2o a ,F"  0q      Ɖ  ,g8 I Ye iw  _ >n .  >,  A1  X v  G & z 8  E >,}6] A.d X N i  K ^ `C ]  n ?, }2 [ x#! 9!( [Q!Kh  X^! p!  T |!wc" !F C !&  !U  !N  !*!;"p+" 4"4 C"9$ W:S"[\"3- " j"T  " ] "?,"c ",n "L7 "`  "j #/ #| 4#L K#*Z#PI q#l?,# M #{d  #[6# T#< ,#@U #3 $ , $i\ #$`S$6*$@()%( ,9$] U F$9# O$   ^$   $K  e$ * $ J $?  $  $z'($ `J $7 % %Jc1 (% { `=A%c  V%I i%& 0 %v   % ? %k  %iF  %G)p %M  %\T ' &b & &&2s :&Ѫ >  V&@ `&v Y4m& &  &*&HS & &0= S &D &Jk ] ,N='B   ' #( $'H#[ 4'@'  ['Q|  o'>,'8  /|'F   j2'T   '[  ' _ ' x ';, (@(C )( <(]K R(?,k(b  (H e (p (0,K] ( ?,(L (c ( )_ )K| N7)Ps T)u@ m)3g )@&)- )%[)"  )'  @(i- )!)s  * - *R K #*5P >* `*,q*Z w *8 j *%7*` W6*  *?,*v? =*N + +c &+i  2+1  D+ s W+? g+j9 Lw+  +*$ ++6 +&+ + *+y T + H ,>,*,Ɗ K 7,?,I,)`,%w ] |,+, ` ,,* ) , =(.,!Q,RF Z ,X -P  -?,.- ++r& 6A-15 z R- S b-0!, p-`o#{-`3!$]-3 J -% -%D -yi -g  -s  -| .8L u /.' G.T  T.9L& n. ? .7p .R O .dU .& .>G .m .).4 2 /i   6/` F/ u*R/f/G y/A . /?,/$./q /gG /*/ !G(/n  /  /#  0iU 20_j   S0k  c0 ?,t0h  0>  0v B 0wC 0PB $ 0pJ 0 1) 1` f -1+=1? Q1\c  ^1r  y1 7a1H^ G 11 a 1= % 1$?,1B  19\ 1@9*1+ 72Q "2 -2 >2 @ P22^ ^2  {2 2x  2 t21 S 2 ! 2 2Mp 2% 3 , q3d #3@d -3" A3; T3 y c3D  @^ p35B  |3JF 3$ ]:3k] 3}3e) 3i 3  4$44Z &*4Cx? =4B # G4z- \4u j4` Z,|44 4 >_4] l 4$= [ 4hj  4@ %@4>,4Mk 5h ,58 6#5Pgt 05*=5 P5  c5{c: t5 5u| 5o5 o 5(?,5,?,5. 5-= 6]  6- /6&n <6 ? X6M j j6>  z6c" 69& :6 , 6  60?,6 ,6h  6kv ] 77 78g  5H+7D ;7 < R7S_ a7}V  p74?,7w ] 7p*73 7 L X ,7' 7 17 7*7 8i 8 (8> 889 ? I8  [8 " m8A  K $ F}8 *8\ ] 8{  8`^ 8  8g&((8>,8 +l 9   9j #9d ,69z  I9g5 `9+Ko9P  w94 / I9) F9 @ 9r" G9gq 9  9Gu 9+:`w \ :$9:@f W:+Y ,!c:/ s:p m Y:[ :8 , y:jK :)B:$,:" T P6:U  ;7 ;ʐ% &;8?,5;  N;+^;)p l; J };/ =];{| -@Z6;(   ;`. ;l  ;s K;L ;>,<$*<E{   D21<> A<&*~Z:G<׈  ">= 3>c) @>YI Y>  r>@?,>`M(+>`>= $>  >   CK>e >+%  ?E Z ?  1?" B? ? W?b l?^ ?  ?͇  ? ? ? ?¶ 1 %@r  @@*+@ ;@n7a M@X  h@b  @c_  @&I s @j- @1N @O l @Z @ > K AD n A 2A G EA*QAL 9 ^A  tAyb c A[# Azj A$" A A. Ae> B   BT g %B`*1B ,8BD?,GBl+52YB  jB=,qyB> B}| ?BO Bt?,B B Bp B B  CK`C   'C/ 6Cc  MC3 G `C:: kC>,yC/ Cl ,C i CH?,C "C' / #:DvL D,DE .D@ KD  2iD * |D M TDD ` D+!c Dl  Dj*D, ,D D  E(l x (E 4ESDETO XES r hEi4 tEu/  Eud  E_ Ed+ E1 ELe EE  F_[# OF_6 F  4Faj CF ]Fn lF+xF^  F &F FB -F_ F3  F&+F Gl Gf  %G`F/GL?,CGP & QG bG2;2sGGB6}GH Gr  Gv ] G N "Gn*G* H|H* H0 0H,/ GHU-  \Hy% cH Z |HP  He He H,  H*HR  H8 I" (Im! 8I  IIu  DQI ")/_MeI(pI(I%V Iy I. Ix  IP?,:I J(J^ @ =J' 6LJ ^JE  sJ*J5$ J CJT?,J6 J'  JD J K  1:hK Kh- K'K   4O" KO"'% ^Oi jOW&h rO= wc]6#Oz " libpthread.so.0sem_trywaitpthread_attr_initwaitpidpausesem_waitpthread_attr_destroysem_destroy__libc_current_sigrtmaxsem_initpthread_create__libc_current_sigrtminsystempthread_detachpthread_attr_setscopesem_postfunlockfileforksigactionflockfilefsyncpthread_self__errno_locationlseek64_Jv_RegisterClassesfcntllibdl.so.2dlerrordlsym__gmon_start__dlopenlibutil.so.1openptyforkptylibm.so.6ldexpmodffmodcossinatan2hypotfrexplibc.so.6strcpychrootunsetenvgetgidgetloadavgsysconf__strtod_internalstdoututimegetloginreaddir64ungetcsigemptysetutimesstrerrorfpathconffdopengeteuidmemmoveftello64getenvgetegid__rawmemchr__strtol_internalexecvegetpidqsortfgetsfchdirmemcpysetvbufpcloseperrorreadlinkdup2getuidfeofmallocisattyconfstrendpwentrmdirlchownsetgroupsfflushputenvlocaleconvsetpgidabortchmodalarmpopenpipeunamerenamestrrchr__ctype_tolower_locfdatasynckillsetpwentstrcatmkfifosetregidfseekctermidtmpnam_rnl_langinfostdinumaskferrorstrstrsetgidstrncmpstrncpyunlinkrealloc__strduptmpfile64_IO_getcexecvstrncatkillpgfread__xstat64symlinksetreuidmemsetgetsidftellclearerrgetppidopendir__uflowgetgroups__xmknodseteuidnicestrcmpttynamegetpwuidgetcwdgetpwnamsprintffclosesetlocalestderrfstatvfs64fputc__ctype_b_locfwriteaccessrewindtcgetpgrpsetbuf_IO_putcfileno_setjmp__ctype_toupper_loc_IO_stdin_used_exitgetpwenttempnam__libc_start_mainstrchrfputssetsidrealpathsetegidclosedirsetuidgetpgidfseeko64mkdir__fxstat64vfprintftcsetpgrpfreefopen64ftruncate64__environ__lxstat64PyUnicode_DecodeUTF7PyString_InternImmortalPyErr_BadArgumentPyExc_ArithmeticErrorPyString_FiniPy_CompileStringPyUnicodeUCS4_TailmatchPyExc_IOErrorPyErr_SetNonePyErr_PrintExPyDict_NextPyUnicodeEncodeError_GetEncodingPySys_AddWarnOptionPySlice_GetIndicesPyRun_SimpleFileExPyString_AsEncodedStringPyParser_SimpleParseStringFlagsFilenamePyUnicodeEncodeError_GetStartPySequence_DelSlicePyObject_DelItemStringM_email__MessagePyNumber_InPlaceXorPy_GetPrefixPyNode_FreeM_linecachePySys_ResetWarnOptionsM_email__Header_PyInt_InitM_urlparsePyInt_FromLongPyEnum_TypePyFrame_TypePyModule_GetNamePyUnicodeEncodeError_SetStartPyNumber_SubtractPyMem_MallocPyTuple_FiniPyUnicodeUCS4_SetDefaultEncodingPyUnicodeUCS4_EncodeUTF8Py_FindMethodInChainPyTraceBack_Type_PyUnicode_TypeRecordsPyEval_GetGlobalsPyComplex_RealAsDoublePyModule_TypePyString_DecodeEscapePyCallIter_TypePyDict_DelItemString_Py_TrueStructM_weakrefinitimpPy_GetRecursionLimitM_FixTkPyDict_KeysPyExc_WarningPyRun_InteractiveLoopM_emailPyMapping_HasKeyStringPyUnicodeEncodeError_GetReasonM_reprPyObject_ComparePyMethod_TypePyObject_SelfIterPyExc_ReferenceErrorM_srePyOS_getsig_Py_QnewFlagPyCObject_ImportPySequence_SetSlicePyObject_GetAttrPyUnicodeUCS4_ContainsM_xml__sax__expatreader_Py_CheckRecursiveCallPyExc_RuntimeErrorPyFunction_GetGlobals_PyUnicodeUCS4_AsDefaultEncodedStringPy_GetProgramFullPathPyBuffer_FromReadWriteMemoryPyObject_FreePyUnicodeUCS4_EncodeASCIIM_getopt_PyObject_NewVarPyErr_WarnM_posixpathPyListIter_TypePyEval_EvalCodeM_dummy_threadPySet_TypePyExc_MemoryErrorInstPySequence_GetItemPyExc_RuntimeWarningPyThreadState_Clear_PyImport_InittabPyObject_CallFunctionPyEval_AcquireLockPyCObject_GetDescPyParser_SimpleParseStringFlagsPyUnicodeUCS4_EncodeUnicodeEscapePyMapping_HasKey_PyUnicodeUCS4_IsLinebreakM_encodings__aliasesPyList_SizeM_ntpathPyCell_GetPyUnicodeUCS4_AsASCIIStringPyMapping_CheckPyCFunction_New_PyWeakref_GetWeakrefCountM_distutils__utilPyCodec_StreamReader_PyImport_InitPy_UseClassExceptionsFlagPyExc_OverflowWarningPy_AtExitPyNumber_InPlaceDivideM_email__IteratorsPyInstance_NewRawPyDict_CopyPyFrame_FastToLocalsPyInt_FromUnicodePyNumber_InPlaceTrueDividePyErr_ExceptionMatches_Py_NoneStructPy_IncRefPyObject_NotPyObject_CallPyMarshal_ReadLastObjectFromFilePyFloat_TypeM_feedparserM_SocketServerPyString_TypePyImport_AppendInittabM_email___parseaddr_PyUnicodeUCS4_ToLowercaseM_rfc822PyEval_EvalFrameM_mx_PyParser_GrammarPyNumber_PositivePyBuffer_FromMemoryM_randomPyNumber_OrPyCodec_ReplaceErrorsPy_GetBuildInfoPyFunction_SetClosurePy_IsInitializedPyImport_AddModulePyFunction_GetModulePyLong_AsDoublePyLong_AsUnsignedLongMaskPyObject_InitPyEval_MergeCompilerFlagsPyErr_Restore_fp_hwPyEval_GetRestricted_PyThreadState_CurrentPyTokenizer_FreePySequence_InPlaceRepeatPySequence_FastPyDescr_NewWrapperPyCFunction_GetFlagsPyExc_FloatingPointErrorPyExc_UnicodeErrorPyObject_HasAttrPyTuple_SetItem_Py_ZeroStructPyUnicode_TypePyNumber_LongPyDict_SetItemStringM_xmlPyFunction_NewPyNumber_XorPyErr_DisplayM_httplibPyObject_CheckReadBufferPySys_WriteStderrPyDictIterKey_TypePyObject_TypePyDictIterValue_Type_PyLong_AsByteArray_PyUnicodeUCS4_IsLowercasePyStaticMethod_Type_PyParser_TokenNamesPyFunction_GetClosureM_quopriPy_BuildValueM_opcodePyBuffer_TypePyNode_NewPy_FinalizePyUnicodeUCS4_ReplacePy_TabcheckFlagPySequence_InPyUnicodeUCS4_AsUnicode_PyLong_FromByteArrayPyExc_OverflowErrorPyDict_ClearPyNumber_TrueDividePy_DivisionWarningFlagM_email__ErrorsPyThread_acquire_lockPyThread_allocate_lock_PyTuple_ResizePyObject_ClearWeakRefsPy_OptimizeFlagPyImport_ExecCodeModuleExPyMarshal_ReadLongFromFilePyGen_NewPyExc_KeyErrorPyThreadState_DeletePyErr_SetStringPyDict_SetItemPyWeakref_GetObjectPySequence_ListPyParser_DeletePyExc_PendingDeprecationWarningM_sre_parsePyThread__exit_thread_Py_TickerPyModule_GetFilenamePyString_ConcatPyOS_FiniInterruptsPySuper_Type_Py_HashDoublePyUnicodeUCS4_SplitPyUnicodeTranslateError_SetReasonM__threading_localPyEval_ThreadsInitializedPyComplex_TypePyInt_FiniPyString_AsEncodedObjectPyLong_AsUnsignedLongLong_Py_ManglePyString_InternInPlacePySequence_TuplePyCObject_FromVoidPtrAndDescPyLong_FromLongPyErr_FetchPySymtableEntry_TypePyToken_ThreeCharsPySequence_SetItemPyThreadState_SwapPyThreadState_Get__libc_csu_finiPyErr_OccurredPyFile_SoftSpace_PyObject_GC_DelPyRun_AnyFileFlagsM_xml__parsers__expat_PyList_ExtendPyCodec_BackslashReplaceErrorsPyInterpreterState_HeadPyRun_AnyFileM_distutils__errorsPyBaseObject_TypePySequence_Index_PyLong_SignPyParser_SimpleParseStringFilenamePyNumber_AbsolutePyModule_AddStringConstantPyParser_AddTokenPyMapping_SetItemString_Py_c_negM_py_compilePyWrapperDescr_TypeM_rePyUnicodeUCS4_Translate_PyUnicodeUCS4_ToDigitPyEval_GetFramePy_FindMethodPyExc_AssertionErrorPyUnicodeUCS4_FromOrdinalPySymtable_Free_PyUnicodeUCS4_IsTitlecase_Py_abstract_hackPyEval_RestoreThreadPyGC_CollectPyStructSequence_InitTypePyEval_AcquireThreadM_xml__sax__saxutilsPy_InitModule4_PyImport_FindExtension_PyWeakref_CallableProxyTypePyThread_release_lockPyNode_CompileFlagsPyUnicodeUCS4_FromEncodedObjectPySequence_GetSlice_PyObject_NewPyEval_SetTracePy_ReprLeavePyInterpreterState_DeletePyUnicodeUCS4_AsUnicodeEscapeStringPyModule_GetWarningsModule_PyUnicodeUCS4_ToNumericPyGrammar_LabelReprM_BaseHTTPServerPyRun_AnyFileExPy_EndInterpreterPyObject_SetItemPyOS_InitInterruptsPyThreadState_NextPyInterpreterState_NextPyRange_TypePyImport_ReloadModuleinitsignal_PyTrash_destroy_chainM_macpathPyUnicodeTranslateError_GetObjectPy_AddPendingCallPyNumber_InPlaceMultiplyM_cookielib_Py_NotImplementedStructPyFloat_AsReprStringM_getpassPyObject_Hash_PyObject_GetDictPtrPyExc_SystemExitPy_InitializePyFrame_NewPyObject_GenericSetAttrPyObject_AsWriteBufferM_markupbasePyComplex_FromCComplexPyGrammar_AddAccelerators_PyUnicodeUCS4_ToTitlecaseM_email__GeneratorPyExc_FutureWarningPyArg_ParseTupleAndKeywordsPyUnicodeUCS4_AsEncodedStringPyObject_ReallocPyNumber_InPlaceLshiftPyObject_IsSubclassPyGILState_EnsurePyTokenizer_FromStringPyEval_GetCallStatsPyType_GenericAllocPyEval_SetProfilePyOS_GetLastModificationTimePyNumber_RshiftPyDictProxy_NewPyUnicodeDecodeError_GetEndPySequence_RepeatPyObject_CallFunctionObjArgsPyEval_EvalCodeExPy_IgnoreEnvironmentFlag_PyString_ResizePyObject_IsInstance_PyUnicode_XStripPyOS_ascii_atofPyRun_StringFlagsPyRun_FileExPyExc_KeyboardInterruptM_copyPyUnicodeUCS4_AsLatin1StringPyImport_GetMagicNumberPyObject_GetAttrStringPyOS_ascii_formatdPyUnicodeTranslateError_GetReasonPyExc_UnicodeDecodeErrorPyUnicodeUCS4_EncodeRawUnicodeEscapePyObject_AsReadBufferPyImport_ImportModuleExPyObject_DirPy_SetProgramNamePyDict_SizePy_GetExecPrefix_PyUnicodeUCS4_ToUppercasePyUnicodeUCS4_EncodeUTF16_PyTrash_deposit_objectPyList_AsTuplePyListRevIter_TypeM___main___Py_CheckRecursionLimitPyNumber_FloorDividePyOS_vsnprintfPyImport_ImportM_localePyDict_UpdatePyString_FromStringAndSizePyErr_NormalizeExceptionPyExc_DeprecationWarning_PyFloat_Unpack8PyFile_FromStringPyOS_snprintfPy_GetCopyrightPyGILState_ReleasePyMethod_FunctionPyDescr_NewClassMethodPyThread_set_key_valuePySeqIter_TypePyNode_CompileSymtablePyOS_ReadlineFunctionPointer_PyUnicodeUCS4_IsDecimalDigitPyCallable_CheckM_gzipM_UserDict_PyImport_Filetab_PyImport_LoadDynamicModulePyNumber_DivmodPyErr_WriteUnraisableM_siteM_xml__parsersPyDict_Itemsinit_sre_PyString_JoinPyUnicodeUCS4_GetDefaultEncodingPyObject_UnicodePyRun_SimpleFilePyEval_ReleaseThreadPyList_SetItemPyObject_LengthM_urllib2Py_GetVersionPyClass_IsSubclassPyObject_GetItemPyImport_GetModuleDict_PyImport_FixupExtensionPy_SetRecursionLimitPyFile_SetEncodingPyUnicodeUCS4_DecodeUTF16PyLong_AsUnsignedLong_Py_ReleaseInternedStringsPyDict_DelItemPyObject_PrintPyErr_GivenExceptionMatchesPyObject_SetAttrPyMem_ReallocPyOS_setsigM_nturl2path_PyObject_GC_MallocPyLong_FromUnsignedLongLonginitposixPyParser_NewPyModule_AddObjectPyFrame_LocalsToFastPyLong_Type_PyImport_GetDynLoadFuncPyCodec_DecodePyList_FiniPyOS_ascii_strtodPyUnicodeDecodeError_SetReason_PyObject_DelPySys_GetObjectPySys_SetObjectM_distutilsPyRun_InteractiveLoopFlagsPyUnicodeUCS4_CountPy_InteractiveFlagPySeqIter_NewPyUnicodeUCS4_ResizePyMem_FreePyUnicodeUCS4_EncodeCharmap_PyWeakref_ClearRefPyTuple_GetItemPy_FileSystemDefaultEncodingM_globPyCObject_SetVoidPtrPyFile_WriteStringPyImport_ImportModulePyExc_UnicodeEncodeErrorPyUnicodeUCS4_EncodeDecimalPyObject_IsTruePySymtableEntry_New_PyTrash_delete_laterPyExc_SystemErrorPyThread_exit_threadPy_GetPathPyMapping_GetItemStringPyNumber_NegativePyThread_start_new_threadPyGrammar_RemoveAcceleratorsPyInterpreterState_ClearPyParser_SimpleParseFileM_urllibPyErr_SetInterruptM_threadingPyUnicodeUCS4_DecodeUTF16StatefulPyDict_MergeM_email__quopriMIMEPyUnicodeUCS4_DecodeASCIIPyDict_NewPyTuple_PackPyParser_SimpleParseStringPyParser_ParseStringFlagsFilenamePyFrozenSet_TypePyUnicodeUCS4_Concat_PyObject_SlotCompareM_tempfileM_macurl2pathPy_GetProgramNamePyExc_ImportErrorPyInstance_NewPyThread_delete_key_valuePyRun_SimpleStringPyMapping_LengthPyList_SortPyLong_FromDoublePyLong_FromUnicodePyTokenizer_GetPyMember_GetOnePyEval_ReleaseLockPyErr_ClearM_email__base64MIMEM_Tkconstants_PyErr_BadInternalCallPyStructSequence_UnnamedFieldPyString_AsString_PyUnicodeUCS4_ToDecimalDigitPy_DebugFlagPy_FlushLinePyExc_UserWarningPyImport_FrozenModulesPyUnicodeEncodeError_SetEndPyReversed_TypePyString_DecodeM_loggingPyString_FromStringM_uuM_pydocPyUnicodeUCS4_AsEncodedObjectPyMarshal_WriteObjectToFilePyUnicodeUCS4_AsUTF16StringPyExc_ValueErrorPyClassMethod_TypePyCFunction_CallPyDict_ContainsPyMethod_FiniM_calendarM_popen2PyUnicodeUCS4_AsRawUnicodeEscapeStringPyErr_SetFromErrnoPyThreadState_GetDictPyObject_Cmp_PyLong_CopyPyList_AppendPyDescr_NewGetSet_PyUnicode_DecodeUnicodeInternalPyParser_ParseFileFlagsPy_ReprEnterPyThread_get_thread_ident_PyUnicodeUCS4_IsUppercasePyMember_Set_Py_ReadyTypesM_bisectPyGILState_GetThisThreadStatePyNode_AddChildPyCode_Addr2Line_PyGC_generation0PyCFunction_GetFunctionPyUnicodeTranslateError_GetEndPySequence_SizePyFile_TypeM__MozillaCookieJar_PyInstance_LookupPyEval_GetLocalsPyExc_TypeErrorM_socketPyFile_WriteObjectinitgcPyBaseString_TypeM_os2emxpathPyList_InsertPyNumber_InPlaceAddPyString_FromFormatVPyMarshal_ReadObjectFromStringPyUnicodeTranslateError_GetStartPyList_GetSlicePyExc_IndexErrorPyUnicodeEncodeError_GetEndPyList_GetItemPyUnicodeUCS4_DecodePyComplex_FromDoublesPyObject_InitVarPyThread_init_threadPyErr_CheckSignalsPy_GetPythonHomePyUnicodeUCS4_AsWideCharPyProperty_TypePyBuffer_FromObjectPyType_ReadyPyUnicodeUCS4_DecodeLatin1PyNumber_AndPyUnicodeDecodeError_Create_PyType_LookupPyList_NewPyExc_EnvironmentErrorPyObject_ReprPyCObject_AsVoidPtrM_base64PyObject_CallMethod__libc_csu_initinitthreadPyObject_DelItemPyEval_SaveThreadPySys_GetFilePyInt_AsUnsignedLongLongMaskPyFloat_AsDoublePyString_AsStringAndSizePyObject_GetIterPyLong_AsVoidPtr_PyFrame_InitPySequence_DelItemPyThread_delete_keyM_sre_constants__bss_start_Py_c_quot_Py_c_sumPyNumber_InPlaceAndPyErr_WarnExplicitPyDict_GetItemPyObject_StrPyClass_NewPyThread_free_lockPyErr_SetFromErrnoWithFilenameObjectPyMember_GetM_inspect_PyGILState_FiniPyThreadState_SetAsyncExcPyUnicode_EncodeUTF7M_sgmllibPyCodec_StreamWriterPyOS_StdioReadlinePy_DecRef_PyImport_FindModulePyObject_SizePySequence_LengthPyObject_AsCharBufferM_os_PyLong_NumBitsPyModule_GetDictPyUnicodeEncodeError_GetObjectM_mimetypesPyFPE_jbufPyImport_ExtendInittabPyFPE_counterPy_InitializeExPyOS_strtoulPyTuple_TypePyNumber_RemainderPyEval_GetFuncNamePyImport_CleanupPy_CompileStringFlagsPyDescr_NewMemberM_copy_regPyRun_InteractiveOneFlagsPyExc_IndentationErrorPyExc_AttributeErrorPyClassMethod_NewPyFile_NamePyObject_RichComparePyNumber_CheckPyErr_Format_PyUnicodeUCS4_IsWhitespacePyLong_FromString_PyModule_ClearPyObject_CallObjectPySequence_ConcatPyString_InternFromStringiniterrnoPyExc_LookupErrorPy_UnicodeFlag_PyGC_DumpPyUnicodeDecodeError_SetStartPySys_SetPathPy_GetPlatformPyBool_FromLong_PyUnicodeUCS4_IsAlphaPyMapping_Size_PyObject_DumpPyExc_SyntaxErrorPyUnicodeDecodeError_SetEndPyClass_TypePy_VaBuildValuePyTuple_SizePy_FatalErrorM_atexitPyNumber_Add_Py_SwappedOpM_fnmatch_PyImport_IsScriptPyFloat_AsStringPyCodec_EncoderPyInt_FromStringPyType_GenericNewPyEval_CallObject_PyBuiltin_InitPyCFunction_TypePyUnicodeTranslateError_SetEndPyNumber_PowerPy_FrozenMainPyErr_SyntaxLocationM_tokenizePy_FrozenFlag_PySys_InitPyInt_GetMaxPyFile_SetBufSize_Py_PackageContext_PyEval_SliceIndexPyComplex_ImagAsDoublePyCObject_TypeinitpwdPyCFunction_GetSelfPyThreadState_New_PyLong_NewPyNumber_InPlaceSubtractPyComplex_AsCComplexPyUnicode_RSplit_PyObject_GC_NewVarM_StringIOPyString_AsDecodedObject_PyImport_DynLoadFiletabPyParser_SimpleParseFileFlagsPyCode_TypePyNumber_LshiftPySlice_NewPyFunction_SetDefaultsPyCFunction_Fini_PyObject_GC_TrackM_xml__sax__xmlreaderM_sre_compilePyUnicodeUCS4_AsUTF8StringPyList_Reverse_PyFloat_Pack8PyOS_AfterForkPyExc_EOFErrorPyInt_AsUnsignedLongMaskPyFunction_TypePyWrapper_NewPyFrame_BlockPopPyMethod_SelfPyBuffer_NewPyLong_FromVoidPtrM_distutils__logPyType_IsSubtypePySequence_InPlaceConcatPyGrammar_FindDFAPy_VerboseFlag_Py_cobject_hackPyUnicodeUCS4_FromObjectPyRun_FileFlagsM_ttyPyExc_UnboundLocalErrorPyGen_TypePyArg_UnpackTuplePyWeakref_NewRefPyCodec_RegisterErrorPyRun_AnyFileExFlagsPyNode_CompilePyParser_ParseFilePyInt_TypePyInterpreterState_NewPyUnicodeDecodeError_GetReasonPyRun_FilePyErr_NoMemoryPySlice_Type_PyOS_ReadlineTStateM_email__EncodersPyModule_AddIntConstantPyString_SizePyLong_FromUnsignedLongPyObject_GenericGetAttrM_stringM_ftplibPyEval_InitThreads_PyString_EqPy_FdIsInteractivePyEval_CallObjectWithKeywordsPyTraceBack_HerePyNumber_IntPy_UniversalNewlineFgets_PyUnicodeUCS4_IsNumericPyExc_StopIterationM_warningsM_htmlentitydefsPyFile_AsFilePyUnicodeUCS4_DecodeUTF8StatefulPyUnicodeUCS4_GetMax_Py_c_powPyDict_MergeFromSeq2PyUnicode_AsDecodedObjectPyLong_AsLongLongPySequence_CountPyStructSequence_New_PyImport_ReInitLockPyThreadState_DeleteCurrentPy_MakePendingCallsPyUnicodeUCS4_JoinPyFile_FromFilePyFile_GetLinePyObject_AsFileDescriptorPyString_AsDecodedStringPyUnicodeUCS4_Encode_PyWeakref_ProxyTypePyToken_OneChar_PyArg_NoKeywordsPyUnicodeUCS4_EncodeLatin1PyObject_RichCompareBoolPyNumber_CoercePyNumber_CoerceEx_PyObject_GC_UnTrackPyThread_get_key_valuePyObject_SetAttrStringPyErr_ProgramTextPyLong_FromLongLong_PyUnicodeUCS4_InitPyEval_CallMethodPyFrame_BlockSetupPyList_TypePyInt_AsLongPyString_ConcatAndDelPyUnicodeUCS4_AsCharmapStringPyArg_ParsePy_SymtableStringPyImport_ExecCodeModulePyCodec_RegisterPyMarshal_WriteLongToFilePyTraceBack_PrintPyUnicodeUCS4_FindPyFrame_FiniPyDict_Type_edataPyExc_TabError_Py_CheckIntervalPy_SetPythonHomePyOS_InputHookPyCodec_DecoderPyDescr_NewMethodPyFloat_AsStringEx_endPyNumber_MultiplyPyFPE_dummyPyCodec_LookupErrorPyNumber_DividePyParser_SetErrorM_codecs_PyLong_AsScaledDoublePyMethod_ClassPyObject_HasAttrStringPyEval_GetFuncDescPyCode_NewPy_NoSiteFlagPyFunction_GetCode_PyThreadState_GetFrame_PyEval_CallTracingPyExc_NotImplementedErrorM_email__UtilsPyUnicodeUCS4_TranslateCharmapPyMarshal_InitM__xmlplusPySequence_ContainsPyBuffer_FromReadWriteObjectPyLong_AsUnsignedLongLongMaskPyEval_GetBuiltins_PyUnicodeUCS4_IsDigitM_disPyString_EncodePy_NewInterpreterPyWeakref_NewProxyPyBool_TypeM_distutils__spawnM_gopherlibPyUnicodeDecodeError_GetObjectPyObject_MallocPyErr_PrintM__LWPCookieJarPyThread_create_keyPyList_SetSliceinit_codecsPyUnicodeUCS4_DecodeRawUnicodeEscape_PyExc_FiniPyCodec_XMLCharRefReplaceErrors_Py_c_prodPyOS_InterruptOccurredPyCell_New_PyUnicodeUCS4_FiniPyArg_VaParseM_mimetoolsPyString_FromFormat_PyImport_FiniPyParser_ParseStringFlags_PyFloat_Pack4PyCell_Type_PyExc_InitPyRun_StringPyImport_ImportFrozenModulePyCObject_FromVoidPtrPyNumber_InvertPyCFunction_NewExM_traceback_PyCodec_LookupPyTokenizer_FromFilePy_GetCompilerM_htmllibPyExc_SyntaxWarningPyLong_AsLong_PyFloat_Unpack4M_email__CharsetM_TkinterPyMarshal_ReadObjectFromFilePySlice_GetIndicesExPyUnicodeTranslateError_SetStartPyUnicodeUCS4_ComparePyInstance_Type_PyWeakref_RefTypeM_cgiPyTupleIter_TypePyErr_SetObjectPyFunction_GetDefaultsPyDict_GetItemStringM_statPyUnicodeUCS4_SplitlinesPyInterpreterState_ThreadHeadPyArg_VaParseTupleAndKeywordsPyCell_SetPyDict_ValuesPyType_TypePyUnicodeUCS4_FromUnicodePyMarshal_WriteObjectToStringPyNumber_InPlaceOrPyMember_SetOnePyTuple_GetSlicePy_ExitM_xml__sax__handlerM_xml__saxM_dummy_threadingPyErr_SetFromErrnoWithFilenamePyOS_ReadlinePyStaticMethod_NewPyUnicodeDecodeError_GetStartPyExc_OSErrorPyRun_SimpleStringFlagsM_xml__sax___exceptionsPyUnicodeTranslateError_CreatePyNumber_FloatPyRun_FileExFlags_PyString_FormatLong_Py_EllipsisObjectPySys_WriteStdoutM_formatterPyExc_StandardErrorPyFloat_FiniPyUnicodeUCS4_DecodeUnicodeEscapePyIter_NextPyParser_ParseStringPyString_ReprPyToken_TwoCharsPyUnicodeUCS4_FormatPyDictIterItem_TypePyNumber_InPlaceRemainderPyObject_CallMethodObjArgsPyString_Format__data_startPyExc_MemoryError_Py_HashPointerPyFloat_FromDoublePyUnicodeUCS4_GetSizePyExc_ZeroDivisionErrorPyArg_ParseTuplePyMethod_NewPySequence_CheckM_email__Parser_PyObject_GC_NewPyTuple_NewPyRun_SimpleFileExFlagsPyFloat_FromStringPyEval_CallFunctionPy_UniversalNewlineFreadPyCodec_IgnoreErrorsM_pprint_PyObject_GC_Resize_PySequence_IterSearchM_distutils__dep_utilPyRange_New_PyTrash_delete_nestingM_typesM_encodingsPyUnicodeUCS4_DecodeUTF8_PyGILState_InitM_webbrowserPyNumber_InPlaceFloorDividePyUnicodeDecodeError_GetEncodingPyExc_ExceptionPyUnicodeUCS4_FromWideCharPyUnicodeEncodeError_CreatePyModule_NewPyNode_FuturePyExc_UnicodeTranslateErrorPyUnicodeUCS4_DecodeCharmapPyCodec_EncodePyCallIter_NewPyEval_ReInitThreadsPySys_SetArgvM_email__FeedParserPyUnicodeEncodeError_SetReasonPyNumber_InPlacePower_Py_c_diffPyExc_NameErrorPyMarshal_ReadShortFromFilePyCodec_StrictErrorsPyNumber_InPlaceRshiftPyErr_NewExceptionPyOS_strtolM_token_PyImportHooks_InitPyRun_InteractiveOneGLIBC_2.0GLIBC_2.1GLIBC_2.3GLIBC_2.2       ~ ii OO0ii Oii O ii OPii Oii Oii Oii Oii Oii Oii O  ,.$ ,( ,, ,  ! !!!!! !#$!&(!),!00!14!78!;#U#]#b#n#q#x#z###########$$$ $$$Uq 蓚 5!%!% !h%!h%!h%!h%!h % !h(%$!h0%(!h8p%,!h@`%0!hHP%4!hP@%8!hX0%,1 >,$0>,|$E$$q)'tc'1ۅt&uר؃[^_]á, ,$b$tD$&, ,$,1ۅ蓨؃[^_]$u1\$ D$D$( ,$r?$txf8to>,$j8D$, ,$D$$ ,$D$( ,$1덐襧U帠)]ÐUS$ \$D$D$ .D$4D$$@ ,@ ,$[]ÐUWVSEtE u 1Ƀ uME<?tP $ƉE]]ۉ\$D$$EED$D$$?5< ,<,t0^ t'ƿu EE  u١ ,t h)n [^_]1EUH ,t t#H ,< ,$ < ,ËB$PH ,< ,$ < ,UVS1ƃtK@ ,trx)9t@tIT$D$@ ,$$u$5x)D ,[^]ÃD ,[^]D$@ ,$u뜍@ ,yU]U1=x)E]鈞U4**UYt;x)uDD ,D ,t**x)@ ,$**D$>,$3 1USp ,XCt[]$4C[]UWVS

,t׉D$$HJD$*D$4$uǡ|)|).CD$4$tHD$D$4$謵tM >,tȉD$$XCD$4$[u*D$D$4$_uD$qE$$EtR@=*tD$*$t4>,2E$8D$*D$qU$EEUT$ ED$UT$E$U:uЋE@=*tD$*$臥tUB=*tD$*$ftEEԉÃ1 nzU:Bu{:Cu|:C>,gE$:D$*ED$E$EUT$ ED$UT$E$ E؅EUT$ ED$UT$E$ۦE@=*tD$*$btE@=*tD$*$AtUUЉӃ1 vzU:Bu{:C>,E$!D$*ED$E$UT$ ED$UT$E$%D$zU$zEtQ@=*tD$*$pt3>,fE$D$*D$zE$AD$1U$EtQ@=*tD$*$t3>, E$$D$*D$1E$ֱU$E@Ut4<[^_]É\$$~}:C`B$P<[^_]|:CX}:CCE$á>,ufD$*D$W$|\$$L$;$)$j$1Uh)]UE@]Uh)EEEED$E$K#UWVS$cE5< ,th~  tWFD$ FD$T$$ÅtiD$E$ x+uC$P  uE[^_]ËUtOt2EE[^_]ËUuB$PE몋C$PE똋B$PU(ED$D$E $P 1҅uËE$ ‰UWVSEtƒ1ۃuu 1[^_]á)P1uE L ,tPT$ $Ǹt)9L ,tD$T$<$=L ,=)ED$ED$$1[^_]1EgUWVS,ED$D$E $ 1҅tDEE=)t&wD$E$t$u1$‰Ѓ,[^_]ð_uUWVSED$D$E $ 1҅tI}5)t^ |$$Ot1  u|$D$?,$ʸ 1҉Ѓ[^_]ËNt F1)ЉD$ $K‰Ѓ[^_]É|$D$ ?,$~ 1UWVSED$D$E $ 1҅t:}5)t^ |$$t"  u1$Y‰Ѓ[^_]ËFUWVS,Et E1уT$3$=E$趴Džt@=*tDD$*$u0D$D?,$ֵ Dž,[^_]Ã<$ƅu G<$PA=*GD$*$S$ ¾139M $S D$M $!}ыUfD.3L$$ED$3$)t&z 3L$$T uݍ3D$D$?,$ Dž,[^_]ËB=*tD$*$4$Բt&@=*"D$*$ D$?,$ Dž )zt#D$3$=u݋)z t#3L$$m/ u$\…D$?,$D Dž,[^_]É1ۋu9`\$<$uT$L$ D$D$G$耋=***u*$*P눡*$*P9\$<$D$*L$ D$D$G$=*)**uD$>,$ Dž,[^_]$莰@=`*tD$`*$貘 $13уv3T$D$,?,$ Dž3D$U$RDž)`D$?,$ Dž<Dž DžDž D$ ;,D$CD$C $YƅÉ$6ȃ;E t  9D$$Ë@=*YD$*$AC=*tD$*$t1K$-D$E$1}у9@},t+E|/t/щ3D$E$ED$UT$$uE%=@f< ,‹j}Ӄ 1D$M $=  )D$<$=>,~ML$$B8Uu D$t?,$萮 DžF4$P3L$E$uDž)3L$E$QDž)_/DžAUDžl)#G<$PDžl) KEt t)ыF4$P動$W\$ $Dž*L$ D$1cD$G<$ۅ=*D**F$**P2G<$PDž}1щʃȃ =pU/]__inCit__C.py4D$UT$$tg1уʸ@1 <,u|Mf4D$L$$jtDž)UDžl)D$*\$$贑Dž T$ $H\$D$ $蘂DžuZ?,$襵   9u[F4$PDž)$=**D$\$$ߐËu G<$PZUWVS,EED$ ED$D$CE $ u1ۉ؁,[^_]ËMUEƅ1*!D$ ED$D$<$1ÅtUthD$ Y@D$|$$ƅtUCD$CD$D$ |$t$$SGoËBF4$P4**뫋E$1UVSEM u]UUUU] u[^]UVSuH ,p ,XCt$C$Åt@=*t8D$*$u$t$D$@ ?,$m 1ۉ؃[^]É$zu 1ۉ؃[^]É$װÅtD$E D$H ,$蕞uC$P$襅EH , 1UWVS }p ,Xs|$4$Åt@=*tAD$*$u-<$ݿÅt,t|$ED$$tLUWVS ƉD$$ft  [^_]Ë=)t_D$4$tu1 [^_]ËGtQ >,u t랉t$$[踷G׉t$4$ pkt$D$?,$Ƨ HU(ED$D$pE $ u1ËE|vu**ËE$tσUWVS p ,X{rE$QE$ID$$hQ]E$ Åt}\$D$4$Ot$t$E $~…ED$<$ޭÅ!؃ [^_]藚 E X0\$D$4$Ěum pC$Pt$t$E $}…gp ,p^ED$$AuP1ۉ؃ [^_]ËB$P6$h{zD$D$4$uED$$ky$1$ ^cED$D$?,$F UWVS<։L$$ 1эy1|$t$$=<,$o;D;D$ $ljt/$';h)>,<$hD$t$$苒Džu1<[^_]Ét$$ <$t͡>,H$tD$D$$6D$$ÅD$D$h)$;D$\$$;D$\$$Z$>,W$D$t$T$$NjB$P<$T&9D >,a\$$苲L\$$v7Dž6>,UT$$?:$D$D$$D$\$$]:$f$=>,D$$%ıT$$話t$D$$>,$ա 1zt$D$$j>,<$4ƅt3x+t.\$D$?,$k tgDž<$:ޡ>,\$D$$PͰt$\$$贰XF4$PDžUVS0EED$D$ u*ED$ ED$D$1E $! 1u 0[^]ËEUt.$nÅtEUE.ƋEuɉ$JD$|$Åuʡ>,$ȟ D$C?,$藞 1UWVS}5)t^ |$$St  u1ۉ؃[^_]ËF^Etۋ >,t$ZUD$|$$cI\$F$1ƅt"P+Et_<$xu m$jÉ<$Et݉D$D$y$蕓ËU$D$t$<$NjtG<$Pb |$D$ ?,$蛞 t1|$D$t?,$m ~F4$Pq4$RNjB$vP+U(ED$D$E $ u1ËE$|u**ËE$tσUD$E D$E$`UWVS lj։ˉ $ ;h)t%t$D$?,$膝 1 [^_]É$ $l0ÅtXx+uS>,u0t$\$<$ƋuC$P [^_]Ét$|$$PĬ1넉t$D$?,$ u؋C$P1PUWVSlj΋]M Cw v'\$ |$D$$?,$菜 1[^_]$щ[^_]+щ[^_]T$t$<$뻉[^_]It>u{<$1|p ,pF|$F$>P|$ D$1cD$ $r'끉\$D$?,$藛 1ft|$ D$D$?,$V 1$vBD$?,$螙 1t|$ D$D$?,$ 1bUWVS,E$ƅ>,4$ͱ$ÅtPD$$^Džt:\$D$$َtpt1u G<$P1ېt t ,[^_]ËC$P,[^_]É\$D$$谩@|$D$y$KnƅD$ ED$D$$wt GG<$P1UWVS<ϡp ,Xs|$4$7Åt؁<[^_]EE*D$y$.ÅƅED$ ED$D$$ًUtgUED$A$?ËUtEt$**B=*D$*$z $贫t$T$L$$u1ۉ$osYu؋C$P1SC$PvEP$RD$T$ $落s1Fщ3?,$蟜 Rۇ **|$4$UWVSEUϋED$.$ۿ…@E)‰UU}U :9}t.E4+]fD$ED$<$U ME=*U9U**Eƅ=*typ ,XCCD$*ED$C$ކUT$ED$U$)EUE [^_]Åtcu [^_]á**t(UT$D$,?,$ 1[^_]$**PNjt\1[^_]$**PD$?,$ 1e1}уM)F4$P15D$?,$ 1$lUWVSEUMD$y$EED$E$YÅt^@=*tD$*$4v{*,M t=EED$E$/YÅu ?,$X 1҉Ѓ[^_]D$$E$ÅD$E$MڋEƋtEq\$E$萷t!KC$PE=sуMwqEE.t$$4ME|…t[uB$P끋C$PC$PA考 ED$?,$词 C$P1҉Ѓ[^_]D$?,$v  Ѓ[^_]UWVS,u EEEt&F=`*D$`*$t*}|$$M*t`t@E|$$MډƋuɋC$PuDž+t!;x)D ,D ,,[^_]áT ,EP ,gƅET ,D$4$qÅ@=*tD$*$rP ,D$4$UqsCD$$up ,XC+D$C$C^Tx)@ ,$趱,[^_]Ëut}*tE$_C$PB$vPDžgD$?,$Š DžC$y P ,tD$>,$a Dž,[^_]ËtqD$E$UnC$PDžr$G> T ,JB$P{B$P,sD$.4$&)\$t$$Ƅ]$rfUWVS` ,NÅ`\ ,D$$+=ƅF=`*tD$`*$oX ,D$4$<Dž` ,D$\$\$ ED$D$=<$_Ett=t t9t t E[^_]ËG<$PE[^_]ËC$P븋F4$P뼡X ,D$4$fEQw1EmX ,D$>,$$} EG$&8 X ,ulESg} D$ D$D$$1AƅtʼnD$\ ,D$$8LÅl1E$\ ,{D$,$4L` ,UUVSE$1t$Ƌt [^]ËC$P[^]UWVS >,$踟Åt)D$$gƋw1i$c$_Å$ƋD$4$BË\$<$"Ƌ;j>,u G<$P [^_]@dÅ0D$$nƋ$脞DžD$$/z >,f$iuU$BddC$PC$PzF4$Pt&z >,$@ $C$PC$PUWVS,UEEUE EtU1ۃuu 1,[^_]á)0P1uE L ,tPT$ $Ǹt)9L ,tD$T$<$&=L ,=)UMT$L$$1,[^_]1EgUSDED$ED$ED$ED$ED$ ED$D$E $P 1҅t}]u{E=*P u*tD$ u*$j]EڋM$bÅMED$U$}‰ЃD[],$N 1iD$C?,$ 1M1) D$h?,$ 1#UVS0EED$D$ u*ED$ ED$D$E $豸 1u 0[^]ËEUt.$ÅtEUEAƋEuɉ$ڶD$ $HÅuʡ>,$X D$C?,$' 1U(EED$D$ u*ED$ ED$D$E $ 1҅t!U1uD$ED$E$‰É$*uD$C?,$蚀 1҉UWVSD$D$ D$)D$)$[8$$|tÉD$D$<$.vƅt5%$=tÉD$D$<$uƅt$sÉD$D$<$uƅt$sÉD$D$(<$quƅth$sÉD$D$4<$2uƅtk)$AsÉD$D$@<$tƅt?$sÉD$D$N<$tƅt $rÉD$D$X<$utƅtxp$rÉD$D$b<$:tƅtx5$ MrÉD$D$r<$st}[^_]ËC$PC$PC$P$vƋC$Pt&C$PC$P#C$PC$PsC$PC$PUWVSu} |$4$Åt ؃[^_]D$.4$蒲XuED$ |$\$4$mE:r t1뱋Ud ,Ed ,Ud , r ugt$$fÅt||$D$$8x~|$4$t>,7|$t$$|E;\$D$?,$} 1D$ ?,${ q xUWVS ‹0t94$׳É4$ͳ É4$ É4$賳 ؃ [^_]Ë@r9t8B9tGYAB 9t B ˹9t B ؃ [^_]ÉU(EEEE,UD$D$ D$D$)$iH3D$D$$6UVSut#4$跲É4$譲 Ã[^]9t%f9t@ Ã[^]úUWVSt=$GÍC|v$D$ ?,$z 1҉ЁĜ[^_]$A;AtA봉4$D$8?,$y 벋ƅx$LE1҅tUXEr(ƅÅtD$t$E$Z_tuC$P랋$ ƃ$+ D$ t$D$$'9Ƅh ,h ,Z $ݝh ,$>ٽ f٭۝٭)Éh , $IƃM D$ t$D$$P9Ƅh ,h , $9ݝh ,$=ٽ f٭۝٭)Éh ,$D$D$D$ 1\ƅ$-E1҅u1ۋfD$\$E$9uӋU`j*`j***E苅‰EEEȄDE艅D$ L$D$$:lj*lj*)**C1)lj<$XDžN$Ë&$׭ ÅEfF ;LuыB;AtfA땋$i>.$LƃP%D$ t$D$$S9Ƅh ,h ,$<]؋h ,E؉$:ٽ f٭۝٭)Éh ,E$ [|yhWFËƋNjudS1h Et,t-t*tt tttA $PUP{ǃ#u$AƅD$ |$D$4$_9D$\$4$'nE4$U@?,@?,DžD$$zEt_ T$ |$D$$ģ9t.EED$8?,$9q tE$ED$B$/U!QR EU1ۋ…3ET 9u݋UF4$PgЋJ;HAAe EEU9.E艅A;AC0AA;A)0AQY)9|\$T$$(ZQY)9|\$T$$ZBZ)9\$D$4$ʤX_Qq)9t$T$$螤pEP$RC$PF4$PG<$PB$PA $PB$PA $PB$PEP$R>c vD$6?,$nn .B$P D$>,$1n A;AF0AKw QY)9|\$T$$9ZT$4L$0D$,T$(L$$D$ T$|$t$\$L$ D$T$ $E$>,٤D$1>,$%m h ,1$>,蟤,$>,艤USDED$ ED$D$RE $ɣ 1ۅu؃D[]EEEEE$蝅Ea tG( ,D$ D$)D$$IEuEP$R؃D[]ÍEÅua uD$6?,$l US$EEEE E$EEËEu EP$R؃$[]US$EE$謄EEGËEu EP$R؃$[]UWVS|@]$3ut$D$$u EUă|~B]$/EËEu EP$R؁|@[^_]Ãv|=@wt\$ D$D$<$E}E$誃EFËEt]9y<$藴l.'| =$EDžVEP$RUS4ED$D$]E $ 1ۅEP u*tD$ u*$PE$6E$躂E_ tQ( ,D$ D$)D$$f1ۋEt؃4[]ËEP$R؃4[]ÍEÅu^ uD$6?,$'i D$?,$i UWVS,ƉӋD$‰$譟D$Ɖ$蒟t{D$$xt-D$4$c,[^_]ÉEC C;CC,[^_]É͉MC S;StBC낉E؋B  S;StBC9B;BtɉBuC <$^Ǎt$C $C 8CM S$Eǁ|$C $|CC$ټEǁ|$C $=CCK$蚼E܉ǁ|$C $tpCCCC*C MCESC MCESC M܍CE؈SvU(EU UEEEU UWVS`֋RV~FVļ[^_]Ë`a`*s`;@?,`*`lj*``j*`B=*LD$*$^Lk`C=*tD$*$6LD$$l`X1)Éh`DždDT$É$螛T$lj$腛dd9h_ uF;FkF뫋D$$0-V^D$$N V<D$$SVD$$.ǚV`YD$$i蜚VD$$FqVF;FNFVF;FHSFVhF;F|.FVKF;FFq6L$$H$LnD$$R賙򋅰VF;FfiFF;F0FVD$$TMV~`B=*D$*$MI8`L$$;1эy'T$$f֘T$<$`T$ |$D$$踙VF;FFFVF;FJTFVF;FlFT߉|F $Á\$F $HFFcӉpF $蓶txD$F $FFF $CǍ\$F $uF 8؉F0VV{FFVeF $lǁ|$F $A(FFE`B=`r*tD$`r*$FTD$$x蟖` $輢$ÉD$$1эyvT$<$;T$ |$D$$3`$n$mÉD$ $#41эyT$<$试1ۉP%T$+$|;Pu׋V;V+BF͋F w$Ǎ\$F $dF 8؉FNVV1F &$謳Ǎ\$F $F 8؉FSVVF $[Ǎ\$F $3F 8؉F.VV1!T$+$39uۋV;VV+BFыF ؉F|VWF;FFF;F6fFF txFpV[F $"Ǎ\$F $F 8؉FFVVVF K$ѱǍ\$F $8F 8؉FTVVF lFiVF $^Ǎ\$F $9FF}`B=*tD$*$qB Ft`Q6DD$$s `Z$`T$ \$D$ $V+F t$fD$F $ĿFF1F1ۉL%T$+$;;Lu׋V;V+BF͋F;F!xFOF;FLF$F;FF{C$P@C$P+F $>ǁ|$F $蟾dFFF 8؉FlV;+F $ɮǁ|$F $*`FFF i$~Á\$F $߽FFF $1Á\$F $蒽FF\`B=*tD$*$,$< d ,t+D$.$|tD$4$u4$zÅt$t_uU؁,[^_]É4$PtC\Gu D$?,$gF 1ۉ؁,[^_]$td#d ,BE$ǬƅtD$D$,$;+F4$PB$P1 G-Htu‹  D$UT$<$TƅD$D$$G;u[uF4$P{[B$PMF4$P19wF4$PiUVS]uC=*tD$*$+$;]…tOt$E D$$r:u*1҅t Ѓ[^]ËF4$P1҉Ѓ[^]úЃ[^]É$9]D$D$ ?,$E Ѓ[^]D$?,$C W9 uD$ ?,$C bUVSu] E$7E] u[^]UVSu] E$3E] u[^]UWVSLlj֋Jʉ rw$D$ ?,$1C 1ۉ؃L[^_]ËP$G7P,9w $)7É$뷋B :#kD$ $.{B8#[/{T$$P?E1<}6}7$B$BD$BD$B D$ ΄BR$T$XE1<]4}$BED$E$莪}BR$T$*^9&BxN80B$11<)}w$~߃UUD$ ?,$@ 1뙃U뺃D$ ?,$@ $)AJNURJ**BiPB1Z1uI1щʃlD$8>,$? 1B BB$щEuE$XÅ`EE8]D$ ?,$P? 1ۋEȅC$P1E̅ÅM̅8}1PQ4 D$\ ?,$> 1PiEE#D$UĉT$$YEE9E uЃ*E*EEE؅E܉…T$E؉D$$'$EU؋tuU܋t\EEԅEE9E|C$P^tnD$ ?,$= 1mB$P뙋B$P{*EE*U:*EE* C$PUWVSEUMuy 1ۉ؃[^_]É4$ÅtEVE9ED$ ?,$< 1ۋEtuC$P11ED$|$$9tUEuڃ*E*ŋMtBU늋C$PeUS$UU11tK}w$~߃D$ ?,$; E E1|tt(UE$1$[]Ã**$[]ÍUE.$[]UWVSE D$E$bÅtdEED$E$ƅt`D$D$$褟Njt4t [^_]ËF4$P[^_]1[^_]ËC$PuދC$P1UVS EED$E $1t$D$D$E$Ƌt [^]ËC$P [^]UE ED$E$UVSu] ED$ ED$\$4$jD[^]UVS u] EED$ ED$\$4$YjD [^]ÐU]ÐUS$$kÅtk ,tjCC CCCCCC D$$`| ,| , ,$_؃[]>a ,UE@]US]>,uCt(( ,D$ D$7D$$ pCCtmS@C@tsSLCLtFS(C(tyS,C,tLS0C0tS4C4tS8C8tS[^]É$vp ,tZp ,t ,u$[^]骐[^]鈑$  냉$$Y9Ðuϡt ,$Y$| y v땐U( ,tÍED$ED$E$$ $ -tD$$7 ,tED$ED$E$A# ,U塰 ,]UEt 8t)]U)]UE ,]U ,tË>,u$ ]UWVSL]$,E̋E u̅}$ ,$]t@*t8ỦT$$GÅt#U t# L[^_]D$ M $/mMyp*D$}̉|$ $菾Åu} *U $Mƻn@=*D$*$?M̉L$$;yÅuD$}̉|$4$ ËẺD$$bgËU B$P} G=*tD$*$ED$ED$ED$ED$ ED$D$4 E $tc M̉L$$L ϿETỦT$$赿M̉L$$^ 袿ED$ D$c:D$ ]։$}̉|$$q|$$bau]~T1эA9u?Y:Y! yu C$P;! )9~!)֍3XrD$ 4$jY…u<  < ẺD$$g 趾ỦT$4$觾>ẺD$$b苾tIỦT$$g ss~1ۋM̉L$$j W9u}̉|$$l =U MM D$< U $QED$M ${QÅ=*${ED$} <$1QÅ{$ƋfuD$@ E $PÅ:=*A$ƋouD$G U $PÅ=*>$~EC$PN ( ,D$ D$D$$ `1 }}D$3UB $1$~Åt>n މt+}̉|$$.É|$$Å]ЅD$ỦT$MЉ $f1р|1 /=G< t< tt& v QF4$PB$PE}̉|$$U ]M̉L$$o E$ẺD$$o +EcC$PdC$PE**$**P W vEt&C$t&PlUWVS,Ë=4?,@D$C D$ CD$CD$$5 ZƋCt$pCB w$T$D$( ,$UE't$\$$=ËEtUtNt t4\$<$ t t,[^_]ËC$P,[^_]ËF4$PB$PEy iZ tuF4$PE 1=(?,{|C=4?,E . E =(?,EL=(?,EED$ED$E$ E$DE$4zÅEEtU;,EP$RE E=D?,EEkaEP$RpEP$RQE E E r>,$# UE]UVS@ED$u܉t$ED$ D$ +E D$E$@Åt ؃@[^]É؃@[^]UVS@ED$u܉t$ E D$D$ +E$荏Åt ؃@[^]É1؃@[^]UVS@ED$u܉t$D$D$ED$ D$ +E D$E$蠋Åt ؃@[^]É؃@[^]UED$D$B( ,$RcUU ,E ,B ,1]UWVE$GQ$oYu">,t?E t&u u ^_]ZU :u [:Bt 1^_]\:Bu]:Bt1UtD$D$E$OttUS4E ppt$ XED$\$E$=OtЁ4[]US$ED$ED$E$ 胇$ ,$PU*zn*tVB=*tD$*$tU$ ËUED$T$E$4 i $BWD$$GÅtfEt`ډ]*uU1 6D$( ,D$E$8B$b}1U\U&EP$RUWVS<>,$i* )}|$ut$]$Y |$t$$c EU$^UÅtU_EJT$ D$ED$$LED$D$$躃…LEЅtUЋUtUtUt t<[^_]ËEP$R<[^_]pD$$ED$$pED$$]B$P&1EP$ReEP$R>B$P**$e/ED$ED$E$>,$a( }܉|$ut$]$Q |$t$$[ $ ,$eM$i.E܉D$ED$E$&$.ED$ED$E$Ut tKUt t+U܅E܋P$REP$RNjEP$R 2t&U$US ,u[]$OÅtFD$$ZD$D$$р7褂 ,p ,X ,t ,pk [Y$[$$I0[v{4ST TI<$ +zw ,~ , , ,$ ,$,K( ,$K[] t&B$P%C$P>,$% t$$G,U.E$QU$…ttËB$Pɍ$S>,uD$$= D$$l$YUWVSL$ƿbt?$9ƅ@=*tD$*$bt 4$Ko$úbt?$}9Å@=*tD$*$bt $n‹MMAD$E؉D$T$|$D$ D$ +M L$E$Džt tRt t8uL} E t $Lc ЃL[^_]1sC$P뽋F4$P$qpt‰$1ƋED$M L$<$qÉ<$}tut$t$$ƋtMtTt{~1҅Y% 1Mt& P bC$P$ E$UF4$PwUD$E D$E$qUWVS,}u ]t?$bt;$Rtj\$t$<$) u0,[^_]E]$!~ED$$,EtUuB$P$}E܉D$$E܅lU܋ZB$PLUD$E D$E$UWVSL}D$u؉t$D$D$ED$ D$ +E D$<$6ÅtvEuu1ۉ؃L[^_]É<$KtD$E D$$9oƉ$d{tËED$ED$4$yËuF4$P뗉UD$ED$ED$ ED$E D$E$UWVSLu tdFtYD$}؉|$D$D$ED$ D$ +E D$E$"~ÅtyEuu1ۉ؃L[^_]1룋E$Jtt$E D$$"nƉ$MztED$ED$4$bËuF4$P딉t&vU(ED$D$ED$ED$ ED$E D$E$UWVS<$q4l~$,-ED$$J1} ы} \9ED$ } <$JE܅މtJE܉$՘*Y9D$>,$ $Ѓ<[^_]<,E܉$聘X9uAUXE$DUT$ D$D$E$E1E$Dt{U$HЃ<[^_]ËU܉$ї}܉<$sÉ<$SHtS+D$>,$ }|$ED$UT$T$ D$} |$E$ƅtEx1҅ 1}EU п9$RYF4$t&P묋ED$D$$FƅtEt C% U ]C$POE $`xÅD$D$U$xLC$P( ,D$ D$D$$/I~$C$P\UD$ ED$E D$E$OUWVSu] EE}t`\$4$Ht#|$\$4$ËMu%؃[^_]É}EE] u[^_]4$E؃[^_]ûZUD$ D$E D$E$UVS@D$u܉t$D$D$ED$ D$ +E D$E$xÅt ؃@[^]É؃@[^]UWVSq؃<[^_]1룉1UWVS,#ƅ1$Dž9$Y7vvEF(%$D!F $)!F D$z$z _G$FD$D$ F $8DBD$n$n^D$1$1^5E]>,A|$4$$赀 ,D$$G8$_=D$b$%8$4Åt 8r1D$$7$$>$qD$bD$-$Å$U+Nu$D$bD$-$Å$+CR;,<$h=L[^_]$26t 8N>,O$>5t?8t:>,D$ D$ D$$99}Å>,>,$L58<,D$ D$ D$$99}ÅG<,Džhhl$;ED$\$$ &3DžPPT$;DžD$\$$2o%>,Y$=ƅ $:NjeF4$PW=;,L[^_]É|$4$6jD$[D$B( ,$387C$P}|$4$iD$w뺋C$PGt&[>,D$ D$ D$$79}Å~>,w1gD$)D$TD$,D$xD$D$D$UU$UWVS ,*I1$Dž$EFD$1$1a[Åt$FD$z$z9[tNtJ$_F A$0FD$D$ F ${>,tu[^_]mt$/<$E$<$4$K1[^_]É4$7D$D$B( ,$G14USEX;p ,uZPu];Cut"D$D$B( ,$0Y4@$$"][]D$DD$p묐Up ,@P 1tED$$ UVSuU p ,@X tT$t$$‰Ѓ[^]Ét$$ 1҅tu ][^]?U8ED$ED$ED$D$ D$D$^E $: 1҅uËED$ED$E$**Up ,H,$1UEJfU(ED$D$E $6 u1ËE$4u**U塌;,t E]e**]UWVSUϋu $EtdED,to{ Cs<$!D$\$E$&cED$<$Et1t E[^_]ËC$PE[^_]þ*늉<$USUM EY8t7D$E$…t'1Ʌu B$P1ɉȃ[]ø*D$$WcUVSUu M^8tV(tEED$ $Åtd=*t9V(F(t t^(1[^]1[^]ËB$P**u$**P1D$$ cV(t tF(덋F(P$RUWVS } 11ۋD,tMu*t$|$$v&b** [^_]D$$b֋h)$~t D,1UD$l+D$E $3 1҅t **Ul+E]U(ED$D$E $>3 1҅tE~$ `**D$?,$1҉U_EUS$p ,ED$D$E $2 u1$[]ÅtSEB **Up ,t@@ E]1]UE E]US$p ,XEED$D$ E $<2 1҅t!E~t[ Et ډЃ$[]D$?,$1҉Ѓ$[]U(ED$ ED$D$6E $1 1҅uËED$E$e‰U@,tCB=*tD$*$et%@,D$ BD$D$$#ZUS]@,ts@=*tD$*$ t@$`ÅtD$@,$It[]ËC]H[]@,t t$@,u뾋B$PUVS]$C'Ɖ$9)ut[^]UWVSD$D$ D$)D$ )$z譱|$E, ,$'UT$D$$1uE%=@D$ D$|D$&, ,$nD$ *D$CD$]$ ,$nD$ *D$CD$f( ,$}nt,Dž||Ĝ[^_]$FrV\$D$qE$$t$D$E$ |$D$E$\$D$E$t$D$E$|$D$E$D$E$D$D$oE$D$^E$UD$D$E$]ttt2$]ÉD$D$E$to$ÉD$D$E$t'D$D$D$ D$D$$ÉD$D$E$ft$ÉD$D$E$.to1$\ÉD$D$E$t&8 $\ÉD$D$E$t4$R\ÉD$D$E$t4$\ÉD$D$E$JtL54$[ÉD$D$E$t$)ÉD$D$E$t$ÉD$D$E$tw$ Džtr)u?)0t0$[Åt"D$<$fCűC$P<$,91ۉ\$D$E$tE0}t$sZÉD$D$E$tU@,hD$D$ E$j|Ĝ[^_]ËG<$P16<$uËG<$PC$P{C$P4C$PC$PC$P\C$PC$PC$PC$P9C$PC$PG<$P8F4$PC$PC$PC$P@$ @,|UWVS } 11ۋD,tMu*t$|$$&W** [^_]D$$V֋h)$rt D,1USp ,@P t?ED$$1Åt*@= u*tD$ u*$(t $UuE []UWVS u D$1p ,@@$Å*u** [^_]D$*D$W$t 1 [^_]Vup ,@@ tD$$]Džu5D$0>,$f1D$,>,$M1oD$D$4$*wD$<$}ZbVZt$D$W$(19UWVSÉ׉΍ED$ED$E$8p ,@@ \$$|Å$T9t~ED$ t$D$4$\$4$ւu~vN\$$=趂t:|$ D$ D$$=&ED$t$<$"ED$ED$E$W[^_]|$4$;"lUME E$( ,UME E$$ ,UVSp ,P4X8p<@4@8@<ttt t|D$*D$ljp ,@@ $D$*D$wjp ,@@ $D$*D$jp ,@@ $**[^]ËF4$PvC$PYB$P8UWVSuD$:$Mu$DE12)D$4$UtZD$|$E$;tcsD$:4$ÅuD$4$zÉ)D$4$UuUtv$KEp ,@X utrUT$D$\$nu(Ut[^_]ËBUH[^_]$ahʋB$P$KQE|D$\$tD$\$]|UWVS,E1E &}E <$ƅt)p ,@@ DžtD$\$^p ,@X t$D$$Ht\E }‰ׄuh1D$$SÅ\$D$$4Zu F4$P,[^_]Å:D$D$$~~Ƅ/D$/$gtOD$/$d\$$I#D$/$T$$$#:|$$!tD$/$[)؍PDž)$=1D$\$4$y9$PuЋ1C$PK:C.:C:CL:C7D$$xD$$[$wv $$bF4$P1UE D$D$`)E$y/ US]$, 0,1U 0,St tVS t t6$- 0, 0,0,t~,[]É][]C P$R뼋B$P럃[]UWVS ]} uS1t t$$ׅuS tu U [^_] [^_]US]St tFS t tCC []ËC P$RCC []ËB$PUWVS u~8_0t*{)t!D$h$! [^_]Á~*u$)6EMtԅtEXp F,t$U$Et `,~D$ $ Ĝ[^_]Í ,B`,ϋpUM,,UM쉔,,p ,@p >,Xt$ED$$,| $$h%D$/$I D$D$$, =,/tID$$3 ,=,. L$$, D$D$,4$R ED$D$$,u8&D$D$4$Ƅ/t81щt;/tS Ӄ;/tuD$L$4$ D$D$4$z1щ>D$L$$!,% D$:$!,t)!, m!,Dž1!,ѻ!,t*!,!,/t ,ȃ) Ӄ;/uD$D$!,$|ƅH 1эt%ˀ;/tSȃ6 Ӄ;/u1э1уƄ 2Ƅ 4 D$: $C D$D$$,),,rDž1t11!,щ )pZD$:$€;/tuӺ1щэ41эѿ,ى $ D$ $D$)$D$ $D$)$DžP+1эCˉD$L$$dD$: $OƋ8/t,D$!, $<D$)$&_D$ $D$)$D$, $,1!,ѻ!,t*!,!,/t ,ȃ Ӄ;/u1!,ѻ!,t*!,!,/t ,ȃ Ӄ;/u=!,1,ѻ,t*,,/t,ȃ Ӄ;/u1,ѻ,t*,,/t,ȃӃ;/u1,ѻ,t*,,/t,ȃӃ;/u=,L [^_]á>,-( ,D$ D$9D$$;/SӃ;/ut$$!,s!,D$D$!,$u%=/D$$!,.!,!,^1!,у)!,Em!,6L$D$!,$u%=;!,уw\@1 <,u|D$$!,^L$D$!,$u%=ƀ!,1!,ѻ!,!,!,/ ,Ӄ;/u퍘!,!,D$D$$!,)!,m!,L$D$!,$u%=!,уwI@1<,D$$!,L$D$!,$#b>,D$D$$!,)!,DžJˀ;/SȃӃ;/uD$)$,RL [^_]Åuv^D$:$ƅ)؉=v D$\$$,=Ƈ,,6L$D$,$u%=]IT, D$\$$,xQ$bmD$)$!,%D$D$$,KL [^_]D$D$$!,$D$D$ $,=,/Y,Ot$$,s,L$D$,$u%=/D$$,.,_=,1,эY),(,L$D$,$u%=@Dƃ,,ѻ,^,,/K,Ӄ;/3u퍘,=,(D$D$$,I),J,;L$D$,$u%=@tj>,D$D$$,,DžXD$D$$, Dž&!,( ,D$ D$*D$$( ,D$ D$!D$$@,,~,, !,!,E%=Džt$$!,D/t$$,/=|//( ,D$ D$:D$$,( ,D$ D$7D$$dqt$$!,!,!,m!,L$D$!,$u%=1!,у@1<,u|D$$!,L$D$!,$_%=IDž,ѻ,uDžc,,/tߍ, Ӄ;/t˃u,U,t,1,U,t,,U,t!,!,U,t,ÐUS]C@U@t#t $ЅtSB~B1[]U<)**]U<)**]U<)E]ߜUD$%,D$#E $1҅t **U%,E E}]GUD$4)D$ )D$ )D$/E $1҅t **U4)D$ )D$ )D$$BӄUVSuE X~#;p t1҃9tA9u[^]1[^]UWVS$ DžtrEU)U)9u X69utQ^ C@\9] t9tU T$D$*e$Ѕtω\$<$ yt$1[^_]ÃE}{[^_]ËG<$P1UED$E $` UWVS$.EtjE P~U1_ C@U@t;t $҅t"C@\tUT$D$#f$Ѕu-E P9|E[^_]EE[^_]ËUuB$PEUWVS $vƅt]EU))9tC 9tD$4$T u9uE}u [^_]Ët 1 [^_]ËF4$P1USD$D$ D$@)D$)$~4uá%,D$D$H$wD$D$P$xD$D$\$xD$D$n$rxxlD$D$$VxxPD$D$$:xx4D$ D$$xxD$>D$$x[]$%,UE ]UVSu^{t $詘C)F)@C)X[^]UMAxt@@QQBA]USM] QBB D$ $t X[]Ã[]USMY{tCQQBA)~)][]UVS]u C@U@tt $Ѕt Kyt 1[^]ËASBFANsA1[^]UVS]u C@U@t"t $ЅtKAt't 1[^]ËASBFANsA1[^]UMAxt@@QQBA]UVSu^{t $詖C)F)@C)X[^]UWVSlE %,%,UU )Ex1Ҹ)@9U}E~K1M4)1ۍ))9tFB)F0))9}uƋU)U}29t F F69u9t"C PD$D$c$R\9uލEEE9u)UCBEC]M C9t0ӋCtҍC PR\Ct$D$Ej$ҋ9u9ut9tMABFAv6E܉EE܋]M9uS 3B=n*"@Ut3t!CBEC]E܉CU9u]܍M9t$C PM܉L$D$i$R\E9u܋]EU9u \6M9tPE%,t^ t {n*)t҉\$ C@ D$D$$6M9u]EЉEԉEЉލM9V 6B@T@tM@h<~Ct=$菙K tKytASBEԉAMԉEЉCuÍU9uMEύE9tZY s \$D$ 4$Z…VM9EύE9uUUU]ߍE9ths %, F@`tC 4$ЋC C ]9uCBMACY C]ߍE9u]܍U91%, U9tOts t ~n*t؉t$ F@ D$D$$5%,U9uMMt%E y|$}}|$$u܋%,M9tP^ %, u&C=n*G@Ut't\$%,$|x/6E9uU܍M9tMABEAE܉EE莩t!%,$$*El[^_]Ét$%,$]SC$PM9ABUBAJMnB$PF4$P]4$lv{ %,D$$$U<:} %,D$$mF@Et&@=*D$*$t$ D$D$$ %,Cxt&G=*D$*$苙\$ D$D$$WED$$D$h11ۍ))19t 9uL$$]u$bFM)EeE$<$ CÍvq1%,$ 3 %,`$$蹎O$%,$菎$%,6USE $Åty@)) )9~ <)tu C []á%,uVu%,)B49B8!u%,벃[]QU1%,t%,*%,U1 %,u%,%,E EnuUSMY{tCQQBA)~)][]UVSuF $Å@)) )9C t p[^]á<)ttܡ%,uu%,)B49B8u%,聸듉ȍUWVS u} FF $Å@)) )9C t xp [^_]á<)t܅tء%,uu%,)B49B8u%,護돉ȉ␐US]D$C$C$C$S][]@UVS u EED$D$4$1҅u Ѓ [^]ËED$E@$\E$tE$v‰Ѓ [^]Ã**Ѓ [^]US]D$C$uC$**[]ËC$D$%,$-1[]US]D$C$tC$lE[]鳉E[]颉UE D$ED$$*UWVS ]u }T*9uAt-4$t!D$?,$q1҉Ѓ [^_]Åt <$uD$$Åttts t{C\$$HCt7莊Ct+w…t7CD$CD$$څft#1҉Ѓ [^_]D$ ?,$詫ҋC$P1ҍv%UWVS ]} uC t t$$ׅu(Ct t$$ׅuCtt$$ׅt [^_]1 [^_]US]StCt}S tC tVStCt2StCt1[]ËB$P1[]ËB$PËB$vP뜋B$PsUVSuFtXutO@tH$1wÅt:S@t%FD$$ՏtFD$C@$$wÅuƉ4$Fu[^]UWVSuDžtMFD$<$pÅtQV9ttFt^؃[^_]ËB$PD$ ?,$膩1Åu1ÉD$FD$<$pEtlUxԋVtFt[^F;T*gFD$F D$4$҅LFD$<$ߏ16C$Pt&녋B$Pt&UVS]u 1҅t/{*tu ][^]t$$…t݃Ѓ[^]UWVS u} ]]t]} u [^_] [^_]UEPt@D$,?,$1UVS]$}uƉ$ C D$CD$C$* …CtzCt^S t t $4$/nr[^]C P$R$x4$n[r[^]CP$R딋CP$RuB$PY>,$guP$0$芥t@D$D$C$7$b$虆UD$( ,D$C$sUS$EED$ED$ ED$D$E $T1҅uЃ$[]ËE$4E@=*tD$*$Et"@=`*tD$`*$׌$Åt[p ,@USECEC EEt_\$$u|t:$謙‰Ѓ$[]訮D$?,$N1D$L%,$2EtuEtYUt tf$#1D$4?,$1D$(?,$Ĥ1xEP$R뙋EP$RzEP$RU>,$S1U**US$ )H1҅t&CڅtЃ[]É$ND$d%,$1҉Ѓ[]Ut E"D$x%,$ڣ1UVS $*D$D$ D$)D$)$a\Ɖ$/D$D$$%,D$D$$Hx) ) )D$ )D$$D$*D$4$<^x [^] [^]ÐU>,$謢1US]J;H',ttD$$[]Ã$%,@%,D$$U(ED$D$hE $a1҅uËE$$n‰U(ED$ ED$D$pE $1Ʌu;L',u}UB?E;,%,t~1;0%,t$UL$$E D%,@%,EUED%,D$?,$e1ɉùD$z?,$C1ɉD$?,$(1ɉá>,$/1ɉU(ED$D$E $1҅tUB?wD%,D$z?,$軠1҉UWVSgL',$H',D$D$ D$*D$ *$sX$$0%, D$D$<$0 $ ,%,D$D$<$$AÅD$D$<$ɕD$T<$胨(%,p@%,@%,!VC *C At)4$a}Cu̡0%,C Auס0%,9T%,$MÉD$D$<$tu C$P$ÉD$D$<$Ŕtu C$P$ْÉD$D$<$苔tu C$P$蟒ÉD$D$<$Qtu C$P$eÉD$D$<$tu C$P$+ÉD$D$<$ݓtu C$P$ÉD$D$<$裓tu C$P$跑ÉD$D$<$itu C$P$ }ÉD$D$<$/tu C$P$CÉD$D$<$tu C$P$ ÉD$D$<$軒tu C$P$ϐÉD$D$<$聒tu C$P$ 蕐ÉD$D$<$Gtu C$P$[ÉD$D$<$ tu C$P$!ÉD$D$<$ӑtu C$P$ ÉD$D$'<$虑tu C$P$ 譏ÉD$D$/<$_tu C$P$sÉD$D$7<$%tu C$P$9ÉD$D$><$tu C$P$ÉD$D$F<$豐tu C$P$ŎÉD$D$M<$wtu C$P$苎ÉD$D$S<$=tu C$P$QÉD$D$Z<$tu C$P$ÉD$D$c<$ɏtu C$P$ݍÉD$D$k<$菏tu C$P$裍ÉD$D$s<$Utu C$P$iÉD$D${<$tu C$P$/ÉD$D$<$tu C$P$ÉD$D$<$觎tu C$P$軌ÉD$D$<$mtu C$P$职ÉD$D$<$3tu C$P$GÉD$D$<$tu C$P$ ÉD$D$<$迍tu C$P$ҋÉD$D$<$脍tu C$P$藋ÉD$D$<$Itu C$P[^_]閌[^_]á,%,C C$PP(%,T%,t((%,T%,D$$u %,T%,P$RUWVS $%,u 1[^_]U;L',uE@%, AtpStED$t$$[CtpD$D$C $Et4EtDUuB$P$%,1[^_]ËG<$PE*NUS$1҅u **Ѓ[]U]U$%,P%,D$$UD$s$sUWVS %,D$$Us %,E@%, E}Att_ GG ƃ}t/tс*t#;0%,t;,%,tD$E$rtuC$PE}Au(%,t tv(%,0%,t tL0%,,%,t t,%, [^_]ËB$P,%, [^_]ËB$P멋B$P|UP%,u1舻;L',uP%,Ut_L',H',UWVS ED$E D$E$h',1t{4*t u [^_]á**tC(C(C4$**PC(C(C4U(EED$D$,E $1҅tEt`',**á`',$qo‰UVS0ED$ED$ ;,D$D$,E $w1҅t?iƋED$E$É4$E$D1$n‰Ѓ0[^]UVS ED$D$,E $1҅t&ËE$-Ɖ$"4$‰Ѓ [^]UWVS,ÉU܉ϋ@=*tD$*$xt|$(]C@0$PHÅ$E{Ƌt|E܉0EV$$]5M}E fEm]mE1҅x0Ѓ,[^_]É$zÃt5E܉1҉Ѓ,[^_]Ѓ,[^_]ËC$Pv@tЃ,[^_]U(ED$D$-E $u1ËE$U*E魄U6E附UBE酄UξEqUE]UVEIUBE5UVS0EEED$ED$ED$ ;,D$D$-E $1u 0[^]ËED$ED$E$賿Ɖ$xE$}4$螃Ɖ0[^]Ë]\$P?,$聐Ɖ$LU(ED$D$-E $)1҅uËE$$k‰U(ED$D$-E $1҅uËE% $݂‰U(ED$D$-E $1҅uËE 0 $蓂‰UWVS,ED$ ED$D$'-E $91҅tKUuʉ% UEE01 %1҉¸ $‰Ѓ,[^_]UWVS,ED$ ED$D$2-E $u 1,[^_]ËEP*tD$*$rttNE${ƉӂudÉt$|$E$Ɖ$x"**눋E$vƉ뭡>,$&1`US$] ED$D$?-$1҅uЃ$[]ËE$C D$d',$su**Ѓ$[]KU(ED$D$J-E $1҅uËE$ʼt$‰D$2?,$<1҉U(EED$D$U-E $1҅uËE%$h‰U(EED$D$a-E $1҅u1}$uh‰U(EED$D$n-E $1҅u1}$-h‰U(EED$D${-E $>1҅uE$$g‰U(EED$D$-E $1҅u1E$g‰U(EED$D$-E $1҅uED$$}P‰U(EED$D$-E $Z1҅uËED$$}O‰U(EED$D$-E $ 1҅uED$$}hO‰UWVSLELEUHUE8U,$'~x܋ED$E$賷ƅt$É4$[ÉUS4D$3>,$}1҅x]$t$‰Ѓ4[]D$-D$$>:MD$P?,$|1UWVSÉUMu@=*t|D$*$hnueC=*tD$*$Jnt{]tRE ~];uv<]E<؋D$U$}ЉԋUC[^_]D$<3?,$1[^_]D$\3?,$Æ1GUUEU EG*]US$ED$D$ ɝED$D$-E $n1҅uЃ$[])ED$E$u$tt*ED$P?,$H1밉$:z‰Ѓ$[]áP?,$ 1UEU EL*].UEU E`H*]UE E EE]鄴UWVSÉUMD$ ÞD$T$$GcEEt[1 9}tJF$pyÅtnD$D$E${t@uC$P9}uED$UT$E$@[^_]Ëu C$PUt [^_]ËB$PUJUHD$E$Qu#E\$E\$ E\$$0ID$3P?,$=1UWVSD$D$ D$*D$*$_{u5UD$D$-E$?[^_]ËF4$PtvwtD$=4$_Åt)D$4$ƅtPC$ÅFt$E$htuC$P|t&xmD$D$-U$>.D$D$-E$> D$D$.U$>D$D$%E$>D$D$-U$p>D$D$c-E$M>D$D$.U$*>\D$D$.E$>9D$D$.U$=D$D$".E$=D$D$+.U$=D$D$2.E${=D$D$;.U$X=D$D$F.E$5=gD$D$O.U$=DD$D$W.E$<!D$D$_.U$<D$D$f.E$<D$@D$o.U$<D$D$w.E$c<D$D$r"U$@<rD$D$~.E$<OD$@D$.U$;,D$D$.E$; D$D$.U$;D$D$.E$;D$@D$.U$n;D$AD$.E$K;}D$BD$.U$(;ZD$CD$.E$;7D$DD$.U$:D$ED$.E$:D$FD$.U$:D$GD$.E$y:D$HD$/U$V:D$ID$/E$3:eD$JD$/U$:BD$KD$'/E$9D$LD$3/U$9D$MD$?/E$9D$ND$I/U$9E$/G*E$S/L*krU$a/`H*IPP?,P?,D$D$U$7d',u 2[d',`*o/ *h*P8 *h*P@ *h*PHD$`*$@(,G(,h',(,@(,D$@(,D$u/E$X7*/D$*$',=G',D$',D$/U$7Uq]F4$POB$PD$D$-E$7\$t$U$aaqt&RUWVSED$D$/E $G1҅u Ё[^_],D$|$E$Ɖ$Cxt$<$‰Ё[^_]ËED$P?,${UWVSED$D$/E $話1҅u Ё[^_]Í}|$E$蛰Ɖ$1҅t-ED$P?,${‰Ё[^_]`rM‰Ё[^_]U(ED$D$/E $1҅uËE$@t$‰áP?,$z‰US]$٫t$W[]áP?,$z[]UWVSD$<$[É4$t<$[^_]áP?,$Pz[^_]UWVS, D$$É4$>tCD$ /;,D$1уL$$`,[^_]áP?,$y,[^_]US$ED$D$/E $聯1҅uЃ$[]<E$u u$rl‰Ѓ$[]áP?,$ByUVS0EE;,ML$\$ML$ \$T$$1҅u Ѓ0[^]ËED$E$։Ɖ$E$货E$詧u**Ѓ0[^]áP?,$x‰Ѓ0[^]UE E EZ/]&UE E E R/]UE E EW/]U(ED$D$/E $1҅uËE$dEx$j‰áP?,$w‰UWVSƍn<$;É4$xCrD$1D$D$ D$|$$0;Ĭ[^_]áP?,$@wĬ[^_]UHE$覫tC5P<$\$$}\$}\$}\$ }\$$ 0;;áP?,$vUWVS\ED$ED$ED$ ;,D$D$0E $w EP*tD$*$;\E$dEE> E$EtP$E]ȅ~C}1;,t$E$UЉ|$ \$D$3$9uu‹EȋUE$iJƅtP$rED$D$E$LED$D$ytE$LEċU^VUB=*tD$*$ZUċB=*tD$*$ZE7ẺD$U$!ËẺD$Uĉ$ DžyqED$D$\4$蕪RED$D$4<$v3$É<$ǃ$ÅED$ED$ D$0|$$8E̋UE9 QD$(4?,$rE$׼uȅE$}ątUċutUE$g1\[^_]ËEP*tD$*$(Yt?E$\FEE E$D$3?,$qD$3?,$qp{uEE1ۋU$贡9uB$P(B$P1UT$ED$E$P?,$lrẼU1x$V9ueYzMzẼ뻸USXÃt#t ][] e%][]dP?,E[]qU(D$D$ D$ED$E$,tP?,$qËED$ED$$%05US$ED$ D$D$E$,Ãt(tED$\$$%05$[]IܡP?,$q$[]UWVS |$$HÅxn$轈t [^_]1A 9tՋ$c…uڋt%Dž먡P?,$ZpDž돋B$PDžwUVSË0't$3[^]Ë u D$4P?,$n13[^]áP?,$o13[^]U(ED$ ED$D$*0E $菥1҅uËED$E$!t**áP?,$bo‰U(ED$ ED$D$20E $$1҅uËED$E$Ɵt**áP?,$n‰UVS0E|EED$ED$ ED$D$<0E $袤1ۅU  9;99u:BG09BËED$E$ߞƉ$dD$ @TED$ED$4$ÅtED$$؃0[^]:BP:B@E|m;:B3;:Bt"H0:B<I0:B,EC :BtP?,$]mÉ؃0[^]U(ED$D$J0E $!1҅uËE$Zx**áP?,$l‰U(ED$D$}E $Ţ1҅uËE$~x**áP?,$l‰U(ED$D$}E $i1҅uËE$蒞x**áP?,$Dl‰U(ED$ ED$D$5AE $1҅uËED$E$踠x**áP?,$k‰U(ED$ ED$D$5AE $蜡1҅uËED$E$ޞx**áP?,$pk‰U(ED$D$S0E $91҅uËE$"x**áP?,$k‰UWVS,ED$D$\0E $נu 1,[^_]ËE$&tME$.=<JD$4$跙 **,[^_]D$4?,$Li1DžfC=*tD$*$ P$k^8tm;8T$E$2Å@=*tD$*$OY$TR눋C$P눡P?,$yiD$e0?,$Eh1vD$0?,$)hPC$P1BD$u0U(ED$D$0E $1҅uËE$袜x$[‰áP?,$h‰U貕x**áP?,EhUVS EmÍE$1Ɖ$tED$t$$5A, [^]áP?,$:h [^]US$EED$ ED$D$0E $1҅uЃ$[]ËED$ED$E$E$Ut!ED$T$$5A,‰Ѓ$[]áP?,$g‰Ѓ$[]U(ED$D$0E $Z1҅uËE$胝x$cZ‰áP?,$7g‰U#x**áP?,EgU(ED$ ED$D$0E $Μ1҅uËED$E$@x**áP?,$f‰U(ED$D$0E $k1҅uËE$褖x$tY‰áP?,$Hf‰U(ED$ ED$D$0E $ 1҅uËED$E$蜛x**áP?,$e‰UVS ED$D$0E $襛1҅u Ѓ [^]ËE$rƉ$x**Ѓ [^]áP?,$eeUS$ED$D$0E $/1҅uЃ$[]ËE$荛E$AEx$X‰Ѓ$[]áP?,$dUVS ED$ ED$D$0E $豚1҅u Ѓ [^]ƋED$E$wÉ4$x**Ѓ [^]áP?,$jdUWVS,ED$ED$ ED$D$0E $$u 1,[^_]ËEt|EP*tD$*$ItrE$Ɖ*XuËED$ t$|$E$Ɖ׉$xI4$|$cExElE$(LƉELP?,$McUVS ED$ ED$D$1E $u 1 [^]ËED$$EtƋ]E$\$D$E$-É4$x;]t\$E$E됋EtP?,$bpEP$RUS$ED$ED$ ED$D$1E $;1҅uЃ$[]%ËED$ED$E$ˏE$?Ex$U‰Ѓ$[]áP?,$aUWVS,E|EED$ED$ ED$D$1E $虗1ۅtzU tP$ E؅4u܅~Cu1;,|$E$Ut$ \$D${$9}u‹U܋ED$E$茋}܅oE؉$誢E$肈P?,$Y‰Ѓ<[^_]ËEP*tD$*$4?E$d,EE 1ۋU؋$9]utNE؉$D$(5?,$WE$݇1҉Ѓ<[^_]ËE$Ƈ`G1ۋU؋$誇9uD$5UWVSlE(U,EUE@UDEUUʼnׄtu6t\t t[^_]ËC]H[^_]\$t$E$0t$\$U$/uF4$PUVS D$D$ D$M*D$),$U$$< 8ډ)$9'8ډ$8/8ډ$O78ډ$?8ډ$F8ډ$#L8ډ$kT8ډ$Y]8ډ$Qj8ډl$%r8ډW$xy8ډB$g8ډ-$e8ډ$t8ډ$?8ډ$ 8ډ$X8ډ$V8ډ$8ډ$"8ډ$S8ډp$.8ډ[$h8ډF$b8ډ1$_8ډ$N8ډ$ 9ډ$$ 9ډ$9ډ$U!9ډ$^*9ډ$>:9ډ$;@9ډt$#G9ډ_$mQ9ډJ$^9ډ5$e9ډ $sm9ډ $y9ډ$A9ډt [^]ËC$P [^]ÐUSD$D$ D$P*D$R*$emD$O*$ ),  ),D$ ),D$9$D$ ),D$%:$[]UVS$ ),Å$"C F$ CF$2CF $r2CFtw$ޤCFtU$̤C Ft3$躤C$m3u ؃[^]Ëta1ۉ؃[^]C$**C **C**C**CC **C$P1{UVS$nVƅttskqt9ÅtPD$4$[u,uыC$P3quys[^]Ëu C$Pt 1[^]ËF4$P1U(ED$D$2:E $s1҅uËE$$st ‰ËED$D$h:>,$=1҉U(ED$D$=:E $Us1҅uËE$lt ‰ËED$D$H:>,$=1҉ÐUEw@_*]US]v؃[]Éڍ=v Ӊ؃[]DjU]USӃw$X<_1[]ÃwX*whX*ԃwX*É$}빉$s막$띉$닉$i#[]É$N^$%N$ >$%._%몉$v7$*X*_X*u^rXtX*X*uX*X$$$$$t&qXUWVS É׉f1EUEsw$<EE [^_]1}E;>s 1}E;>tls륋6KEtux%Љu,43_vs$MtESUus$ˉ;{vύs CUWVS É׉f1EUEsw$=EE [^_]1}E;>s 1}E;>tls륋6KEtux%Љu,43_vs$MtESUus$ˉ;{vύs CUWVSLEEEEE܉D$ ED$ED$ED$D$*ED$ ED$D$:E $mu 1L[^_]ËE@EU*U*$?~UЉT$D$U*$PTE̅tUЉP$~Q1$- F(9}t5E@ C=*tD$*$uÉ$F(~+uOEEỦBEBEB EtEỦBE܅tE܋ỦBB Ẻ$1UE E}]UWVS,É׉M܋@=*t\D$*$_uHCpPttFtD$$Ѓt?D$:?,$*51,[^_]ËC Es7E܉E,[^_]ÍED$D$$Ex_$ƋC=*tAD$*$u-9ut(69EtD$(;?,$41눺tD$;?,$q41bUWVS,EUGt1ntD$D@>,$-41,[^_]Ã**,[^_]ËX ۃV*V*${\$D$V*$Q1tEFUBBF FUB F$E@EURUUB+E}F(U+E}F,EH ~l1EAD(tDT(t<_+E}D(UD(+E}D4EUE;P }"ߍOU;J$~_D4D(ϋUBFBFB F ,[^_]<1,[^_]D$ @>,$21UWVSLuEEED$ED$ ED$D$=;E $yiu 1L[^_]áW*$zD$W*$OEȅt҉ËEE̋EEЋ} D$\D$$)iC$C MUaEЅE9E~EЋE̅E9E~E̋USKEȉCU̍S {EЉCẺCFt"ǃX}tIEȉpE t ǃXǃX1EeEoEȉ$L{1US]C t$xSt tXSt t8St t ][]zCP$R][]zCP$R뺋CP$RUWVS ׉΅u 1ۉ؃ [^_]É$Åt$Et\Etɉ|$E$SWNjUtBtt$<$Ët2uF4$PvC$P똋B$P뱋G<$Pt&UVSE D$E$Åu 1ۉ؃[^]D$C<$VƋt,tD$*4$EËuF4$P뮋C$PUD$p@?,$,/1UD$@?,$ /1UWVS]E ED$\$$Y*Et[^_]$J;uuCC[^_]øutn0uuC CE E}[^_]R; uuCt CbED$,?,$-.1GUS]St tGS t t'Cu CP$R][]wC P$RˋCP$RUVSƉӋB=*tD$*$t s[^]ËF@t\$$Åt9@=*t*D$*$7uuC$P뢋s"US$]ED$D$];E $c1҅t1ED$ \$CD$$f;Q1‰Ѓ$[]UWVSME},}E@(E$ÅtPU$t-C <$tCM\ ME}9O$끋u C$PlF4$P1US$ED$ ED$D$5AE $MX1҅t%Eu& ubEv?D$$}‰Ѓ$[]Ë]vZ\$$}x‰Ѓ$[]@_*D$$}W븋E$D$$}8‰Ѓ$[]Éڍ=v+OUWVS,E؉׋@ E܋U؋PދLS 9s9M؋HE P@x uMU؋2qQ :uJ u5BTuV ыZڋu^ w$=,[^_]ËE)9vMEPʋM MuF{PttHM wd$>\$M؋H$gTU؉HLP}] E>uFU؉EPUDM;A$%΋L(t,9EPEP99U9tU;B$}֋T(D,t t97AEP _UB9E$MXËuF $UX9XV V FQҋMA)Ћu؉;F$PދU؋LS 9J9\}BM؋HEЉE PEB MA B uUbMq $8>u؋v$uԋEpM؋A uFE؋TNMԅ~zLPE439~;9}M؋HEЉEڃ(|$D$$3REP^PMQ 2V EUZB ҋM؋P)ЍXPUuV9UAV V F>MQ .Ur9uS9IQMQ q tU؉B u؋F$9~,X9~D(1҉)މ9uE؉H$u؋UBD(EP P E؋TUJdBM؉JZA;X u؋PދU؋LS 99V}M؋HEЉE2 U؉PM@MQR P uEu;F$t(|,9 UBt&=$UXË$MX9UBB99EwuF9E$UX‹F WUB9EHv7MQ Q AMA9EpqAuV)‹E؉E;PD PދU؋LS 99}hM؋HEЉE PEB uF9Ez X*fpEp$MA9EI$uXËUB $X9$JUBMQA BQu؋TB A@ATAPދU؋LS 9 9M } M؋HEЉE 2 U؉PEAEP A uMuVEA9E E؋PCM؋TuFFNVA;PE؋PދLS 9D 9u}]M؋HEЉE2 U؉PM@guVEA9E9E؉V J\ F< u؋v$EpM؋A uFB=d Eu9FBM؉PދLS 9 9}M؋HEЉE 2 U؉PEA FEp9u9Z}v /EU}uUBM؉A$BA rrZZEP E9ZM؋P=}uUjjBM؉A$BA uV EBU9B|UBM؉PދLS 990}M؋HEЉE 2 U؉PEA }UBM؉uV EEMUHMPEU?}tuV V UB7RPM؋PPUuF~)Í[PE؋P0E uFtF~)Ǎ_E؉PU؋P}uFU؉TFEU^}uFU؉TFFB$FB NVB@9r = M؋PދLS 99M؋HEЉE2 U؉PM@zUB@ M؉TB$_$m$[$I>_4,U؋PBVUrM؉1PދLS 99F},M؋HEЉE PEB MA B uUu؋F$UBF BA TPދM؋LS 9(9 }M؋HEЉE PEBMA B uU'@9=U؋A TPދLS 9I9j}PM؋HEЉE PEBpuV ‰F M؋HQSMQ uV Au9+F$EԋUBF BMԅLPE439~;9}M؋HEЉEڃ(|$D$$`BEP^PM؋LS9H9}M؋Hu։uF@E؃PVM؋BPދLS 99e} M؋HEЉE2 U؉PM@>uFVFU؉PUbE؉V J E MUHMÉA4qqQ ;Zf<9M؋I$EHM؋A MA<LEHxM؋HM؋HHM؋HM؋H/~M؋HNQ MQ +\$M؋H$ @:U؉HLPf Em MUHMQ ;BAAmEp9uv B9GEP E؋HM؋H\\$U؋H$@?U؉HLP M؋HM؋HMq9uZB EpM؋HU؋PM؋HUHu\$H$l>U؉HLPE؋H\$M؋H$>>U؉HLP>\$M؋H$=U؉HLP]E؋H E؋H\$M؋H$W=U؉HLPWE؋HE؋H\$M؋H$<U؉HLP1u؋H$>džHEǀPǀLMQ ~M؋HA U؋PT\$H$'<TU؉HLP#M؋Hu-E؋H\$H$;U؉HLPpE؉0EPU\$U؋H$U;U؉HLPM؋H\$H$:(U؉HLPQ1 111E؋H\$M؋H$:U؉HLPIE؋H\$H$(:UU؉HLP6[E؋HEUU4։űMMȉ)ƍVUMDE1ҋ u9 ttuu; u9UEE9]wNM;]t9]E;u_Vt{ufEEEEECEtEGUĉEuSỦHMȋ8NMEEEE@_Cu;3t9]wUWVS ƉӋUx U)9~ t<w $h>9vډ| u+E [^_]9v8M X*u|E;}wMM) [^_]Ë[9w E)U$X9E;}wEE)빋C9v;tE;}M;uM)뎋[9vU$X9E;}wUUE)SC9W;OE;}vgM;tM90EtE;}w8})MM)MM;EE)UWVS<[^_]ËE)9v‹EEPƋUԋUЋMԋA{PtzUȋHMMԃ wd$P?\$MȋH$m0QUȉHLP} E=ڐEԋPEC9EJ Mȉ]ԋK AQC<]ȋS$uԉVC FA=EMԉ9A;BMȉPދLS 99}MȋHEЉEԍ 2 UȉP]ЉA EԋP A uЉMuԋFUȉEPuGuԋV9U&xX*zEԉxUUԋB9ExzUUԋB+CMȉE;APދLS 9|9}MȋHEЉE P]ЉB MԋA B uЉUԉuԋF+CUȉ;BPދLS 99}~MȋHEЉE P]ЉB x]ԋ{ $?uȋV$EԉPF ]ԉCTuԉ^~~EȋLP439~;9y}MȋHEЉEԉڃ(|$D$$u-]P^uȉPEԋH <EEԋP*@ ҋMȋP)ЍXPuUԋB9E]ԋK K CUsM;A$\(D,E؅~v9nvEԋx9}̐U8JىEԉPE)؍9 ;U$A:tuԋF9E$UXËF $MX9N N FUtuȉF UȋB$9~,X9~D(1҉)މ9uEȉH$]ȋUԋBD(J J U,MԋA9EKC谼8]ԋK  K CUuԋF9E$UX‹F cN  N FUEԋP9U;K]ԉK z{Uu]ԋC9E$uXËUԋB $X9e$v;'ËEԉXPMԋA BQ]ȋTB A@ATAuȋPދUȋLS 9 9e}MȋHEЉEԍ 2 UȉP]ЉAEԋP EuԋVEC9E uȋPEȋTUԉZBMȉZ3rC;pH 3PދLS 9= 9} MȋHEЉEԍ2 UȉPMЉ@]ԋSR P uЉEԉ}MȋT]ԉC]CKSA;PQ uȋPދUȋLS 9e 9}MȋHEЉEԍ2 UȉPMЉ@MU;B$}ыT(D,t t9G C ]ԉK U];C$t(u|,9 ]ԋC9Eu$UX$MX9]ԋCC9? 9Ewt ]ԉK U3EԋP9UR;B}vZ Eu2}uuԋFUȉB$FB ~~Mԋqq]ԋK E9qUȋP}uUԃjjBMȉA$BA J EA]9CuԋFUȉPދLS 99 }GMȋHEЉEԍ 2 UȉP]ЉA EԋP UԋB@ MȉTB$'} uȋP}UԋBMȉ]ԋS Ej-UЋuHUԅPEu},t]ԋK  K UU$vB$e/?_EȋP@9=UȋC TPދLS 99 }{ MȋHEЉE P]ЉBMԋA B uЉUԉ]ԋK C U5MȋH]ȋC$uԉFC FA TEȋPދLS 99~} MȋHEЉE P]ЉBNA<uԋ~Eȉ8PދUȋLS 99}MȋHEЉE P]ЉB MԋA B uЉUԉNUԉJ UK uԉN UCM9A3Q$]ԉSA C/uȋLP439~;9l}MȋHEЉEԉڃ(|$D$$]P^uȉPUȋLS9f9}MȋHu։uԋF@EȃPVMȋBPދLS 99}MȋHEЉEԍ2 UȉPMЉ@uԋFVFUȉPuEȉV J EK$MЋUHMԉƉAyljy]ԋK ;AX<EȋP$]ԉSUȋB C<\EԉXBMȋHMȋHMȋHMȋHMȋH~MȋHK uԉN UQ Ea#UЋuHUԋJ ;AZBB{\$MȋH$CGUȉHLPNUԋz9}v ;Aa uԉN EȋH4MȋHy\$UȋH$UȉHLP:MȋHGMȋH]ԋ{9}ZA  {MԋA]ȉEuȋPVMȋHEȋPMȋHUEEȋHuEȋHEȋH\$MȋH$UȉHLP\$MȋH$RVUȉHLP5\$H$ UȉHLPEȋHEȋHZ\$H$UȉHLPEȋH\$MȋH$AEUȉHLPPA]ȋHޅt$ǃHudžPdžL~EȋH&EȋP<\$MȋH$UȉHLPMȋHu\$UȋH$!UȉHLPGMȋHT\$MȋH$UȉHLP":EPuEȋH\$H$SWUȉHLP6EȋHCEȋH\$MȋH$UȉHLP\$H$UȉHLPEȋH1111MȋH]ԋK /X*uEyEvEȋHG$G$G$_UȋB rG$G$G$_MȋA J\$MȋH$UȉHLP]ȉ;uȋPދUȋLS 99H}MȋHEЉEԍ 2 EȉPUЉA]ԋS =\$UȋH$Xt6UȉHLPoMȋH|C,$P$R D$ @>,$gUWVSEED$ED$D$ _*D$<ED$E $Uu1Ĭ[^_]Ë}D$\D$$c DžDžMU蕝ƅq]!ًU䉕ӍUBE}>$DžJDž|Et 9|DžDžEEЅt$. EEEU($f;)ΉD$)ˉؙD$E$莜ÅVD$<$ Ƌ1DžDžpp**l)llD$)ˉؙD$4$Å\$<$4 ƋtQpE9P  Ћu*t 9<**떋C$P&&D$D@>,$nu G<$PtEЅ$19vU( t4EC$P-|(E1P$RTD$+ؙD$E$-ÅD$<$yƋtFtuP$REЅ$C$PD$ @>,$oeUWVSlӉh$UtDž|D$\D$$DžDžMU苅h轘ƅ]]!ًE䉅э<2ÍhlB"E$p:EDžx]t U;UIDžDžEEЅt$REEEml(E)ˉؙƉE식)ș`9x;"|tÁ*t+\$p$Ƌ_E`x9]U;U;xMtuP$REЅt$EEEtFlXpBD$D$$lDžM ED$|$$#<&r&D$D@>,$>pft|EЅt$EEEt1Ĭ[^_]è Et$xT$h$XÅPD$p$Ƌ%|zlՕDžD$$ƅD$t$gËtyl(Z`9xE9)C$PC$P G<$PwF4$P\MU豓)}U\u\$lD$$ڞ<Qct $|9EB$PD$D$$SD$<$ƅ?$fÅpC \$4$*fNjaB$PSD$xD$h$衒ÅD$p$ƋbiB$Pt&P$RptDž|U~<\u2G<$PB$P1JF4$PC$PC$P=*vB$PpB 8B$PD$ @>,$Qtt]tuP$REЅx$1ku F4$P;B$P»&U8EED$ED$ED$D$ _*D$+<ED$E $1҅uËMUD$E$E‰U8EED$ED$ED$D$ _*D$5<ED$E $%1҅uËMUD$E$EW‰UWVSEEED$ED$ED$D$ `*D$><ED$E $u 1Č[^_]Ë}u]D$\D$$DžDžMU'-E9~ƅE9~NjUȉ׍UBt|Eܔ]&tqU(Ët t^E̅t$EEEٍE& t2E{U(덋P$RE܀I1B11UWVSljӋ0u@ E)9~t Mw $?79uvډM| u7+E[^_]9uvx X*u;Uu)[^_]Ë[]9uv$X9Et;]uڋ7)ȋ{9uv9t]9t9uʉ)랋[]9uv$X9Eu9]uڋ7뤋{9ub9W]9t9t9u7]EfN9]uڋ7AU)UWVS }_ C$C ǃTHt$MǃHǃPǃLCG {tAW(贠ƋGnjt;St S [^_]ËSS [^_]ËW(cUWVSEEED$ED$ED$D$ `*D$J<ED$E $~u 1Č[^_]Ë}u]D$\D$$DžDžMU躊7AE9~ƅ)E9~NjUȉ׍UBEܔ]"tqU(Ët t^E̅t$REEEٍE t2EoU(덋P$RE܀=1ۍt&211U(ED$D$@E $u1ËE$u**U(ED$D$@E $1҅uËE$萩‰U(EEED$ED$ ED$D$AE $6u1ËUtED$T$E$tÉ'A‰EU(EEED$ED$ ED$D$AE $u1ËUtED$T$E$tΪ‰EvUVS@EEEED$]\$ED$ED$ ED$D$AE $-u 1ۉ؃@[^]ËUU1MuED$\$ ED$T$E$NƅtED$ ED$t$$4ACËuF4$PUWVS,EED$ED$ ED$D$8AE $zu 1ۉ؃,[^_]Ë}|$E$*%ƅt$DÅtp <$_tC븋uF4$P뢋uC$P1U(ED$ ED$D$OAE $u1ËED$E$bu**U(ED$D$aAE $1҅uËE$諥‰UD$D$ D$D$@`*$HsUWVS,EED$ut$ D$*D$pAE $u 1ۉ؃,[^_]D$E$O:EtڍPX\$D$$\$4$E$+Njut$菍Åtp <$誮t%CwfF4$PZIC$P1;UWVS,EED$ED$ ED$D$AE $u 1ۉ؃,[^_]Ë}D$D$ ED$|$E$jVƅt$賌Åtp <$έtC롋uF4$P닋zC$P1lUWVS,EED$ ED$D$AE $5u 1ۉ؃,[^_]ËE$‰EtxED$|$B $Uƅt@$Åt2p <$t9CEuEP$R1uF4$PʋuۋC$P1UWVSE]+]C$BƅtXo\$ED$4$WUԋB t M؅ZE]+]C$ƅu( ,D$ D$D$$xDE1M9t~U܉$Mԋ|$MTMԋ|P@ pǁ|ƋEԉ$+<[^_]Ãt4$1M9uE܋xǀxU܉$oMԋUBMԋA+B tiY)ÍC$‹EPtMuoUBEV؉B E:/UԋBMEy nE Z\$MԋD$$w( ,D$ D$D$$aDIE1UWVS} EEEE] E$E {CC CCCED$ED$E$ ƅto>,t:1=>,~EE ]MU[^_]P>,uEE ]MU[^_]*1[^_]UWVS} EEEE]EE {CC CCCE$-ƅtzto>,t:1=>,~EE ]MU[^_]o>,uEE ]MU[^_]IU 1[^_]UWVS} EEEE]  {CC CCCED$ED$E$>ƅtq>,t;1=>,~E ]MU[^_]>,uE ]MU[^_][1[^_]UWVS } u] CCC CCCE$itlǀU  >,t4ǀ=>,~E ] [^_]>,uE ] [^_]1 [^_]UWVS E E}]u CCC CCCE$ tfǀU  >,t1ǀ=>,~u ]U [^_]>,uʼnu ]U [^_]1 [^_]ÐUWVS}D$ D$ D$G$Åt\D$D$E $薃ƋtBt4D$4$觹Ët,t[^_]1[^_]ËC$P볋F4$PUE@E]IUE @E ]UU]UE ]UU E]US$Å;@@@ @@ @@@ @$ǀǀǀǀǀǀǀǀǀǀǀǀlǀpǀtǀxǀ|ǀǀǀ$ t.CC C ECE E؃[]É$1US]|t$t t7t t3Ctt$A][]4P$R븋P$RUE%Yw$F3]ø]ø]ø]ø]ø]ø]ø ]ø]ø]ø]ø ]ø ]ø]ø]ø]ø2]ø ]ø ]ø!]ø]ø]ø]ø]ø ]UU E![w $HH=t>vt"E3;,=-3#+=3 UEU M/t3~t@3]Ã*t&u*u/=t3ރ/uԸ1=tϸ3vŃ>u.=t3뮃ƅ$蝁Njt><$Ɖss s3F4$PF4$PUWVS<]D$$ ,D$, ,$E̋tE̅pÈ8<$F ~ ^9^~ V:tF+]䋾l$ʰF )؉E~)߉ EuD$$)…h8FM F 1MxM FFV )‰D$F$rFx MFhEaD$$q;, ,YF=)ЉE܋N)щM1}у}ϸtGD$$BÉ]^ỦT$$*M̉ $/:FF U܉V~ "t $bFF<[^_]ËNE^A9y A AAFF 1F 믋$3Ff _t$O]̉^D$$跮FF 0V )ډF D$$pFx EQF^^<[^_]D$$jkD$ $dVF^<[^_]$q}Å@= u*tD$ u*$eo[<]ЅaC=*tD$*$e?UЃ$ED$ D$1}уL$M̉ $*ÅD$D$,F$蹲Njh<$É<$sEԸtC$(Et‰\$EԉD$$\MEẺ$|t$1}эytȉ$訯Åt|$U؉T$$߲;|MЋUU̅A $PMMF E$ 0É F džp^tt$xUЋt rFB$Pnrt&/f$Ẻ$FD$$;Ftx^ẺEUЋt,bE}Hj*r tEZà uE} E4}EÃrR"'}G+GE1EE t+D9Ðt;\EE uՅFEǀE몃EUB+B9Eu"UBM B}E}}dҋE$E"T$$F~Et&5}GWWE4}$F%SMQY$FSEP9MQQ;`9 AcU9|!}*H \$EME9-}D$$MLJEM؃UBMQQE4}%E@PP;s$FQMQ:  E4}$FiQEPD$$M\LJO EdB}E}wEËDXu{t}WW;9tUBM B}E} 0aEKËDXulL.t&uEËDXueEjtgJtatEPP;|9t}GU GME}uEËDXultLuE듋UD$T}LJuGU GMLJE}E"Ã+- DXuK}G WW;s$F8OW9E4}~EËDXuEƍC߃[wN$IE@ PPE4}.E}E*=t}WW;rz9t[t^<(tV)tE}GU GMCۃYw$(KE3}{t&t}t]uM믋U$FNWrBE@PPE4}8$FMW$FMMQmE}E}E}E}E}E}E }E}=EEǃ/g*tMt-MQQ;s$FLEP9t }GU GM}*u=uE/҃<>u>=|E.v뢃/g=\E1vE}E}E }E }yE}jE}[E}LE2}=E }.E }E!}E}E}E}E}E }EEÃ.jBJ9xvXCЃwGE@PPE4}LMAQQE4}-1DXtEVËDXu.e EjJrE@ PP;$F?JMQE)=*t/=oE'vE%=OE$E&=./tS=E(=tI>y<E"kE=t&QE0t&AEt&1=t1>vE#vE,=EE+=^<=&E-vUUB@Pt$t@tD$$кt1҉UEt@@0tPHt]Ë@Pu1]UWVSƉEUMHA0tATufEUB9t X0t@TuS1ۋ}t\tL$$Q4uUT$4$U=(*ȃ[^_]ËUE떋};9]t}ut-ED$4$Ӊ=(*u(*(*cuF@TtE@@T ED$E$َ1ɃrUB@0] ED$$щËEEمEP$R(*(*uED$E$Ӊ=(*(*(*tc1ۋuUEu EP$R(*(*ȃ[^_]$(*,*Pu$(*,*P$(*,*PuEP$REP$RoUWVS<ƉEӉU܉MЋ@P0Ky0}̅t@TuuE9t U̅tATuhEE}؅trU̅tD$ $BOu]܋}Љ|$\$4$U؉E=(*<[^_]Ë}:U뇋Ű}:U9UtE}؅uE̅t6EЉD$E܉D$4$ỦE=(*u(*(*2uUЋBP0tS@TtMM 9UtB9Ut=t9}Љ|$E܉D$4$҉E=(*I(*(*uF@Tt)]܋C@Tt}*?UЋB@T!E܉D$E$Åua}*BEEuЉuED$E$ȡÅ'uUE܋u E܋P$REԃ<[^_]á(*(*tTuMЉL$E܉D$E$ỦE=(*5(*(*Eu]$(*,*Pu)}*u]܋UЋB@ D$C@ D$ F@ D$D$M?,$[gEE$(*,*PkE܉EEEED$E$yÅuYMA@0N}8@ED$ED$ $҉EԋE3EEE8EP$Ru'u]܋C@ D$ F@ D$D$TM?,$TfEEuF@0tQMtGD$*E܉D$4$҉Eԋu$(*,*PuEP$REP$R#$(*,*PuEP$REP$RUEU ME 'RE] US]U MC@Tt%@0t@ptE 3REp[]E 3RE[]UUtB=n*tP4tR t1D$p$赢UWVS ։$jWÅtW4$\Wƅt`D$D$$FNjt4t [^_]ËF4$P [^_]1 [^_]ËC$PuދC$P1USEP$RpÅt؃[]Wt@?,$ltXUUt&B=n*t(P8tRt@4t Ht1øɐD$p$聡UD$E D$E$TUSMAP@tAED$E D$ $҉Åt؃[]&WuD$M ?,$a؋@ D$D$7R?,$c1USá*,tVD$$襇Åt]@=*tD$*$4Ht؃[]Ët1C$P1ۉ$*,u1,?,$YktVUWVSÉU9ttB=*tFD$*$Gu20DžPU]1ۋt=؃[^_]ËEp~;X t1҃9tA9u؃[^_]ËG<$P؃[^_]ÉEF UDÅuEE9EuuwUqUWVS lj։ˋA=*tOD$*$Fu;C=*tD$*$Ft<$Ãu U1҅u $bIÉ\$4$׉‰Ѓ [^_]D$M?,$c_1UWVSu] 1ɉډ=(*t[^_]ËFx4(*(*tUtOt] u[^_]C@ D$F@ D$ D$9SD$N?,$_`1[^_]$(*,*PUWVSu] ډm=(*t[^_]ËFx4C@4E(*(*t2tGtى[^_]SMt!UBt$(*,*P뽋C@ D$F@ D$ D$SRD$N?,$_1]UVS u] ډ=(*t [^]á(*(*t5C@ D$F@ D$ D$D$N?,$_1$(*,*PUS]CxTy*Plt#$҉Åt@xTydPpt]؃[]=n*t@4t(H t!][]qD$p$kuD$UR?,$\1ۉ؃[]Ë@ D$D$LN?,$N^t 1ۉ؃[]ËC$P1UWVSEӉ΋=*,C=p*=*tXD$*$QCuDC=*tD$*$3C|SU1ۉ؃[^_]ËUB9t\$$Bt؃[^_]á*,D$U$ƅ E;pF=*tD$*$B\$4$BËuF4$P؃[^_]Ãu1V MEÅ\9}u1!…tW*,D$E$UƅtHj1ۉaUzn*o\$B$:B$PoP1ۍvD${R>,$Z$qR:*,{OuD$|N?,$RZQUVSu] ډ[^]UWVSljӉ΁xp*…C=*tD$*$@{CEE 1[^_]Ãu1ۋV Mlu݃9]u΁zp*j19uT$<$9몋B$Pc…tXtډ[^_]CB$PD${R>,$ YJfNt57vPNuD$N?,$X D$N?,$XUVSu] rډ[^]ZUWVS]} CP0t@Tu1ɉ+=(*tA[^_]ËB\t߉|$$=(*u(*(*u$(*,*P뭋Sr4(*(*t9tIBTuNɍvt9} ][^_]N t} ][^_]$(*,*PS볋G@ D$B D$ D$RD$N?,$ Y1&UWVS]u CP0t@Tu=(*tA[^_]ËBdt܉t$$=(*u(*(*u$(*,*P몋Sz4F@4E(*(*t-trSBTuGt-ڃ[^_]G$u$(*,*P‹SF@ D$B D$ D$4RD$N?,$X1)EtUBtىUVS É֋@P0t@TuM=(*t@ [^]Ë t߉t$$=(*u(*(*u$(*,*P뭡(*(*t7F@ D$C@ D$ E D$D$N?,$2W1x$(*,*PUEU E REl]UEU E RE]UEU E RE]UEU E RE h]UEU E RE`]UEU E RE4x]lUEU E RE0t]JUEU E RE8|](UEU E RE<]UEU E RE@]UWVSEE EǍEE1E tUЃEBu4$&Å1҄uLUBP@D$\$E$҉ƅt4[^_]ÃGD 9~GD 9늋C$P[^_]Htc1[^_]Ë@ D$D$7R?,$T1wxH\D$M ?,$RBD$ O ?,$R11UVS u] @ډ=(*t [^]á(*(*t5C@ D$F@ D$ D$D$N?,$S1$(*,*PUVS u] <ډ=(*t [^]á(*(*t5C@ D$F@ D$ D$D$N?,$kS1$(*,*PUVS u] 8ډ=(*t [^]á(*(*t5C@ D$F@ D$ D$D$N?,$R1$(*,*PUVS u] 0ډ=(*t [^]á(*(*t5C@ D$F@ D$ D$RD$N?,$iR1$(*,*PUVS u] 4ډ~=(*t [^]á(*(*t5C@ D$F@ D$ D$RD$N?,$Q1$(*,*PUVS u] ډ=(*t [^]á(*(*t5C@ D$F@ D$ D$SD$N?,$gQ1$(*,*PUVS u] ډ|=(*t [^]á(*(*t5C@ D$F@ D$ D$RD$N?,$P1$(*,*PUVS u] ډ=(*t [^]á(*(*t5C@ D$F@ D$ D$gD$N?,$eP1$(*,*PUVS u] ډz=(*t [^]á(*(*t5C@ D$F@ D$ D$RD$N?,$O1$(*,*PUVS u] ډ=(*t [^]á(*(*t5C@ D$F@ D$ D$RD$N?,$cO1$(*,*PUUt2B@8t tUD$R?,$MBt&uD$ O ?,$bMUUt2B@4t tUD$R?,$(MBuD$ O ?,$MUSUE t3t/D$$QDBt []ËE1[]#BuD$ O ?,$LUEt PA1҅uD$ O ?,$`L1҉USUtGZC4tt U[]C8tuD$R?,$L[]lAuD$ O ?,$KU]UWVS u] VB8tHt] u [^_]J4C=*D$*$g2umC=*tD$*$I2$ǃFX4uBD$R?,$K @1 [^_]É$4NjFX4tS txE uK [^_]t4$Ѕxt&ՋF@4@ uD$R?,$JD$DO?,$~JlD$ O ?,$dJR?EUE D$E$Y…t&tËB$P?1ɉUVSE tU$蘰ÅteD$E$ƋtYtEu[^_]ËC=*tD$*$_/tg$7EFX4tCt ExbED$dO?,$"H덋^4$ЅvELF@4XtD$DO?,$GGt4$Ѕ4E D$ O ?,$G =t&:UWVS u] VB8t @tD$\$4$Ѓ [^_]ËJ4C=*D$*$.uxC=*tD$*$-$ŭǃFX4uMD$O?,$Fm!< [^_]É$k0NjFX4tStxD$D$4$S [^_]Ëtމ4$ЅxҋF@4@uD$O?,$/FD$DO?,$FD$ O ?,$EN;(UVSuE tFtB$cÅt=D$4$Ƌt [^]ËC$P[^]:t[^]D$ O ?,$LEUWVSu} tytuEtnFXPtBC t;Ct4D$4$ЃtZD$P?,$D[^_]D$O?,$D[^_] :t6[^_]ÍED$D$4$S …x؋EE1D$ O ?,$eDUWVSu} txttEtmFXPtAt;Ct4D$4$ЃtZD$P?,$D[^_]D$(P?,$C[^_]:9t5[^_]ÍED$D$4$…xًEE1D$ O ?,$CUWVSu} tytuEtnFXPtBCt;Ct4D$4$ЃtZD$P?,$C[^_]D$LP?,$B[^_]T8t6[^_]ÍED$D$4$S…x؋EE1D$ O ?,$BUUt0B@0t HtUD$S?,$YB17uD$ O ?,$7B1UUt0B@0t H tUD$S?,$A1]7uD$ O ?,$A1UUt0B@0t H,tUD$;S?,$A16uD$ O ?,$yA1UUt0B@0t H$tUD$XS?,$;E'؃[^_]Ã؃[^_]ËC=*tD$*$Q't=D$ CD$C $?:É؃[^_]ËC$\4É؃[^_]ËC@0@H$ЉÅf@=*XD$*$&@C=*2D$*$&C@ D$D$P?,$AuC$P11D$pP?,$S?ǍED$ED$$u }upD$P?,$?1w4uD$ O ?,$>^UWVS]C=*tsD$*$%C=*tD$*$%tJ{sD$ ED$4$PÅ)>;E$؃[^_]Ã؃[^_]ËC=*tD$*$(%t:D$ CD$C $UÉ؃[^_]É$É؃[^_]ËC@0@L$ЉÅi@=*[D$*$$CC=*5D$*$~$C@ D$D$Q?,$>uC$P11D$P?,$-=ǍED$ED$$u }usD$4Q?,$<1Q2uD$ O ?,$<aUS]C=*D$*$#C=*t|D$*$h#uhC@0t^@PtW$ЉÅt^@=*tTD$*$.#u@C@ D$D$dQ?,$=t>1D$$É؃[]Ã؃[]C$É؃[]ËC$P1)1uD$ O ?,$;UUt2B@4t tUD$R?,$h;0uD$ O ?,$B;UVSu] t#uVB4t-Ht&] u[^]m01҅Ѓ[^]Án*t}tYH tRt {n*tC@4t;P t41ɉډ=(*u(*(*u$(*,*PD$sS?,$t:1҉Ѓ[^]D$p4$yvD$p$ytyD$ O ?,$!:1#UVS]u SB4tHtu ][^]n*tItY@ tR4$-ƅ‰Ëtg(*t=؃[^]D$p$xuD$S?,$k91ۉ؃[^]á(*(*u$(*,*P뾋F4$P1뒍.uD$ O ?,$ 9iUVS]u t)u%CP4tH@Tu-Jt;u ][^]-.1҅>Ѓ[^]ËJ t̉u ][^]=n*B t ~n*F@4@ CP0tC@Tt=B\t6t$$Љ=(*m(*(*u$(*,*P1ɉ=(*5(*(*u$(*,*PD$sS?,$71҉Ѓ[^]D$p$wD$p4$vt(D$ O ?,$d71UWVS ]u ECP4t2@TuJt%u ] [^_]J$tu ] [^_]=n*tjB tc4$+ƅCP0@Tt~Bdtwt$$Љ=(*tEtl(*u((*(*t^D$S?,$|61 [^_]á(*(*u$(*,*P뉋F4$P$(*,*PD$p${uy1뇐&`+uD$ O ?,$51ZUWVS u} t:FX4tXC tQx} uK [^_]t4$Ѕx"*uD$ O ?,$i51 [^_]D$R?,$J51 [^_]UWVSLuE Eċ}FX4tXStQEEȉE؀}tuc}EĉE uKL[^_]uމ}EĉE uKL[^_]X8tCu?D$S?,$41ۉ؃L[^_]É4$ЅxL}uA}tljE Džt'D$4$SËuG<$PE1ۉ)uD$ O ?,$41vUWVS u} EEtdFX4t8Kt1xEE} uK [^_]t4$ЅxljD$dO?,$3 [^_](uD$ O ?,$w3UWVS }u tkGX4t8Ct1xD$t$<$S [^_]Ët<$Ѕx&D$O?,$ 3 [^_]ø^(uD$ O ?,$2UWVSLuE Eċ}EEFX4tdSt]EEȉE؀}t$urEE}EĉE uKL[^_]u؋EE}EĉE uKL[^_]X8tCuGD$Q?,$2؃L[^_]É4$ЅxS}tEĀ}rkEDžt)ED$|$4$SËuG<$P뚻t&'uD$ O ?,$1fUWVS<} u]UBX4tHKtAEȉU؄t'uID$ t$|$E$S<[^_]ÄtD$Q?,$0<[^_]ËU$Ѕx}tǀ}t뙸.&uD$ O ?,$0UWVS,]lC=*t/=*tD$*$`t!$ZÉ؃,[^_]Ã؃,[^_]É$E܅$Dž_<$"EEA;},W 9\$E$ߋEUt UU܋B$Ppƅu%t@?,$:$t+UtU܋t&1;}U܋t]B$P1B$P]$uD$ O ?,$/68\F4$PUNEP$RvM?,$9u,?,$9'J$ l5$ED$E$.t&UVSutJ$CGÅtAt$$Ӆ…tSt ؃[^]ËB$P؃[^]b#t 1ۉ؃[^]D$ O ?,$-1븋uыC$P1UVS]C=*tE=*t>$ƅt<$Ët ؃[^]ËF4$P؃[^]Ã؃[^]á?,$7u1ċE D$?,$-1"uD$ O ?,$,UWVSEU $cDžEEG<$PpÅD$D$E $jƋtB~}t\}&ty}t|}t&uEuE뇋C$P!EE[^_]ËEuߋG<$PE[^_]E؃EED$S>,$+E!t@?,$ 6ua!t-E|D$S>,$t+E[}QD$Q?,$I+E0 D$S?,$!+ED$ O ?,$+EUD$E D$E$USU] B@Tt@4tHt[]D$\$$[]UD$E D$E$rUSU] B@Tt@4tHt[]D$\$$1[]UUt2B@8t tUD$R?,$)NuD$ O ?,$)UVSE tE$aÅt@D$E$Ƌt [^]ËC$P[^]t 1[^]D$ O ?,$J)1UVSE tL$ÅtGED$\$E$Ƌt [^]ËC$P[^]Rt[^]D$ O ?,$(UWVSuU t :$t&ÅC=*tD$*$SFP@tmD$\$4$҉ƅtvt [^_]ËC$P[^_]ÍEED$$t]tP1[^_]Ë@ D$D$7R?,$P)1(uD$M ?,$'fD$ O ?,$'W$~Džt\$D$$WhUWVSE] }\$$=Nƅe$gt ?$Åt}C=*tD$*$ ,FP@D$\$4$҉Džtmu F4$P[^_]tv1[^_]D$R?,$I&1[^_]ÍEED$<$9C$P놋@ D$D$7R?,$'1XD$ O ?,$%1[?/D$M ?,$%\$,?,$%1$Dž\$D$$iUWVS,UE D$$yKEEEǍEE1]tUЃEJu4$Å1҄tGD 9tpUBP@D$\$E$҉ƅtQUuB$P,[^_]tU1,[^_]ËUuB$P1ۋC$P뤋@ D$D$7R?,$%1vD$ O ?,$#1^PD$M ?,$#6U TE@uE D$$W1úTE D$$W1UEPt*,t(á*,u$ T辤*,t$T褤*,U`j*Mulj*]US$lj*]ED$D$ l*D$TED$E $du 1ۉ؃$[]ËE$G|t`j*UUE zj*tE U*H8]xj*u@`j*Bt]ùlj*UUE zj*tE U*H<]xj*u@`j*9Bt]ùlj*UUE zj*tE U*H@]xj*u@`j* Bt]ùlj*򐐐UExl*u@D$~$MT#1UExl*u@ D$$MT#1UExl*u@D$$MTf#1US]C@PCCPCCC trStSt twSt tWSt t ][]eCP$R][]eC P$R뀋CP$RaCP$R뛋CP$RxCP$RUUWVS ] 9]tfC=*t1D$*$ uEt Uzp*tB1 [^_]Ë{~1C D$E$u 9u˸ [^_]ËB$Dž~1t$UB$\$$Ku9uUWVS}D$3G $=(ËGt#P*D$*$,uktFC=*tD$*$t($@t|$ t$D$$yT}[^_]É|$t$$fTa[^_]ËG$sUWVS]D$3C $x'NjsF=*tD$*$hG=*tD$*$><$sÉ4$sED$$Ets$CsE<$8s\$D$U$BS].4$sSML$D$$Su[^_]É][^_]+[^_]1UWVS ]} uCt t$$ׅudC t t$$ׅuPCt t$$ׅu\$ UT$}|$$Åu4؃[^_]ËED$UB $ÅxK؃[^_]D$\$4$~Ƌtrtt1‹F4$P1뵋ED$ }G@D$D$Y,?,$넋}|$ED$$5C$P냸qR u)t {p*tJD$Y?,$EP X &B$P1EPXD$$Y>,$D$xY>,$qUWVS ]} uCt t$$ׅuC tt$$ׅt [^_]1 [^_]UWVS ։$; ÅtW4$- ƅt`D$D$$dNjt4t [^_]ËF4$P [^_]1 [^_]ËC$PuދC$P1UWVS ӉL$$>ƅ\$$$ÅtTD$D$4${Njt(t [^_]ËF4$P [^_]ËC$P͋t1ɋF4$P1뼡,?,$0!tp (*(*UWVS,ljUMEEU Un*t(*(*؃,[^_]á+,D$<$<ƅED$$Å$D$D$4$zE[>M}*}(*UB=*&D$*$t{E$ukD$E$D$U$S;W.U\$$UËUB$PUt.D$Y?,$1t1B$PNjF4$PeUt9MU,[^_]FF4$PC$PB$P뼡,?,$w) $Tҕ+,1D$$UÐn*M‰UWVS EU :+,OD$$=:ƅ|$$ÅuЃ [^_]D$D$4$xNjt*(*G=*tD$*$St<$D$Y?,$'I,?,$x/%F4$PUC$P8G<$P$T+,G<$PHD$<$UD$<$U UU 1҅eG<$P1UUVS]u D$$ TM=(*t[^]á(*(*tWD$$ T=(*uġ(*(*t3E E Tډ[^]$(*,*P$(*,*PUWVS Éס*,=D$$7ƅ|$$ÅtpD$D$4$juNjttt^tK(*(*(*u$(*,*PЃ [^_]Ët0Ѓ [^_]ËF4$P뗋C$PuߋF4$P뫉<$0Ëtti|Z넋G<$P,?,$yU$Tk*,L(ItD$Z?,$UVSE D$E$K4uiMyn*E xn*UÃEtZE u E P$R؃[^]ËEE Myn*t(E xn*tEuEP$R똋U zÃNjEE uu؃[^]ËEt,E tNGE P$REP$RƉD$ $IƋEtSE t7sEP$R6E P$R뻋EP$RUD$*E D$E$éUD$*E D$E$UWVS uD$T4$4Åtip ,P P ;p+?ED$E D$$[ǡp ,h u C$P [^_]$Tq1u뭡,?,$m1tF@$&bD$D$@Z,?,$^UWVS u} 4$L+,C +,Cl*]Cst{ utEECs~t $zF)C)@F0)pE [^_]D$=$MT E$l*\EtETUS]*,tE CE[]1$,*,u1[]UWVS u} ^CUtXtc|$$'…t<@@Uu Ѓ [^_]ËtFD$t$$щ‰Ѓ [^_]É} FE [^_]\1$I1҅yU8EED$ED$ED$D$ D$D$TE $d1҅uËE$JtVU*t t%ED$T$E$‰1EEuD$Z?,$Y 1҉D$hZ?,$> 1҉US]C@PCCPCCt$sCtXS t tTSt t+,C +,[]ËCP$R+,C +,[]ËCP$R뚋C P$RUMU B 9A t]ËBE AE]DUWVS,EP UXD$G@$I0ƅ@=*tD$*$ FEtOD$G$0Dž@=* D$*$=1EEE$'Å@=*tD$*$WCD$ UT$ED$$TʤEttu G<$PE,[^_]Ë1E죸tJE뙍WUEED$UT$$T&EfF4$PkC$PEAG<$PC$P%F4$P\,?,$u.E%,?,$~tEcE죸UVSuF t$8Ãu[^]$*u8ߋF$f8t1UWVS ]} uCt t$$ׅu(C t t$$ׅuCtt$$ׅt [^_]1 [^_]UWVS ։f?t?D$G$6-Åtg@=*t8D$*$u$t [^_]ËC$P [^_]É|$CD$4$%=D>uʃ [^_]QUWVS,E] p x@$~ s v8D$qR4$S,ÅotU$kË$prt$|$T$\$ D$D$Z?,$>1,[^_]É$Ǎ@$p ~1S tQ9uËED$\$$PƋuC$P,[^_]ËC$PUDžnothDžingb|$4$薩|s&g1 t&e^}UWVS ]} uC t ؃ [^_]ËCttD$4$ʪ|tՉu} CE [^_]|1U+,tB +,$PH+,uUWVS\ƉӉωT$@ $t 7\[^_]ËF$E1EED$F$DE\$@ $G`UB$EEED$UB$E\$@ $UB$EEU9UEED$UB$Eĉ\$@ $UċB$"E̅EE9EuEEȉD$UċB$=EЉ\$@ $@;UЋB$E؅EU9UtEEԉD$UЋB$E܉\$@ $U܋B$nEEE9EuEED$U܋B$E\$@ $uwUB$EEU9UtEED$UB$2EE9Eu뵃EE9E1UwU܉mUЉcUĉYUOUEUWVS,E $dUE؀8_t*M L$}G $ÅtLމ,[^_]Àx_uи u؉k4UB Z tz뷋EXU T$C $:ƅ]F@UtzMAD$L$4$҉Ë5L/MAp.,?,$ u01qR u؉UBZ0} |$ED$$ÅtD$D$4$cƋC$PD$[>,$1:C$E1EM܉L$C$MU #ƅE}9}u1F4$P}؉|$ UB@D$D$Y,?,$sUVS*,tWD$E$1t%D$D$$bƋt [^]ËC$P[^]$U~*,UVSu*, D$4$ÅD$D$$aƋtQtjF=*tD$*$4$Ët![^]ËC$P뤋F4$P&͸[^]á,?,$t6+,txD$4$2Å,,?,$ty$U}*,t5D$D[?,$9$'U`}+,rF4$PD$h[?,$UWVS }u *, D$<$^Åt$$[ƅtbD$D$$_NjtftPt=<$Ët ؃ [^_]ËG<$P؃ [^_]Ët0؃ [^_]ËF4$P륋C$PuߋC$P똡,?,$*tjD$t$<$g$/U{*,qUWVS}]*,D$<$ ƅ;\$ ED$E D$$wU西Åt\D$\$4$g^NjtdtNt;1҅t Ѓ[^_]ËG<$P1҉Ѓ[^_]ËЃ[^_]ËC$P맋F4$Puߡ*,t`D$<$/ƅED$E D$$%0˾!$YUz*,F4$P9$1,?,$Ut+,D$4$…tFt.u[^]+$Uq +,1ZB$PD$UR?,$r1UVSu*,DD$4$ ÅD$D$$SƋt[F=*tD$*$t@4$ÃtXt ؃[^]ËF4$P؃[^]ËC$PD$[?,$u뼳u뭡,?,$u؃[^] *,D$4$…tKt5D$U?,$7$Uko*,B$P,?,$In*,tPD$4$…u,?,$9Pu[^]$Un*,0$Tn*,UWVS}*,tJD$<$ ÅtKD$D$$QƋu C$P[^_]$Uen*,룡,?,$Q1tGXD$3@ $ƅC=*tD$*$tn$AÅtF=*t/D$*$hu|$\$$UC4$A|$ \$D$$VňUWVS u*,tJD$4$ÅtKD$D$$GPNju C$P [^_]$e%m*,룡,?,$1tOu [^_]'UVS*,tWD$E$11t%D$D$$OƋt [^]ËC$P[^]$,Vl*,UVS*,tWD$E$1t%D$D$$2OƋt [^]ËC$P[^]$4Vl*,UVS*,tWD$E$;1t%D$D$$NƋt [^]ËC$P[^]$C$A<[^_]D$\?,$1<[^_]D$@\?,$1<[^_]É1XSp*j9u$p*0ƅxE F UV(+,\$F $uF$+,\$F $uF +,\$F $?uFFtFtFt^{t $C)F)@C)X<[^_]$V`(+,$V`$+,$V` +,(+,F$~E؅11|$F$諳M9}u1J…*,D$$hD$*,D$U $H1F$E11|$F$Mh9}u1yF$虲E܅1=1|$F$ƲM9}u1 D$\?,$1-D$h\?,$1$,G_*,1$G'_*,1$3_*,u1D$**,D$U $1G<$P1g$<Dž1JU8ED$ED$ED$D$ 4r*D$VED$E $1҅uËED$ED$E$‰UWVS]u t$C $7t[^_]Ë[t$C $uC$詰E11|$C$ٰM0u9}u1UWVSLEȉUĉM*,MȋAXMD$Eȉ$;ÉޅUĉT$$豱ÅD$D$4$@Njt L[^_]ËF4$PL[^_]ËG$謯EЅ~9EM̉L$G$دM/ƅEE9EuuV(*(*L[^_]ËC$PafE\$A $|ƅtH,?,$2u1!e녋uF4$P1Uȋz\$G $ƅ}F@UzlMȋAD$L$4$҉Ë>F4$P0 ^}$ £*,412D.؉$Q[*,<2uUWVS ]u }{n*t#~n*tN(*(*(* [^_]ÉC=(*u(*(*u$(*,*P멋 *ډ =(*u(*(*u$(*,*P(*vUWVS,E $<.À8_tVM L$}G $}t}PBUu ,[^_]Ët}|$D$$҃,[^_]Àx_u މ މUBB됋UB$苬E~/1t$MA$輬MU H9uuӉ\$ UBD$D$\,?,$1Du@UB B G މUB*D$\>,$1UWVS,Ë5(+,t$@ $]StCt5$+,t$C $¼]StCt tU5 +,t$C $膼]StCt t,[^_]ËB$P,[^_]ËB$P렋B$PTC$迪E؅1C$袪E܅R1>C$艪E1a1|$C$趪M >9}u1/1|$C$脪M9}u11|$C$RM^9}u1OUWVS,$mڋủt$ }GD$D$\,?,$미]k ủuWC=*tD$*$$!EC xp*]G ủt{C=*tD$*$胺t]{1уh];KEPXt tEbB$Pf]i]_uV^/9B$Pb31UT$$褲9utGxp*tҸ]V ủu8EPtu^B$PV ủuEPtu^uV ủEPtu^u8]=UVS]u D$$.V'=(*t[^]á(*(*tWD$$.V=(*uġ(*(*t3E E.Vډ[^]鱺$(*,*P$(*,*PUVS]u D$$ Wd=(*t[^]á(*(*tWD$$W(=(*uġ(*(*t3E EWډ[^]$(*,*P$(*,*PUVS]u D$$!W衹=(*t[^]á(*(*tWD$$*We=(*uġ(*(*t3E E2Wډ[^]+$(*,*P$(*,*PUVS]u D$$;W޸=(*t[^]á(*(*tWD$$DW袸=(*uġ(*(*t3E ELWډ[^]h$(*,*P$(*,*PUVS]u D$$UW=(*t[^]á(*(*tWD$$aW߷=(*uġ(*(*t3E ElWډ[^]饷$(*,*P$(*,*PUVS]u D$$xWX=(*t[^]á(*(*tWD$$W=(*uġ(*(*t3E EWډ[^]$(*,*P$(*,*PUVS]u D$$W蕶=(*t[^]á(*(*tWD$$WY=(*uġ(*(*t3E EWډ[^]$(*,*P$(*,*PUVS]u D$$PWҵ=(*t[^]á(*(*tWD$$PW薵=(*uġ(*(*t3E EPWډ[^]\$(*,*P$(*,*PUVS]u D$$W=(*t[^]á(*(*tWD$$WӴ=(*uġ(*(*t3E EWډ[^]陴$(*,*P$(*,*PUVS]u D$$rWL=(*t[^]á(*(*tWD$$rW=(*uġ(*(*t3E ErWډ[^]ֳ$(*,*P$(*,*PUVS]u D$$X艳=(*t[^]á(*(*tWD$$ XM=(*uġ(*(*t3E EXډ[^]$(*,*P$(*,*PUVS]u D$$ XƲ=(*t[^]á(*(*t"E EXډ[^]酲$(*,*PUVS]u D$$1WI=(*t[^]á(*(*t"E E1Wډ[^]$(*,*PUVS]u D$$W̱=(*t[^]á(*(*t"E EWډ[^]鋱$(*,*PUVS]u D$$WO=(*t[^]á(*(*t"E EWډ[^]$(*,*PUVS]u D$$WҰ=(*t[^]á(*(*t"E EWډ[^]鑰$(*,*PUVS]u D$$3XU=(*t[^]á(*(*t"E E3(Xډ[^]$(*,*PUWVS u} ]*uhD$$4X̯=(*t ؃ [^_]á(*(*E E,tD$r^>,$Dh ,1UUBuzB1zt]غUS4]E D$E$1҃|~(*(*Ѓ4[]ËE@=`r*tD$`r*$蝟t!U B=`r*tHD$`r*$|u1EE uE P$RyU E@]@]B]B]E tmCEEuzEEzt1ɀ`j*8tlj*EP$R9E P$R녋EP$RfD$_?,$x1UD$`?,$V1UD$@`?,$71UD$p`?,$1UED$$~^z|UWVS|ӋB=*tD$*$軝tDCECEE쉅D$`?,$菶1҉Ё|[^_]ËC=*tD$*$YC=PD$ |$D$C $1҅u}уMYCMGӋDP u݄-EEݕݝDžDžDžDžDž] J+-ɐ);]E);EtD$ a?,$1sD$`?,$1҉Ё|[^_]ÍED$ED$$oD$^?,$詴1jыP uDž4]tЋDP uውDž D$$\…y݅X݅Xb uEڍݝCEC<+o<-gDžDžX.t1t$7h ,h ,-ED$E$]؋h ,E؉$#yٽ f٭۝٭)Éh ,6KEE,D$^>,$h ,1JEڍݝt DžEE𿋍DžDžSED$ D$^D$$5w\$?,$Q1D$`?,$51UWVS|Elj*EED$ED$D$ u*D$^ED$E $UB=`r*'=*D$*$覗E@=*D$*$}EtO@=*D$*$PE@=*D$*$',+,6D$E$TÅ貥1Mq^0UEt B@0ECPtEE@P`r*tD$`r*4$芖MA]A]ȅtEP`r*tD$`r*$:E@@m]E]D$E$at EXEXEu6UE|[^_]$^E0,+,1|[^_]D$0a?,$豮1|[^_]ËM}`r*ED$ha?,$r1z$fƅtD$D$$Eu F4$Pu C$PM? D$a?,$EEP$R1EP$R,uh ,`聴D$^>,$,h ,1US4h ,h ,ÃE @EhE @Eh]]E$p}E fEm]mE)Éh ,E]E]$Lt:@`r*EXEX4[]$>,uh ,`蘳D$^>,$Bh ,1US4h ,h ,ÃE@@E @@]]E$o}E fEm]mE)Éh ,E]E]$Xt:@`r*EXEX4[]$>,uh ,V褲D$^>,$Oh ,1UVSp=>,9h ,h ,U؋M AD$A D$AD$AD$ MAD$A D$AD$ AD$$E؉EE܉EEEEEh ,E$n}Eִ fEm]m֋E)Éh ,>!E]E]$t|@`r*EXEXЍe[^]$>,D$_>,$h ,1D$_?,$賝1҅ ‰D$_\?,$貧1xUWVS}u D$a?,$Y1҅LUFD$F D$FD$FD$ GD$G D$GD$ GD$$kEEЋEEԋEE؋EĉEEЃ;!}EfEmm]EFFo]o]$_t%@`r*EXEXЍe[^_]D$-_\?,$g1UWVS}u D$a?,$EVUFD$F D$FD$FD$ GD$G D$GD$ GD$$EEЋEEԋEE؋EĉEEЃ;!&}EfEmm]FFEo]Mo]$@`r*@@EX$@`r*EXEX\$t$$zEt t.t t Ee[^_]ËC$PEe[^_]ËF4$PǍt&bt&ҭD$?_\?,$yEUSE D$E$1ۅtX t؃[]ËB$P؃[]UVS}*h ,h ,fE @@ٽff fd٭dە`٭f` R$ʃd]]hED$ED$ED$EĉD$ MAD$A D$AD$ AD$$YhEȋlE̋pEЋtEԋh ,Eȉ$iٽff fd٭d۝`٭f`)Éh ,E0bw8bٞwEڞ?؋u"!"EݝXEݝP$@`r*݅XX݅PXe[^]؋MAABd=څu*t*t9ʅt $>,D$__>,$hh ,1*>"t&D$P_?,$1e[^]]]؋E؉EȋE܉E̋EEЋEE]]]]UED$ED$ED$ED$ ED$ED$ED$ ED$$EE؋EE܋EEEEn豩Au*t*~Kt9|~ ʅt]]荕xED$ED$ED$ED$ t*D$t*D$u*D$ u*D$$xE؋|E܋EEEED$k_>,$z1FD$ b\?,$^1*UE@]u@]u$t@`r*EXEXGUEx`r*t7@]@]$t @`r*EXEXÃUVS u] P*D$*$yP*D$*$PP*tD$*$+$45]$@`r*@@EXI$赇P$]${@`r*@@EX1҉Ѓ [^]Ë$]@bEtt$t#@`r*@@EXz뗋@=`r*tD$`r*$w1fzeRvpUVSph ,h ,U؋M AD$A D$AD$AD$ MAD$A D$AD$ AD$$E؉EE܉EEEEEh ,E$Ob}Eִ fEm]m֋E)Éh ,>!tzE]E]$tW@`r*EXEXe[^]$>,mD$_>,$蹛h ,1D$_\?,$菛1뢐US]t'C= u*u C[]D$ u*$Ku1[]US]t'C= u*u C []D$ u*$u1[]UWVS]E |GtMts1C$tK|$C,$C,|$ t$C,D$C$;[^_]þ1C$QuC,$C,볾 UVSuE $1tF<t^<[^]ËF6ƅt t [^_]ËC$P[^_]ËF$ËF $XbNt!t$\$ D$T$$d5Ɖ[^_]UWVS u1Ft3^t%F$Vlj$5FF,$F,t'u** [^_]É} [^_]݌>,E [^_]鰙UVS]Ct2ƋC$I$qÉ4$][^]uD$b?,$=1[^]UWVSljU@$UT$D$$t=} v!}t&EČ[^_]ËE Č[^_]ËEUEUG$D$ D$D$$ÉօxYG$ÉxC9ue 9]t&VNEE)؃]EČ[^_]ËG$9uUE@E]sUE@4w$fD$D$b ?,$R1Ã**D$ bD$bD$b$b\D$bD$b$b[D$bD$b$b[EbD$bD$b$b[EbEbUS]0+,tED$$…t&0+,B B*B<*B@Ѓ[]$c[0+,1҅uUWVS u1t'F= u*tD$ u*$d|t~E F [^_]D$hb4$gÅ@=*tD$*$|1t $~NjtFE $3ÅtJD$D$hb4$u+oC$PaC$Pvc΍&U;E1UVS]C=*t>D$*$^{u*C=*tD$*$@{t'$ $~…Ѓ[^]D$b$/ÅD$D$$NƋt}F=*t@D$*$zu,F=*tD$*$z4$j4$\}ËڅCF4$P3C$Pt&qD$e?,$? T$D$4e?,$蝔D$d?,$uF4$PUWVSUB);utt$E$eUЃL[^_]D$he>,$7Et*1L[^_]Eddt<$荾EP$R1뛡>,$<$Q롉<$WUStË@t2$舺UT$D$$AuE%=@t؃t[]$ڻD$ D$D$c>,$bÉD$>,${u1밋uC$P1UWVSÉU΋}E EC CC<s <$sCECCD$b<$詸CC D$U<$臸C0C4C8*C<*C u 1[^_]ËCtEC؃[^_]dC,$1[^_]D$e>,$r1[^_]Ét$D$"c>,$ډUWVS}u D$ Yt$|$$(1҅tڅt Ѓ[^_]Ë1҅uC$P1҉Ѓ[^_]UWVS]u *C= u*tD$ u*$nC‰Eu Ѓ[^_]ÅtaB=*tD$*$On'UJBMED$Kc8?,$UttB=*tD$*$muUcUJ Bu3ED$Kc8?,$识U#| :D$ $]rËEtOډ]| J:D$ $"ƋEt(uUEP$Rډ]EP$RuEP$RD$$Džt$$U8KÅD$\$<$EUB=*D$*$AlUB=*D$*$lEED$e?,$UZEP$RD$b?,$迄16D$E$soUD$$3c蠆1UC$PG<$PD$E$YU0$@W~1uG<$P1EP$RUEPtD$b?,$Ճ1US$]EKtUED$D$ccE $診1҅tUt|J؍t&‰Ѓ$[]$b‰Ѓ$[]D$b?,$O1҉Ѓ$[]1EUWVS,EExED$D$ocE $ EDž|$$EE莳EED$ @D$+ED$EE$Ɖ$u;}]EljD$E$Nw1,[^_]D$e>,$1,[^_]1ҋED$b?,$1,[^_]ËUB$芯u2;}tUT$E$E,[^_]ËUB$ӋUB$utE܃8 t>,$荂E'EP$R1UWVS,}GwcGt-ED$ ED$T$E $1҅u2Ѓ,[^_]úzcED$ ED$T$E $1҅tG蚱GD$ ED$D$E$胸É4$;]u2**Ѓ,[^_]D$b?,$b1S>,$hG$躲14UE@t$ENtD$b?,$1UWVS,}GG t$G EED$ ED$D$}cE $趶u 1,[^_]ËEP*tD$*$tfE$yE؉Utu`*ED$ E؋U܉D$T$G$褯É4$iuKG8**`D$b?,$~1DE$hEؙUl>,$G$31UWVS,$~MA$1<[^_]MA$>UЋMԉT$L$$É4$uDD$ E؋U܉D$T$UB$艭Ɖ$NY**D$b?,$|1<[^_]ËE$fEЉMUWVS EHiUB$Ɖ׉$!t{EP8u4$|$ [^_]ËPB;BstB tt΋UBD$ $肪뺃UB8D$b?,${1뛡>,$|UB$J1y$KUWVS,EpED$ ED$D$cE $葲1҅tg11]~RxBUT$ BD$ED$E$nƉ$tEE)E$Po‰Ѓ,[^_]D$b?,$z1҉Ѓ,[^_]ËUB$虨t>,${UB$81UWVSL }EEGt9ED$D$cE $舱uKDžL [^_]D$b?,$KzDžL [^_]$.tDž DžDž軪+|$ GD$T$4$$D$D$ 4$~Y0 )ډT$D$ $8څtNX)ЉD$$ED$$ ƋEuEP$R낋D$\$$E~9s,9EG$5"1UEP$REu EP$RtUDž랋ѥH]tBD$E$xUB$PDž=D$$jEaT$D$$谬>,$axG$賩D$$EU~81҉-ÅD$E$etTED$$ËEt2>D$he>,$viC$P롋EP$RUWVS1ŰB ZMAD$ \$D$$艬9}9uċE܉$5EUD$|$Ủ$hEЉ$uii1C$PU܉$X>,$uMA$n1ۋŰt@EЅtMЋt ؃<[^_]ËA $P؃<[^_]ËA $PB$Pt&D$df?,$s1뉋E $EЅtd$jE1E*g**E̅;D1=D$b?,$s16D$8f?,$r1UWVS }_t[褣G$sÉ4$u** [^_]á>,$sG$1D$b?,$ir1UWVS }G@t<$UGt*wt#=ËG$WƉ$hG,$W t tkWt tKWUWVS,ljUMX p(@$)EthD$D$ 4$1unG MMUUEtEUT$t$$0$۠E,[^_]ËUT$$E,[^_]ÍX)֋EЉD$$eEEW(t$T$$轥_(;_$thE멉 $G G|$ GD$ED$G $BƉ$St@_ _(3G$G t$G E(EEG$ut>,$pG$G tÉ$蝟G EExEEUEPt* 1…tJtËt1D$b?,$o1ËB$P1ɐUWVSu] C= u*D$ u*$UC= u*t_D$ u*$U1uI[<Eu=ED$|$$rƋu C$P[^_]Ë{벋F=*tD$*$6Ut*tD$/CD$4$uÅuD$J$ DžtE8F=*tD$*$Tt$$CÅD$D$<$EMKU1B$P4$ȌƅcG<$PD$c?,$lD$b?,$leuF4$P늉4$0sC$PG<$P F4$PUVSu] C= u*tUD$ u*$DSt_C= u*t7D$ u*$&Su#D$b?,$l؃[^]ËCt։D$4$p1ۉ؃[^]Uat1ɐt&@auD$f ?,$k량4$]ƅtD$\$$ËlF4$P^UWVS<}EE|E_t<$…tOtSut$]\$ED$;,D$D$ \*D$cED$E $Ǭu؃<[^_]ËB$P뢉t$\$ED$D$ \*D$cED$E $xtMD$YE$1҉ft{MUtjG,E1ۃ|It^tv1G$tN\$G,$G,\$ t$G,D$G$蟛1ۋE$1뢋G,$G,밾f 냐UVSE]4+,t'P4+,@*EXЃ[^]$膛…tR8+,8+,r9sЉʃ BJ9rA؉4+,1҅w`rUUB=*t U]4+,B4+,]US$]C=*tmD$*$OuYC@0tX@PtQ$ЉÅt[@=*tD$*$OtVCuC$]PEC$[]D$f?,$Kh@b$[]{j@bD$g?,$hUWVSD$ D$[^D$ ]ԉ$-E@\$ \$D$dp<$识p-tHu.F0F<$TĬ[^_]ʟ tDButʍqUWVSL] EE@]C=*tD$*$*NtuC]h ,h ,Y}vIh ,E$ -}E޴ fEm]mދE)Éh ,E$CÉ؃L[^_]ËE$iEٞC=*D$*$hMC=*tD$*$FM1Ez $9V$]$$]iz_u]C=*D$*$LC=*D$*$L(*(*EEE EVEEE8EEEEEEEEEEEEE]h ,h ,$>,ID$f>,$dh ,1C]LK$Lǃto0vZED$E$X؋Ex#9wsdi]]]i]$D]YYtYV$U]ލED$E$]E$YDžOEEz$WEЅD$4$EԅEЉD$<$Å4UЉT$$=ƅuԋED$t$<$E1ۅx $?Åt tPt tLEЅUЋB$PuE*EG<$P륋F4$P멉ߋu11E놉$1ۅhRF4$PC$PG<$Pu*UE@$6UE@]UE$$XU(E$ED$$řEiٞv jw $ }E fEm$miUUE]UE@\$$f&UWVSED$$ݐir ٞ 1Eٞi}E޴ fEm}mދEЉuDEЋUUỦ ỦË1<[^_]ÃM:111MM|mFM%jLD$g>,$_<[^_]ED$g ?,$s_`ٍA~D$$?1EiUWVSLEEMt EEEED$$ir =ٞ1Eٞ71i}E޴ fEm}mދEЉ1RP,$ im}mދEЉEEĉEȈMωEЋUE UEUĈEUȈEUψEEU 1L[^_]ÍQueEEĉEȈU111s]]]%j]~-D$g>,$@]L[^_]EEEEE111D$g ?,$\ٍD$$讕1Ei UWVSE] tUۍ48уM47  7 1RP,$ iE t jPT$$ }t[^_]UWVSEu tMуM8M  447  1QR,$ 7 1RP,$ i iE Et jT$$/}t[^_]UWVS\]E tC=*tD$*$AtFCECE]؉3D$g?,$Z1\[^_]ËC=*tD$*$A'C=D$ |$D$C $ʘu}уMW{]3MыDP uل1h ,h ,ED$E$_z]؋h ,E؉$ٽ f٭۝٭)Éh ,k;EMu9!(9Eٞu~z|ءh ,h ,E$|]؋h ,E؉$ٽ f٭۝٭)Éh ,Eݝ=4+,q4+,P4+,@*݅XD$h?,$tXED$ED$$EWMӋDP u݄t$ D$xhD$$\$?,$W1!Ed$>,eD$^>,$Wh ,1D$h?,$W1$>,FD$1D$Hh?,$QW1L$ '$<…tS8+,8+,r9sЉʃ BJ9wA4+,؅4`UVS0uM UElj**tsT$L$$*ÅtND$4$ƅtCXt0[^]ËuC$P0[^]10[^]ÍED$D$ x*D$5gT$ $t΋EP*tD$*$<tED$$lE$ ZUVSE@]u4+,t'P4+,@*EXЃ[^]$聇…tR8+,8+,r9sЉʃ BJ9rA؉4+,1҅w[^ÉUVSEx*t5@]4+,t/ЋR4+,@*EX[^]Ã[^]$迆…tR8+,8+,r9sЉʃ BJ9rAډ4+,1o]UVSE@]e4+,t'P4+,@*EXЃ[^]$ …tR8+,8+,r9sЉʃ BJ9rA؉4+,1҅w\UWVS] P*t}D$*$o:ugP*D$*$J:@=*tD$*$&:teU1҉Ѓ[^_]Ë$<P$]4+,ЋR4+,@*EXU1҉Ѓ[^_]Ë$]@bE4+,ЋR4+,@*EX$g…tU8+,8+,z9sЉʃ BJ9rA54+,14>[Ɛt&$…s8+,8+,z9sЉʃ BJ9rA54+,1Ft&ZUWVS=8+,8+,4+,DžPDžTDžXPO1>tz*uutZ8+,=8+,4+,>y*t2Aȃu4+,X߅u>,u&[^_]Ë9uƉ<$蛚Tš( ,D$ D$D$$>g-XbPt1cP+TbXt1cL$PL$D$T$ XD$D$h( ,$(=>,3 8+,``> {*utD$ D$[^D$ Eԉ$5C\$ MԉL$D$dp$%np\p-1u].A0ApD$D$ \$D$h( ,$?~H` `5DBt0\\0uމsq\Wa\KDžPDžTDžX( ,D$$ vYUVS@uED$ D$[^D$ ]؉$E @\$ \$D$d4$l<-t;Äu.F0F@[^] tDButփUVS@uD$ D$[^D$ ]؉$:E @\$ \$D$d4$0l<-t;Äu.F0F@[^]\ tDButփUVS@uD$ D$[^D$ ]؉$E @\$ \$D$d4$k<-t;Äu.F0F@[^]Ƅ tDButփUWVSE D$ D$[^D$ ]ԉ$E@\$ \$D$dp<$jp-tUu'.F0FE D$<$R1Ĭ[^_] tDButt&뽍qUWVSD$ D$[^D$ ]ԉ$CE@\$ \$D$dp<$3jp-tJu.F0F<$رĬ[^_]N tDButȍqUVS0]u C=*tD$*$1C]F=*tD$*$1F]Сh ,h ,ÃnEE]E$p}E fEm]mE)Éh ,E]ء4+,4+,P4+,@*EXЃ0[^]ËC=*D$*$0C=*D$*$0(*(*띋F=*txD$*$0udF=*tD$*$f0t4$豻Uj>1҅.EEF]Сh ,h ,Ã$>,薀uNh ,wC],$'U@b(>1҅D$^>,$Hh ,1y$z…tU8+,8+,r9sЉʃ BJ9rA4+,1҉؅YQUVS0]u C=*tD$*$.C]F=*tD$*$.F]Сh ,h ,ÃoEm]E$ }E fEm]mE)Éh ,E]ء4+,4+,P4+,@*EXЃ0[^]ËC=*D$*$.C=*D$*$-(*(*띋F=*tyD$*$-ueF=*tD$*$-t4$ٸUj;1҅-EEF]Сh ,h ,Ã$>,}uNh ,vC]+$NU@b O;1҅D$Og>,$Eh ,1x$w…tU8+,8+,r9sЉʃ BJ9rA4+,1҉؅NUVS0]u C=*tD$*$ ,C]F=*tD$*$+F]Сh ,h ,ÃnEM]E$ }E fEm]mE)Éh ,E]ء4+,4+,P4+,@*EXЃ0[^]ËC=*D$*$)+C=*D$*$+(*(*띋F=*txD$*$*udF=*tD$*$*t4$Uj91҅.EEF]Сh ,h ,Ã$>,zuNh ,wC],$vU@bw81҅D$Xg>,$Bh ,1y$t…tU8+,8+,r9sЉʃ BJ9rA4+,1҉؅KUVS0]u C=*tD$*$1)C]F=*tD$*$ ) F]Ѓ=>,Eh ,h ,ÃE}]E$}E fEm]mE)Éh ,E]ء4+,4+,P4+,@*EXЃ0[^]ËC=*D$*$4(C=*D$*$((*(*띋F=*t{D$*$'ugF=*tD$*$'t4$ Uj 61҅v+EExF]Ѓ=>,rD$ag?,$-6U1C]$>,wugh ,P$eU@bf51҅D$ig\?,$?1_D$xg>,$?h ,19$q…tU8+,8+,r9sЉʃ BJ9rA4+,؅1sHUVS@]u C=*tD$*$%C]ȋF=*tD$*$%JFUTh ,h ,E\$E$CnUzwuu؋h ,E$}E fEm]mE)Éh ,E]ء4+,4+,P4+,@*EXЃ@[^]EEE8j]dC=*D$*$$C=*D$*$$(*(*oF=*t|D$*$h$uhF=*tD$*$J$t4$蕯Ujٞ`Z21҅EEEFU+C]$>,~t1D$g>,$<h ,1$Uj11҅vcEEuD$g\?,$U<1.$In…tU8+,8+,r9sЉʃ BJ9rA4+,1҉؅ EUVS`]u C=*tD$*$"C]ȋF=*tD$*$"FUh ,h ,CE\$E$jEuzEEE8+%jڞz}EfEmm]EUiڞj]h ,E$]}E޴ fEm]mދE)Éh ,E\$ E\$$g‰Ѓ`[^]E۞;*C=*D$*$ C=*!D$*$  (*(*uF=*t~D$*$ ujF=*tD$*$ t4$ΫUjٞ.1҅EEFUC]Mu]t$>,pD$g>,$8h ,1,$t&Uj.1҅FEED$g\?,$k81USE D$E$m…t=(*tX t ډЃ[]ËB$PUVS`]u }*C=*tD$*$C]F=*tD$*$FUءh ,h ,ÃTEE?E$p}E޴ fEm]mދE)Éh ,E]4+,4+,P4+,@*EXЃ`[^]ËF=*tD$*$94$$Ujٞ!,1҅uEEEE 4+,4+,P4+,@*@@ Ѓ`[^]ËC=*tD$*$NC]5F=*tD$*$FU0fEh ,h ,E\$E$f]h ,E$}E޴ fEm]mދE)Éh ,UE0bٞ18b"UE]С4+,4+,P4+,@*EXD$i?,$41҉Ѓ`[^]ËC=*t%D$*$u(*(*$ڦUj)1҅VEE{"?,$T51&}EfEmEm]EE@bEEٞztizEt&}EfEmiMm]EU]ȋ4+,{4+,P4+,@*EX$>,ju/h ,؋U"$>,j?D$g_>,$2h ,1E~Up؍t&"D>,?@b]$nd…_8+,8+,r9vЉʃ BJ9rA4+,؅1D$i?,$11D$\i\?,$11$c…8+,8+,r9vЉʃ BJ9rA4+,؅1X$`c…to8+,8+,r9vЉʃ BJ9rA4+,؅17:+:Éh:Ít&$b…tU8+,8+,r9vȉу AQ9rB4+,؅*1c9UVS0]u C=*tD$*$2C]F=*tD$*$ FUh ,h ,ÃkE}]E$}E fEm]mE)Éh ,E]؋54+,4+,P4+,@*EXЃ0[^]ËC=*D$*$BC=*D$*$(*(*띋F=*t|D$*$uhF=*tD$*$t4$Ujٞ$1҅*EEFUyC]F$>,fueh ,z$螠U@b #1҅$D$ig\?,$ .1D$xg>,$-h ,1f$_…tU8+,8+,r9sЉʃ BJ9rA4+,1҉؅6Ðt&ېUUB(t B@Ep!BF;Xt\$$LtmMUD M)U D$M $ÅtzE uuUtV9ttVt t^tFP$R^`C$Pd[^_]ËMQvyUWVS,]G{Cp$6F=*tD$*$ED$ED$E$LE4$‹<9@SB,@=*tD$*$+SB(@=*tD$*$txSB,PM L$D$<u $C@(PM L$D$@< $ED$ED$E$ ,[^_]Ʌ)DED$ED$E$ËC@$M L$D$u4$ @U<+,t!B <+,$,_-@+,<+,uߋD+,t t D+,ËB$PD+,UWVS,uB<[^_]Ë;tsFhw+,uG+,\렉4$,WE룡( ,D$ D$D$$lDUb}t1cE+Eb}t1cL$ML$D$T$ ED$D$|l( ,$;=>,,=d+,_1  Rt>{*utCD$T$ \$D$l( ,$q; Ru‹?u<[^_]EEE( ,D$$ @SUWVS ]Chw+, [^_]Ë`+,t#ЋR`+,@*X [^_]$u=…tUd+,d+,z9sЉʃBJ9rA5`+,1{dLƍvUWVS u} F=*t(D$*$u(*(* [^_]Ë^G=*tD$*$tˋOtct4ؙƉ)Ét1x=D$t$$%l [^_]Åyȉu‰} u*H [^_]ȃD$l\?,$& 1QUWVS EpxFx*tXFhv_`+,ЋR`+,@*p؃ [^_]É߅Ghw+,É؃ [^_]Ë+,`+,ЋR`+,@*x؃ [^_]$Y;…d+,d+,z9vЉʃBJ9wAډ`+, 1M4$`ƅt$KË&F4$P$:…tad+,d+,r9vЉʃBJ9rAډ`+,1AUWVS,uEDŽt(}"D$l?,$1,[^_]Ã}$8u >0ED$ED$4$LNj]9tA?CBt.DB t]tpЋDP ut$ D$mD$$\$?,$61,[^_][?DB *uumE tE Ghv*`+,tjЋR`+,@*x+,ED$ED$4$mIDžED$E D$4$Jk$l8…tUd+,d+,r9sȉуAQ9rBډ`+,14CUWVSu tF$71t@D$ D$t$E$ DuED$D$$blj$O[^_]UWVS,}M UEEs*T$L$$*ÅP@=*tD$*$tTsD$<$Džtpt,[^_]ËC$P,[^_]É$kƃu*tC$P1렍ED$ED$D$ *D$*lT$ $IFt|UE=sJ*tjD$* $/uPUB=*tD$*$tqUED$BD$B $1,[^_]ËUED$D$B$+,$D$,t\lj)t1xlGhw+, [^_]á`+,P`+,@*x [^_]ÅyuUU }*H [^_]D$2l?,$wQ1 D$l\?,$~1$r/…tUd+,d+,r9sЉʃBJ9rA؉`+,1IUWVS u} F=*t*D$*$u(*(*Ѓ [^_]Ë^G=*tD$*$tɋOt^ؙ)t1xmChw+,‰Ѓ [^_]á`+,tfP`+,@*XЃ [^_]Åyu} u*H [^_]D$l\?,$1&$-…tUd+,d+,z9vЉʃBJ9rA5`+,1҅8UWVS,EEU UEEUB=*gD$*$;9EpUB=*tD$*$EX}*UB=*hD$*$Exuع!U܉U؉tuE؅t8}؉E9t#U҉U܋E؅tЙ}9Eft&v@)Ɖt 1!ƍFh+,‰Ѓ,[^_]Ã(*(*Ѓ,[^_]ÉuU؅t}؉E9qEE܋M؅t }9E֋EܙU܅rUWVS E@ޅxLFhv.`+,tqP`+,@*p؃ [^_]Ë+,É؃ [^_]Åy$6xƅ$ËuˋF4$P$)…tUd+,d+,z9sЉʃBJ9rA؉`+,/1YiUWVS Ex*t?XChv-`+,t5ЋR`+,@*X [^_]Ë+, [^_]$(…tRd+,d+,z9sЉʃBJ9rA5`+,1iƍt&UWVS EXӍChw+, [^_]Ë`+,t#ЋR`+,@*X [^_]$'…tUd+,d+,z9sЉʃBJ9rA5`+,1{dUWVS ]} C=*t*D$*$Yu(*(*؃ [^_]ËsG=*tD$*$"tɋODtaɐt\E9Eh`+,ЋR`+,@*ECe{*tVsFhv5`+,ЋR`+,@*p؃ [^_]Ë+,É؃ [^_]ÃU+,C$tƅG$tDžD$4$ËG<$PD$Gl?,$1j$%…d+,d+,z9sЉʃBJ9rAډ`+,1F4$PvKu݋F4$P1$$%…tcd+,d+,r9sЉʃBJ9rAډ`+,1lÉHÍt&UWVS ]} C=*t(D$*$qu(*(* [^_]ËsG=*tD$*$<tˋOt t~f+, [^_]Á{*t<[Chvڋ`+,ЋR`+,@*X [^_]ÃYChv`+,ЋR`+,@*XD$Gl?,$x1$l#…d+,d+,z9sЉʃBJ9rA5`+,1$#…tad+,d+,z9sȉуAQ9rB5`+,11vƍvUWVS ]u C=*t*D$*$Qu(*(*Ѓ [^_]Ë[F=*tD$*$t#^Chw+,‰Ѓ [^_]á`+,t%P`+,@*XЃ [^_]$!…tUd+,d+,z9sЉʃBJ9rA5`+,1҅yUWVS ]u C=*t*D$*$.u(*(*Ѓ [^_]Ë[F=*tD$*$t3^Chw+,‰Ѓ [^_]á`+,t%P`+,@*XЃ [^_]$ …tUd+,d+,z9sЉʃBJ9rA5`+,1҅yUWVS ]u C=*t*D$*$ u(*(*Ѓ [^_]Ë[F=*tD$*$t ^Chw+,‰Ѓ [^_]á`+,t%P`+,@*XЃ [^_]$…tUd+,d+,z9sЉʃBJ9rA5`+,1҅y`UWVS u} F=*t*D$*$u(*(*Ѓ [^_]Ë^G=*tD$*$tɋOvt`ؙƉ)t1xmFhw+,‰Ѓ [^_]á`+,tgP`+,@*pЃ [^_]Åyu} u*H [^_]D$l\?,$ 1 $…tUd+,d+,z9vЉʃBJ9rA؉`+,1҅7UVS]$uD$$mt1[^]$*W;1tF^ ^{t $LC)F)@C)X[^]US]C@PCCPCS t t ][]/C P$R][]/UM UE@ t U E]1]UWVS }_ tEGD$${ƅtG [^_]á ?,$u@?,$u 1 [^_]t G 믋C$PUS]C u1[]É$&¸t+CyUWVS ]} $*91tG^~ ^{t $C)F)@C)X [^_]US]C@PCCPCSt t8S t t ][] .C P$R][]-CP$RUWVS ]} uCt t$$ׅuC tt$$ׅt [^_]1 [^_]UWVS }Gu 1ۉ؃ [^_]$NƅtD$D$G$6Ët~D$G D$$(&ƅtt\~WtGtlW fG PB$P1BF4$PtC$P뗡@?,${B$P뇐UD-,uÃD-,`-,$H,D-,tރD-,`-,$(,D-,uUWVS ]<%?9t [^_]D-,D-,4`-,uPF ^^^{t $C)F)@C)X [^_]Ét)$GF e|$D$$8눸$F u6$*61LD$[$]n1{US]C=*tD$*$t C[]D$}$]nUVS]u C=*tD$*$PtLx;s|#@-,t'D$ ?,$r1[^]ËC [^]$unK@-,D$$]n1UWVS u] }F=*tD$*$~x;^|1t tZD$o ?,$ [^_]ÍF 8t t 1 [^_]ËB$P1 [^_]ËG<$P뛅t tD$$]n6닋G<$PUWVS }<$( 0,1 0,G t4_4x0ttTG y$-D-,ONW*tc<$ 0, 0,0,t~3 [^_]ËG 0P$RG 뛋W븉} [^_] [^_]<`-,D-,UWVS}<$t/|%E D$ D$D$$n1[^_]ËE D$$[ O~Y11D$E D$G 0$uY;_},~#E D$ D$D$$nQ뫋E D$$]<$1[^_]É<$NUE@]UWVS u} 119^~!D$F D$<$ tڃ [^_]US]E x ;C}  C C H[]á@-,tD$ ?,$1[]$un4H@-,UWVS u] UxwF9cE9F9~U)؉EE$E1t^ w E [^_]11ҋ29Mu܉)ډU1UWVSuE E@=*tD$*$UBFy [^_]$E1UtS~ }Ex V~-UDD9؋V9|Ex Ep @ E[^_]ùD2Dȃ};G|΋}G@ D$D$o?,$s1UWVS}] !Ëw΅t{tșE9t [^_] $E1MtCEH GtPw ~+E1҅~G9|E;]u܋E[^_]E[^_]tF=*tD$*$t;4$Ët늋C$P뷋F4$PktD$,p?,$AF4$PUWVS,EˋEE֋E M UtA+]E9~ߋEEU+uup9i؃,[^_]Ë]E9}ߋE)]+]D$ED$$m؃,[^_]Ë} u <9މ})<UM U|t׍wԍw9ލvR)<D$ED$U$|uʼnĿEE to?E)‰ЋM UD E؃U}9LǍ?E)‰ЋM UG}D$UT$?E)‹$E܃}9믿EE tUM U~?}9NjM U}̻ED$ED$$7?~>}9~9D$ED$$}Ȼ؉}؉}JUWVS,EˋEE֋U M EtC]E9}ߋE)]+]+uup9g؃,[^_]+]E9}ߋEEUD$D$E$ m؃,[^_]ËE u79})<EM E|uٍw֍w9Y)<D$UD$E$|tȉvĿEE tUM ES?d}9[NjM EV}̻D$D$U$?}9D$D$U$}EE to?U؉)‹M EqE؃}9Ǎ?U؉)‹M Eg}+D$?U܉)‹D$E$zE܃~}9~뵉؉}؉}MUWVS }] uC=*tD$*$dtuCE GE [^_]D$n?,$=1 [^_]US]St t8S t t ][]!C P$R][]!CP$RUS]St t ][] CP$R][] U(ED$ED$D$ D$D$bE $1҅toE@=*tD$*$(tREP*tD$*$t0ED$ @D$E@D$E@$誁‰D$n?,$1҉UWVS}tpG=*tD$*$荼tRw4$蒨Et8à 6W D$T$$ x1ҋ9uE[^_]D$$]nFEE[^_]UWVS,}EWUED$D$z ED$D$ z ED$D$nE $ tDEHA9UAB ML$$U]EUU)ƉuuEEČ[^_]É4uUUML$G$ڋ]C4EE~9E][]ȋEu;F Fü9t$UZB E44$QMAz]Y ]UBt$ML$$E@EčEUC}EMM}u6uEEuMu?tEEmcE9EEMuuUUEm}M9MEmAMTDDT]KE@EUM;Q 'Aˁü9t$EX@ Uԉ$MA]Y UBt$ML$$#][]uUփ}EMMs}]]E1ۋEMEtA<m9]HEMEzuUUEm}JM9M1vm9]ED$MD$$uUUEm}]9]|1D$MD$$yt^Emu9uUED$D$M$"uUUEm}Ou9uED$D$M$tUEČ[^_]É))ljD$GD$C$M)MEEtE4)Ct$UĉT$$EČ[^_]ËEԉD$UT$4$fEČ[^_]É4x]]1})EUEPML$$MU E܃t?ۉ\$ED$4$]U)U}E?mML$$M]E؃t,ۉ\$|$4$ߋE)EUUm}<}}MM]K?uȃu1})EUEPML$E$MUu6U)‰UuuuED$E$Uċ)‰Uu?m}}MMȋEHuu*))EKUD$T$ $+uЃt7u]ۉ\$|$4$MEE\E)ÉD$)ǍGD$C$MEE%uEEEEEE݉uE=uF9t$EX@ EEUWVS,U EEEju*)E=* tEURMI ][UBB BtLM$u,4Dž8Dž<Dž0E ?1ɉʉ ׃Dž91C93DžSjt;r׸5 \9ы9r1ɉЃ ?19Džt*\9sы9r9I9U  99 uA9vt) @uЍs͍s9t&v9)D$D$$it9wNj9wʍJB9r9v ډ,<@<D<<9}_ڍ,xY<_@$*1҅tp‰UtЋEQDžzD$n?,$薻1zDžD$CD$$)h9wƸDžD$CD$$HW9w@US]taC=*tD$*$átCD$D$$¹t1Ʌu B$P1ɉȃ[]D$_$]n苼ȃ[]UWVS,u] C=*tD$*$2t[SF9*@-,D$ ?,$G1҉Ѓ,[^_]Í  F F HЃ,[^_]ËC=*tD$*$蹠t#$ ÃtNx\F9{ 룁{ *thD$o?,$聹1҉Ѓ,[^_]ËF=<̮t&Fyv$un@-,ED$ED$ED$ ED$FD$$xWE$$…t/~ p M]1ۋM9]1UWVS u] }F=*tD$*$hF9cE9SF9`)߉}$G1t-^ w E~11ҋ2;Mu [^_]ËE붉E9)؉E1E9D$$]nع1UWVS}wt.E ] ދG9#9|_mE$[^_]É1D@ЍEt{W }?EtoD$$6G _EGG E} ~E~1ɋU9uEE9E u[Ey늋G E:GG GSt tCP$R觿1UWVS } UB=*5D$*$($E@EEM}!]UB9]9|WZ}!;}}EX 9B9~U1 [^_]É1D@Ѝ4tJEP ?wUt9D$$kt>UB Zra;}mMj1벸D$$-u[ [^_]ÉD$$]n DD$Pp>,$ִ%D$$]nζUWVS,E$URu#$,ËM $9؃,[^_]$b1ۅt׋E@#EEMT9_EԃG MԋU܉ 1ۋEEEU؋E;PA U$GEԉE`G=*tD$*$蕚OM܁˃G9I1D@Ѝ4u1W ?!uD$$<G _w$EG ED$E$DW EE$nEtmWG DEL$E$Et*|$$1ËEuEP$R1ۋG<$PEP$R0vbD$$]nD$Pp>,$~$nzT1MUWVS }GE=ÃG9 9|_E1D@Ѝ4tNW ?w\t@D$$VtEG _wU G M** [^_]1뮸D$$u?1 [^_]D$Pp>,$1UWVS }G=*tD$*$諗M GE=ÃG91D@Ѝ4u1W ?wnuD$$LtRG _wU G M1 [^_]D$$]n! [^_]9p_(D$Pp>,$ίUWVS,ED$ ED$D$;oE $1҅EE܋uURU}]UB91D@Ѝ<u1EP ?uD$$tUB ZzxY;u~euEX 9B9~U܃**Ѓ,[^_]9TZyu!;uMȷ1҉Ѓ,[^_]D$Pp>,$i1D$$]ng1UWVS] C=*=*;]$PE@@pE$aUr09kB91D@Ѝ<u1EP ?uD$$UB ZzEpU$Uƅt(Ex‹@9}WB 4BU$Uƅu諢@?,$蒷nU1[^_]Á _9|@9|:EXUB 41ۋtKUu1D@ЍEuEEP }?w?EuD$$nt"UB ZEBhF4$PszYD$Eo$l~ƅ@=*tD$*$%FEEE@E]ËUB9 91D@Ѝ<u1EP ?uD$$UB ZzF=*9D$*$>~ EEX E~11ҋ:9Mu**[^_]D$Pp>,$۪VU9;v`EX@9}`9}Z1D@Ѝ4u1EP ?uD$$]UB ZrU,B$P~ F4$PvBZvB$t&P1?,$:u,?,$)eF4$P1w農9US]E D$$…tt ډЃ[]ËB$PUWVS,EED$D$ ؘ*D$_oED$E $tnEx tBp@@ @xSt t!y<$Eu(1,[^_]ËCP$RѸ,[^_]ÉD$E$%…tދuB$P1U]UWVS\E9ED$go$hzEË@=*D$*$E@EċUB=*][ ]E ]C9E ~E }9} U UE}+}̍EtU]{ 1ۅtKEp@@ @xSty<$>1ۉ؃\[^_]ËC}}=*#D$*$׍ } }E  E UB}9}  9E+} }̉E}+}̍Ur E $rE…kE E\$D$$]~WE@EЍUB99Z]s E)EЋED$UD$$FEą~"]1ɋ}t9MuẼx,$蟘[^_]ËUB=*tGD$*$hu3D$$ps[^_]Åx1Eƃ[^_]ËEE[^_]EE>E\6QUWVS Uu#D$$pȃ [^_]ËUB=*tD$*$~t.Uzy_D$q>,$萗ȃ [^_]ËUB=*tD$*$W~iE$$xltz 119XV9tD$ q>,$UWVS ]u!D$%$p [^_]ËC=*tAD$*$}u-C=*tD$*$}t] [^_]鈁Sx11уxLK 1ۉ։9uǃ [^_]ڿUEP1t]UVSuF1)1ۅ~<tN )ȍX񺉈A9t#D$q>,$ʕ؃[^]ÃtfuUWVS,UE zEMEEE؉EEOMUE11ۉP E؅tEЉU܉Љ ƃE9EE9Es)EMЈUщMЃ9EuD$*q>,$Ô,[^_]EEEE؉EE,E9E]ۋE9Es1+EMЈMMЃ9u1,[^_]ÉEEE;}EE9Et+] }wE҉9Et+]E]]D$ r?,$ד@M5U)UЋM9E1=M9MM}؅t ƉUЈMʉUUWVS}t?G=*tD$*$$zt!wu5E [^_]D$j$p@b[^_]EVDW P$х~_\W E8dsTw)ڃP$mu~&~"ɃP$muًE M[^_]EnU]{US]C=*tD$*$yt[tډЃ[]É$i1҅uUS4]EAC=*tlD$*$xuXC=*D$*$xumC@0t@HuwD$k?,$v4[]ÍED$UT$ D$D$$xEU4[]É$z4[]ø߉$ЉÅt@=*tD$*$wt%$zE虉UuC$P닋C=*tD$*$wt0$ED$$p蝒Ct D$BqC$PUS4]Eu$D$C$pB4[]ËC=*tD$*$vtUD$ED$ D$T$$'x EU4[]ÙUWVS,]u0D$]$p趑EEEU,[^_]ËC=*tD$*$]vtCExnEEƒxLS 111E1փ;}uE䙉E؉UEMыEƍEEU,[^_]EUEP]UWVS]} CEG9Et,UtU)¸x1[^_]Åu1E1)Ѝ ƍ@É]Y )MǍJ )׃x͋E9f9t)‹}yUWVS]Sx31уx%LK 1ۉ։9uǃt[^_]ڿİ[^_]UEH]UE]UWVS,utF=*tXD$*$tu"D$$p芏@b,[^_]ËF=*tD$*$?tK^1uu]1\$E$ٞzt>"t"0bٞw8boD$4r>,$ƌME{D~ P$~YL~ 8ds\^)˃P$~"~ɃP$ىM]@bEuz蝁t&8)E?D$j$p@b]UE$]@bEٞt$!‰z 1҅uEUWVSÉ։M@=*D$*$WrC=*tD$*$5r []E1**$|$D$*$tP EPyEuBU EF=*tD$*$qt=E0[^_]Éf%ftf%fu뚉렋F=*t2D$*$:quU1[^_]Ë~E1t u**$t$D$*$訧t$P Etމqtf%fuU [^_]É؃uk߉yE]E]:UP$R1E)UWVSLEU M]$u(*(*L[^_]Ë]IC=*tD$*$o'K=t&]E]t&C=*D$*$oD$j$p茊@bUEz Eqe}SEE1EzEu]؋]+]́5xww$D$D$j$p赉@b]EAEDC P$Eȅ~]EȍTC ƿ8dsLK)уP$~"~ɃP$ىuM]Pst]E@bq1詷)؉D$E$蛿ٞzt/>"0bٞ8b$ZEP$Rt&5 EP$R/EEVDS P$U̅~]LS 8dsTs)ʃm P$E̅~&~"Ƀm P$E̅M]@b8D$|r>,$莅1xEPD$\r\?,$^1HUWVSU P*taD$*$!luHU @=*tD$*$kUU 1҉Ѓ[^_]ËU xE1**$Rt$D$*$ftP EuSquE U1҉Ѓ[^_]Éf%ft։f%fuÉumމqtEHUWVSu4$dyu][^_]x>,$@u 1[^_]ty~*t|F1)׉**$B|$D$*$VEtB‹FBx# EH 1f9uuld]UWVS ]{*t{C1)։**$t$D$*$趠Džt0CGx# H 1f9u [^_]Ã؃ [^_]UWVS EPu x*1)Ɖ**$t$D$*$ DžtDUBGx%Uƒ H 1f9ut UB؉G [^_]ÃE [^_]UWVS ]C1)։**$Pt$D$*$dDžt0CGx# H 1f9u|$$UUF [^_]UWVS]s{*tq**$t$D$*$ŞDžt0CGx# H 1f9u[^_]Ã؃[^_]Éߡ**$0|$D$*$DEt‹CBx# EH 1f9uUtC؋UBEdE\UWVS ]C1)։**$t$D$*$袝Džt0CGx# H 1f9u [^_]UWVS}E1t u**$t$D$*$tP Eu5qu ȃ[^_]Éf%ftf%fuމqtE`UVS]1t ؃u**$Ht$D$*$\t P pu ȃ[^]Éf%ftf%fuUWVS*$D$D$*$藛t@<[^_]ÍH )Í{**$#|$D$*$7E1UȅtM)‰))L$E$ xFEȍ\X 1}E޴ fEmUmދEfP$$D$$ʵ9u؋E̅uEȃ<[^_]EEXEȃ<[^_]D$r>,$|1UWVSLUM E]]ȅtv xUEEEȅtxEtm1ۉ8tj)ߋEȅEπ}t9σL[^_]$EЉEEEȅu11ۉ8uE9t:t낡*$AD$D$*$Qt@L[^_]É**$\$D$*$ E1u؅tEt}}EЉEEE11ۉˋU ƍKvf%U܋MfDQ UKE]];}ut}܋Eftx }܀}t]܋U܋M؉Q1)ƅ~WNMċ]؉f|K \K M~"y}U؍Dr}č|z )ft9t ]܅xE؉HE؃L[^_]UЉUEE11ҋM4E]% ƍJvfE܋Mf\A EJE]];}U(EU EUEUD$ ED$D$$U(EU EUEUD$ ED$D$$UWVS\}t$D$r?,$y1\[^_]Ã$܋E„EÉuEub0f UU<90x?9};EM<9~<`OWڍGu0S듋]+]ˉș9zD$r?,$x1\[^_]Éu^*$虿D$D$*$評EaUU<9i09EuԋUB1)ЉE؉Ã**$\$D$*$%E̅E؅UEM؋ufTN FEU1)‰U~[UMf|Q uJ\Q M~%quUu̍DVUTV )ft;MtE܅ủNUEM̉M'M跮uDB EEu肮DA ؄uEF<@7}9}bEM}Ok**$'D$D$*$7iÅt2@f@ D$4$Ƌ1ۋEt(EEP$R؃L[^_]ËEP$RI@uD$Gl?,$J1똡*$ZD$D$*$jhfC$PNE@؉E̋UBE]^ED$4$Nju F4$P**$輑D$D$*$gÅtU@f@ D$<$Ƌu C$Pt"^G<$Pt1UWVSLEԉUЉM̋@UԃfE}̋}ȅ}̃fE}^}|E}&}ԋ}}&}E9**$蜐UT$D$*$fEw]k}ԋŰ}}1)ƅ~YFEċUf|B uI\B M~"AEUDr}č|z )ft9t}4EH]u܅**$賏D$D$*$eÅ@f@ D$U$rƋb^}u G<$P؃L[^_]ËEȉEf}n}f}^U9~ЉEM]}̋u1Ƀ}^t"}|}&9Mub1;M}F 3E1;M}W f3U1fC 9Mű}ԋ.G<$PŰ%B$PF 3E;M}2W f3U fC 9M;M|13E;M|1EEf9E1fuE**$D$D$*$cÅt5@f@ D$Ẻ$ƋUԋ1ۉ؃L[^_]F 3E;M}2W f3U!fC 9M;M|13E;M|1EUf U?fufuEE& 1f}t&f}tfufuEE|EC$PHىB$t&P1NC$P**$gD$D$*$wbÅ@f@ D$Eԉ$&Ƌt@^ufE}ԋtUcG<$PURC$P뵋F؉FufEEUSEU M]$\u(*(*؃[]ËME|0ËEt"EuʋEP$R؃[]ËEP$RUSEU M]$ٷu(*(*؃[]ËME^ËEt"EuʋEP$R؃[]ËEP$RUSEU M]$Vu(*(*؃[]ËME&*ËEt"EuʋEP$R؃[]ËEP$RUWVSlƉUϋ@1)ЉEF=*tD$*$>)P1ۃ}~ EEM+MJș]É\$$ժEE-~0E}\}} t=C#KgfffmE)u)Ɖ0C} LB0}t EEH9u+QuUE)L$$2El[^_]EEEE~EUUϋMMЉuEE1UB EE9E U"U ,$7Ј)mEu؃EEE9Eu}E0L[ uuU։hE**$訇UT$D$*$]Eą$]MM Eu}҉UȋEЋUUȋMM׉1EEEF‰U1ufGUM)щʃEE9EuɉȉƋUMf|  h+h+h+LE։Й}fEE( €B7ȈE+E9f}uMċA $PU։U։te։Й}E( €B7ȈE+E9uŋEg]UUUhE܉ECx01l[^_]1D$$p?1l+h+UċtKEuEP$R1oU"U ,$7Ј)m9~B$PUE]UE]UE1ɺ ]UE ]UWVSlhd@1)׋hQ1)‰Uk ;}}vn E܃EhDB H1`_**$ \$D$*$ZE l]11F `ffS 9uՉЋUfDz JM1)ƅ~]~XEf|x uI\x M~%y}UDrX|z )ft9tu EHhB1)׍_**$\$D$*$YEh]11F `ffS 9uՉЋMfDy Y]1)ƅ~]VXMf|Q uI\Q Mą~%y}ċUDrX|z )ft9t]EHUE ]C1)ЉE+]܃**$ہ\$D$*$Wpx\}Dx EU)U}M1ۡh+h+h+UMDQ f9>OMEULJ 1uEE܋UtBÉ]ȋM|yMM)U9sދ]ۃmًE)9wE܅11U9U~MDQ fDQ Y}]f;m}1ۋ}9},EU\B ǃmEh+h+h+l+h+pu A $PDžpDžtUMplKhG1tsqhyuω|$t$Ƌt ?**$SD$D$*$cUÅ@f@ D$p<$DžWpptdpB$PlD{ hf;Dz ,*$x~D$D$*$Tpltqths߅dRpd;UtU 1҉Ё[^_]ËM9M&]]u11uރE9]EP Uf8MDq )8f}fTw )σ9]u}EUfE܅}9}u]11ɋUDZ V Ѝf}fT_ 9MR]˃9Muƒm}Ep@\\1)ƅ~^Xpf|_ `}G1)ЉE**${|UT$D$*$Rtx UЍMxKщ1EF‰T1fA׋T)ӉڃEE9Euŋtr1)XȃEf|B \B M̅~+y}̋XtDWUЍTW )ft9XU_tKUDB$PM;A $P-EGEEULB Uu B$PЁ[^_]11'11)pXKٍ\_ M؅~(QU؋pDwXTW )ft9\VpKEeMSA $P5t1҅A $P1\#trމrpG<$PDžptIptCC$PuB$PF4$P묋B$P ِt& A $P?C$PىD$\r\?,$?1hX **$x|$D$*$Npl p ?41xMۉ]Ӊ1EA‰T1ufCUT)ЉƒE9}ufzpR|1)Å~[spf|p uJ|p M~"AEpDZTr )8ft9t|yًpKz1t u**$uwt$D$*$Mt#P 1tމqtf%futApUSEU M]$ƣu(*(*[]ÍMUE$+xDEt(Et E[]ËEP$REEP$REUWVSED$D$sh$dME$U EUB=*D$*$aUB=*D$*$89MyDžL1t u**$ut$D$*$KtP L|q@< 1Ex~=h !t%tuB$P!uۋE4E@t}ERnED$<$Et}E<)E$1ɋ<t }EDD]M싕DMf%ff%fuEP$R3G<$PG<$PEP$REEP$RG<$PvB$PhhW]E,u>MUE$x>EtEEtQE$[]D$eq?,$yEEuEP$REuEP$RE롐UWVS 0,.,.,4.,FuJG _{t $HC)G)@C)X [^_]Í^D$`D$$WFF ^F$`*pDžtSXD$`D$$WGG _G5$t0,1UUWVS1҅t Ѓ[^]ËC$P1҉Ѓ[^]É$JuϋA $PD$L$tD멉\$>,$R UWVS|}G=`*tD$`*$GEGE9EEw]D$`ED$$LD$`D$E$NGG EGG]St ~`Stu΋CP$RD$`D$E$NGG EGG]Ut E$`|[^_]ËCP$RnUWVS ]} C=`*tD$`*$tUxOs[9~OB9|<}tЋDM]tЋDU [^_]1 [^_]ÍL0uH9| tUWVS }w<$Z 0,1 0,WӅRSt t* ~6StuҋCP$RċCP$R ʋWG9t$_.,O7W`*tL<$ 0, 0,0,t~ [^_]ËWω} [^_]lF [^_]vF<.,.,UWVS} E$Dt,|"|$ D$D$$tL1[^_]É|$${HUBE1EUMAEE 9EuMq^t߃BE~ |$ D$D$$nLD$|$F$6uz|$ D$D$$;yKD$|$$5ubGC$P9|$$}GE$jD1[^_]Ët5U$JDt#M $*DC$Pv뽋C$Pt&UE@ ]UWVS }u ~*u*F t"D$t$<$WXt ؃ [^_]É4$D1ۃuωt$>,$UMU EtEU M]]UWVS u^ $+t*;^ t/uߋA $P^ $h+u։ȃ [^_]ËFvux11CtCQ  9u}߉ȃ [^_]UWVS u^ $+…t*;^ t/uߋB$P^ $*…u։Ѓ [^_]ËFvux11Kt B  9u}Ѓ [^_]UWVSEp 4$w*Džt4؃0[^]É$>tUD$T$4$VXu 1ۉ؃0[^]Ë]\$ED$4$ uۅuUE$**UVS0uEED$ED$D$ D$D$/E $1F uE]؃0[^]ËUz*ucB t[D$T$4$V‹@tVJ0,BZBn uA $P؃0[^]1ۉ؃0[^]É$=tU듋EeED$>,$1PD$t>,$ 14UWVS }$ƅtCW _Ct8ٺAF AF0,AAo G [^_]ËGE9~Ѝ Au9U}Ѝ At돋tD$t>,$ 1뒋F4$PUE$1UVSu] {*u(C t D$\$4$V1҃x‰Ѓ[^]É$)<uUED$$…t@BBB UD$t?,$ US$E $pEt4E$oED$ED$E$ËEt؃$[]ËEP$R؃$[]UVSE $5pþtD$E$\Ƌt [^]ËC$P[^]UVSu$*&'ÅtGpF C CF CD$*D$*$CڅtЃ[^]1҉Ѓ[^]ËuC$P1US]St t8St t ][]RCP$R][]RCP$RUUBt@ 9B t1]ËB]UWVS }O1t>A 9G WxAEq9~ABG9~tVG1 [^_]ÃoЋUD [^_]Í]|u؍X9| t땋A $PD$u>,${G 1UWVS }O1ۅtGA 9G ukWqx!9AXu3 9}tG1ۉ؃ [^_]ËA $PBGo؃ [^_]D$u>,$G UWVS ExPB M9A .YxBEr9CMA9a?G GEh؋UP@W G [^_]ËtKMA1 [^_]ÍM|ZȍH9J t,$^E@ 1IUWVS utcF=`*tD$`*$tE^ $t*;^ tOuߋA $P^ $u։ȃ [^_]D$/$t1ɉȃ [^_]ËFvuxɉ11St A  9u}ȃ [^_]UWVS utcF=`*tD$`*$HtE^ $Pt*;^ tOuߋA $P^ $&u։ȃ [^_]D$%$t1ɉȃ [^_]ËFvuxɉ11CtCQ  9u}߉ȃ [^_]UWVS,E$3Uz :$1ۅ0$;yjE܅LSU9؍Pp$!EE܉D$]$g4$!D$$莔ED$<$QËE]UB=`*tD$`*$EpH9-T0P9 t$thËE$2؃,[^_]ËF4$P(EP$RېF1ۋt6M܅tU܋uB$P$tuh됋G<$P$tZhEtG ED$E$W Euu$thE\WG DEL$E$ҒOW ED]($ngE|$$FËEEP$R1UWVS 1={9؍XUT$@$U u}ED$$U ulUB=`*tD$`*$htGxCEpH9|T0uP9o t{9f1 [^_]US]$*1t"ZC B BC BBЃ[]US]$*1t"ZC B BC BBЃ[]US]$*y1t"ZC B BC BBЃ[]UWVSE $ɡEeEE$mDž+D$b$HÅ@=*tD$*$CC=*tD$*$~CS 2=*tD$*$LS RUEUB=`*tD$`*$G~*,4$/D$t$E$PHtrtAEE$BDžJ1ۅtUty؃[^_]ËG<$PE봍vUED$t$U$ptuC$PUuB$P؃[^_]ËCEs C}C$P F ?,$]gUT$D$EG<$P&C -F4$P뷋C$P롋u G<$Pm1u G<$PCC$PUVS0ÉEED$D$ D$ED$$O tTE1҅t1D$$7t@D$ED$$…utD$t$$‰Ѓ0[^]D$ED$$UEU M$\+1҃t **UEU ME]UVSutF=`*t3D$`*$uD$ $t1ۉ؃[^]Åt0D$t$$tԋu C$P11ۉ؃[^]U]eUD$E D$E$UWVS uE $]1t)F=`*t)D$`*$ut< [^_]Á{*t<$(t9D$\$4$VxuċC$P [^_]ËC u/1vUWVS,ƉUM܋Py!EEUE܉E,[^_]EEEEEFHtAX}tTD$\$E$4 tVEE 9U~qC$PVFU|UB=`*tTD$`*$}u@EtUEtU]}Vr{*$&D$\$E$P@tD$D$<$&3gtyG<$PVU;VFULC kUB$P]}VB$PC$P&rtCUtDutUtEEB$PC$Pt&뮋B$Pt&묋tt}u덋C$PۋG<$Pt&UWVS]u F 9C |~[^_]EMEMډÅD$E$.DžuE1tD$E${.NjUtQt tcUt t>UYJEP$R[^_]ËUB$P롋EP$Rt&믋C$Pt&׉zK,UWVSuF=`*t&D$`*$u(*Ѓ[^_]ËU B=`*tD$`*$t͋E(*w‹U B 9F t11}`j*9tlj*뜋VEEg<$U#D$|$E $P@D$D$$/NjtwVEE 9UTEFXtxU B=`*tD$`*$t@*XG ]EC$P{vuC$P11ҍt&yUWVS u 0,t}C 0,C *ECts EtEECs~t $QF)C)@F0)p [^_]$ *?1tUEx *u@@D$$$u1UEx *u@ D$.$u1UEx *u@@D$8$ueUWVS]u UCHM{ @w$wD$p$u1[^_]Å$zCD$D$v?,$O1[^_]Åt $>uȋFF E Pt $uFE ,Uu }M[^_]t$gu }M[^_]Ft!؋v ӉD$ CD$D$Pv?,$D$ CD$D$(v?,$^US]C@PCCPCS t tFSt t0,C 0,[]ËCP$R0,C 0,[]ËC P$RUE@@ t E]S**]UE@E]SUWVS ]} uC t t$$ׅuCtt$$ׅt [^_]1 [^_]UXuE@ tø*D$v>,${1UUB t%D$ @@ D$BD$$vӈËBD$$v輈USUM A 9B tr1Ѓ[]ËZIA19CtD$$yϺUVSuF 1ۅt$~Ãt!F@$t1؃t[^]ø[^]ðU0,tB 0,$00,uUWVSEEU U}}E<_u}sU:uUD$$uϋ50,F 0,F *^EtEUV F^{t $C)F)@C)X[^_]Ë}}(ED$,?,$91[^_]À_v t8,uUB@XE[^_]P1ɋ]t#]1ɋtPu[u $Džtb1UtCEt'Z$0PD$t$<$zu܋URUtt+t-1$ *79ƅt^<$.G<$P1U(EEEED$E D$E$wUWVS u 0,tqC 0,C *ECts Cs~t $F)C)@F0)p [^_]$ *L81t뎐UVS$*#8ƅt3E$NFu#t tfto1[^]Åt\$D$G$uD$*D$,F$ut-4$+맋C$PuF4$P1놋C$PUS]C=*tD$*$$tCt[]C[]D$0$$w1US]C=*tD$*$teCt4D$G$Åt@=*t1D$*$uD$>w ?,$1[]É][];US]C=*tD$*$5teCt4D$$Åt@=*t1D$*$uD$Nw ?,$1[]É][];UWVS,EXEED$ ML$ED$$}*tҋEP*tD$*$[tE$:8_ux_t=>,~D$$fwvD$*ED$$.ED$ ML$ED$$HjEML$ ED$ML$$}*tҋEP*tD$*$tE$9E8_t`=>,~ED$$wwD$*ED$$lML$ ED$ML$$j,[^_]Éƿ &UVS0uE*E*ED$ED$D$ *D$wED$E $%tH^tOED$D$G$x&ED$D$,$1҅x Ѓ0[^]úЃ0[^]ÅtFUS]$(Ct$pCtC][]CP$RC][]UVSu4$ÅtC4${tD$\$$wX[^]n\$$w<[^]RUM UE@t U E]1]ÐUEt]UUt t]ËBUH]UEU t P]]gUEM UtPH]]CUS]C$)tX[]Ã[]UVS]u CC$])tpX[^]Ã[^]U]+UVS]Ju4SB,u-\$B D$$w}É؃[^]1ۉ؃[^]É$ЉÅt@=*tD$*$t$wƋtttC=*tD$*$uC@ D$D$y?,$:eC$P1LEw[^]/GC$PUVSEP*RDuE[^]$҉Å@=*tD$*$t/D$D$$LƋtoC=*tD$*$t%؃[^]Ã[^]Ew[^]NFC@ D$D$y?,$ t1믋C$P1뢋C$PnUWVSÉ։σ} ~$D$x>,$*؃[^_]_Ht؃[^_]É4$rtg~GC@ty|$t$$ЉÅu4$ 1ۅt>,$4$(녉\$ D$D$x4$ 뼉t$ D$D$$xW뚃tH$DžEE$ËWG<$PI$t&UEU ME]US$UuC؃$[]ÍCvRED$ED$E$)D$y>,$px'ED$ED$E$랻뗋U҉t tsUt tSUt̋uEP$RID$(z>,$x؍\EP$R럋EP$Rt&xUWVS É։ϋ@R9tD$$C@T tC@dt<|$t$$=(*t [^_]á(*(*u$(*,*PF@T t#Pdt*D$\$4$҃ [^_]Ã(*(* [^_]ËF@T gPd\*D$\$4$=(*a(*(*($(*,*PCUM`j*tIlj*tH*t@QB0t@(t $ЃɉËB8tuB4tuظ1UWVS u} HS9tFA0t@Dt|$4$Ѕ~#SB0t@Dt t$<$Ѕ~ [^_]BTu1UWVS lj֋@;B=*tD$*$t!t$<$DuK؃ [^_]ËF=*tD$*$du*~*u,؃ [^_]á?,$t<$nbuGX 4$nbuFP T$$| F9Gst&?9rؐ/UE]UWVSu] ~C=*tD$*$tOHtM] u[^_]C=*tD$*$Ot9D$$Åu1[^_]ËO t)CE u[^_]D$*x?,$ ƍCD$ G D$D$Lz,?,$pUWVS ]U CH t [^_]$!Z1t"D$$Nju F4$P [^_]UVS]C=*D$*$GC=*thD$*$%uT0,D$$YƅD$D$$Q<Ëu1#C=*tD$*$谾tHމ[^]Ãމ[^]ËCD$C $gƉ[^]$w(>ÅtD$/D$$?+ƋuC$P늋F4$PO$HxX0,1ZC@Dt $Љ$kUE D$E$…t&tËB$PO1ɉUWVSu^E P*tnD$*$^uWE P*tD$*$< E D$D$${ E u[^_]ËE E $;SLt9ED$E D$4$҉NjE uE P$R[^_]ËS$tED$E 뻋E tXC u{HtwE MtTxD$T$ C D$D$z?,$[^_]ËE P$RD$*x?,$ E utTxD$T$ C D$D$xz?,$fUWVS]U uCH$t [^_]$ VEt't$D$$Eu G<$PE[^_]UVS]KAUu1[^]Ët|3[^]ËC1)AAƍ3UE]UWVSE@EU B=*tiD$*$׺uRU B=*D$*$貺E D$D$$E 1u U E싐R‹PU11*U T$$۸Džu39uC xp*uʋ@ U T$$訸Džt̓@@UtUtMtCUBD$T$<$ӉƋtdU u B$P[^_]1ۋE싈t>|TU t2U T$$ƅttuG<$P1gtCvyUB1)ЋUBB덉$1HUE D$ UB D$D$Lz,?,$mD$*x?,$1 UEkx][8UE^x]ǮUEpx];8U$*[$*G$j*3$*$* $ *$@*x$z$x $*p$x$j*d$xͭ$*wX$x譭$*WL$x荭$ *7@$xm/UEt E]/E]$UUE t E U] E U]U]UWVS }舛1t7D$y4$Åt?S xC 9u [^_]É|$$1 [^_]$}ÅuɉD$D$y4$MxuC$PwUWVS}КtnD$y$ƅtX@=*tD$*$t:Nى˃x%F 9uD$ L$\$4$.[^_]UU0,B0,]US0,t; 0,CPC0, 0,$ҡ 0, 0,0,u˃[]UEPJytH \$T$ L$D$ {( ,$[]á( ,D$ D$D$$-y=[]UWVS,] E@EC=*tD$*$UЅa\$$诹ƅtJ@@UtAEt;UT$ED$4$UƋu C$P,[^_]EUJAUu#}ED$UT$4$U묋tC}tNjaUrUT$\$$Cƅd>,$O\$,?,$?9C=*tD$*$ײD$D$$þUЅ$} x?Evt:CD$ UB D$D$8{,?,$CD$ UB D$D$Lz,?,$XBE1E)EUQUA‰ЃMQgt\$$躱D$*x?,$UVS@EED$$]EEjٞw<{w/}E fEm]mu@[^]zi{$Kþt@P<$҉ƋuC$P@[^]؍ED$${}E fEmUmUR$$m]mE‹E4KP(t&D$y?,$M@T t&t@duȉ-{UVSEUËPJ(n*uF=n*t ;H(8 tdx(8 t[9tnR0t!RDtED$E$҅F@0tPDtED$E$҅~Ѓ[^]Ét$$‰Ѓ[^]@TuUBH(ED$$щËEE놺x~lED$$щ^t$$n*Jt$$5MA@(u7EEP$RT$ $ЉËEtmEtQƒEP$REP$REP$Rt&`EP$R롋EP$RUWVS ]u }p ,P P ;p+C;Ft+=(*p ,h Ѓ [^_]=n*t@T t5Pdt.|$t$$҉=(*uá(*(*C@(tt$$tTw ${`j*ulj*j(*(*tf~ 16묅뢅똅$CyI)1҅$(*,*P$(*,*PC UWVS u} HS9t[A0t@Dt|$4$Ѕ~8SB0t@Dt t$<$Ѕ~D$Ky?,$ [^_]BTu1UWVS } E19}&p ,P P ;p+VEP;WBT BdEE *BT 2rd'E"Å=(*=`j*t=lj*=*PB0+@( $Љƃ5:U*~E~ Enƒ|^p ,h Ѓ [^_]ËG@T tċ@d뷋B(|$U$ЋMQn*ƒ}p ,h 뛋G@T u)A *P AQ H J[^]UWVS]M ށV0,90,+<F<9w ҍ?9ω $E|$\$$V0,90,+ wpF^uqVF B P0,F50,]u D$$QtÉ؃[^_]ÉM ][^_]/$]׉M[^_]]Ã.F *P FV p r]뢐UE{]zUWVS u} ]$ *1҅t t&t+t0Xpx ‰Ѓ [^_]û*uվ*uп*UWVS ]} uC=*P*$UC=*toP*$ҜUxjC =*P*uX$訜x<9> [^_]ËEC=*uUW!ЋU띍뽍D$*$htC D$*$OtC#D$*$3qC)E;8\1URHU p%UWVS ]uC=*E} 1ҋC=*C =*U:M|9u)ȃљU1 [^_]Ë9|ދE1 [^_]Ë9})ȃËUT$$Ft2M9aU Vt$$u9놋ML$$tUxS;E ?E M2x 9M M=E M y׋UE yD${?,$nUS]CtCCt'C u C P$R][]>CP$RˋCP$Rt&UWVSu$|E$nNjF$@D$]$CA|$$"F $D$$ A|$$F$D$$@$|D$$@u G<$PE[^_]US4E $ÃtVED$ED$ED$ ED$\$E$x0ED$ ED$ED$$BPt4[]/t14[]UWVSu] E19u[^_]Í}|$CD$F$zaxGEuԉ|$C D$F $Yax&Eu|$CD$F$8axE딸UD$y?,$ UWVS,EEEED$$|u 1,[^_]ÍED$ED$ED$D$ D$D${E $0tEt=Uulj$ *htt>t0t"pXx xEE1E뵿*׻*ɾ*뻐UVSu] F=*tD$*$t'tED$\$4$X[^]1UVSu] F=*tD$*$舓t'tED$\$4$S[^]軙ݐ襮1US]CtGtuC][]$~S$GC][]\$@0,$t$~ C][]UWVS]u C=*tD$*$菒t{>EtMCU1[^_]ËC=*tD$*$StOD$$øu1у1;KtD$p?,$닋C@ D$D$@?,$ybD$$|DUS$]C=*tD$*$蕑t SЃ$[]ÍED$ED$$1҅u܋UUS$]C=*tD$*$At SЃ$[]ÍED$ED$$\uًUUWVSu}~*^~\$D$'<$t\$D$"<$"t'E D$<$V~|1M<\tT< < t&< , <^‰D$D$|E $;^}+D9uT$D$|E $;^|ՋE D$<$\1ۉ؃[^_]ËE D$ FD$D$F$1ۉ؃[^_]ËE D$$qE D$ D$D$$|IE D$ D$D$$|d!E D$ D$D$$|<4$ƻS|$E D$4$ Ë/F4$P!UE@]UWVS}u F=*tHD$*$Ǝu4F=*tD$*$討u }[^_]|Wu*uF‰UЃ$UP@*@ @XWGD$T$${_UMAD$T$$\ED0[^_]ËF[‰UЃ$n[^_]~*tF7u)몋F@ D$D$?,$1뇃UWVSu] !ËNtE99G9$x@*EUB BDVts~MEFT$D$E$,^9~*)؉9~ƋE؉t$UT$$9֋E[^_]Á~*Ku~\$FD$E${E[^_]D$|>,$DEE[^_]Ã[^_]dUWVSu] C=*t==*tiD$*$uUC=*tD$*$ˋCECEFE}tQF+EEE9Ev1[^_]É] u[^_]!^]E9u}tG9]sSFD$T$E$dD$?,$.낸xUWVSu} F=*tD$*$teG=*tD$*$ɊtG9}tOVUGE99~VG)‰tU(*}wU$x(*ȃ[^_]ÉËV;Wtklj*ȃ[^_]`j*uރ9ۉ(…uU9U|w}CE$G8Fu9҉`j*8QeobU`j*UWVU} J;Ot 1ɉȃ^_]G8Bur98tUWVS}G t[^_]ËwGOxXiCB19u1ȃtG [^_]ðG UME u QEAD$ ?,$͡UD$?,$諡UU tE@]UME u QEAD$ ?,$YUWVSL]s{EEED$D$z ED$D$ z ED$D$|E $UB=*tD$*$ȇUBEBEE9}n}EyEU]9| E)9$C}L[^_]ÍED$ED$E$[t1L[^_]ÅyE뉋UB=*tD$*$tUD$ED$ ED$T$$t$|L[^_]֋}9ۉ$|܍U1EUWVS ]{stPt9479s1҉)DC t9uE [^_]!|E [^_]|uSDP tUWVS ]{stTt=479s#t&;1҉)DCt9uE [^_]{E [^_]{SDPtUWVS ]{stTt=479s#t&1҉)Ct9uE [^_]#{E [^_]{wSPtUWVS ]{stPt9479sB1҉)DCt9uE [^_]zE [^_]zSDPtUWVS ]sCt]tF19s.12Au'u tf)9uۉ} [^_]!zE [^_]zuSP E [^_]yUWVS ]sCt]tF19s.-12Au'u tf)9uۉ} [^_]yE [^_]vySDPE [^_]TyUWVS ]sCtkE9sG811uLE)9tGuu1Ƀ)9uEE [^_]xuE [^_]xSDPE [^_]xUEPT$D$$|)aUD$D?,$芛1UVS]u t5t B=*t0D$*$GutB[^]Ët$$,Ƌt 3[^]ËP$R3P$RUWVS u} C=*tFD$*$輁u2taD$ $|趜 [^_]Ã;uɅxŋCuGD$$-t&xD@ 1븋C$P딉$gyUWVS }tkC=*t%D$*$tM{*t [^_]ËCu@0,tR\$$nƅtZt!7 [^_]$pv{*u뭋P$R7x@0,u [^_](\$\$@0,$rxۃ+CTUWVSu1эytdtwG$vx@*@ @PGD$t$$-t@ti؃[^_]áD0,tÉ؃[^_]`0,w݉]E$PED0,É؃[^_]覡뗉]E$"E`0,D$>,$-1YUWVS,uM UE*T$L$$*Åtdx|$4$ƅt&HGSD$T$ $C F Ft ,[^_]ËC$P,[^_]1,[^_]ÍED$D$ *D$|T$ $)t͋Et$ζƉ,[^_]$bUWVS,} uD0,tÉ؃,[^_]ËEƃ ˆUtM`0,uǍG$wx@*@ @u2DtA}t]E$IEM`0,\C|$UT$$붉]E$ED0,)iUS]M U!!‹C9~…u9t.19~E CȉE[])ȉE CȉE[]{*uɃ[]UEU x;P}`0,tD$| ?,$r1E U9UWVS,]EED$D$}E $:u 1,[^_]ÍCE[]$ƅt֋U܅~11ۋU< tV< tR9Mω)؉D$E؉$Åt|D$4$uXt+;}o9M~y< vtUu롋C$Pʍy9}~E| u֍yыu C$PF4$P1UWVS<]EED$D$}E $u 1ۉ؃<[^_]Í{[]19vx]-111ҋ]) < t9tV< t< u111EE)EЋU< < < EU9Uuҍ1D$$*ÅQp9}GEE&E< tU< tQEE)9EE܍< u͋M~ڋEؙ)E؃tʼn 9uE릉ș)=14UWVSljӉEE!É!Ɖ u *GD$$*Et.uTEX]WGD$T$$xu E[^_]Ét$ED$_$E[^_]É]\$ED$]$뗃}[^_]UVS ]ED$D$+}E $t;CU9|<{*tD$C$Qȃ [^]Ãىȃ [^]1ɉȃ [^]É)$01ɉtٍ@+t-uY0US$]E ED$ ED$D$3}E $1҅t9SE9| {*t.)щ!ȃ)E$‰Ѓ$[]ÃUS$]E ED$ ED$D$>}E $y1҅t'CU9| {*t)E$1ɉ‰Ѓ$[]ÃUS$]E ED$ ED$D$H}E $1҅t'CM9| {*t)E$1҉8‰Ѓ$[]ÃUWVSEփEE@EtMV1]t)u]CE9VDP uޅu;]t<)\$E$-[^_]|1M9DB t9}u닋My*uUWVSLu^EFEE*ED$ ED$D$R}E $}<U*B=*tD$*$uUBERUЅ $jEЅzMM)ȉE]EăEċ]]ċ}8uU9҉މuыUBE~qM)MȋE)EȋUȉT$$ÅD$D$EЉ$`Ƌ,UUE)ЋMĉMȅaEȉD$Ủ$YÅD$D$MЉ $Ƌx[EЃL[^_]Ã|D$Ủ$Åt3D$D$MЉ $Du C$PUЋ>EEЃL[^_]ËUB=*tD$*$s^UED$T$4$`EЃL[^_]EuE8$lEЅt؃ U: uNM)؉D$؃$ƅD$D$EЉ$t Cu덋F4$PC$PqfC$PEB$PEEC$Pv]ȉD$]}?,$UEEuED$ED$E$EJEUU$EЅ%)E؋0UډDF tyمy~AۍvkUڿDF u 9u9~EԃE܋uԅ~)ىL$}ߍG$FƅtD$D$UЉ$u:tWxHM؋1DF t 9uE܉E8F4$Pٍt&F4$t&PUWVSL]CEESUE*ED$ ED$D$m}E $E`U*qB=*tD$*$DpUBEZ]؅$%E؅EE]EEE9Euű}8u9ۉuՋUBE~cE+EЉD$EEЉ$ÅD$M؉ $ƋX]E؉EЉE9EwU)UȋMȉL$EЉ$ ÅD$E؉$NƋE؃L[^_]Ë]E8$E؅tl1ҋEȅ9U|)UȋMȉL$EЉ$Åt+D$E؉$cu C$PU؋EE؃L[^_]ËUB=*tD$*$Dn&UED$T$$SOE؃L[^_]ËC$PE11Ґ 9uM:1uCE)ЉD$Љ$Å3D$U؉$t0V]땋B$PEE C$PXC$PD$]}?,$REE!C$PEED$ED$E$@EMM$E؅]1ɋEȅE1ɋ0UDF t9M;]ًE9M~UʉUˋ}DF u 9u9}Ƌ}܃E܅~N)ȉD$M $)ƅt}D$E؉$[9]|}܉k;M)MȋEȉD$Eȉ$Åt"D$U؉$t}M؋9A $PEE+U2Uډً]DF t 9u}܉F4$PBuF4$P냋C$PuUWVS<}] GE̋WUD$b$_Vƅ$cHE؅}M؅buEEF=*tD$*$jU)F C=*tD$*$~jTECUtE;Er>x:EEU9UE|tNEb<[^_]D$>,$1ۉ؃<[^_]ËEX PF4$PEb<[^_]F=*tD$*$i5F C=*t =*uF4$Pw1D$$JEԅIǃE؅E؃EuE;U)F X\$D$<$uߋE9E|TEEU9Ut_F=*tD$*$huUB X\$D$<$!ߋE9E}UЉT$ẺD$<$}둋]ԅF4$P]x^ F4$P1`?,$ŋIC@ D$D$Ȁ?,$1%C=*tD$*$ht$t$<$YNj^C@ D$ UT$D$?,$RU]yUUz*tBD$B$p‰ÃUWVS,UBq\$$5ÉE1} E'E'USEp~h1?\tF ~  B<^U;z}#V9Mu\SU;z|EC+]CD$E$E,[^_]\Ct\Cn\Cr끋Epǃt$D$'<$ct$D$"<$GE"E"D$D$|$ضD$@>,$~uUD$E$>US]$~xt @[]UE$8E1҅tE$?UUVS`0,`4, 9t)tuP$R9u׋D0,tu B$PD0,[^]UWVS@0,P`*tD$`*$d@0,$.yDžt@=*t D$*$du [^_].s( ,D$ D$D$$w}?GE;t|@0,$'e@0,tR@0,[^_]1$t2t $'ZC9utG Cu΃ރًB$P뢋G<$Pt&qUWVS\]CEȋsEEED$D$z ED$D$ z ED$D$}E $bUB=*tD$*$'cUBEBEE9uy 1E] UU)ЃE̅EEE9]~#uE9}ĉu"E]]9]݋UЉ$o\[^_]Ã]뽍ED$ED$E$16Q1\[^_]Å\EDUB=*tD$*$'btUED$ ED$T$$t$9o\[^_])]̋Ủ$#o\[^_]Í]1EUWVSL]s{EEED$D$z ED$D$ z ED$D$}E $}UB=*tD$*$BaUBEBEM9}y 1EU])9|99|5)9}‰E)9"֋}9ۉ$VL[^_]$VL[^_]ÍED$ED$E$Z4_1L[^_]Åj MRUB=*tD$*$P`tUD$ED$ ED$T$$t$UNU1EUWVSlÉύ@EċsEEED$D$z ED$D$ z ED$D$d$趯UB=*tD$*${_UBERUU9uy 1E]gEEu9~U+UUU9CUډŰEEUU8uE9֋}*]E9]}ϸl[^_]ÍED$ED$E$v2Bl[^_]ÅJU2UB=*tD$*$i^tU|$ED$ ED$T$$l[^_]ËEEu 9Y+UU9FUUEËUUȉUEËU8uE9֋}t5mm9]}]1E}EȍvUEU t#t EjD$}?,$vv1UEU Vt Ej1UEU .t#t ETjD$}?,$ v1UEU t Ej1UWVSEEċURUEED$E؉D$ E܉D$D$}E $蜬U܋B=*tD$*$a\AU܍BEBEU؋B=*D$*$)\U؋B=*tD$*$\U؋ED$ T$E܉D$E$0É؁Ĝ[^_]ÍED$ED$E܉$|/b1ۉ؁Ĝ[^_]ËU؍BEBEƋUUЉuEEUUuuuUĉUE][}3ut$E$ËU$Y؁Ĝ[^_]ËU܋B=*tD$*$Z&U܋ED$ E؉D$T$u4$/É؁Ĝ[^_]ËE S9UJ҉EMUĉUuuE+EEUUux1ۉx9]|nEx8uu9֋}MuуtIEEE)Ex8E뒋u~*uq؁Ĝ[^_]9|1=EE]Ѕx U9U~UM[E+EEEEu<$跤Et;ED$Uĉ$jÅ$t&{EiU"UE̋EĉEȋUUE+uuEE1ۉ9]UE8uu9Ƌ}MuՃtb\$EȉD$Ủ$1EE)E]̋ut$ED$$ ]̃EU9UtubuĉuȋUUE̋Eut$EȉD$Ủ$ED$ED$E؉$,uuċ}ZED$UT$$eEmEˉ|$t$$DUWVSu΋C]H [^_]P$R>ԋP$RUVSu] F=*tD$*$TED$\$4$[Åtp@=*t=D$*$?Tޅu'F=*tD$*$Tth[^]D$D$$\Ƌtu1[^]ËC$P捴&!ZNt&o1똋F@ D$D$?,$,nuF4$P1^UVSE D$E$G1t#ED$ED$$Ƌt [^]ËC$P[^]UWVS,}EEED$ ED$D$AE $]uG=*tD$*$Rtht$\$<$)ZÅtF@=*t2D$*$zRuC=*tD$*$\Rt؃,[^_]1ۉ؃,[^_]X돋C@ D$D$?,$luC$P1Km1UVSu] F=*tD$*$QED$\$4$]Åtp@=*t=D$*$Qޅu'F=*tD$*$nQtg[^]D$D$$諞Ƌtu1[^]ËC$P捶qWOt&Ul1뙋F@ D$D$ ?,$|kuF4$P1_UVSE D$E$1t#ED$ED$$Ƌt [^]ËC$P[^]UWVS,}EEED$ ED$D$AE $D]uG=*tD$*$Ptht$\$<$[ÅtF@=*t2D$*$OuC=*tD$*$Ot؃,[^_]1ۉ؃,[^_]U돋C@ D$D$X?,$juC$P1j1UWVSF=*tD$*$DF~=*tD$*$DVUԉЀ|L1?-EÉ]]+]E u}o}x}X;]|U}X}xE8EUԉ<[^_]ËB@0$PXƻB$PD1UUUԉT$$E؅E܉‹E~19MuM)م~109u;u؋}&mEUЍxx@X1ҋEԅ A<wA 9UuED$ED$4$B}F7ED$ED$4$uJEE9m)UԋEЅ`-X19uE1FD$V$|g]16F4$PF4$P1 UWVS\ut!UB=*t7D$*$Au#D$$|\1ۉ؁\[^_]Ë] t֋M]{GdD$$iÉE2@=*tD$*$ZA7M A=*t D$*$,AU BыIDžH8t=*tD$*$@DžE Džxe<%]kىy9}tu B$P)\$E$] UB=*tD$*$? +FD$D$ D$D$?,$ZEt uC$P1ۉ؁\[^_]Éރ{(DžDžكxЃ w$*[DZC0  DB DCЉ tDBu1Dž. hlL%tC9qӃxT$<$5+Dž%S$,DžDž] CUDž ] C=*[D$*$.=G8ED$ED$$EDžU䉕샍ネڃуi G=*tD$*$< ED$ED$\$ D$T$<$%Dž0u Dž E-+R Dž+E;  1)9~[+d‰yӉT$E$裹@E؋)Љt2 t 1;})NjtxUXH_E9~5u"E9ލ_ QD$ED$$E䋕)9& 9]~)9%D$?,$+SEEDžDž%DžDž <$[q?C=*D$*$9 EBE䋕x ;DžDž [G=*` D$*$,9H <$qFG=*' D$*$8 $]G=*tD$*$8N\$D$~<$Nƅ%EDžDžcDžDž qFS$U<$]ݝ@b݅f(g;xcubT$T$D$ D$~D$]$݅\$ \$D$x$$o1$эAEDžDž00 Q/ _κ<(ƒ~x <)u)ȃxD$~?,$OCEP$RD9HxL$<$$DžG=*tD$*$O67<$9 Љ^<*օDqWދDžtL1;ttxtXtEoUBEBAUE=E܉D$ED$M $Dž] t*UBEBCU胭9_NjEEf0sDYDCЉDYuȉ9|xD$<$6!DžG=*tD$*$3k<$S6Džx,B$P҉EEED$ $DžvtDž|$$DžDžDža؉ .MDžDž LD$>~?,$3K؉_cD$E$E)؉bDދDžDž EDžDž Q\$D$~<$藁.q1 ?D$~?,$J~DžfDžd@݅g wD$P>,$I G<$PDžE$M<$>3ÃbbtxhxcXZD$L$T$|$ D$t~D$@E$w?ۉ\$ UT$D$x$ $p1$эAEDž#xtXt oS DžA $PDžR5fw S\$ ]\$D$x$$ KD$>,$GAdu_`D$L$D$|$ D$f~D$@E$T DžDž2D$̂?,$NG<sD$P~?,$'GD$2~?,$GxD$~?,$F^t.DžuB$PDžM A=*tD$*$-t{~qE X+$yDžx,M t 1ɋ D 9u扽&EtLZOBU E)L$E$tDžJEP$RD$ D$+]C)ЉD$$5ÅtT$$Ƌu C$Pwt$E$-ËEu EP$Ru F4$P4A $P&D$?,$DJC$P=vE؈EIvE؈UWVS,Ex@E܉D$$Et5@=*tD$*$ (EE؋E܅ E,[^_]'yE1u9U؈29utԋUXtٍ=v#E؈0͍=w,ovэED$ED$E$蜔ESUUHUWVS\EEEEE؉D$E܉D$D$ D$D$[|E $QU܋B=*tD$*$&U܍BEBE}U؅B=*D$*$u&E؋@=*tD$*$P&D$?,$@?Dž\[^_]ËE܋@=*D$*$%sED$ED$E܉$#Dž\[^_]ËU؍BEBE]UB=*MD$*$%%E@‰T$$BƉEt@=*tD$*$7%~UB=*D$*$%uU䉕Džx%9tDžyۋuEx*UЁ\[^_]ËM؅)D$E܉D$$j\[^_]ÉEԉD$EЉD$4$f1}Du닅~M1DŽ9u拕1ۃx(t 9tݻy؅uUz*+|$E$xYEЉD$EԉD$E$zDžt`EЉD$EԉD$E$H1uD$(?,$;DžUЉTEtJEEEED$ED$E؉$;EP$RUWVS,Ep@E܉D$$Et5@=*tD$*$"UU؋]܅ E,[^_]-sE11Xt0t5E؈E؃9}tMXuu"1Ѝ=wp벅t=wi됍ED$ED$M $}E.EE#UVS@u] C=*tD$*$ tRSF9 D$| ?,$91ۉ؃@[^]ÍF`0,tX؃@[^]ËC=*tD$*$ tE$cÃtox~F9~F`0,uD$$1t{ *tSD$X?,$191ۉ؃@[^]ËF%$}.FzED$ED$ED$ ED$FD$$Ԇx}EV*tD$*$tZE^$QhƅUE~1UE9|D$4$1É4$Vhl1eED$ED$4$]t"1ۋED$$b)]Ee2AUVS]$UD$>*$@$!F[^]UWVS EED$5*@$^@$M!Dž~9]1 9t(S tuC P$R9u؋EE [^_]PUE@]UMU x;Q} D D D$ ?,$61UWVS ]u U!Ƌ{9|9~'1$ E1Ut9|E [^_]É)׍\ M1ҋA )9uUWVS,D$5*UB$!?$ EEpD$$*@$>$lj4$ EE1ۅY9]xUT$ ED$UBD$$AËUU؃,[^_]ËUMB B A 9u9]~)41E)؉EU\ UD$B@x0D$E$&+;}u5B$P؃,[^_]1ۉ؃,[^_]ËB$P@Uu؋B$P14UWVS,E P *EE9EEuE4]+]D$D$`*U$iU UB U BUBXF BBtP$#fE1M~\1E E x *U1ɋU9;Et!BZB D9BE;uuɋEUEPx$trxlUU B $'D$D$>*$Z)E$'D$D$5*$;)U$h'D$D$$*$),[^_]EE11UWVS Ep!Ɖ4$1ۅt1E D$$Ƌu C$P [^_]Ë]1ҋC A 9uUWVS Ep!Ɖ4$m1ۅt1E D$$ Ƌu C$P [^_]Ë]1ҋC A 9uUWVS Ep!Ɖ4$1ۅt8ED$E D$$/kƋu C$P [^_]Ë]1ҋC A 9uUWVS Ep!Ɖ4$n1ۅt*$cƋu C$P [^_]Ë]1ҋC A 9uUWVS Ep!Ɖ4$1ۅt*$YOƋu C$P [^_]Ë]1ҋC A 9uUWVS Ep!Ɖ4$1ۅt1E D$$Ƌu C$P [^_]Ë]1ҋC A 9uUWVS*M$(8$D$5*U$8$ED$$*M$7$;]'9w;uM $LED$>*U$7$MAE~PE@ U܋C E;ut.EP*tD$*$TuEM܋D E9E~TUt )11MAxD$$6tE+E9tUuȸ*ڋEtE EP$RE;ut$M؉L$ UB D$D$?,$#/EEP$R1t$\$ UB D$D$?,$.벉t$M؉L$ UB D$D$X놋UB D$D$?,$.oUVS]44,F 4,,`4,1@ 9u^{t $ C)F)@C)X[^]á4,m[^]Í%?9t [^]Z5B ~\$$*|1J뷉54,`4,PD$ $Ӊ-1US]C=*tD$*$t C[]D$Y$Ӊ-UVSu] F=*tD$*$It4x;^|D$ ?,$2+1[^]ËD [^]D$d$Ӊ -1UWVS u} ]F=*tDD$*$u0t t[D$u$Ӊ, [^_]Ã>u˅x;~|6t tQD$ ?,$s*뾋C$P뚍D t t1똋B$P1뉋C$Pt&UWVS}E E<$Åt!p ~1ɋUBE9u؃[^_]UWVS EEPU$nn 0,1 0,M~MEUZ 1Ut)9}t tuP$RՃ}~2UB$ 0, 0,0,t~[ [^_]ËE<`4,UB=*uU4,UB E`4,4,뜋EE [^_]&Z [^_]0ZUWVSu] \$$(\F1t\$$)\1[^_]É\$$,\ԉED$\$G $=Ju8EF;E~E~ \$ D$D$$n_뭸UWVS,uFE܅u$虎É؃,[^_]É$E1ۅtE܅~.u1ۋG $/FEF 9]u$|;EMA ED$E$EUB E}t|$‰Etp]܃MD ET$E$袸EUD Et@$n觍Et-ML$$ËEuEP$R1ۋUB$PUWVSEPX s5уy[^_]Í4 ECBExV41U$Xt33EEEEXBE;}űE|u띸UE@]UWVS }11_ 9w~#D$D$E $dt؃ [^_]UMU x;Q} D D D$ ?,$%1UWVS ] U!ËMA9}9~څu9tS)މ4$XE1UtE\ ]]  E [^_]11ҋ}:9uً}*uUWVSu} G=*tD$*$ GFy [^_]-$E1]tSF EU UV~*UDUD؋V9w EO E[^_]ùD2Dȃ;G|ыG@ D$D$?,$%1UWVS u] !Ë~„utωș9t9 [^_],~*ttE [^_] [^_]É $E1}tM ~ ~.EF1҅~F9|E;]u܋EUWVS MYr |)x >tUT$$U u y1 [^_]UWVS,EEU UMM@=*t(D$*$ u(*(*,[^_]ËMA=*txD$*$r tˋUExRU~U~Qu]ED$F D$C $g`|t*E;}o}v_1,[^_]ÉE;}~E9E~؃}}MMUMD E MD E,[^_]+[U$pM9MUv1;}¸`j*ulj*,[^_]1;}1;}1;}1;}1;}뵸`j*`j*lj*lj*UWVS,]M UE*tyT$L$$*ƅu 1,[^_]Ë@ED$$DžtۋE~1ҋC A 9UuuF4$P룍ED$D$ H*D$T$ $JbvEt$lj,[^_]$MJUWVS} E{*tFMt t#D$$Ӊ"Ѓ[^_]ËC$PҋSUt;u9}t,Eu)<$Ut1릍C@PCCPC9}~Bt EEE);Ettu؋P$Rˉ|$$cƅ9}|SE0^{t $C)F)@C)X1$* +}?MT D$D$$U눉rM$cUWVS 4,t tD4,4, 5,FFu؋X $Icu9u؃ [^_]á4,P$RUVS]C=*tD$*$tc$*m1tHF^ ^{t $C)F)@C)X[^]D$"$Ӊu1US]C@PCCPCS t t ][]:bC P$R][]!bUM UE@ t U E]1]US]S 1ɅtC;B}L Cȃ[]Ët C 1B$PUMQ 1tB+A]UWVS,u] C=*tD$*$:tHSF9!D$ ?,$1҉Ѓ,[^_]ËD T Ѓ,[^_]ËC=*tD$*$t'$謂ÃtRx^F9}D T 뜁{ *tMD$P?,$1҉Ѓ,[^_]ËFLKvFy/ED$ED$ED$ ED$FD$$AixWE$%$…t/~ p ME1ۋM9]1UWVS }] utvG=*tD$*$tX!ËG9?97u9ts)މ4$E1Ut| ] 6E [^_]Éʼn9~D$`$ӉI1 [^_]11ҋ:9u뱁*uUWVS}_xd*t_$E1Mt }} ED$$UU/[^_]11ҋu2:9u1롃D$$UU[^_]ÐUSUBUt[]ËZ D$.$NtX][]UVSU] BUu9t9*t11[^]Ët*p~9X t1҃9tًA9u[^]9t󋂀t9t勀u1*[^]USE@Ut'D$3$A!ÅtE؃[]ËX D$.$Mt)؉E ][]E1[]~D$3,?,$UEU @Utt,?,$1UUB@httø*D$ؘ,?,$L1UWVS Eu 1 [^_]Ëx~1#U T$$u҃9tƋC xp*uы@ US]C@PCCPC$)tYt,tttt t{CX$@\t tJt tC][]ዃP$RC][]ዃP$R륋P$RpP$RGP$RP$RP$RB$PUWVS $)*DžtVEt4FE~*1ۋF @=*tD$<$`x9]u؉ [^_]Ët 1 [^_]ËG<$P1UWVS ]} ut t$$ׅu\t t$$ׅuEt t$$ׅu.t t$$ׅutt$$ׅt [^_]1 [^_]UEtǀt1ËB$P1ɉUE@T%]U1]UEP]UUBH,tU]ṒA U]U]5UEP@]UWVSƉUЅt{D$$EƋKx.C x*ut$L$$"*lj[^_]Ét$$!^Nju݋F4$P[^_]$'ÉtE`U(E*ED$ED$D$ D$D$bE $ 1҅uËED$ED$E$U‰U(E*ED$ED$D$ D$D$bE $1҅uËED$ED$E$U‰U(ED$D$}E $D1҅uËED$E$U‰U(ED$ ED$D$5AE $D1҅uËED$ED$E$U‰U(ED$ED$ ED$D$ZE $=Du1ËED$ ED$ED$E$Ut**bt1U(ED$ ED$D$5AE $Cu1D$ ED$ED$E$Ut**t1U(ED$ED$D$ D$D$bE $u1ËED$ED$E$Ut**~t1vUMEE]U(EED$ED$D$ D$D$bE $\1҅t,U*tME=*tt D$T$E$U‰1EuD$?,$b 1҉1EU(ED$ED$D$ D$D$bE $u1ËED$ED$E$Ux**UU z*u[Bt%D$ D$D$^?,$9 1D$B D$E$Ux**1D$ ?,$g 1UED$E D$E$U1҅x **UWVS ljˉL$B$11ƅtO\$G$1ÅtlD$t$$HNjt5tx [^_]k1 [^_]ËF4$P֋C$Pu9uF4$PUWVS] 5,D$$/ƅu 1ۉ؃[^_]ËE @E$)DžtڃX U~M 1ۋA B9]uED$|$4$Ët7uF4$Px$ 5,KXG<$PUUM B+Au )i·m۶]US]C@PCCPCS t tdSt tDSt tC][]CP$RC][]CP$R뮋C P$RUUBt(H B>ytP L$T$$LËB>ytP T$$|UWVS ]} uC t t$$ׅu(Ct t$$ׅuCtt$$ׅt [^_]1 [^_]UVS0u]ED$ED$D$ D$D$bE $ntIFt@Ut u;XLt6@ D$ D$VD$p?,$10[^]10[^]ËED$ED$4$Ӆx**0[^]UWVS,É։M@9Bt4C D$F D$ ED$D$?,$1,[^_]Ë9uU싺9ttOE9H]ڋ9ttAU9BU9U9t1C D$F D$ ED$D$ș?,$1g9~BEO9 U싒UE@hE܉;M;E;EuU;BsA9BM9;Ah9Bh/RT@AT%@9M‹G9B9Gh9BhRT@GT%@9}~U;Bh<4U;G9BU;tURhUE@hE;GhEPT@GT%@99}t"OU9Jt+URUE싀E땋E@E XG9BtE@EB9uGh9Bhu܋RT@GT%@9uSUWVS}wFU@uNt<$Ћ~[^_]ËV! <$ҋuًFuH[^_]<$G 0, 0,1|~! Vh_{t $C)G)@C)X<$~i 0, 0,tk 0,[^_]Ëx! ex! tQ@hQ<$vwACCWWBGFEu=! E@U@t9_{t $C)G)@C)X<$UF4$P<$2 0,P! tUЅa<$,ÅLBE(M2 0,URUtZUBXE~KEEE9Et0{uC uCEt׋t)UUUBE=! tB$P̋B$Pt&@UWVS8EEUDM]EY*ta‹KMȋBE̋Cu z;MVU؋Fu {9P]KM܋Cu ^u9]S֋Cu][9:]K΋Cu][U9u U;BuUUJ E* *]S֋Cu][9]K΋Cu][9mW֋Gu][9]KCu_t!9t E8[^_];Gu}8[^_]ËEXhtGhu C9Etu C99u}믋_htE@hu C9tEu C99<}W1**!M;A׋EXhtE@hEtE싀9UUJE* *U;BҋEXhtE@hE싘tE苀~9"UURE**M;AҋEXhtE@hBC97ދE苘tE䋀u C9u9UUJqEXhtE@hu C9E䋘tEu C9u9UURE**M;AҋEXhtFhu C9Etu C9Eu]9ULuNAE* */;F&؋FhEЅt{hu 9uEЉE؋Eԅtu9EuEԉE9MދS**ChEtzhu 9Eątu 9EE9E5ӋJ+* *C9G@C9ދEC9nދEgC9wpEEًE[vދE]܋E_;CދS;BuӋJkEEEĉEUWVSlƉӉT$$|'tCx'1l[^_]É\$4$Hy۸l[^_]ÉEEEX \$4$|t|CPUEE;}u똉EE CPUeEEU9UtȋEX \$4$"nuƉ\$4$GyW\$4$Gp9EE$CPUKEEE9EnEX \$4$u‰\$4$}GyEEt>CPUKEEU9UtEX \$4$>}ʸ\$4$GyoEE!t>CPUKEEE9EtEX \$4$}ȸ!\$4$FyEEE܋X \$4$t"CPU/EEU9Uul\$4$LFyθEEE؋X \$4$.ztCPUȅ,EEE9Eu닉\$4$EyѸDEEEԋX \$4$tCPUЅ,EEU9Uu뎉\$4$EyѸES EE9EuUWVS5$5,UBHM1(t$$vEu19}C xp*ű@ t$$EEtω@E $Å$wƅtjX D$D$U$\ËtyUt2Mu$A $P5$5,t$,?,$H1ۉ؃[^_]Ëu C$PEtًUuˋB$P1F4$PyMAD$L$E$҉E $puƣ$5,emUWVSE@E=(5,…PU1!|$$u*9ut]C xp*uӋ@ |$$t֋M tq]tsUT$U T$ UT$D$>$ E[^_]ËE쁸0 tUE[^_]ÉЁ0 uǀE *E*$tǣ(5,tUEEUWVSEMEMAPU1&ML$$~ƅu/9}tdC xp*u΋@ ML$$Oƅtы@thMAD$L$4$҉ƅu%$sEUN1t [^_]ËUD$,?,$[^_]ÃUVSE,5,wÅuЃ[^]ËED$E D$$Ƌt^tˁ*t5D$rV>,$uuF4$P듋1҅uF4$P1vC$PUWVS ]45,U!ƅts$V1t!D$D$4$?Njt(t [^_]ËF4$P [^_]ËC$Pu05,p…t%t] [^_])B$PD$UR?,$1pUWVS ׍85,T*+ƅtw|$$.1t!D$D$4$ENjt(t [^_]ËF4$P [^_]ËC$Pu(*(* [^_]UWVS ]u }Cxd4 t&Fxd4 tN(*(*(* [^_]É=(*u(*(*u$(*,*P릋 *ډ=(*u(*(*u$(*,*P(*vUVSEP5,T1t#ED$E D$$Ƌt [^]ËC$P[^]UVSu\5,U^ÅuuDX5,UB…u (T5,T&…t#D$y?,$<؃[^]ËB$PD$D$$iRƋtFt%4$Ët8uGt뗐t&u4$ӋC$P믋F4$PUVSu`5,UFÅt@D$D$$QƋt [^]ËC$P[^]t$F@ D$$w谉Ɖ[^]UVSud5,eÅt@D$D$$:QƋt [^]ËC$P[^]`u[^]UWVS ֹh5,TGÅu-Ѓ [^_]Ét$$61t!D$D$$MNjtRt<(*uM(*(*u$(*,*PЃ [^_]ËC$P빋F4$vP렅t@<$t&Ëu G<$Pt| "t UVSu] Fx(8 tCx(8 t%9r[^]Éډ[^]ɸ|Ճ[^]UWVS,}ED$ED$D$ D$D$bE $uu 1,[^_]ËE$Ãt0ƅx3ED$t$<$Ut`**,[^_]u3G@4t0t*<$Ѝ4xu{뚾ސt&[UWVS,EE܋U U؋x} B=*t>@U0XZ~,*;r t1҃9tA9uE؃x  UUz}3EE9EEEEU\ s*tQFU,z}ԅ*;B t1҃9UA*9u勃U؉T$$ÅEE+E;Ee}؋E܉} E,[^_]*=*E؃x ƃqR t=*utA=*uPU܋Z};_ 1҃9Ut A9uUp*.C EEEx"@t1}܋G 1;G!ЋUT$D$$щƋt ؃,[^_]ËC$P*=*UWVSEUr* ^Tt^z~Gz *t1҃9t3A=*u]CU9]}*^T;u}*l5,~D$]$ ƅx*tCGUt_BE~G*;Z t1҃9Ut1A*9uE9ptFU9ut/}*t&#D$?,$*1ۉ؃[^_]ËXU9P t1҃9A;EuUZ؃[^_]Ë=*uZ=*u,9]t&t9Etu}*iE؃[^_]ÉCU7tx8U;P tlj1҃9!A;Eu뫉4$W;u쐍t& t9E u}*t9u[9EBu$qRKl5,1ۅgUS$]EED$ED$ D$*D$E $t.U*t.u31ҋEECEC S1$[]ø$[]E͋E …tދEUWVS]u t*t{ t ؃[^_]ËS`*t't$ CD$D$?$莺É؃[^_]ËCDžu1D$D$$`**…tًCCBr zqUWVSE@ED$$:EX؁*tHCU9rz *t1҃9A=*uUBU1tkEt!EE1 u}|$UB D$$w~ƋEt}t [^_]ËC$P[^_]ø*=*F}EUBU-Z D$.$ tX$Htc=*uG<$Pt&QED$ CD$UT$$}E$Set&*=*4uUWVS ]E u tE ] [^_]@uRt܋F=`*t8@Ut]ttz~z `*t1҃9tA=`*u4$tD$<?,$51 [^_]ø`*=*_4$uNt =`*u롸`*=*+UWVS} E@E_*t:CUtz؅t[r~gz *t1҃9tSA=*uGUt UBUubD$?,$Ѓ[^_]Ët =*u뺋C D$D$?,$Ѓ[^_]ùqRtExU1҅uUB$P1wD$`?,$XUWVS\EED$D$E $u 1\[^_]D$E$Dž=D$qRU$eÅBD$$KƋD$D*$Ë9t4D$<${ƋHG<$P\[^_]Ë}p5,$ITÅED$ED$ D$D$$áƋC$PC$PF4$P/t&gG<$PY$4]^p5,W_D$qRE$EAD$L^U$ÅD$$zEE}UB=*tH@UA Z8z *t1҃9 A=*uD$ɒE$0Å,D$$yEȋ'EȅmEEEX؁*tHCUvrz *t1҃9A=*uU$}DžREX؁`*tHCUC#Z:z `*t1҃9"A=`*uD$bD$tU$蠳Eԅp5,$QE؅D$$EEFUrF$藭Eą*UP ~M1ۋA B9uEԉD$|$UȉT$ EĉD$U܉T$$ ƋUEątUċEЅtUЋ]ȅtUȋM̅tŰtUԅtUԋzE؅tU؋E܅U܋B$P=*u \=*u=`*uiG<$P1[t&D$U$EȅUB=*tF@UCZ**;r t1҃9A9uD$֒U$&E̅u=*C賶EЅŰBEE1ŰB U4t$E$3ÅD$t$UЉ$Ƌu C$Pu?EEU;B|EЉD$UȉT$$rUEȅE1EEEU1E Y*=*D$?,$EEEE1EEEk*=*@**JB$PNB$Pt&fB$PoC$PB$PB$PXB$PaB$PjG<$PmB$Pv`*=**E*$רEC$PEECt8=*u%$4Vp5,EEs*E*Et$4Vp5,SEEEEEEEE*E*p5,5$uKÅE̋E̅}*tŰB=* @UZ~)*;r 1A99uD$?,$ŰtEEB$PE؋t =*up*=*`놋C$PUWVSD$E$ںEX؁*tHCUQrz *t1҃9A=*uUBU1tzEE@UttMt UU1 ։}G D$ED$$oƋUtUt[^_]E냋C$P[^_]ø*=*.}EUBUZ D$.$tX$8t[=*uB$PLCD$ ED$UT$$ .nE$Si5z*=*,?,$tUWVS] E@U<Z{*tBGUr~wz *t1҃9tcA=*us1у;KUtkEp 1[^_]ø*=*tG D$ UB D$D$l?,$][^_]Ët?=*uaUP$RD$h]?,$p*=*t@ D$D$!?,$5UB D$D$7?,$ UWVSutUB=*t@U$M A=*@UGtZ>z *t1҃9&A=*uE @EM y _*tJCU؅"rz *t1҃9tA=*uGUXU9P t1҃9uA;EuBUt uM9B D$G D$ A D$D$@?,$1*=*UB D$D$ě?,$1[^_]Ë3=*utk=*utFZz *1A=*9u=*uC D$ UB D$D$?,$1[^_]9}}*G MQ T$D$D$ T$D$?,$1[^_]É9}Lu 띋t9Eu,*=*fED$D$U $1;ED$\$<$MƋC$PUWVS\EӋBE=cv4UR4U-dUtEu]S 9Et؃\[^_]Á}Ww}w}}E뽋MI8ME-X몋uv0uE-뗍K MEEEsu{}̋UtSHMԅ~IEEuF xp*}̉|$$+EuKEEE9EuMM9EtEąt}ȅt }u>UċEUB=+tS= *tSUE뢋@ tMAxaX uڋƉuŋEEeU ; 5,t= 5,*E܀5,t*9u u܉u܃Bu}5,t^EE5,@=cMQ4-dttt E؅u"U؋UBUuE؅tM9Musu}WC 9B GEUBUuG9t =*~Eątq}G9E=WuV8-X[Mt>pu+};x t1҃9UA9Eu눋UBM9Mqut9E[u}*DU=R0-UVSuE tÉoSu1[^]UWVS,ÉUMED$$х] SUE7`*=*ED$$ E}9}}G Up*tًtOC=`*t@Utthz}܅~+`*;B t1A`*9q9UuU$MUe,[^_]=`*6u`*=*u1,[^_]UWVS D$G$Ås*t8FUt<tUz~7z *t1҃9t#A=*u؃ [^_]ø*=*tt1ۉ؃ [^_]Ët=*u$vV1본*=*u萸4$vQÅF1UWVSLE@Uu+@ D$D$p?,$#ЃL[^_]ËED$M L$E$ xԋ=5,5*U̅t)*U tM ;HuuU̅u t;z*vB;xuJ̉ځ*vэZ9tuŋM̅Ẻ$Z_ U E‰ЃL[^_]Ë*1t$*$BCtHu-*D$  D$im۶D$$*5,$S1UWVSEP0]uEH4V41{4!Ë_ A( A A  Q AL A A A  A$jMQ8t=^8t31y8! Z BOMQPtH^Pt>1yP!N B B B )MŰAYȅP aA$CȋX, P@HDXTVT!Ш MA(yEHl}ApA!Eȋ4MЅeE̅tE;OEЋMMȋ{%@@9^tEEU9UMAT@t=n UD$,$qMYq0W}_49H8DžGPHM~vE{ G=*t<@UtHrr~3z *t1҃9tA=*uUSE}9}uUBT߀BT1<[^_]Ë]=[0-}KD$$EptU܋NM}}D$}܉<$w/F@t̨ t$E$@ÅZ\$D$M܉ $H=vC$Ph*1t(*$w8C#u-*D$  D$im۶D$$*5, D$D$4$ Dž$VËG<$PFD$|$$@*Åt6D$D$$u C$PMaT<[^_]Ét$U$>q\$E$D@DžtD$D$U$謫xG<$P\$}<$}?DžoD$D$E$]RYG<$PK=*u,=*uF4P$t C4;P$xQ$MpF8Xt A8;XZMFPX t AP;X Z MMMA(F(EЅ M̅t M;A(MЋEH(D$t$M $'Å"D$FD$<$'C$PE#$Mx}؃QWVT*ǁ***g\$$>UUMCGEpF M̅t U;B MAEOF t ;B UBMFDy U̅t U;BDf MADE8F@r ]̅t U;B@_ MA@EF,> M̅t U;B,+ MA,EALp E@HF MJEM̅tU;MtMQ0FPXt AP;XZEPPt AP;EPPF8XEt A8;X5ZEP8't A8;EP8F0tC0;F0tC0;MQ0yF4P Kt C4;P ;Q UJ4-F4Pt C4;PQEH4F4Pt C4;PQUJ4F4Pt C4;PQEH4F4Pot C4;P_QUJ4QF4P 8t C4;P (Q EH4F4Pt C4;PQUJ4F4Pt C4;PQEH4t C4;UJ4{FPXXt AP;XHZEPP:F0H|t C0;H|J|EP0F0Hxtt C0;HxdJxMQ0VF0Ht=t C0;Ht-JtEP0F0Hpt C0;HpJpMQ0F0Hlt C0;HlJlEP0F0Hht C0;HhJhMQ0zF0Hdat C0;HdQJdEP0CF0H`*t C0;H`J`MQ0 F0H\t C0;H\J\EP0F0HXt C0;HXJXMQ0F0HTt C0;HTuJTEP0gF0HPNt C0;HP>JPMQ00F0HLt C0;HLJLEP0F0HHt C0;HHJHMQ0F0HDt C0;HDJDEP0F0H@rt C0;H@bJ@MQ0TF0H<;t C0;H<+J@Ut{Z*;z t1҃9tnA9u$-uÅA 9dt =*u$)Åtet$$9x|@|Fpu19]V yu C$PQDž\[^_]Ë$ ttXx Džw;A 4D$$g[t‰$71w9u苅Q@ DžDž"9ы;P}Nj@ <Džp9~ @ ;1҃9A9u D$h?,$֘EE[^_]9]}*D$?,$虘EE[^_];CFC9]U싂u@29u|A9ʐ9]ZuaS9Eu14$vKUWVS,E@EU‹PU1&U T$$}ƅu/9}tbC xp*u΋@ U T$$|ƅtы@Um_ED$UT$4$UEE1UPU1'U T$$i|Eu09}teC xp*u͋@ U T$$9|EtЋ@tED$D$U$ӉE-}tDUT$ED$4$UË]t ؃,[^_]ËF4$P]؃,[^_]ÉuuًE D$ UB D$D$,?,$iEE뤃EE둋F4$P2$t&ExUEvVUWVSE p1}t U$My*t"D$|?,$21Ĭ[^_]ÍED$ D$`*ED$D$*ED$D$ `*D$ut$} <$E쉅P]DžA pp*CU9*FU9*D$$?,$B1 ,PD$G$8D$D$3E$1Ĭ[^_]ËZ xz9X 󃅠9D<] S BBF x;p t1҃9A9utEX @UXD$E$ӛ1^hDž B=*@U*=*L$$Kh v~G1 A@4@&DžDž++$dDž  ]1S ;tqzp*tut DžtuRht Džt ttu9rщL$]$ EEGTBT@t GTGBTYA0HF0dF4 F84FPEF E쉆E$)E艆E D$3$˜D$,E$觘ƅt~@=*t@@U @Z~Uz *t1҃9tAA=*u^$‹PX F\$D$$D$E$t x+ SZxvp;-|px9|DxBpJvhuDž ƿux@@ pJhe1҃9A9uODžN>/tTZ~)*;r V1A9B9u닝$]>=*u*=*ur=*uDž . t D$8?,$EB$P1SFFzLJppOhp΋sCBCxChC|*u ~B ӅC$WG! SBT@BTǃ @BǃiC\ C` <$y 5,4 *t*‹u틅#D$*$aEDž1.9]= }|$U T$$Dži*=*uB9D$$!ƅ:t 9֋\ C=*t@UttIBt~*;J j1҃9ttA*9uG=*<u*=*dC$PGGD$D$<$Dž1ۋDžDžDžp F=*tF@UZ*;z t1҃9A9uVӋvf+8G $S1Ʉt z_~9~dtBG$Ћ_=*u99uj  tD$?,$KTG D$D$О?,$x9?\DžDžHG|*Sdžn Fp*1t(*$Cu-*D$  D$im۶D$$*ƺ5,`tu F4$PEEP$R1g*=* ;9u9ÉuEP$RZ*=*D$?,$DžDž[ D$ t$\$E$hKT 9zD$ t$\$E$Gh\ 9v  tb@ D$D$?,$!wAT];$a5DžDžgG|@|*pDž9fF4$PC$P&{LFL)W BHkG<$P1D$ɓ?,$=?&9Q@ à tuUD$ t$\$E$euD\ \ G딉4$"빉4$=4$$Q"ÅD$D$E$xC$PF4$P1AHfP G<$P1ftu DžqDžb-A $P1UWVSE@UH} } _*CU|؅rq*;z t1҃9XA9uM IMcM MEϋ }_p**CTE}؅<rb*;z t1҃9IA*9uEtYX~Dx *t1҃9t0A=*u]CU)9][}*NEEE9Ek} }_p**t 4q*M\*=*C D$ UB D$D$?,$譀EEČ[^_]Ë7=*u]t'=*u5*uC D$ UB D$D$?,$'EEČ[^_]ËXM;H t1҃9A;EuD$8]?,$7~EEČ[^_]ÉE ÅEEČ[^_]9]tu9+9Eu|*=*p@ D$D$?,$"Ep]C D$D$?,$~EEUv:M }}EEUU}K$ʼnE u C$PE@EUt E>G=*tC@UtsYJM~[*;Z t1҃9UtEA*9u鋟t,KxC }9xuL$$HEE9EhU RUЃxrM \ 1E@=*t<@UtIr~4z *t1҃9t A=*uUEl9}u55,%*E*MIM5,UątS* tC];Xu苀=*un=*uOUąt_u t2z*vB;xuJ̉ځ*vэZ9tËEąt}ĉ<$Z_ UE茵EE*1t$*$CtMu-*D$  D$im۶D$$*5,*$W륋MA D$D$?,$[{E11xED$ED$D$ D$D$bC 8$,EuEP$RUEE$m9xu C$P}uP$REu B$PM9Ut}]EUEUu B$PMu A $P]@C$P2*1t$*$CtTu-*D$  D$im۶D$$*˫5,sEN$T랋P$RUWVS5,EUBHM1*UT$$\ƅu39}C xp*uʋ@ UT$$\ƅt͋@MAD$L$4$҉ƅE D$$L1t%D$D$4$NjtE<$Ëu5G<$P*$/UE죴5,kt؃[^_]D$U T$M $>IÉ؃[^_]Ã+F4$PviC$PJUWVS5,E>UBFHM81*UT$$E[Džu39uC xp*uʋ@ UT$$[Džt͋@MAD$L$<$҉Dž$BHÅeD$D$<$)Ƌ8F=*T=j*I@ D$D$4?,$ZvF4$P$U E䣼5,it؃[^_]á5,EUBtqHM~g1&UT$$YDžu9ut;C xp*u΋@ ϋ@t[MAD$L$<$҉DžOiN؃[^_]û5G<$P'[4$ܗC$Ps$'UE裸5,vUWVS,]EEE܅UBHM~v1&U܉T$$XDžu/9utJC xp*u΋@ U܉T$$nXDžtы@tDMAD$L$<$҉Džu.ht 1ۉ؃,[^_]Ã(*(*؃,[^_]ÃEtE8uf$iEƅtD$t$<$TËtHuG<$P녋E $E܉]‹ED$$5듋F4$PUWVS}OE P9tB0t t1A0t tMu(*(*Ѓ[^_]É|$D$ D$5,D$TE $‰Ѓ[^_]ÅtBU9t*uiTU ftV|$D$ D$5,D$TM $=(*b(*(*1u$(*,*PE D$D$ D$5,D$T<$L=(* GM 9A(*(*$(*,*Pt4PU~9H 1C99UuV9t9u*!UWVS}OE P9tB0t t1A0t tMu(*(*Ѓ[^_]É|$D$ D$5,D$VE $ ‰Ѓ[^_]ÅtBU9t*uiVU etV|$D$ D$5,D$VM $=(*b(*(*1u$(*,*PE D$D$ D$5,D$V<$W=(* GM 9A(*(*$(*,*Pt4PU~9H 1C99UuV9t9u*!UWVS}E 0C@0t xD| F@0t xD| t [^_]É\$D$ D$5,D$T4$1Åt{=(*@=*t8@Ut{tgr~+z *t1҃9tA=*u{D$h?,$mI=*tu︀*=*u멉t$D$ D$5,D$T$cEt=(*UB=*`@UttZ~,*;r t1҃9tA9uExD$h?,$BlU"B$Pb=*tu︀*=*u뚡(*(*)$(*,*P(*(*$(*,*PCC U t1C$P1UB BU UuŋB$P1ЍvC$PfUWVS}OE P9tB0tx@X t1A0t x@X tMu(*(*Ѓ[^_]É|$D$ D$5,D$WE $B‰Ѓ[^_]ÅtBU9t*uiWU ;`tV|$D$ D$5,D$WM $=(*b(*(*1u$(*,*PE D$D$ D$5,D$W<$=(* GM 9A(*(*$(*,*Pt4PU~9H 1C99UuV9t9u*!UWVS}OE P9tB0txUE D$D$ D$T6,D$;WE$ UE D$D$ D$X6,D$UWE$UE D$D$ D$\6,D$xWE$UE D$D$ D$`6,D$EXE$vUE D$D$ D$d6,D$WE$DUE D$D$ D$h6,D$WE$UE D$D$ D$l6,D$WE$UE D$D$ D$p6,D$WE$UE D$D$ D$t6,D$XE$|UD$ D$x6,D$UE$QUD$ D$|6,D$jVE$&UD$ D$6,D$`VE$UD$ D$6,D$WVE$UD$ D$6,D$OVE$UD$ D$6,D$DVE$zUD$ D$6,D$7g뱿t&UWVS}U z*BB $W+Ãt5ޅx1[^_]ÉT$ D$D$^?,$@1UWVS}E UUx*P@ E_CTu4@@Ut@t`r~;;Z t1҃9t+A9u} EEM[^_]9t*t߃(*(*[^_]Ët9uD$ ?,$=1[^_]ÉT$ D$D$^?,$?1UUE Mx*u @uUD$ ?,$?=1ÉD$ D$D$^?,$>1USME Ux*u @u6 $҉ÃtM][]D$ ?,$<1[]ÉD$ D$D$^?,$*>2uUS$U z*uhBt+D$ D$D$^?,$=1ۉ؃$[]ËB EED$E$U|~7(*(*؃$[]1D$ ?,$<1ۉ؃$[]$ÅtEC EC넋EtEuEP$RWEP$RUWVS,EEE UUx*P@ EXU;S(txEpCUu=9th*t`F S T$D$ D$D$?,$<1,[^_]Ëx~;p t1҃9tA9uUT$E$U80u],[^_].D$ ?,$:1,[^_]ÉT$ D$D$^?,$<X9tu9ugUSME Ux*u @u6 $҉ÃtM][]D.D$ ?,$91[]ÉD$ D$D$^?,$^;8/uUS]E Mx*uYPP Ct@Ut u;HLtM@ D$ D$VD$p?,$:1҉Ѓ[]D$ ?,$>91҉Ѓ[]D$T$$1҅xƒ**Ѓ[]ÉT$ D$D$^?,$s:1US]E Mx*uHPuE@ E ][]T$ D$D$^?,$:1[]D$ ?,$n81[]USE x*u@u6E$UÅtL؃[]D$ ?,$ 81ۉ؃[]ÉD$ D$D$^?,$91X-u@?,$7뛐UU1t Ru]US]$N|K S*t6BPh;t`C*StCBCtPCCttC C][]A $PۋCUM UE@ t U E]1]UD$ 6,D$ܠED$E $x1҅t EPUVSu^t ؃[^]ËF=*t$UhÉF؃[^]D$?,$t6UWVSuF=*D$G$b]Å@=*tD$*$1t{VB@ 4|$T$D$t$ L$D$4$tu C$P4$i[^_]Ét$ D$D$4$^4$4[^_]ù\l+1JUSMU }t(*(*[]ËB9AuY*tB=*tEE ][]{n`j*9tlj*[]USUBD$@@ D$T$ D$D$\$$g[]US]t/C=*tAD$*$xu-C=@*t#=*tD$K$r61[]ËC[]U(ED$D$D$ D$D$wE $EUWVS}u G@T@PhUt B 1*$*較Åts@xts $w<$sC*Ut H 11SBCBtXZ؃[^_]1g@ D$D$?,$41[^_]C@*sЁz*X P@**x*1ɋW tV12CCtXE7tًt C$P W@**1B:>xdʐUWVS,uEED$ED$D$ D$D$E $RC1҅UB@T@HhM*XhӋtP tx1D$4$1҅tKUEAAtQ }t p AAtH ʉЃ,[^_]Áx*{x@ D$D$?,$O21҉Ѓ,[^_]Á*LD1EB*^AAlHdx*t21V t45QBABtHJ-p…tډŋV@*t*uUWVS}u G@T@PhUt P 1*txtv$*ÅtX@xts $sEty t{11…SBCBtXZ؃[^_]1t@ D$D$?,$01[^_]Áx*>;y*1P tX1jtot/yYCKtYETC$PAP@* *1CKtYUAυWUMU A=@*t$=*tB=@*t:=*t3U MziI*uD$С>,$-ËR*tىU M,$P-1[]ËI*u֋R*tˉUM ][]{UEP@*t*t EL@=*uD$С>,$,1UMU A=@*t$=*tB=@*t7=*t0U MRI*uD$С>,${,1ËR*t܉U MRUE@=*t EUD$С>,$/,UE@=*t ED$С>,$+1UE@=*t E,D$С>,$+1UE@=*t EHD$С>,$+UMU A=@*t$=*tB=@*t7=*t0U MpI*uD$С>,$,+1ËR*t܉U M5UM UE@=*ttUM EM EKD$С>,$*UE@=*t EaD$С>,$*1USE@=*t E[]D$С>,$R*[]UE@=*t EYD$С>,$*UMU A=@*t$=*tB=@*t7=*t0U MvI*uD$С>,$)1ËR*t܉U M;UMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$@)1ËR*t܉U MUMU A=@*t$=*tB=@*t7=*t0U M2I*uD$С>,$(1ËR*t܉U MUMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$V(1ËR*t܉U MtUMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$'1ËR*t܉U MUMU A=@*t$=*tB=@*t7=*t0U MFI*uD$С>,$l'1ËR*t܉U M US]M UC=@*t@=*t9A=@*tW=*tPtB=@*tO=*tHUM ][][*uD$С>,$&1[]ËI*u֋R*tˉUM ][]UEP@*t*t E@=*uD$С>,$`&1UEP@*t*t E@=*uD$С>,$&1UEP@*t*t Ez@=*uD$С>,$%1UE@=*t EID$С>,$%UEP@*t*t E@=*uD$С>,$P%1UMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$$1ËR*t܉U MUMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$}$1ËR*t܉U MUMU A=@*t$=*tB=@*t7=*t0U M]I*uD$С>,$$1ËR*t܉U M"UMU A=@*t$=*tB=@*t7=*t0U MgI*uD$С>,$#1ËR*t܉U M,UMU A=@*t$=*tB=@*t7=*t0U MqI*uD$С>,$#1ËR*t܉U M6UEP@*t*t E@=*uD$С>,$"1UEP@*t*t E@=*uD$С>,$w"1UEP@*t*t E@=*uD$С>,$/"1UMU A=@*t$=*tB=@*t7=*t0U MmI*uD$С>,$!1ËR*t܉U M2UMU A=@*t$=*tB=@*t7=*t0U MuI*uD$С>,$\!1ËR*t܉U M:UMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$ 1ËR*t܉U MSUMU A=@*t$=*tB=@*t7=*t0U MiI*uD$С>,$r 1ËR*t܉U M.UMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$1ËR*t܉U MSUS]M UC=@*t@=*t9A=@*tW=*tPtB=@*tO=*tHUM ][]骻[*uD$С>,$h1[]ËI*u֋R*tˉUM ][]WUMU A=@*t$=*tB=@*t7=*t0U M8I*uD$С>,$1ËR*t܉U MUMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$f1ËR*t܉U MfUMU A=@*t$=*tB=@*t7=*t0U MpI*uD$С>,$1ËR*t܉U M5UMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$|1ËR*t܉U MUMU A=@*t$=*tB=@*t7=*t0U MI*uD$С>,$1ËR*t܉U MUSMY A Q*t6BPh; t2A*QtABAtPAAY []ËAUWVS,Ut B@T@uD$m$v,[^_]Ë@h~݋ u׍ 1tF tщ1@uEԅ^ F V*t:BPh;2MF*VtFBFtPFFtAt$D$ $…}Tu C$PMԅED$ED$E$?$AE؅~yM1=C*StCBCtPCC]9'CE܃Y C AC S*tˋBPh;uC뎋U؋2B$P$FED$ED$E$_V*tRBPh;21F*VtFBFtPFF1~ V*BPh92F*VtFBFtPFF1uEE9}^tF D$D$ $…tuB$P붉$J뫋]ԅED$ED$E$B$PF$F US]K t $]K S*t6BPh;tZC*StCBCtPCCttC ][]]A $PCUS]K S*t6BPh;tUC*StCBCtPCCttC 1[]ËA $PC뤐U]UWVS É֋@9tE;;,tlS ׍6tHL$$LC tssSttCC1 [^_]ËCP$RڋS =w;7,uD$ ?,$$빉{ S UVSƅu;,t ؃[^]Ë;,;,-;,C t@;sZC*t[C sCC؃[^]Í6tP$tHC 릉xC $p`1뵋C $a`$*&4Åt6tP$HC NUS]{*tOC $ `St tC][]CP$RC][]=;,{3Sttt C[]zUS]$A¸t%t D$d\$$7,YI1[]ËB$PUWVS<ƉӉM؋}EU$@E܋ !t(MD$$c؃<[^_]ËML$UD$MD$ ED$U T$M؉ $KtD$D$$ƅt@=*tD$*$XED$ED$ D$*+D$4$GU9UEH MxM(E)9E}4U9}ЉD$E$$]xQM$M(B U,UMU E ?ۋU,\$ML$$EE,U(:1F4$PUU;T$D$` ?,$}뵋UD$$b?ML$$Vm!+D$?,$$Y4$UWVSlEEEEE EER‹] G@ E]M ىMEEEE9]]ąEU+B EM MU܍ED$$ED$ ED$ML$E؉D$ED$ED$ E D$ML$$hcEC]9]3Mą|<-t#Fx+/]}v@mEMЋEЅu$=EEE}w}EEU+B EE+EEU܍ED$$ED$ ED$ED$E؉D$ED$ED$ E D$ED$ $cEu+]YEU+B D$E$U܅tu E܋P$RU؅tu E؋P$RE;1҉Ѓl[^_]É<+"+tE8E]]]FU>+t?/tG` G@G ЉẼE]}VẼmMЋuЅu$=]EEE}w] +EE]9]v z-]EEEȅt" +MȋEtE-t9#+tE8EE]FE]9]wYE\)EEuU܅tU؅t t^UЃl[^_]À;-uE-EE]Z]E+E])EE؋P$RU딋EP$R1E܋P$RvXUWVS,U uD$$Hs,[^_]ÉD$$0s‰E1t݃U] M1E1EEZ+&s+<dMt<UUt<FE1ҋM9M  MԋM4At+<Mt<Mt<)e܃e?Uܥ{Apr+i/`-U_E11EDQ)e܃e?UܥC-C+ED$E$mEhe u܃vE܉?ܥwtBEu+?ܥuEEE9E MEԋt}+<trMt<tgMt<t\T@pu+t/t 1҃-,-11+C-E -{-11+EUWVS\uEEE EU @ EM} ω}9Mv(ӃEEMM9Mw؋}t)}EU+B D$E$U܅tU؅tE\[^_]ËEtE+ 9EEo)ME E칄EU+B EU܍ED$$ED$ ED$}|$E؉D$ED$ED$ E D$t$ $ݢEZu,Mw$)EE rU܅tU؅tE1\[^_]É)EE칛)EE칰y%)EE칿y%)EE칿y%t9)EE칿E܋P$R E؋P$RAE%uAE%u؃? e?eEăe?}ȍ8=v*)EE̢؃?8vfEEMMAE%؃ ?e?}Ѝ8w)EE̢y)EE̢bEP$R1E؋P$RE܋P$RUD$ ED$E D$E$UWVS} ,QEM ~i1@ 9] ~[؋]Xvwp $? A̋E 9E  W [^_]Í@E)L$E$gE[^_]ÁwM(,wk9] tf}40wL, , X  $? A$? A$? A $? A$? A@)L$$jET$$j‰E1JUS]C=*tD$*$t D$CD$C $[]1vUWVS\EEE jE‹M @ EEE܉} EM Mȅ} }EEEU܉9vK)Ѓ E ] U܍(=PEEU܉9wut]ȋM]t+UEEU+B D$M $KxU؅t4UԅtUЃ\[^_]Ã} ~#]S ts4EEEUEU؅tUԅt1҉Ѓ\[^_]ÉڃUEEEEԋP$RU09+UBE+EE컄EU+B EM܍U؍ED$$ED$ ED$L$EԉD$ED$ED$ M L$ED$$ EUE*+UU+EEl=wPEE ӍVU܍$=w@U  ٍUUj+UBEU̢+EPUEEP$RGE؋P$REEUEԋP$R1E؋P$RUUUD$ED$ ED$E D$E$UWVS}] u1Ʌ~11<9u 1҉T$$4fEƒt EE]\1ہ~Á܉ ؉u2E JtuEJmʋ]E[^_]B@YEEjUWVSlEEEEEE ME/‹M p u]M ىMȉ9]v"<\twUru]9]wލMEU+B D$ $U؅tUԅtUЃl[^_]É+EE]AQU nw$9UE\puURPE]$56,];{uY{9]غ{9 ;E}X]E܉D$)CD$<$Vd]+]]EU+B EMU؍ED$$ED$ L$ML$EԉD$ED$ED$ E D$ML$<$Ek]9Epu]"E pu] E pu]E pu]E pu]EEEuE+H E]9E1}ЅÉ]U܃Ov u]HE pu]1EEDfEE(NE'pu]pB<w%tЍY]QB<w tЍY]E0pu]E"pu]E\pu]tEpu]]]+]]EU+B EMU؍ED$$ED$ L$ED$EԉD$ED$ED$ M L$ED$$E EMU؍ED$$ED$ L$ML$EԉD$ED$ED$ E D$ML$$@M0EEEPЉU܃EM9MtJȍ EEDxwUU܍A< vA<w@PU܃EM9MuÉ]U܃uUPɉUqEԋP$RU^]&UtBU؅tUԅu 1҉Ѓl[^_]ËuEԋP$R1؋MȃE}l9ucE+EEE+p uMU؍ED$$ED$ L$ED$EԉD$ED$ED$ M L$ED$$ZE؋P$RG+UBEMU؍ED$$ED$ L$ML$EԉD$ED$ED$ E D$ML$Ẻ$9E؋P$REP$R$twnÅtGD$$Njtat&<$$e6,t:56,D$>,$1U%/G<$P뻋C$PUWVSlEEEEE E‹u @ EMU 49v"\tvE҉EM9wދEU+B D$U$B`U܅tU؅tUЃl[^_]É+EĉE9\tw1t9v tt7[^_]É|$$#uӋED$$$uϋP$Rv빋ED$|$ T$L$4$%[^_]UWVS EP@ r1~(XC$;CtCFۉ [^_]UWVS EP@ r1~(XC$;CtCFۉ [^_]UWVS EP@ r1~cX C$CF~>C$ uыC$tՋC$,CF‰ [^_]UWVS EpX Eu E [^_]Ë$]Eu>~~ك1 9tȋC$ntC$CEЋ$EUWVS EX @ti<9s*1ҋ3tK4$4$t9wظ [^_]É4$uۉ4$1҅tˉ4$v&밋$1;t [^_]UWVSEU p z @Z~&~"uw9t#9>[^_]92[^_]Ã~~U U9t빸[^_]UWVS,uEED$D$}E $fu 1,[^_]ËN FE1;MsaEE(11 t9MvA t u111   9Mw؍;E܅rX v 9uvQ1 tF tA9uv1 u݋M~)щυt1 9uNjE1뻉ؙ}E)k1bUWVSUBt[^_]ËrJ 1ۉyiCB1Ѓ9u1t UB[^_]ðUWVS Ep @tut^,$%1[^_]Éș9u؍Q9uljE1UtˋMy sȅ~EPMQ D$T$<$EP<FҋE[^_]ËEx*3E\1ۋMUUBD$B D$$ԥUME uQ EAD$X ?,$UD$?,$UU t E@]U;,;,1;,7,ascif7,i7,=;,u$*]x$蕼UVS;,t;,7,;, 9ttuP$RՋ;,uM$)t&t=3C t$(St֋uˋCP$R$(u;,;,[^]ËB$P1<[^_]ø"UEP@ ]UEU 1]UWVS ։ω$ÅD$4$ˍƋ*F=*tD$*$[t]Fx= 71 [^_]D$D$?,$t` [^_]ËC$PqF=*tD$*$uD$ԧ?,$*1 [^_]ËF4$P]0?,$ xF16US]C=*tD$*$WtSC 1Ƀ[]1[]UWVSL}EEU ÉE/@=*tD$*$۾K"EH MUE 49EM=U)Ѓ )])Ѓ)EE+H MED$$ED$ ED$ED$E؉D$ED$ED$ E D$|$$!U܋E2U9CEU+B D$E$xoU܅tU؅tEL[^_]ËU)])ЃCE AEUUt tYU܅t t9U؅u1L[^_]w\uE؋P$R1cE܋P$R빋EP$R뙋E؋P$R1E܋P$R _UWVS,}EEED$ ED$D$AE $ ]uG=*tD$*$\tht$\$<$&ÅtF@=*t2D$*$ uC=*tD$*$t؃,[^_]1ۉ؃,[^_]û7,둋C@ D$D$X?,$ZuËC$P11UWVS,}EEED$ ED$D$AE $| ]uG=*tD$*$>tht$\$<$ÅtF@=*t2D$*$uC=*tD$*$t؃,[^_]1ۉ؃,[^_]û7,둋C@ D$D$?,$<uËC$P11UWVS uF=*tD$*$]^~ 1Ʌ D$$]E}R}9]4EEEE?E;]E?E;]C=&EEF4$PUIED$ ,+]\$U)U}ut$} <$ѺUt$ UtUu uEP$R}nluECUD$D$~u4$@Ɖu];]΋EP$RXU؋u B$PD$ ,ut$}|$E $MEUUvUWVSDžtgtO V~Bĸt0@ UE 7,뛸t P E1UWVSL} uEE蠙E…@ EE8E҉EEE9y)EEEU+B EMU܍ED$$ED$ L$ED$E؉D$ED$ED$ |$t$$LfEE9wEU+P ;P|sU܅tU؅tUЃL[^_]E= 7,ʉЃL[^_]ÍET$$&vUtU܅tU؅u,1kE؋P$RUWE܋P$R-uɋE؋P$R1(輗t@ UԉEԉ 7,6萗vP Eԉ0E܋P$RHEP$R!UWVS,],Fu-D$ ED$U T$]$aÉ؃,[^_]ÿHFu8} UE=L 7,tSˉ؃,[^_]ÿfED$U T$]$É؃,[^_]û7,5e@ UE 7,녋E :ƅË} H U ] ~]]BE D$U$ ƅtxED$\$4$VÅ@=*tD$*$裓tDF4$P{vtP E[1TC@ D$D$?,$ԭu C$PuF4$P1US$]EC=*tVD$*$ڒuBC=*tD$*$輒tjCECE…u1;,‰Ѓ$[]D$?,$茫1҉Ѓ$[]ËED$ E D$T$E$ ‰Ѓ$[]ÍED$ED$$fuUD$$>1뚡?,$1҅tC@ D$D$ ?,$}1aUWVSÅEwK 6D$ED$ $sE\MAESEG)׉}E9}TC EMEEEċuv EċEԉEȉEEM9M uM91uE9΋}E8EuȃEUEEF4$PD$/D$$ÅoU[EE؃<[^_]ËM= 7,"lj!1D$*$赌t6MIM܋uv u;,tgED$/D$U$SE]@E@ u 7,lEƅEtN ED$ED$ $Mu}uU= 7,t$M뙋B$PEF蕍|@ U20 7,UWVSL] }UB=*C=*D$*$6s[ ]uy;,tyËuUB9~DžC}ԋM~UUԋu'u C$PEԃL[^_]Ã[菌Å&EpK 6D$ED$ $uUuFELE@)lj}ԋU'9}ts uUEċEEuv EEEE9E|9uU92uE9֋}E8EEEE9E}EuF4$PwD$/D$$]ÅUUEEԃL[^_]ËU= 7,lj!U9UFs uUEEuV mE9Eu92uE9֋}uD$*$蕈t6uvu؋E@ E܅;,tgED$/D$U$3E%@ u 7,EƅE܅tN ED$E܉D$ $-um}uU܋= 7,t$ME뙋B$PEu@ U܋20 7,UWVS<] UB=*(C=*:D$*$*s[ ]u~;,t~Ë}SMA9EsuE)9E 1}u C$P<[^_]Ã'mÅEkS 6D$ut$$}PE@EE!ES<}aG<$PSD$/D$$Å}<[^_]ËMFE̋uv E̋{ }M99ΉGEU= 7,7EE!ETD$*$t7MIMu~ ;,ED$/D$}<$EjG<$Py@ ] 7,eEEuv E{ }M9{EƅatP ED$|$$Zu}u‹= 7,tM뢸躅@  7,UWVS\u] E ED$b$nDžm@=*tD$*$N_s/:F=*D$*$^VŰv ;, EU@ ERUG=*tD$*$詂_d蛄E6@ E1҅EE}EdEEG=*tD$*$EU)G 4F=*tDD$*$u"F=*tD$*$F=*MG=*tD$*$ǁCWU܋^UډUЋE9r(x$U܃U9UHEEЋU9U+D$>,$wHEtUU1\[^_]ËG=*tD$*$t[G x*EEEE*1ȂEt E\[^_]ËG<$PG D$/D$4${E;U>EP$R1랋G<$PET$$EEċEP UۋF \$D$Eĉ$g]ċU9UEEEЉEU9UlET$$蔃WEUB$PE؋p JGEB$P!uEЅE9E Ee;EEU9UًF4$PEUUEFEEEE-}tB~ÅEtS ?D$ED$${߅F=*tND$*${VUv %;,É 렃9G S UOs~~~zEEE܋EE9UtN9UVt[u C$P,[^_]ËEEEE܃E9u~9}yuG<$PD$/D$$lj}tmE|ÅtP ED$t$$&U=- 7,ωG= 7,ˉ,[^_]D$/D$4$ÉXt;1G<$PuG<$PG<$P븉{b@ ] 7,w{t@  7,UWVS,]u F=*D$*$0y~v ut u;,tE?zƅRUtP ?D$ED$$,u%C=*teD$*$xs{ <= 7,%Mu뉃]UJZ ]uV F)ȍE91ۋUtvMu A $P؃,[^_]ÉyÅt'tP 6D$|$$]mU"؃,[^_]ËB$P|F9^E0J;2t9J9u9;,[ED$/D$4$ EH ru9ۉ֋}tE9EsU= 7,tdMD$/D$$EPD$?,$萏]C$PxXxt@ u 7,t0xz@  7,UWVS]} C=*D$*$us[ ]tu;,tƉ>wÅMtP 6D$ED$$ޅG=*D$*$VuWU F%;,"ÉA11ۋu F4$Pt1[^_]Ãtơ;,99tCFvEtH FV D$T$ $VҋEP CK D$L$$E[^_]Ë؃[^_]D$/D$$ Ɖ}EuÅtP ED$|$$:C$PElF4$PLF4$PgU= 7,Ή=b 7,ˉoD$/D$<$(ÉNt [^_]ËC$PC$P1v t@ ] 7,Ct@  7,BUWVS\}EEED$D$z ED$D$ z ED$D$}E $_u 1\[^_]Ë]C=*eD$*$rs[ ]ȅF|;,1ÉEt]OE9}Mȅyu‰]̅9~ʅK^]ЅuY+ŨU܉Ӊ$~ƋE*EP$RD$/D$$7ÉV+UЉUE9U^v uԋE؋EEE_ UĉUEU9U&E9uU9҉ދ}ԉuڃEEE]ҋ]:rÅEȅ[S 6D$EȉD$$uUȋ= 7,tqˉnʉ!ȉEz1ElOˉ]H1E:ˉ!É]K11 qt@ ]ȋ 7,gUWVSL}EEED$D$z ED$D$ z ED$D$٤E $芿u 1L[^_]Ë]C=*%D$*$Cos[ ]Ѕ8;,ÉMtU]]܅oG9~…NAtV)‰U9UI MԋUE̋E_ EE9E|hE9uU9҉ދ}ԉuڋU܉${ƋEEP$RD$/D$$3)E릃pÅEЅtS 6D$EЉD$$UuUЋ= 7,t otG@ ]Ћ 7,‰!GÉ]Ez11VUWVSLEEED$D$z ED$D$ z ED$D$nE $+u 1L[^_]ËuF=* D$*$l~v B;,E܉ƉEtU]PuF9~…,M܋At^)‰U9q uԋUEЍEȋMI ȉEE9]|]E؋u9uU9ҋ}ԉu܋M܋tN$GyD$/D$4$E܉-M봃u܉EP$R뤉mÅtutP ?D$t$$]܉މuƋ= 7,taM܉Ή‰!MA11EEuD$}?,$ 1mtË@  7,zUWVSLEEED$D$z ED$D$ z ED$D$E $论u 1L[^_]Ë]C=*%D$*$gjs{  1;,‰ÉUt]EE؅:}G9~ÅBt[)9]R U܋UEԍE̋MI ȉEm9]hE}9uU9҉}܉uډ$vƋEEP$RD$/D$$U‰$뫃@kÅtstP 6D$|$$胷uˋ=‹ 7,t@ʉÉ!MAEE11jt@  7,UWVSL}EEED$D$z ED$D$ z ED$D$E $au 1L[^_]Ë]C=*'D$*$hs[ ]ԅK;,EɉUt]UZG9~Å9MA)9q u؋MEЍEȋw Em9gM܋E9uu9Ƌ}؋MuڋUtU$}tD$/D$$EÉ/뷻U뭃]EH$Q띉hÅtzEԅtK 6D$EԉD$ $]UuUԋ= 7,t^MˉÉ!G11EUnD$}?,$J1+htË@ uԋ 7,zUWVS ]C=*D$*$es{ tXuK;,tKÃ{toD$?,$~1҅u C$P1҉Ѓ [^_]ÃrgÅt~tP 6D$|$$赳{uC E uC$PЃ [^_]ÃQD$/D$$Å/D$?,$}1҉Ѓ [^_]Ë=G 7,t ft@  7,UWVS<]EEED$D$z ED$D$ z ED$D$|E $Fu 1<[^_]ËuF=*D$*$c~v u;,ljƉ}tUuOC9~…)96S _ 9tP1$OYƋE9EP$R(D$/D$4$-ljg9ɉ։u뜃G eƅtrEtV ?D$ED$$FuŋU= 7,t6ωs!‰!11~dt@ u 7,UWVS<]EEED$D$z ED$D$ z ED$D$}E $(u 1<[^_]ËuF=*D$*$a~v u;,ljƉ}tuUOC9~ƅ)9S _ 9tP1$0WƋE8EP$R'D$/D$4$ljf9ɉ։u뜃FbƅtrEtV ?D$ED$$'uŋU= 7,t6ωS!Ɖ!11_bt@ u 7,UWVS|EE UEEM E bE?U t[@ EEU9UrN‹E+P ;PUtMUt]E|[^_]Ë]]EE!M*EM9MEMU舞M*t6A=*tD$*$_MAMMMtgEP$RM*[]9]}m}}t&V+}u+uE ED$|$4$M UfED$D$U$ #ƅw@=*tD$*$^ED$ED$ D$* +D$4$SE9E &E2}OMMu+q UE)Q9~09}ЉD$E$Fa16EEX ]O U]~]]BEUEMC$PESMA=*tD$*$\{MYaEu+p U+U} )׍>@9~59T$E$P`6EEP UMۋA \$D$M $褪]M9UUM$M*R9]FMU3u:MtЋu‹EP$RM봉T$E$_UtUtE1|[^_]ËUEP$RA ]]MLE/u}uE8;]vEU?U9w]o}t}5;]]EE%}MA $P1F4$PG<$PM}u']EED$+]\$])]}}<$M EL$+S=@u1t&EEP$RHEP$R!EE EvD$D$` ?,$%tF4$PE$\EUEP$RpluIErE)EMD$D$~}<$ũUu+r 1у EȋR9~09}ЉD$E$z\6EEP UEtUMMBuE9]Y +D$?,$rjG<$P\UUD$ }E D$BD$B $UWVS]C=*uCED$ E D$CD$C $lƋu C$P[^_]D$*$WtUs{ tu;,t 뎃t[RYÅtGtP 6D$|$$葥WD$/D$$Å51d= 7,t Xtˋ@  7,UWVS,UB=*EU@ ERU$蓈E0]1E6]ÉNj$Ou9u݉+uEUe{< C DžDžDžDžcDž| C=*tD$*$n>!si$u||b|B=*AD$*$>2|A=* D$*$= |D$ /D$CD$؃$lË|4||[ @xx9Dž ;,ll||A $P>tTTTxt X>TBATTXTtt9|ىǃ t2TATATXt4ttCD;,/ËdtU DždV\$h $E E |DždDž`DžDžxfp؉t[D$/D$$lGloD$>~?,$SDž Dž|0,z<tP D$D$$詈u= 7,t e<"@  7,1Džd݅egx wSD$P>,$RC=*tD$*$f9{Cus$y|vGv,DždcDžfRӉO||>DžtC$PJ$;à +bxwbptx$xcXT$xT$D$|$ D$t~D$@M $Oۉ\$ UT$D$x $1эYȃ1ɉӍ9uDž|xtXt oSC$PS= 7,lȉDžx||L`9}hE싕X)\\L$$y:dt] u C$PltEB$PEx5wfB$PDžd\$ ED$D$x$OэQȃ1ɉӍ9uDduB$P$v78=mD$P>,$;NNT$xL$T$|$ D$f~D$@E$ DžxgD$̂?,$M(v C\D$~?,$MD$~?,$}M`6@  7,0D$?,$9MLD$2~?,$M2|$|A $P|t|t VA $PU롋0xP BPPЃ0 xDAЉxDPP0 vH|u A $PD$?,$KD$>,$KUVS]u C=*t'D$*$2u(*(*[^]Éu ][^]UWVSlEȉUĉMMЅ0@Ẽ?MȋIMʅE̅u_Uԉ9M}]]ԋEԅuȁ~*v E;,EЃl[^_]E+ỦUxh]ċ[ ]3uEEE}ȋ_ EEU9U-E9uU9҉ދ}uكEEE]U9U~ӋM*}E&3ÅtP ED$t$$c]Љ؃l[^_]ËUzMċA 0}ȋ_G S90tA9uUB E2ErEЋ@ ]ȋSҋK T$L$$~}ЋW`119+ȋ}G ;0umUWҋUB+EEE2EЅ H M؋]ċSEEԅ1ۋ}ԍw}MȋA }؃UBR D$T$<$~UB<}9uڋuȋF)V D$T$}؉<$}Eh 9tUu؉u؃E}ċWMȋA)9EE4q Eċx ;u빋EЃl[^_]EEUBR D$T$]؉$E}uF]؋}ċWUmEԅUȋB+EUҋMQ D$T$$|E=S 7,tcMЉp҉!<uЉl[^_]EEA11Eȁx*tEȃE 0t@  7,xUWVS,EED$ED$ ED$D$}E $}u 1ۉ؃,[^_]Ë]C=*=D$*$-s{ +h;,ÉEt]C=*D$*$.-s{ : ;,tyˉMUE$EËEEEP$RD$/D$$艙É7.Å=tP 6D$|$$zXD=.ÅtP 6D$|$$|zEP$R/u= 7,ˉ@=3 7,-tb@  7,D$/D$$gjEEP$R11115+-tދ@  7,/UWVS]u C=*]F=*D$*$*~v uw;,twƋMA=*ˋE$ىE!NjU u C$P[^_]Ã[.,ÅtP ?D$t$$mxދMA=*_D$*$))]{C Ett+ÅES ?D$ED$$wE$ىENjUB$PF4$P+D$/D$4$ ƅ Uw1[^_]á;,(I= 7,HD$/D$U$荕ÅMqF4$P1D$*$O(tt{[ ]tu;,tE8tt*ÅEtS ?D$ED$$Rv]A $PYD$/D$$貔E1U= 7,MB$P1.l)S@  7,BU=|7,t)Å@ M7,e(@ ] 7,9UWVSlEUMi$XE2EMIMEU][]+]]EE]E]9]ڋEX 4My 9uًI9uˋUUE~qu+uM<;,É\$E$aUUUMMU؉9]ZE9E-u)Uz t<Gb'Å_,P 6D$|$$sT#'Å 5P 6D$|$$^s]C E̋E@E1҅&;Uqu)֍]{  ;, É\$E$IUEEl[^_]ËC$PEt&;,É\$M $E$u C$P]uC$PEv= 7,1 9uMA ];uMMM)׍Uԅ;,É\$U$sQVMMsMD$]}?,$<EzC$PEl[^_]ËE@E1;}Nu)?;u}?4UB 0$t 9}~ыUB 0$u;}}?EÉMĉMUB $Su 9uu9}MMEW)UEP U;,É\$U$?"9uMM#ÅP 6D$|$$oS#ÅEԅS ?D$EԉD$$o#DžEȅtW D$EȉD$$GoC$P6uċUB $t 9uMMC$P= 7,]ԋ= 7,Mȋ= 7,2A $P!@  7,B$PE]!0@  7,=!@ ]ȋ 7,T!@  7,C$P= 7,t  @  7,UWVSu] F=*KC=*D$*${[ ]tuU=S ÅEtS ?D$ED$$lMډQNjtHt t [^_]ËC$P[^_]ÃMډ NjuF4$P뭡;,TD$/D$$胊Å^1[^_]D$*$[ta~v utu;,ttv&ƅtEcV ?D$ED$$_kCD$/D$4$щƅ!1X 7,t?U=z 7,tKF4$P1x@ ] 7,*G@ u 7,nU(E*EED$ ED$D$m}E $l1҅t9U*tQB=*tD$*$tUME‰ËED$ED$E$‰ËM1ҋE‰UWVSLEĉUM$hME̅Euvuȃ]ȅ(uċvu+uȉuE܃E܉‹Eċ@ EuV 9uՋN9ɉމuËEEM~{EEȋu)ƋU<sb;,^É\$D$ủ4$}UE+EȋUUu܉uFUEċp tE}u =&EÅtQtP ED$t$$Bh\$D$Ủ$r|Gu C$PűEẼL[^_]ËUB EԋuċN EċP u;4uuuu~p)ߍ4E;,Ɖt$D$Ủ${ uuمm0qEċx ;,É\$D$Ủ$+{C$PẼL[^_]E;,2랃$ÅpP 6D$|$$_fqŰD$]}?,$0E1ÅP 6D$|$$euF=iƅE؅IV ?D$E؉D$$e)Eċx?4UċB 0$,tyυ[?UċB $u u9~EEE)6EËUZ ؃EO>;,:É\$D$Ủ$yQx4]UċB $Et 9uEE qwUċz tpuc;,tcÉ\$D$ủ4$xxMqŰ B$PEO~ÅtÅtP 6D$|$$ctF4$Pvi6ÅwEЅS ?D$EЉD$$kcC$PC$P 7, 7,= 7,uŸ@  7,C= 7,C$P= 7,-F4$PEjB$P /@ VF 7,@  7,@ SC 7,U@  7,N= 7,t Q@  7,](F4$PUWVSu] F=*KC=*D$*${[ ]tuU=EÅEtS ?D$ED$$~`MډNjtHt t [^_]ËC$P[^_]ÃMډONjuF4$P뭡;,TD$/D$$u~Å^1[^_]D$*$Mta~v utu;,ttvƅtEcV ?D$ED$$Q_CD$/D$4$}ƅ!1X 7,t?U=z 7,tKF4$P1j@ ] 7,*9@ u 7,nU(E*EED$ ED$D$R}E $_1҅t9U*tQB=*tD$*$tUME*‰ËED$ED$E$‰ËM1ҋE‰UWVSEEM QP UHMEȅw9uC$0 uEtV+]EUJxED$ED$$ËEtEuEP$R롋EP$Rt&UWVSLEEED$ED$ED$ED$ E؉D$D$\E $EthEE܋E؋P*tD$*$uEtE؉$ EЅt'E؁MUEԉD$T$E؉$t 1ۉ؃L[^_]ËEE1}у9M]k8ubE]܋U\$ t$ED$Ẻ$9ËEЅrUЋ`B$PR8tp8`D$`?,$; 1$dyUULD$0?,$ 1D$w?,$ 1U(EED$D$ D$D$9E $T1҅uËE$oP‰U(ED$ED$D$ D$D$gE $1҅uËED$E$‰UVS@E*E*ED$ED$ED$D$ D$D$E $E=*t$o@E=*t5P`*D$`*$pE=*`wE}*!]D$$35UB=+=*tƉ$Ojt`E]$+t\$D$ED$ED$ D$ED$4$Đ[^]8ED$>,$1Đ[^]sD$D$E$d1Đ[^]D$ED$ED$ D$ED$4$WĐ[^]ÉEsE}*rEE{D$?,$1FUS4EED$ED$ED$D$ D$D$E $1EP*tD$*$\tYED$$u%E@=*tD$*$9UB=*t,$EEHE@@ D$D$`E@@ D$D$UENjC$PF4$PEEUE]9}ډ${…M܋A MED$E؉$Å{U؋uB$P뛋F4$PEP$REP$REP$RUWVS,E$qg$YÍED$D$ D$D$E $(XtD$$[G= u*tD$ u*$/tC= u*t;D$ u*$u'ED$<$ iÉ؃,[^_]É<$bU$$'t$FU$$'tEEb$UÉ<$ Ut$\$$EƋ}tU>uz8?,$#1ۉ4$j:A\$$j 譃1ۉ؃,[^_]D$\$$1D$#>,$1щȃxhAD$4$Xj$:Et$Dƅ1iD$>,$x1tB$PD$@>,$N1>,$1)UWVS,E D$E$/ƅu ,[^_]ÍED$D$\4$&E  t}ZZED$<$tsE]$Z\$ED$ |$D$E$rËt މ,[^_]ËF4$PE t l'YD$D$<$ c1UWVS,EED$ED$ED$D$ D$D$E $[EtE$+Džt$ƅ~$cƅtz<$裊ÅED$D$4$\$D$4$ D$t$E$XQEstUt td|1,[^_]É]-F4$P3uEtUE E]:TUE E] US4EED$ ED$D$zE $p"1҅]1)ȃ1Ƀ9u؅MUٞr@}EfEmim]x@EU$‰Ѓ4[]}EfEm%im]yMUsEnUWVS<] }EEt@ED$ED$ED$ED$D$ ,+D$|$$ ,E$λED$o$$ƅD$D$$Å|$D$4$ׇNjtOt5tVu G<$PE<[^_]EE<[^_]ËF4$PuC$PuۋUuB$PE랋Ut uF4$PEpB$PUS$EED$D$ D$D$E $j1ۅtEtD$$Åt>؃$[]`TÅt ؃$[]uD$ ?,$iD$?,$RUWVS,EED$ED$D$ D$D$E $u 1,[^_]ËE$腊DžtE@=*tD$*$t-D$̽?,$uG<$P1둋EtButg<$̈́Åt;D$E$ƋEuEP$R볋C$PvtEtHEtEG<$PE$E]&EP$RvU(ED$ED$D$ D$D$ڶE $2u1ËED$E$.x$5U(ED$ED$D$ D$D$E $u1ËED$E$ux$ɐUWVS,} <$TE1EF $r1U9E9]u΋EE$EU$耸EtoEEE$\Džt:1ۋEE9E"UB UƋ4$]ËG=*tD$*$LwEEEE+EX;]E9}É\$E$>EEčWt$T$$]̋UUċG<$P]؁Č[^_]WEMĈTM봋C$PF4$P]̐t&euE9ED$E$={NEP G MԉMC$PF4$PD$(?,$yu G<$PEEP$R1]7E9ED$E$&$EfEu:C@4@ ED$$臭ƅ+D$D$E$;Ë$ƋukEM9MMA@4D@ 9U؉T$M $ЉDž}*8x]|$UT$E$ʫc]xC$PV$諩E E$yE~E$EUUB=*OD$*$,$1ۉ؃,[^_]ÍED$D$о$r k ڋEÉ؃,[^_]ÉًEU9[)Ѓ1p1EC EEE9H$0…u؋uC$P11ېD$?,$1UWVS,EUυ$n58EGEE0UUUED$D$<$ƅtuUT$D$$+ÅD$D$E$EkC$PbF4$PTEUt E,[^_]ËB$PE,[^_]EE,[^_]ËuF4$PUWVS ED$D$cE $/u 1ۉ؃ [^_]D$ E$ ƅtۉ$Ut*t5th4$lËuF4$P$bl6D$4$ә1ۅt‰$$ËuG<$P뢍%UVS ED$ ED$D$mE $Ru 1ۉ؃ [^]D$ E$Dƅt܋ED$4$6Ëu‹F4$PUWVS ] D$$`ƅ$,D$D$$xÅ\$D$ 4$x`$**|$D$4$Ƌtwtax** [^_]Ëti1 [^_]á?,tD$ $1ۃtJvt&sC$P딋G<$vPx}HC$P1D$$ї$UWVSu ]ED$D$c4$Eu E[^_]D$E$lED$UE$VED$L-E$@EU}}*F$|3ƋU$Y$՟DžthtPtLEG UW_|$4$qE2EE=u F4$Ptt tzEutUtF]tUtÅt^tuEC US\$4$oEttEEF4$P׋C$Pׅt t"EuF4$PދC$vPEZUWVS }$b#1þt1D$D$< <$t#u C$P [^_]D$*D$<$CuD$*D$<$'uD$*D$@ <$ uD$*D$G <$iD$*D$ <$I1GUVS] ED$D$c$xu 1ۉ؃[^]D$ E$jƅt܋@=*tD$*$ t~t'\$E$ËuF4$P듋F $nUWVS ։ωT$$ÅtO@=*tD$*$觯t@C1҅t Ѓ [^_]ËC$P1҉Ѓ [^_]úЃ [^_]Ét$D$?,$u͋C$PUSD$RE$?Åt&@=*tD$*$t؃[]1ۉ؃[]D$RD$`?,$Zu΋C$P1UVSE $׻þt$D$D$;E$Ƌt [^]ËC$P[^]USD$E$]Åt&@=*tD$*$t؃[]1ۉ؃[]D$D$?,$xu΋C$P1UVSE $s-þt$D$D$E$Ƌt [^]ËC$P[^]U(ED$ED$ED$ED$E D$ ED$D$?,${U(ED$ED$ED$ED$E D$ ED$D$?,$4U(ED$ED$ED$E D$ ED$D$d?,$UWVSLD$D$ D$D$;,$n}L$Eȅ9$12>E̅"$EЅ$@++ÅD$D$,Eȉ$Ƌlƅ$n+ÅD$D$34$謺$@+?+Åt{D$D$,4$ouc$ +Džt4D$t$$`?,t+Et&E$BL[^_]1Emttn}ԅ$X+ E@+1ѸtA $exce@ptiof@ns@ 1fD.EEċUBD$$NMA GE܋Ur$J(MUE@E苡EEt/4$)ED$D$,<$輸|$U܉T$$OMcMEt$UEE1utU7$W M؅MQ,tM$҅UD$MċD$Eȉ$u#UD$MċD$EЉ$t $8MQ0EĉE$蜔ÅWD$D$X?,$%>,13Ű/B$P!EG<$P$3B$P$T?,E`?,D$D$ Uȉ$贶`?,D$D$ MЉ $萶F4$PMP$RG<$PC$PbC$PB$`UC$PC$PjUWVS >,t>,@+@+&Ft tJFtX~D$F$É$muC$P뢋FP$RFu [^_]á>,P$RIUWVS,ED$D$cE $u 1ۉ؃,[^_]D$< E$Åtۉ$dE]UB=*tD$*$营tD$E$DžS@=*=D$*$MED$E$Uƅ@=*D$*$EE EUZ@Mt_t؉$EtXEU54$|EWu/uA]t tZTEF4$P7E,E]萍t&C$P?G<$P뙄U$#ËE$_UPB$PBZUT$D$ED$ D$\$E$Q덉t!Gʄu t@=*tD$*$HVE9hM캕;E +D$RE $ƅ@=*tD$*$̍ VEc9}U?D$U $[@=*tD$*$e_UMB9 D$AD$T$CD$ D$D$4$k4$ ƋB$PG<$PC$P1BED$RD$?,$2gF4$PYF4$PT1E/F4$PED$T$D:D$CD$ D$xD$4$jD$D$?,$yB$PUWVS} D$b<$Å@=*tD$*${D$R<$ƅF=*tD$*$?ED$<$D1u C$P[^_]D$bD$?,$iK1[^_]D$RD$`?,$.u F4$P1lED$<$DD$<$~&@=*tD$*$,MUA9F ~<~D$L$T$CD$ |$D$<$h<$n Nj{B$PmF4$PhC$P1lD$BD$L$CD$ D$D$<$ hmD$D$?,$蠣B$PUSD$bE$Åt&@=*tD$*$諈t؃[]1ۉ؃[]D$bD$?,$u΋C$P1USD$bE$pÅt&@=*tD$*$&t؃[]1ۉ؃[]D$bD$?,$苢u΋C$P1USD$RE$Åt&@=*tD$*$衇t؃[]1ۉ؃[]D$RD$?,$u΋C$P1USD$E$fÅt&@=*tD$*$t؃[]1ۉ؃[]D$D$?,$聡u΋C$P1USD$E$Åt&@=*tD$*$藆t؃[]1ۉ؃[]D$D$?,$u΋C$P1U**]U1=;,]U;,t;,D$$;,UD$;,$|U;,$CUS]t8D$;,$B$,$JUp ,$l ,UVS] uC=*tD$*$etWtF=`*tD$`*$@tKt$\$E$B9Ƌu C$P[^]D$O?,$1D$(?,$t1뺋C$P1$mÅL1UWVS }u p ,S tCC 1{Ct t{s t#C [^_]ËB$P{s u1suUWVS }u p ,S$tCC$1{Ct t{s$t#C [^_]ËB$P{s$u1{uUS$GÅtD$$u1[]É\$$b,[]UD$E D$E$UEPl*t/+t' *tmp*tUn*tR]UVSut:F=*tD$*$t#4$蘂Át\E [^]ËF=*tD$*$t54$[Ãut>,$Ϣu%1뮻D$L?,$B1$ÅtD$D$4$=Ƌt|t9C$t&PUWVS,ljӉ΋@@4tO@tHB=*D$*$~uzC=*tpD$*$s~u\D$t$$ÅEED$\$<$MƋu}C$P,[^_]Åt@F=*t6D$*$}u"F=*tD$*$}`EEED$$u",[^_]É\$<$O[ED$4$tˋEt!ED$ ED$ED$<$c먋ED$ED$<$dUWVSÉE׉΋U8tf;t|$E$UЃ[^_]ËCu݋[w3D$E$1҅uыE؍Wt$T$$ U<}=l*u5EUMϋUB$pMA@$ZEUUWVSp ,DžU ‹@ B ;p+~ p ,A t+9<p+]YAtDAtQ$u^8{R8GtW MY8{7ˉȉ ]EU[s {L<sB<Ez$B$DžDžDž*DždDžDžDžh+h+h+Uu+Mqy E؅o WE܉EBz^]DžuuFyZE؉D$U܉T$$[vM؉T]܉XE\JA,+ЋP4H8`X<\t \Xt XTt T\A4XA8TA?,$y&1E9&Mu݋P$RЋGpWUOM_􉝐d@=`*tD$`*$U`1ۅ*D$p<$Å*pt$}|$ dD$D$>$RPEu C$PMW2M pu C$Puu F4$Pd}dB$P}w_C=*tD$*$P_*K, ,SC$PEt dURUBt$$`0 h?,4$D$D$$9yu4$(ZÉU+B ;Cu܋B$Pыt duvu?~`*?\$dT$M $-u C$P#uEGUB$Dž@_EU$\MIMAD$$]$趝Dž=Dž Dž(t."  t$$W@Å!t(C=*tD$*$\t {_+\$U$$DžtD$\$M $[=C$P/DžFuvu<EuDžw_d_dD$$ Eu C$Pdu B$PMOw_d_dD$$D Eu C$Pdu B$PMOw_d_dD$$Eu C$Pdu B$PMO1(*.(dt!dD$$'|dtd(u F4$PA $P1$pdD$0>,$qDž$Ppd8&u C$PEMA $Pxw_$Eu C$Pu7EGU:]BR4Ew_d_D$*dD$$ Eu C$Pdu B$PMOw_d_dD$$Eu C$Pdu B$PMO4?w_d_dD$$Eu C$Pdu B$PMOw_d_dD$$Eu C$Pdu B$PMObmw_d_dD$$YEu C$Pdu B$PMOwGd_D$$uEu C$Pdu B$PMOE@MQ ƃMF%04}0$<鈍҉)֍N8^<{l*A9<}DžDWU؋Dt&G=`*D$`*$TÅ?1Hpx.1҃dpщlD p9uԉ\$E$>A&}t`~\4$f>Å &x1҃7d t 9u\$E$%U()!DždxpHXdD$t$$Eu C$Pu F4$Pdtdu B$P]uUb/EUU+B D$ E+D$\$$GLuPUBD$$Eu C$PEt`~\4$<Å.x1҃7d t 9u\$E$^2U4$]Dž t d~*d\$uF$NE!Uu>GOd_]O_GU;Ox_dGEċ_dz*2F$Ht d_t$$詎Eu C$PUWjut dD$t$$w$C$Pt d_7t$dT$$&u C$PF4$P_]wdw_C=*0=*+dL$$Eu C$Pdu C$P}>}E}%CDždt d1t7$du C$Ptu F4$Pdrdw_d_dD$$Eu C$Pdu B$PMO$/ ,w_d_dD$$E)d)MOw_d_dD$$ Eu C$Pdu B$PMOOZGEWdw_{*SdL$$Eu C$Pdu C$P}>}E}OdL$$u C$PdVGdw \$D$4$u C$Pu F4$PdB$PGWdWGUYGEWdw_{*|dL$$gEu C$Pdu C$P}>}M}w_d_dD$$}Eu C$Pdu B$PMO$]1C$PuCDždt 7dEtEw$dUu C$Pu F4$PEtUu B$PddU:7EB$PUNGEWdw_{*6dL$$Eu C$Pdu C$P}>}Ux}4$W4Eoxj]T 1d9uHt d]C/x`*~.dt$$E.u7ut u7U-WUOdGWO Ut dt$UB$3G]h?,O4$W?D$D$($a&5 ,wGd_D$$ E,d,MOwWd_T$$Eu C$Pdu A $P]_Q\wOd_D$*L$$Eu C$Pdu C$PEG_ddt$$ɭu C$Pdu B$PM9qDžu_$h_$|Eu C$PEG1uSWwdGEGGwMOWUGGU2]CS4uuw_d_dD$$.Eu C$Pdu B$PMOP[_]wdw_C=*&=*+dL$$Eu C$Pdu C$P}>}]}w_d_dD$$Eu C$Pdu B$PMO[fuFV4ExGd=`j*dlj*d $7uu#_$Eu C$P]_uw_$u C$PL )lj*Glj*_$E)uwHujt dt$G$;E *]u(}؉,6ȉ )JB(Ë@= * =l*.)(=+)1~M؋(<$1Dž#,$5-EtU,x"t 1ɋE؍PU؋@9,u|$\$( $E/#t8#(E9s(PU؋PuB$PE9r؋Mxu]t&&&D$ ?,$YDžDžd7Eut dD$&uF$haEw_UB\$D$ MAD$dD$$.du C$PdLD$dT$M $^Ed4$pE  1҃d]C d9uS$u^8K;CC|$ D$t$$Ћ{kSktDžDž1VGGA $PU֐Z1S11F4$PlkC$P]CCD$ *D$L$$Ћst;Sk Džp ,h ]C F 1ҋKuCCD$ *D$t$$ЋstSkuk1ҋKu倽 1Dž@4~2M؋<$4DDE0$(ƅut)~'@0L 1ҋC 9u닅0x"L 1ۋE؍PU؋@90u䋝D\$t$<<$ E DtDu A $P@t@u C$P]؋<u F4$P98s{dt#98rE{{uG<$Pҡ ?,$^qDžu C$PD$u4$8UD$dL$4$\F=*D$*$:F=*tD$*$r:V FC$k4y{ oDž}*tUUdh1u C$P?,$L]DžtD$X?,$RDž]C$PӋR4NËA0EԋA4EЅtB8tB,$6SDžiB$PC$Pz*$>;…C9C Uz*wCJ)1$QEEj`j*G`j*uT11dd]U܉‰E؅*t{z)D$?,$PU܅t Ut U؅tl Dž**u$**PEE܅ MA=*tD$*$6t?M $-$~0UJ MuB$P뮉EMA=* =p*1 =n*5@ D$D$?,$ QC$PS D$$M˻E;pP Fp1ҋd9uL|UDžmU;$u-Dbt1cD$ L$D$?,$PUB=*tD$*$T5t7Mq~-q D$qR4$]uÅC^p ,$l ,t7Xt8C=`*tD$`*$4tD$$VÅp*C=p*[=*PD$*$48*TD$ ?,$yMDž0KQ5p , c A[ $ , F V FN X8{uHCC(|$ D$D$ $ҋ{ SkD$$EF} VN Z8sCC(t$ D$T$ $Ћ{ Skp}d ERC$P^^t%LыDP t vD$d $ Dž7wO_]wd_7Uؽwd D$t$$?DžE؍PU؋@@Nj@=*tD$*$1+@x%\$$ ED$D$d4$d‹B$PdT$$j $ IdD$0>,$?JDžB$PD$dL$$9ÅD$4$EC$PxGdz*CJ)1$=E^ `UB\$t$$P@EaMA\$t$$P@E>u逻D$]$Q@F=+= u*tD$ u*$/4$S4$肭$Ep ,$l ,UC@p 1 UED$hD$UT$ D$\$ $w3D$$?,$?HDžB$PC$vP1ҋK##F(@~CD$x?,$GDžUBD$D$$=D$$D$ D$D$D$D$D$ hL$]\$4$ËV?DžC$PDž\$F$,Eh?,d$$ D$D$($YH1%&C$t&PDž3?,$PE؉D$E܉D$E$;U܋B=*tD$*$9-t9U܍BD$$ÅtE܋u E܋P$R]܋E؉D$E܉D$E$g:1ҋst&*]D$?,$E1ZDžd11B$PDžDž C$P?UtEZC$PB$vPE4DžD$u4$(DžG<$*Åt+@u@G<$P@?,$N,$8gE**E؋P$RDžhEP$RRE܋P$R+p ,P4u*щUP8U܋PE[D$|$( $MECC(t$ D$T$ $ЋStFSkUt EB$PEv1ҋsu벁}*tMD$t?,$I<NV (\$$覨<1ҋK**u$**PMM܋AEB$PC$Pdx*UU$M‰XEd\$d<$xE`j*uElj*u鵼E驼\$d$q|19d19d랋dT$$?늋MA $PE t$A$$ND$>,$8DžE\D$ ?,$8,?,$*CuVDž= u*)D$ u*$D$?,$w8DžG.D$$p_ÅtOD$D$$u C$PODž},?,$YB+D$?,$7Dž]hDž\$dD$4$qd$UD$D$ ?,$8釵,k|C$P|p,t@?,$yA3,u C$Pu]/d $[uDžuEC$PC$PG<$Pd*CO1$x*Ed*CO1xL$H*E;r Ft1ҋd9u]1yt&{*t&SdA $\1B+9v99999d $SD$D$# ?,$6.D$ ?,$4B$PE؉D$d$țdE؉D$E܉D$4$iEM؋[ P<Fu FP$R^0EF=*tD$*$.Džlt4$:2l MD$ED$4$*p ,$l ,U@H  ʉUED$h\$ ut$D$E$%Ël%lA $Pht$ED$ D$\$$,`hD$ UT$D$E$V$bB$P8C$P$*(vt>,$=̰N(dD$UB$Et&]t$$EtÃdD$UB$Euh?,dOd $Q9D$D$$3 d$ePD$D$l ?,$W3t$F$$4*1ۉ؁Č[^_]1G ^uG4$AUUT$ D$D$(v?,$o+1Su+uЉ4$ÅtGMčt5E9ERUЋE 1ۋB 9u+уDtG MQ ˅t]C ]Č[^_]1E9uE)E9UMčE4EEE+E;EutԋuɋB$P뾋E$苙 1ɋ]D ʋ]@]ȉE;D|G$X EED$U$%W;uuىwB$P_cUB$PE9Mܐ|/EE܋U;@V$蓔E܋U<]čtuB$P뤋B$P]9B$P]GBMċ$… E܋]<Mĉ4$W|ËG4$J|\$ D$D$?,$~(1b4$|ËG4$|\$ D$D$?,$E(1)M7U(D$$D$ D$D$D$D$D$ ED$E D$E$ÐUWVSË@E$7EE~o]}1AD$*$ tZCD$C$ǎÅta_ E9ut%UZ C=*u_ E9uuۋE[^_]ËC@ D$D$?,$'UtEE[^_]ËB$PEUS]St7StS tS$tS(tS,t txS0t tXS4t t8S]h ,E$}Eδ fEm]m΋E)Éh ,E$L[^_]D$ED$Eĉ$]…6,9$L[^_]EEh ,h ,Eĉ$=]؋h ,EЉ$T}Eδ fEm]m΋E)Éh ,EЉ$EԉD$E؉D$E܉D$ \L[^_]$>,QD$1>,$h ,1}$>,QQJUWVSLEȉ:EEȅt UȋUQDp_EE'{}1щʃAED9}v C9y}؅5 ,Eԅt,Fu1ۋEЅS\}̉|$E$舁LutQEUtDrtQERtE'1"'D$$$u1L[^_]Ã3Eru3E묋]ԅt9F u}}1ۋUЅtWD$ẺD$U$"ƅtr}ȋD$$RD$M̉L$u4$C9{{}D:9uMD 9YD$$$e1C$PcD$$$<19F u8+$ED$$ÅO$ lEEẺE}uU9u>\u\OUuFD$\E$hD1tuԉt$D$ D$ỦT$M $ֲL9UU1D$D$$>ƅD$D$T$4JE܋M܅`u܉4$jE4$:kEM܋uUEE;EM9x)ND$ỦT$M $ÅD$uԉt$$}IƋC$PF4$P&'A $Pu@1UD2D$ 2D$D$^<$L9u 8>,E316+}}{1$Gu005fAcE)MuϋC$P1UWVS,E؉֋BPE{Et~  E,[^_]EE*\$E$胥EEEE;F }FMTEÅE@=*tD$*$t"C=*tD$*$uw\$E$LNjt.t5Et}[EP$R}GC$PNjUu 1vuEP$R1UWVS Ef= t[5f~mf=&| f= t&}61ɉȃ [^_]f=7.f=/}f=)?|f=-t&Ѓz uʋRvf=@tf=LuffuREYÅ$6Ƌ1ɅhREbƅ$H6Ë1Ʌȃ [^_]Ëz Rf= 1Ƀ9f= uڋ<,r 81ɍvz mRVF4$PAC$PUS]S t tXSt t8St t ][]ZCP$R][]ZCP$R뺋C P$RUWVS uF<$fF<$e~8]x-0X9u |"P1;MtBƃ9u } [^_]UWVSƉ׉T$@$$t ЁĜ[^_]É|$F$uۉ|$F $uÉ|$F$t1=*ƒ롋F$.F$ .@@ $-@@$-T$$T$ T$\$D$D$|$ D$ D$^$$UWVSÉ֋@@ E{3umD$D$ED$ |$t$L?,$=1҅x Ѓ[^_]áL?,$t t$4?,$eED$<$ CЃ[^_]UWVSÉU΋@EtD$C$<]xgUED$ t$T$$SZECtCiu׉t9Et;t[^_]ËCD$MA$\y߃C[^_]ËUB CEuUWVSdƋP ~.EE]^f=~f=:tf=Cu1d[^_]f=tK XEE}{f=[f=%W `EEEGEf=$f=*EH JEEUEPUf= f=EP ҍv/EEEMAEf=f=EH EEU܋EPUf=Nf=UR UEEE؋MAEf=f=MQ ҐEEEԋMAEȋf=f=Eȋ@ ~\EEEЋUBfft&ueEEE̋M9A MQ EE;Ua1f=:t f=CV EE9U|]^f=\d[^_]f=:t f=CK EE9MbV f=:t f=CW EE9UrK f=:tMf=C EH EE9MW f=:tPf=C%EP EE9UUJ f=:tVf=C=UJ EE9MMQ f=:t[f=CSUR UEEM9MEH 벋MI Mf:xfCLEP hE@ EUWVSx|PE@PhxPxBQxA ;rxB$%|BpNxH,EDžDžDžML$ ED$UT$A $1Eptƀt8Ex@xtt tkxh,H0c#D$*ED$xB$&UĜ[^_] txj,J0@txi,O $xNjxB$|$L$$&G<$P $ NjxB t ƈt&tt A($ED$ED$xB $DwEEP$RnD$`j*ED$xA$?D$`j*ED$xA$|x4$ED$ED$|B$kEEP$RxP0HX,$EЃ41xVB 0E܉D$$Pt'AE܉D$D$<$4Nye}܋xp EUT$ ML$|$4$E@$hÅD$ED$4$(uC$P돋AEP$R0!G<$P$E#D$ED$xB$Eyt ED$xB$^R19b$AED$F D$xA$'EuEP$R$…x@PkEP$Rxt@ B0A0ʅuCBt xI0Bt;1C$PrxH0 뫋xP(Q$tY,I(n`tD$pAD$ D$DD$,$+\$4?,$GB4D$x@$ot\_4$E܅WD$G 0D$$3G 0D$$E܋t닋E܋P$Rw$jDžP E܉E܃ED$D$`4?,$|B@ D$B$R|AUBxI01>A,2D$B-Eu EP$REu A $PU܅E܋P$RE_}܍ED$ |$UT$$Hs$!EZD$E܉D$ $Et덋EP$RzD$pAD$ D$D$,$: uP$RG<$P}D$pBD$ D$D$,$D$AD$B*UWVSE׉MuL$$-t@u^ ‰$ÅD$UT$<$lud1[^_]ètE$RRD$D$4?,$UB@ D$B$3E@몋ED$UB@$Ky[^_]ËC$P]ED$UB$$t P$ÅtD$ED$UB$mxC$P1 nC$PUWVS ljMT$@ $ƅtjED$F $zt.@u1t"V $M x0FP31 [^_]èuˋV $Myи [^_]1ۋ@ PMQxF9XސUWVSEH Ex f=:f=COEP ~Ex Zf=:v@f=C\EH 1Ex  ~f=:f=CvjEP E܃x Hf:fCwEH x xUWVSlEUJ EEEUBx g@EP WEEEMAx @EH  EEEUBx @EP EEEMAx n@EH sEEEUBx @EP 'EEE܋MAx @EċH EEE؋UBx u@E̋P EEEԋMAx XC ~N11PE1(;{ })Cx u܋@PDE(;{ |׋M̋Q EE(9U|EċH EE(9M9MQ EE(9UEH EE(9MMQ EE(;UUEH EE(9M MQ EE(9UEH EE(9Mql[^_]Ë@PDEE̋P EE(9U(@PDEEċH @PDEEP @PDEEH @PDEEP @PDExEH @PDEZEP @PDEt4EZA9BUPF4E䉆,[^_]Ë%Eظ)‹E#B@m9}tZA9|ÍD$U؉$OtF8뺋뙍D$U$|OuF8}EUWVS\u} ]x0M x)Ut"tF=*t4D$*$u D$$$1҉Ѓ\[^_]Åt܋G=*tD$*$tE$tU$B=*tD$*$tE(tU(B=*tD$*$^jE,_U,B=*tD$*$.:E4/U4B=*tD$*$ E0U0B=*tD$*$E<U:^  Vƒ8wBCHP SL$$詬\[^_]Ã~ V^ t&{CH$V)~ BH$QFB4~ Vd~ DžDžX\$ D$tD$<$%`ڋr(;N TF\D$ |$\$A $uډT$B@ $@xkZ2\$ D$D$<$W-^f;[C 11S (;{ |uC@0vV1ɋ \[^_]ËN VfzATt/^ F@‹F FXfxK ~XCf$tMftG1Dž(9~4Sf$t#ft~ fzd(9F$f>:rV V<^ [F@$P^ 1^ 'yV1ɋ ^ Dž<9Vf:~ދ^ ΋V 11ɸ9\V(U?<,2~ V(v<1'CFfxJtf9AP$RQDž19Vf:~ދ^ Ή򋅸5 wPe_VF -11%P(R(;~ F؃x ЋP%ыV^ 0~V<1ɋ^ Vd^ \$D$`4?,$C@ D$C$fCOCXfxINQzu{J$QCB4ƃPK D$4?,$Cu A@ D$C$C PcBP8P8T$ D$D$$ڋH^S1ɋoS<.{ VAh8{ ^S1ɋS<{ SP1ɋV(ySPyPUWVS Ɖ׉M$(Å@@ $Ct|ZC CCCC {$ECF$iKCC~[C$CS t t3-K$džn@z FR7z QR B E؃tE؅1Rf= U1Ƀ9M UEf= uB EԋEԅRf= z1Ƀ9Mf= uB E`B EԃuRcBf8[詧ÅJNV$ȝNju C$Pd];~,ZBf8 ÅNV$,C$Pz "Rt&B EЃtEЅRf= U1Ƀ9MUEf= uBf8TÅNV$sEMd ;~,Z~])B EF4F4IUW<džCdžC$P?UWVSƉӉx}D$D$$D$$>"$S轗$& w萗d}QD$$!E2DžDžDž Dž$Dž(Dž,Dž0Dž4Dž8Dž<Dž@DžDDžHE]EEEEEEEEEEEEEtaGt[E,Ff>Mu_4?,M1xʗ 轗1[^_]f>M/ExxE̋E܋@xxA0% 0tE䍅蚭t4D$$}tEĉD$E$8 $|$$E$$b1t>ƍ}EPEE苍D ED$ UT$|$$\uɋv E$艦$}u9EPE)ED ED$ |$UT$$uNjE$7E$6]lӪIl$譪1t |t|tt!ttLllC$PFEvE81i肩1ZD$ ?,$@]܅CS tSt St$EG<$PE\$4$*‰Et  BBMU#E܅@EA $PC$PB$PkB$PA $PC$P CP$RC P$RCP$RED$4ED$0t$,|$(D$$T$ L$|t$\$l|$0D$ ED$(D$,${[\$D$<$4$n=p$ZT$D$ $$D"$.\$D$$^1ۋ Fw@$P@€qCwЋ1Z\C911ҋ9uDžDž  =$L~?111ϋ؉p֋ ʉ(‹p91~j1ۋdBBDž UEU MM1]JUWVS ƉU ӋR$茘$ Nj;tCQCP@ CT$C$sËNV<$Dd;t|1ɺUBP$<wJF49}|DDF4u G<$P [^_]1ɺFUBP$;CXfxBu{ ~E1džẼEP9C bJF494DF4;~SS( JF49DF4J9D<F4NJJF498D F4BEfz x -@fxG1BO?(U9B O_g9mdžډ蟎ÅNV$辄NjdXR諆ÿu֍Zfz{ ~CfxJ1ɉډnlF8댍 D$4$DF8M1ɻ D$4$tDF8B D$4$t2F8 D$4$t F8F4F4F4}F4C$P)؉F41ɺg1ɺfډ]vD$ D$D$]։$f1ɺgJF49}vDF4;~ٺ~REЋHQ$oٺL D$4$tF8ydž뫋F4XUЋBUWVS ljUR2Ex PBfz$(:fthfts ?,~E9X ~=P2Nf8$tT΋Pf u$(5E9X à [^_]ÍJi럃g-뒉ƒkJG49}&DG4~* [^_]Í D$<$DtG8LJ [^_]ø됋G4UWVS,ÉU܋R:ǃ ΃vRuNf0fɍvJC49DC4,[^_]ËE܃x uBfz5ux uHf96uy uIMf97wIMf9gf/fU؃,[^_]؃,[^_]B‰JC49}D C4,[^_]Í D$$uC4Ӎ D$$t5C8,[^_]ÃJC49}D C4,[^_]ËC4 D$$tuC4ɋMyى $ƅ9-UBD$F$8MA$:EpMQƅ$[EKSE$~NjUu B$Pu F4$Pd;;~uKS4$6~E딋Q:0EtJ.<$bX?,zJC49}.DC44E묋Ut&s D$$C4UWVSÉ׋Rs [^_]EE(\fD ?,yJC49}sLC4~~EE(E9G ~UWGUDftW~ftff0vJC49| D$$t5C8ǃ|C0% 9C4;%UWVSÉ֋R~ [^_]EE(3LC4EE(E9F ~UV^FUDft!fftl ?,\xJC49z D$$t!C8oǃiC4f"t!f?f#t ?,ewJC49z D$$t!C8oǃiC4:m?:B]@:BM ZD$$`tJC8S4D$$Bt@C8D$$'tC8,[^_]Ë S43 S4 S4h S4D S4S S4dD$$-C8{4xl1eP:t9uu:B>9?:B@:Bv:G[D$$t~C8S4D$$tLC8D$$t;C8D$$t4C8S4K S4j S4 S4: S4h S4v:B8USÃz Bx 8@x g@x @x 8@x @x @x @x P`JC49|D C4J9!D C4J9D C4J9uD C4J9D C4J9D C4J9D C4J9}gD C4J9}2D C4[]ËPC40PC4끍 D$$C8[]Í D$$}C8C4넍 D$$]C8C4M D$$:C8C4R[]% D$$ C8C4C4 PC4 D$$C8C4sC4PC4 D$$C4C4iPrC4J D$$OuuC4C4C4P/C4 D$$ u>C4gC4PC4C8C4zC8C4VC8C42PC48UWVS,ÉUE1EsE A9D S4 A9ED S4 A9 D BC4E(U܋EBx P AS49D  S4EUE;P  AS49_D oS4ׅ)E A9D$$SC8S4 A9D$$W=C8S4 A9D$$- C8ǃPEUE;P UC4E B<E)Bu3)MA<E)At͹ ?,؃,[^_]gD$$QtEC8S4D$$3t1C8E S4 S4 S4 S4@ S4,[^_]UWVSƉ׋@8O-Gw$< ?,Ĝ[^_],gG@$ Å7 NV$]jd;~nGfx( 1ɺf;~GP_$y$E;CCP@ CT$C$TE4 UڽËNVE$Kid;~?1ɺùUB(P9Edž1ɺ蔹JF49DYF4+GHRMu A $PĜ[^_]1ɉĜ[^_]aPĜ[^_]0W褙F8YĜ[^_]z7Ĝ[^_]Ĝ[^_]Ĝ[^_]0WCG LE1ۉWE(G ;E FD JF49 DPF4W$1ɉ(Ĝ[^_]2Ĝ[^_]4  DžtGlf: G lDԃEf;C EMIpf$~ftE1ۍS9U~pfE3 u Z9]~pf$tfu]_lʋG T_$u$XE; C CP@ CT$C$LPMrUËNVE$ed4;~M;Esdž1ۋt9t譵džʋUUE~ |Lx E%}}|Lxt-\L1Ƀm9UD@TL)ЋxuًM9MTLBMXt/\LM9M+EB!XuعP4?,yĜ[^_] 9Ĝ[^_]\=Ĝ[^_].}f?N_]K IEE]EXNV$*cd1;~Kk蔶{  KQ":X#:BH$:B8y  I,谸 EE(MU;J #YĜ[^_],Ĝ[^_]Ĝ[^_]Ĝ[^_] Ĝ[^_]Ĝ[^_]Ĝ[^_]F@G U _Sf{LBP%W>$\Ĝ[^_]Ĝ[^_]PĜ[^_], WzJF49D F4Ĝ[^_]Gfx<(v JF49DzF4ËJ9DF4J9kDF4:DLzW(JF49DWF4~ |Lzt V8DLXNV$*}`d(;~EV4UĉAE)؃A)ӋMNjG E1ۉWf:  E9EgV8tX ?,KC($ډ!/LN޹O׹;ιM1ɀz*C볹7묹8륹z/t:F1 t닃F8El ?,[G GXSpډJF49aDXF4~ |LXt N8~q%04?,G GH]UB$PdžG W3F@JF49) DFF4~_TG C1ESDF4;~UW$G E(99~΋JF49| D$4$EF8눍X ?,dW D$4$F8 D$4$mF8F4E D$4$^F8 D$4$`F8F4JF49DF43|S< D$4$F4B1ɺ脪CP$RC$P% ?,;VF4$JËE̋x NV$CYdW;~UJkD BG49}[LJ,[^_]þ=W4A9|D$<$W4LJE؅ti)؉,[^_]ËZS2f K ~ fz xEEU4Vff ~ )f t&4EE;F }Vf:*OW$*Jdx;~EU;V PEE9F ~]EF؃x uՋOW$*FJd;~EE9F M캅趚1}9LJEU܋B E(9EeZU4Vf{fzzOW$*Id6;~)‰xOW$*=IdE;)EP G8K f|>x}}}E2E؅&f v~]AW49v\ W4:}(5}2[C?U܋ZW4c袘;~AW49D W4`UAW49}vE؈D W4AW49}&D W4<8ED$<$9G8D$<$G8yD$<$G8AW49vD W4;~AW49D W4UAW49E؈D W4AW49fD W4AW49D (W4E(;S(]AW49\ W4GJS(c;~AW49D !W4 U+AW49^E؈D W4AW49D W4AW49LD +W4AW49ED W4 LJLJW4W4W4ZLJ+]zD$<$tGG8yD$<$G8 D$<$G8RW4'D$<$JG8D$<$|~G82D$<$]G8f v/IcÓ;~AW49yD  W4UAW49E؈D W4AW49-D W4AW49D *W4UQD$<$5G8]W4KW4c藒;~AW49D W4UAW49E؈D W4]AW49ED W4AW49 D )W4LJ>LJD$<$tG8W4W4D$<$tG8LJ`W4fD$<$t$G8$D$<$tG8W4W4D$<$VtG8zW48W4[D$<$'W4D$<$G8D$<$G8VD$<$G8D$<$trG8D$<$G8D$<$ptBG8wW4D$<$Kt'G8W4bW4oW4)W4LJW4LJEW4UW4oLJLJ&W4UWVS^4U B+E܃Bu0tE)M܋E܍ B+E܃Btй ?,,[^_]},,[^_]ËE؍ҋEP(YEEE(F0  EԋH EʃEPE؃9EUBXډs:u}؅~ S`ډkBN49DoN4ϋB9DN4B9DN4B9DN4 UEP<BN49!DnN4ʉUы]܅1EB9E\N4B9EDN4ȋUE BE)Bu0t>)ߋU AE)Atй ?,v*BN49BDAF4EE܋UԋJ EʃEPE؃9 E؃'EԋH 11ۋUԋB؋ftEfSu+EԋH 9UԋB؋fux ~ۋ@|4?,)UԋJ ]+EEB9E_D$4$կF8N4B9LD$4$諯F8F4:D$4$良OF8EE܋UԋJ D$4$^.F8N4ϋB9D$4$2F8N4B9D$4$F8N4B9D$4$ޮF8džUEP<BN49D$4$艮t'F8V4f:fCN4t&N4N4?N4N4ON4N4N4UWVS,ÉU܋@HEJC49>DxC4ljJ9DC4J9|DC4KDLxC4CHE܋P[E܋PxJC49DoC4ƋJ9DC4J9DC4J9DC4CDE܋PC4" D$$YC4 D$$/C4 D$$۪C4n D$$躪C4 D$$虪C4 D$$xuC40 D$$[uVC4 ?,# D$$'uC4gǃ"C8ZC8C4C8C4C8{4C8C4C8C4uC8C8C4C8UWVSÉUpHJ@49DxC4EJ9DC4J9gDC46DLxEP<,JC49DDC4CHTWJC49D]C4NjJ9eDC4J9,DC4;~EP$CDEPdgkDKHqusHEC4EU B4E)Bu/t=)MA4E)Atѹ ?,R!JC49DWC4~ |LxtC8tJEx \;s4U B+EBu>t)Mσ[^_]ù% ?, Ex ~P 뒹 ?,؃[^_]o  D$$ӦWC4V D$$貦*C4 D$$葦C4 D$$pC4 D$$OC4z D$$.uC4C D$$uVC4 ?,~ D$$ݥuC4|ǃC8oC8C4C8C4C8C4C8C8C8C4C8C4UWVSLƉUAV49ND yV4ЉE‹A9D V4A9D V4DLyEP(AV49eD WV4~ |Lyt N8ZAV49lD nV4UA9D V4A9D V4EUĉU B<E+EBu2]t=)MA<E)؃Atѹ ?,^Ex 0E1AV49D XBF4UЉEU BE+EBu2t@)]MMAE+EAtι ?,UE9P >U؋F4E܍ AE)Au0tE)ߋE؍ BE)Btй ?,L[^_])L[^_]ËUBXuC42ǃ[^_]ÃC8C4C8{40C8C4>C8MUWVS<ƉUЃz 4BE11tEA9\ V4A9]\ V4A9D BF4(]UЋB8蟢EUE;P  AV49D pV4UI)EA9CD$4$F8V4A90D$4$toF8V4A9%D$4$蚒t?F8džD$4$gt F8V4:V4V4V4V4zEV4U B<E)؃Bu3)MA<E)؃At͹ ?,<[^_]2 Bf8:@xfxUE]ЋS$:C$rDž;Cu CP$RCP@ CT$C$tNV<$ É:bEԉٺdh^;~]ԅtYMغ5^G(P9dž9E~#dž<[^_]ËMغ]+E؉܋G E܅OM̋ff$E1ۍS9U~M̋ftsE؅ LZ9]@Űf$-fu"G<$t&P$)ЉF8# /;ET E̍jS9UOM̍ e4?,EUWVSÉ։ϋRJC49DoC4EJ9DC4J9DC4J9 DC4~ tJC49DVC4!JC49gDnC4ƉJ9DC4J9TDC4NjEU B+EBu t)MUι ?,,JC49LDC4NjE A)Au.tC)֋MA)Atҹ ?,؃[^_][^_]ËFP8f=Jf=K ?,dJC49 D$$踌HC4x D$$藌HC4 D$$vC4 D$$UC41 D$$4C4 D$$C4 D$$ubC4' D$$Ջu9C4ǃ5 D$$詋C8CC8C4C8C4C8C4C8{4C8s4;C8C4IC8C8{4N$,ǃC4UWVSÉ׉Mu@HEJC49DxC4EJ9DC4J9DC4yDLxtf1҉];C4CH8JC49|b D$$C4DW<JC49DDC4CH=8JC49}D]C4ƋJ9DC4J9FDC4;~W$ GP`f=JFf=Ka ?,KHqVECHE{4 B)Bu-t;)΋U B)Btӹ ?,'JC49DWC4~ |Lxt C8;s4U B+EBu0tS)ME B+EBtй ?,؃[^_]WC4[^_]ËUJC49DVC4T D$$d"C4 D$$CC4 D$$"C4` ?, D$$uC4 D$$͆uYC4 D$$谆u0C4% ?,HǃC8C4C8C8C4C8C4C8C8C4{C8 D$$!tfC8C4+ D$$t=C8f$MǃMC4C4UEU E1]fUVSD$qR$GÅtjD$G$xGƋtTtI4$?ËtFt0CD$D$?,$!u C$P[^]ËC$P롋F4$PuUExn*tD$?,$1ÉD$@$1UVS ]?,D$$>?,D$$%u^d?,D$$t9ut$$KduIED$ D$t$$ [^]É1 [^]Íut$$brt1 [^]Íut$$ct1UVS ]?,D$$tub?,D$$_d?,D$$Fu1ۉ؃ [^]ÍED$$Od1ۉ؃ [^]ÍED$$VcuED$$cbuϋE+ED$$ ƅtH UE9}?E9|D$t$$bËNF4$P@EED$$qBED$ D$ED$$ED$$qbE+ED$$& ƅH UE9>E9|&UWVS,]?,D$$tED$$at1ۉ؃,[^_]ÉJ1ۉ؃,[^_]ÍED$$`uΉ$bEԅt@ E܋EM܍E19s- 9s! ~c=4؉L$$&E؅EU܍E]؋K U]܍9EsqE8&A#qU 1ۉ@0׸gfff)C;NEU]܍;EwT$E؉D$$ËU؋u B$PMԋA $Pct& t&L=d6='='=t='=?B O=?B /@B]ԋC$P1UWVS,]?,D$$tED$$b_t1ۉ؃,[^_]É1ۉ؃,[^_]ÍED$$P^uΉ$`Etx EE19s' 9s==~މL$$ƅiEV M9BU`+B`+B `+B`+B `+B`+B `+`+BM9sL \K~zBu `+B`+B 놉L$t$$Ëu F4$PU9B$P+Bx+UE E]UE E]^UE E] UE E]UE xn*tD$?,$1ÉD$@$ 1UWVS,p ,pFt 1҉Ѓ,[^_]$0F)F!FEE+Eद+D$D$E$&Å\EEp ,xG$4WD$h?,$E]EEE}dNVFD$ D$D$$H…B$P1\$ED$G$U EIC$P]@$U/DE$D+<$?,$C z 1UWVS up ,xGtHt"t$G$pÅt؃ [^_]þ/׉t$D$d0?,$1ۅtUVSu p ,XCtI4$2Ut!t$ED$C$ ‰Ѓ[^]D$h?,$tUWVS,E*p ,@Eԋ@1}щ΃t$$f}Et E܅uiEEE$-zED$UԋB$ÅEt ؃,[^_]ËEP$R؃,[^_]1E8- tBӋU܈:9ud1ۉ؃,[^_]D$>,$EE*1ېc$ƅtEF UԋB$-ǃt&\$ED$UԋB$JF4$P@=*tD$*$t {D$?,$u C$PF4$P1|D$0?,$E E;}tiE؉D$UԋB$,tD$t$$vÅt=*)**u$**P;}ED$D$0?,$.USE$ 1ۅtXt ؃[]ËB$PUSE$1ۅtX t ؃[]ËB$PUWVS}E $…p}$>Åx MtE$wCD$\$4$TuEt@@=*tD$*$t ExD$?,$t}tgUu 1[^_]ËUuB$P1ۋB$P}$UÅEuF4$P뎋C$Pt&puŋC$PEPx t<t U6B$P(F4$PϋC$Pt&UVS]p ,pFtVtB$sOt\$F$^‰Ѓ[^]D$?,$>st&HtUWVS} E$Etl@E}$Åtyx EtE$mutRCD$\$E$rEtIt E[^_]ËF4$PE[^_]Ët*Eu͋C$Pu뷋C$PEUWVS} E$)Etl@E}$Åtyx EtE$wttRCD$\$E$rEtIt E[^_]ËF4$PE[^_]Ët*Eu͋C$Pu뷋C$PEUWVSuE $1…x }$Åp EtE$ostaCD$\$<$qƅtD@=*tD$*$vt~t{D$ ?,$d tEttzEE[^_]ËC$P؋B$Pt& F4$Pu͋F EtCt+uF4$P덋G<$PExG<$PȋC$Pt&뭐UWVS EEE EUp ,tJ)t tz1ҋK(s,{0EC(EC,S0t tCt t)t t [^_]ËG}H [^_]F4$P̋A $Pv믉$Q&sUUE ttD$D$$ Up ,@(]Up ,J(EJ,E J0EB(B,B0]UD$D$$UWVS ]} t$"D$M$ƅu|$$R&1҉Ѓ [^_]Åth\$|$$=CÅuЃ [^_]D$D$4$mƋt&t̋1҅uF4$P1늋>,됋C$PUWVS,}u$#Åt-$!D$_$Et&Eu/E D$$R:1҉Ѓ,[^_]ËC$PEtхt$ED$ED$ED$ |$E D$$mÅuЃ,[^_]D$D$E$lƋt:tɋ1҅XF4$P1H*h=>,UC$PUWVS E} t~D$ $=Åu 1 [^_]1~?1ED$ \$D$ $vt Et< uʃ9uÉ$ = 9u< t< t< u$ nUWVSE8] 321ہ~n*p*xt|$$*F=*tD$*$D$\$<$-kEM Ep ,B(]B,] B0]B(B,B0A $PE8] 3[^_]Ét$$ÅLD$\$<$HjEC$PMthuE8] 3[^_]ËF4$PG<$Pt&^A**! $_KF4$Pu9ttߋE8] 3tG<$PUWVSEEp ,p(x,P0U@(@,@0$vÅD$$v4tDD$\$4$蕕t,*t$\$$;yD$\$<$e\$$ܗD$\$E$>\$$赗D$D$$t tIt t/]tUt[^_]ËBUH[^_]G<$PƋF4$vPUWVSu} p ,J(MB,EB0EB(B,B0ED$ED$E$<$ÅD$D$E$e.ztx4$iÅfD$D$E$!.|$4$Åt&D$D$G E$-D$*D$@ E$-M; 4?,t5D$< E$AD$ E$At!MED$ED$ $[^_]D$*D$ E$6-tD$D$$^MED$ED$ $E[^_]D$D$$!%C$PvuD$D$$EE$ ÅD$D$< E$v,C$PD$D$$}C$P|$4$Å0C$P!D$D$$D$D$$|$4$\ÅD$D$$ D$D$$UEtD$D$$yUVSuE $fÅttD$\$4$=t t[^]ËC]H[^]UWVSu} b0t^u^tf|$ D$\$$Åt)tD$\$4$t71[^_]jhu$|/uD$\$$c뜋C$P1[^_]UD$E$.UVSE 1ۅt $ceÉ\$E$ƅt t [^]ËC$P[^]UVS uEED$E $ÅttD$\$4$t t 1 [^]ËC$P1 [^]UD$ ?,$wUE D$ ED$D$ ?,$LUVS5?,$VdÅttD$\$4$t t 1[^]ËC$P1[^]UWVS]u EED$.$2Dž~p*t][^_]cEEUD$3$EG$zcÅt$$ƅtr\$UT$$RE}tUtXt t=utUu B$PE[^_]E몋5`?,C$P뷋B$Pt&EEtE)؉D$$dEtD$D$3E$1E"F4$P5 ?,$7bÅttD$\$4$u EuC$PEUWVSLEE] t]tYC=*t@D$*$u,UB=n*=p*19]L[^_]É$E 1L[^_]É]EڋZ C=*tD$*$wM$Eąg]E؋X  C=*tD$*$+$^E̅]EڋZ zC=*tD$*$/$EԅE]E؋X C=*tD$*$$E܅]E)$DžEEE9EUZ tC=*tD$*$ uExn*xp*X9t9Exn*vxp*K9u̓EEE9Et1EExn*=xp*89uEEE9Et5UcExn*"xp*9GEEE9Et5EExn*xp*9EEE9E/U=19oC D$E$tܸ{p*\$$Y@u{p*\$$3@@{p*\$$@{p*\$$@{p*t&\$${p*] EEL[^_]BE@UWVSX?,p ,p(tLtHC=*toD$*$|u[F=n*=p*19u-X?,>,tFtD$D$$1[^_]É$XE8X?,>,utD$D$$d1[^_]1C D$4$u9}u릁{p*H\$4$f>vF!UWVS ]p ,p(tQtMC=*t4D$*$Uu F=n*th=p*tJ19 [^_]É$lE 1 [^_]1C D$4$u,9}uԁ{p*u\$4$뿋vF됸밐UWVS;FM؉A1<[^_]ËF tͅ41EE1(9Vf: uMԋEN\E}EF 뼋Vf= af= WFU؉B16F Z119FVf: uMԋE~3F ҋVf: Ff8t"U؋FB1U؃zF 뒋M؋ʅu1^C$p C,$kxx*t xB@ D$D$ F"B: |,$kxx*t xB@ D$D$ 6kxx*t xB@ D$D$ ;Jkxx*tB D$D$ #BUF|e xB=*mD$*$wxMʋRU|9#B|s E[ U; Mu A $Pkxx*t xB@ D$D$ ~2kxx*t xB@ D$D$ ^xB=*D$*$mx $PPYxB=*D$*$x $HZ5kxx*t xB@ D$D$ QIHkxx*t xB@ D$D$ g#kxx*t xB@ D$D$ ѤPUPxx*pxB=*6D$*$nxMxB|P8P@ExB=*D$*$^ xA AUBTw GD$x$Ѓx kxx*t xA@ D$D$ PUPxxA=*D$*$xUxAʋB ?kxx*t xA@ D$D$ Ѥkxx*tB D$D$ xB=*D$*$rxD$ $Djkxx*t xB@ D$D$ Xx$`3ED$|$$EMuE1UB=*9D$*$'lMkxx*t xB@ D$D$ `\эv`E؉E܉CECEC |E|E|Bx*vx $0xB=*pD$*$,TxD$ $OD$l>,$ZxBokxx*t xB@ D$D$ }kkxx*t xB@ D$D$ =okxx*t xA@ D$D$ B:BZ||$xA$xoD$]1эA9EMEkxx*t xB@ D$D$ DB BZ|x$хex|B B|BD$x$хkxx*t xB@ D$D$ K=э&gȉxB=*D$*$胿xD$ $…@MBxAXPCD$ $кkxx*t xA@ D$T$ kxx*t xB@ D$D$ %pSЍvkxx*t xB@ D$D$ <,SBxA=*tD$*$1dD$x$ …W@MBQW >kxx*t xA@ D$D$ wUT$D$x $W|:#M}tE$bU_U]%UEET$D$ $t UUB$P|7A $P}xB@ D$D$ vUxBXP5 +C D$$кbML$D$x$}tȉ$=U:U8Ukxx*t xA@ D$D$ lxBXPSD$x $҃xA@ A $PUu B$Pkxx*t xA@ D$D$ Hkxx*t xB@ D$D$ 6mMkxx*t xB@ D$D$ ]e@ PML$D$x$W [P|A $P/MED$\$$A $P&7|$D$x$xSU9B$PED$D$x$jxA@ UWVSLEЉỦMȋ21E؃<(<)Cƃv ۍvEЉ$nt%UЋB=*tD$*$Ekx}*t UЋB@ }tKD$EԉD$ T$UT$E $襗E L[^_]ÃU9])<뮅 DXEUЉ$ӕEU9tHEut,UT$UԉT$ D$ED$U $E Y`͋E̋8]UUEEWED$UT$E $MȍU1ƅUt tyEE9Et}D$UЉ$šÉ}?(uGEED$D$ UT$E D$U܉$MȍUƅuEExC$PyE`Ủ:E E EE؃Uu 0UWVSLHDEDž`DžPDžT)t]u(_TuӀODx1|1P`)uTT{:;u1T^$2`RP`EFLB=*D$*$诵ULq9`;PHL\DžX1:|‹A U:(FML$D$l$DU…DžlX\$<$l]{hC$P111ۋT`EPu_LND$|$ D$D$l$"\$?,$>1[^_]Ã` D$ ?,$1[^_]Åu`»bu1c`@7P@9`tu>t$ \$@L$T$D$|$ D$D$l$-1$mTPTdPLHM9(UED$D$l$DL…Džlpl\$<$R]tD{1C $3;$9u{D$ ?,$J1[^_]ÀeDžToʃUUED$D$ D$lD$l$DLC…(EUtu B$PptӋDPuÀ(t|t:t;tHL$D$3 ?,$] {g1C $9$Z9uC|bPUUT$D$ D$lL$l$DU/…UU샅X\;X\+PP1C $,9$9ut|bU댸tD$|$ D$|bUEU MMM$UEU MMM$UEU MMM$UWVS@<8EσEXDž`DžLD_tGDpt{etvLXXD_uDžHDžDX>ttD$>,$1[^_]À|t9:X;^(uD$t>,$1[^_]ËL`[`@@PDžT,$11[^_]ËPE<9`JD$< $uNt1v먋PmTL9PPu \PyED$D$d$M UDžRDždT7\9Lj\81?|lj8D$< $ƅ}?(BMED$D$ D$dD$d$M UDž4MM쉍8 L`@1ۋ819|~ M9(ED$D$d$M Uf…DždCHL$D4$d]{C$P1`¾bu1c`LϺ9`tuD"\$ t$L$T$D$DD$ D$D$d$وHqUt t B$PLOLT~E}ut$ ED$|$<$ë{MA=*tD$*$JM $~ƋL~#1ۋMD$4$ t9Lu߉t$D$D?,$]{!1C $1$ 9uF4$vPlMED$D$ D$dT$d $M U…nMM쉍89P{1C $0$S 9u[DžD|bMM랉t$D$?,$q1F88B8wV$`D$M?,$]`{1C $60$ 9udCH|$D$]{a1C $/$5 9u=]{'1C $/$ 9u} 8u Ѓ} 9#uP׍dCHt$D$3]:{1C $/$o 9uw,$蒹1͋E[^]鱭E[^]! ][^]Ot&뻋0tix1RP,$][^]:]E E[^]!0u*2k**D$,?,$ŸUWVS,$`N4$ 1:UWVS,E 0t$XNjED$4$t-3uUT$,?,$,[^_]ÉuGEGEG EEED$ED$E$S,[^_]ÐUWVS}WBG$迧Åt}D$G $ƅt#t [^_]ËC$P$+=Ex,$UWVS ]u p ,9p?, l?,=,p?, D$=,$1$i$u>ED$t$$=É<$ =,$p?,؃ [^_]É4$$?tED$t$$l?,l?,CxD=,p ,>D$>,$1뎐US] |R+$lD$+$f1t'BEB ZBBBЃ[]D$'?,$c1[]US]xUC $…t:@+@@ B ZBBBЃ[]Ã[]6D$'?,$1US]St t ][]CP$R][]US$UZBuEJt,T$BD$BD$ L$\$$D$[]ÉT$BD$ B D$\$$D$[]UWVS}GutwUBpPtjtdFt]D$M $Ѓu$W]BXPD$$St8D$?,$衧Ѓ[^_]ΩЃ[^_]ËOED$D$G$҉W9}U_9})ӍED$D$E$xnU xq9] ~] 1ҋM9M  9~B+U 91҅VUU D$ED$M $13SB+U 뼉ːlE D$P?,$|G E_7D$(?,$OUWVS,EEED$$du 1,[^_]ÍED$ED$ ED$D$mE $tʋ}u]SBPt~tx@tq+xk+$AD$+$;ctX@ xp@@;D$y?,$;1D$X?,$1K`Ct)!ƒt9| s8s,D$'?,$Ĥ1UWVS ]u }SBPt|@tu+xu+$D$+$ 1҅t'tX@ xp@@‰Ѓ [^_]D$y?,$1҉Ѓ [^_]D$X?,$1҉Ѓ [^_]ËKRCt)!ƒt9| s*sD$'?,$腣1YUWVS ]u }SBPHt|@tu+xu+$D$+$1҅t'tX@ xp@@‰Ѓ [^_]D$y?,$Ƣ1҉Ѓ [^_]D$X?,$襢1҉Ѓ [^_]ËKRCt)!ƒt9| s*sD$'?,$E1YUS] |R+$D$+$˿1t'BEB ZBBBЃ[]D$'?,$ȡ1[]UWVS u}FE VBXPD$$St$D$?,$b؃ [^_]ËFt[|$D$F$҉x΋V9}^t,9})Ӊ؃ [^_]ËF ^؃ [^_]ËS뢉D$P?,$ӠlD$x ?,$贠MUWVS,]} SBpPD$$Vt"D$?,$b,[^_]ËCED$D$C$҉S9}U[]9}f)щMWuaG E_;]~E~ u}9(…e;],[^_]ËC E[]WtBXPD$$SGt\ED$D$G$҉x0W9}U_t89F)=V,[^_]ËS롉MUWVS,}_t ؃,[^_]ËWWBpPD$$VtD$?,$裞؃,[^_]ËGED$D$G$҉EtO9}UʉUwtb19E}u) xXiCB19u1t _؃,[^_]ó_W Uw볋V^uD$?,$НUWVS}WBXPD$$StD$?,$膝1[^_]ËOtdED$D$G$҉1xЋ_9}MىMWt/9}) O MWT$ $[^_]ËS뙉UWVS u}E VBXPD$$St$D$?,$贜Ѓ [^_]ËFt[|$D$F$҉úx΋N9}Vt,9})ʉЃ [^_]ËF VЃ [^_]ËS뢉D$x ?,$%lUWVSu} VBXPD$$St"D$?,$ӛ[^_]ËFtaED$D$F$҉øx͋N9}MVt.9}) F EVt[^_]ËS뜉UWVS}E WBXPD$$St$D$?,$ȃ[^_]ËGtgED$D$G$҉ƹxˋ_9}ËUډUOt/ 9})ًEȃ[^_]ËW UOES떉D$x ?,$j`UVS uVBXPD$$St#D$?,$Ѓ [^]ËFt^ED$D$F$҉úx̋N9}MVt+9})ʉЃ [^]ËF EVЃ [^]ËS량UWVS,] CxPtg7taGtZD$$Ѓu'EPBpPD$$Vt2D$?,$/1ۉ؃,[^_]_1ۉ؃,[^_]ËEHtsED$D$MA$҉x]uV9}ʋEU@Eƃt529})щMUu0؃,[^_]ɋ@ EJM܋V늉M1UED$D$$E܅xމ}|$$-ƍXED$ED$$]U܉T$ED$$uD>UWVS,uE !E VBXPD$$St'D$?,$—EE,[^_]ËFED$D$F$҉V9}Uvti29})֋E ƉD$$(EtEÃ} t1t$ED$$|9} uE,[^_]ËSbEE,[^_]ËF EvUWVSu} VBXPD$$StD$?,$蜖1[^_]ËFtrED$D$F$҉1xЋN9}MVt]9}) F EVx9|$D$ ?,$#1[^_]ËSD$}<$[^_]ÉUWVS,}uWBXPD$$StD$?,$譕1,[^_]ËGED$D$G$҉1x̋O9}ًEȉEEWtl9}")ʋM yE 1G EEWM x!9~19u +E D$Eȉ$,[^_]ËSYUWVSu} VdVBXPD$$St"D$?,$蘔[^_]ËFED$D$F$҉ÅN9}MV9}) F EVx9|"D$ ?,$[^_]ËEtnUBXPtat[CtTD$U$ЃED$D$E$x9u]EE81S̕[^_]É2D$P?,$XD$?,$9UVS]$+$ƉXt^{t $"pC)F)@C)X[^]UUz+uBtBD$$詔1UVSu] ~+u3Vt tt^1[^]ËFP$RD$!$GUS]C@PCCPCSt t ][] CP$R][]UU EHtRtU M]B]UUBt D$ @@ D$T$$D-ÉT$$--UM UE@t U E]1]US]St tC1[]ËCP$RC1[]ÐU+$D$+$1tEBE BB US] t<+$;D$+$51tEBEBZ Ѓ[]D$p?,$H1[]UEtx+t$D$?,$|1҅t ËPD$?,$1҉UEtx+t$D$?,$蹏 1҅t ËP D$(?,$莏1҉UUt z+tD$T?,$]1ËBuE BUS]StC tD$C$҉][];C$҉][]&UWVS E$1tTE D$4$Åt4x+tSD$?,$谎1tWt6t [^_]ËF4$P [^_]ËxuʋC$PuD$?,$9뒐US]C@PCCPCSt t8S t t ][]C P$R][]CP$RUVSED$PT$@$1t#ED$E D$$Ƌt [^]ËC$P[^]UE@@ t E]**]UE@@t E]**]UE@@ t E]**]UE@@t E]`**]UEPtED$$U t1ɉUWVS uE 8D$$+u1҅t&ts<$ C u,1҅t Ѓ [^_]ËC$P1҉Ѓ [^_]ÉڋE CECUE@E]?UE@E]?UE@E]UE D$E@$x Ech1U(E*ED$ED$D$ D$D$zE $1҅uËED$ED$ D$D$zE@$c‰UD$D$E@$cUD$D$ytE@$cUD$D$tE@$\cUD$D$ltE@$6cUD$D$utE@$cUD$D$tE@$bUD$D$/E@$bUS]C@PCCPCCu CP$R][]UE@E]=,UE@E])UEPtED$$U tɐ1UE@E]UE@E]UWVS ]} $+CƅtEXx X{t $;fC)F)@C)X [^_]UVS]$+ƅt?XX{t $eC)F)@C)X[^]US]C@PCCPCSt t8S t t ][]HC P$R][]/CP$RUE@@E]UE@@@t E]x**]UWVSuE E]VBH M~ @uwtXC=`*t?D$`*$dnu+F@D$D$< ?,$׈1[^_]É$wuɋVBEMM }M[^_]\$ BD$ED$<$у[^_]UWVS ]} uCt t$$ׅuC tt$$ׅt [^_]1 [^_]US]C@PCCPCStS t tdSt tDSt tC][]CP$RC][]CP$R뮋C P$Rv닋CP$RfUEU t"*t@tUE E\D$,?,$舅1UEM Utv@ tGtpT$ L$D$$\¹t 1ɅtËB$P1ɉø)t@D$,?,$Ë@눉L$D$$*\US4]EEEEED$ED$ED$ED$D$ +D$TED$E $Ot[E=*tY}*tb}*titEtEtUtUECEC ECS1҉Ѓ4[]1E}*uE}*uEUWVS ]} uCt t$$ׅuC |$t$ D$D$t ?,$H{1[^_]Ã؃[^_]øUWVSu] SF9tsD$$e`ucCx FX F tyP*tD$*$3`tZF |$\$ D$D$t ?,$z1[^_]E] FE[^_]f[^_]øUWVSu] SF9tsD$$_ucCx FX F trP*tD$*$o_tSF |$\$ D$D$t ?,$y1[^_]ËFE ][^_]9[^_]øUWVSu] SF9tD$$^t FH@E ][^_]Cx FX F t]P*tD$*$^t>F |$\$ D$D$t ?,$x1[^_]Ã[^_]øFX F tFP*tD$*$!^t'F \$ D$D$ ?,$x1둸UWVS uE 8D$$+#`1҅t&ts<$%C u,1҅t Ѓ [^_]ËC$P1҉Ѓ [^_]ÉڋE CUWVS uE 8D$$+_1҅t&ts<$C u,1҅t Ѓ [^_]ËC$P1҉Ѓ [^_]ÉڋE CUWVS uE 8D$$++_1҅t&ts<$-C u,1҅t Ѓ [^_]ËC$P1҉Ѓ [^_]ÉڋE CUWVS uE 8D$$+^1҅t&ts<$C u,1҅t Ѓ [^_]ËC$P1҉Ѓ [^_]ÉڋE CאUS$]EED$D$ $+D$ ED$E $褶u 1҉Ѓ$[]D$$Åt@E$'C t?D$*D$*$NJCڅuC u C P$RxC$P1jUS]$иS t tDSt tC][]CP$RC][]C P$RUWVS ]} uC t t$$ׅuCtt$$ׅt [^_]1 [^_]UWVS ]sC P$RpDžtpC$xgEtxC>t%$0FƅtuEF ~ [^_]F t(FuˋFP$R1 [^_]ËF P$RʋuۋG<$P1딋UtuG<$PmB$Pt&UVS0uED$D$ D$D$E $u 10[^]D$#nE$英t"D$D$#nE$J0[^]ËE$etBE$B6ÃtD$4$…tCBEEB oD$ ?,$q10[^]US]$*S t tC][]C P$RC][]UM UE@ t U E]1]US]Cx3D$C $#;t k[]á ?,$D{t:fCS u1[]C uB$P1믡@?,$ztUS]C u1[]É$4¸tC9}ؐUM EE E@E]US]C@PCCPCCt$lSCu CP$R][]UWVS up ,^~ K$BtBC F $yF S tC t^*t [^_]ËS$u**uG$**P1D$@ ?,$o1 [^_]ËB$P*u1UVSu$@+ÅtUp@ @p~t $KF)C)@F0)pډЃ[^]Ë1҅uF4$P1ݐUWVS ]$+Oƅ@$XE F C4FFF{<$5B*~4D$<$hBË@=*tD$*$T^F F(=,D$E $)StF(^{t $JC)F)@C)X [^_]1 [^_]ËC=*kD$*$TS*I$Gg=,QuF4$P1UEx+u@D$C$ n1UEx+u@ D$M$ n1UEx+u@(D$W$ gn1UEx+u@D$a$ 8n1UVSu] ~+uY*tMC=*tD$*$RtNVt t ^1[^]ËFP$R1D$k$ mD$  ?,$~kUEx+u@D$$ bm1UVSu] ~+uZ*tMC=*tD$*$RtOVt t ^1[^]ËFP$R1ېD$$ lD$  ?,$jUEP@]UVSu] uxt=C=*tD$*$MQtV^1Ʌt,ȃ[^]D$p?,$"jȃ[^]ËB$P1ɉȃ[^]D$8>,$iUVSPE*E*E*ED$(ED$$ED$ ED$D$`*ED$D$+D$ +D$ ED$E $GE=*t"@=*tD$*$9PE=*t"@=*tD$*$ PqE@(XUB=*tFD$*$Ou/t}}*D$?,$h1P[^]ËU1*tr9t$\$ E@4D$D$?,$jP[^]1P[^]Á}*uED$E$Åt֋E=*tCECE=*t ECE=*t EC؃P[^]Ãt~B @=+tY@ D$D$<?,$MiFD$?,$g1*D$?,$g11A@=+u9uCP$R+D$?,$=g1US]C@PCCPCC$t$qJCC S(tCtzStStS tSt t ][]|CP$R][]cCP$RuC P$R@CP$Rt&CP$RiCP$RBC P$R]C(P$RUS]C$\$D$$$&[]UWVS ]} uCtt$$ׅC t t$$ׅuxC(t t$$ׅudCt t$$ׅuPCt t$$ׅu,$a1[]U(ED$D$ D$D$E $bsuËE$誡tEUEP1҉ËE@@ D$D$7R?,$bUS]D$$ +JtX[]US]C@PCCPCSt tC][]CP$RC][]UM UE@t U E]1]US]St tC1[]ËCP$RC1[]UEPt@D$>,$6`1U(ED$D$ D$D$ĸE $qtEUEP1҉US]D$$@+ItX[]US]uCC[]D$8>,$_1UWVSu] ~unt {+t$D$?,$A_ȃ[^_]ËC(@EF1tx;}u?V^1ɅuƋB$P1D$8>,$^띋F$UT$|$ D$D$?,$5`dUS]u%Ct C[]Ã**[]D$8>,$S^1UVSu] S*tZېtC=*tD$*$Et;Vt^t t 1[^]ËB$P1[^]1D$ ?,$]D$8>,$]US]uC t'S Ѓ[]D$8>,$Y]1;C 1҅uUVSu] IuYC=`*tD$`*$CtOV ^ t t 1[^]ËB$P1[^]D$8>,$\D$d?,$\D$8?,$\듐UWVS }u}tD$?,$O\1 [^_]$+4zÅtIE t9E E~4E)9Eu6{E Cs ؃ [^_]11hE)9UD$>,$[uɋC$P1VUSMU xY9|D$4 ?,$v[1[]ÉЙQ QU[]OUE@]UMQu)A tDD$ AD$T$$ËA u׉AD$T$$ËAD$$jUS]{+tD$$\1[]$,x1tBCB C BCBЃ[]UVS]{+tD$$c\1[^]$,3x1tKS [FCN ډV^[^]UMQ;Q|1]ÉAA QE] NUUB+B]US$] EEEED$$lu1$[]É$-ED$ED$ ED$D$$atUEM9+1$+%w…tEBZEB Ѓ$[])ȃ1XyD$>,$X1$[]ÍED$D$X$Џk$ًEU9p)Ѓ1XD$?,$X1UWVS u] C=`,t=,tD$`,$u$~DžtXv<$3Åt/D$`j*\$4$=t8u΋C$PËt=Mo1 [^_]Ët&uC$P1KG<$P븋G<$Pt&UWVS É5ƅtSD$$ÅtQp@ @t|$$~…tBt؃ [^_]1 [^_]ËB$PuF4$P1ˋuȋC$P1U(EED$$cliu1ÍED$D$ D$UB D$E $gt̋Ut z,t EÃEUS]ED$$ihu1[]1҉؃[]US]$胚Ct$89St tC][]CP$RC][]UM UE@t U E]1]UE@E]UE@E]EUUB]US]C$ =C **[]UVS]u F=`,t=,tD$`,$;t6t$$H1tt ؃[^]ËB$PD$,F$w;u(*(*UWVS,]u C1E܅@E{F=`,t=,tD$`,$;vF=`*D$`*$:~`*4$mÅ$!Et=D$<$IEuϋEP$R$EuËwHU܅EЃ,[^_]É4$CÉ<$C9Rǁ~`*LE]ED$ UT$\$4$U<ED$<$EHtD$`j*ED$U$8uU܋1҉Ѓ,[^_]D$`j*ED$E$8U܋~EuEP$R1U܉Ѓ,[^_]D$,F$$9SU܋B$P1C$P{B$PrC$PPUWVSM0EE $?ƅRMy4$Åt2\$<$Furu׋C$P4$Åu΋FEPMH*E*E[^_]D$`j*\$E$ 7nUt~tfu#C$PEE럋Mt{EE[^_]ËF4$PE=ȋB$PHF4$P덋B$PrUuB$PEEA $PEEUVSu] F=`,t=,tD$`,$6t`C=`,t=,tD$`,$6t] u[^];D$,C$6u؃(*(*[^]D$,F$c6tUVS]u F=`,t=,tD$`,$.6t6t$$W1tt ؃[^]ËB$PD$,F$5u(*(*UWVS,}u E_F=`*tD$`*$5E}ED$ UT$|$4$7tvED$$Ct)ED$$I5uM1,[^_]D$`j*ED$$64tύED$ UT$|$4$N7uUtU**,[^_]ËF=`,t2=,t+D$`,$4uD$,F$4t?vE}U/B$P1닋B$PqG Ep}UWVS,u] EC=`*tD$`*$3 F1E܅tn@Ev}ED$ UT$|$$6tPED$4$BuD$`j*ED$U$2uU܋1ۉ؃,[^_]EED$ UT$|$4$5tPED$$AuD$`j*ED$E$62tED$ UT$|$4$N5u]܉؃,[^_]ËC=`,t=,tD$`,$2t[D$,C$2uFaÅt$$…yB$PkB$P1[UVSu] F=`,t=,tD$`,$2t`C=`,t=,tD$`,$1t] u[^]D$,C$1u؃(*(*[^]D$,F$1tUVS]u F=`,t=,tD$`,$s1t6t$$1tt ؃[^]ËB$PD$,F$&1u(*(*UD$o?,$JUD$?,$IUWVS,uEF t,[^_]ËF$?:iMr}E$T{15M[i4?1ÍED$ ED$|$F$2ui 6t F ,[^_]ø8#F UWVS }G$DÅu 1ۉ؃ [^_]É$gƋt9tۍFD$G@ D$$lËuF4$P먋C$PvUWVS,] EUB@ D$D$$wb}ED$ UT$|$UB$1t9\$4${D$\$E$(jnt,[^_]É\$ D$D$$1,[^_]US]C$/C 1[]UD$`j*E D$E@$-1҃t **UWVS }] \$G$n.u**؃ [^_]ËC=`,t=,tD$`,$4.?,$Qu 1ۉ؃ [^_]<[1Ҹ,ƅtڋPt@tS^t$<$=ËZF4$PLD$,C$-d1pB$Pt&UWVSUB$AEt}D$$,ÅD$E$SmDž|$ \$UBD$$EtXtBt t E[^_]ËG<$PE[^_]1EuF4$P볋C$PC;**UUS$]ES`,t#,tD$`,$@,SED$D$ D$B D$E $Vu $[]ËC$,C Eu1$[]ÉD$$d…t‹uۋB$P1D$,C$+_UWVS,u EF=`,t=,tD$`,$a+trUB$4ËF$49=^}uED$ |$t$UB$l-tED$$`9u̻lj*lj*؃,[^_]D$,F$*s`,1ۅtljD$E$ËuF4$P렻`j*`j*؃,[^_]UWVS u] C=`,t=,tD$`,$O*tu ] [^_]D$,C$&*u׉ڸ`,1t"D$4$Nju C$P [^_]UWVS }u ]F=`,t=,tD$`,$)t v(*(* [^_]$D$,F$x)uɃts`j*`j*뾉u } [^_]G$2ËF$29~.u } [^_]G$2ËF$29|lj*lj* [^_]É]FE GE [^_]C{D$?,$A1US]C$92uD$>,$A1ۉ؃[]D$D$[tC$1ۅtՋX uċB$P؃[]UWVS ]E 9u&C$)C ** [^_]É$ƅtX{4$DÅt3\$<$'t@u֋C$P4$Åu͋t<6t"1 [^_]á>,$Jt#36먃**_F4$P빋tuC$P1.F4$PUVS]u F=`,t=,tD$`,$&t6t$$1tt ؃[^]ËB$PD$,F$&u(*(*UUB=,t]H]UWVS,]u EF=`*tD$`*$K&C1E܅ti@E}ED$4$s4t,ED$ UT$|$C$K(űE܃,[^_]D$`j*ED$U$$uEE܃,[^_]ËF=`,t=,tD$`,$%tvGD$,F$w%uC/E܅nt$$…t JB$PE,$EuFC=`,t=,tD$`,$F"?,$Eu1ۉ؃ [^_]00[1Ҹ,DžtӋPt@tQ_|$4$%ËBG<$P4D$,C$!]iB$t&PUVS]u C=`,t=,tD$`,$X!F=`,t=,tD$`,$/!tACÅtwt$$…tnt ؃[^]ËB$PD$,F$ u(*(*[^]D$,C$ tT1[^]ËuC$P1뇐UWV1Sr6 AfE)9sE)9r [^_]U]rõ5u})u]u}]ÐUSWro5 E $D$ED$m []ÐUS#r;5 E $D$ED$n []ÐUS t ЋCu[]ÐUSq4q[]_codecs_sreerrnoimpposixpwdmarshal__main__sysgcBaseHTTPServerFixTkSocketServerStringIOTkconstantsTkinterUserDict_LWPCookieJar_MozillaCookieJar_threading_local_xmlplusatexitbase64bisectcalendarcgicookielibcopycopy_regdisdistutilsdistutils.dep_utildistutils.errorsdistutils.logdistutils.spawndistutils.utildummy_threaddummy_threadingemailemail.Charsetemail.Encodersemail.Errorsemail.FeedParseremail.Generatoremail.Headeremail.Iteratorsemail.Messageemail.Parseremail.Utilsemail._parseaddremail.base64MIMEemail.quopriMIMEencodingsencodings.aliasesfeedparserfnmatchformatterftplibgetoptgetpassglobgopherlibgziphtmlentitydefshtmllibhttplibinspectlinecachelocaleloggingmacpathmacurl2pathmarkupbasemimetoolsmimetypesmxntpathnturl2pathos2emxpathpopen2posixpathpprintpy_compilepydocquoprirandomreprrfc822sgmllibsitesocketsre_compilesre_constantssre_parsetempfiletokenizeurlliburllib2urlparseuuwarningsweakrefwebbrowserxmlxml.parsersxml.parsers.expatxml.saxxml.sax._exceptionsxml.sax.expatreaderxml.sax.handlerxml.sax.saxutilsxml.sax.xmlreader__hello____phello____phello__.spamPYTHONINSPECTPYTHONUNBUFFEREDPython %s %s __main__ not frozen2.4.3%.80s (%.80s) %.80sget_magicget_suffixeslock_heldacquire_lockrelease_lock__stdin____stdout__stderr__stderr__ps1ps2exitfunclast_typelast_valuelast_tracebackpath_hookspath_importer_cachemeta_path.pycrb.pyonot holding the import lock# clear __builtin__._ # clear sys.%s # restore sys.%s # cleanup __main__ # cleanup[1] %s # cleanup[2] %s # cleanup sys # cleanup __builtin__ ssis:new_modules:is_builtins:get_frozen_objects:is_frozenmodule name is too longsO# trying %s No module named %.200ss|O:find_moduleOs(ssi)import %s # builtin s:init_builtin__builtins____file__# %s has bad magic # %s has bad mtime # %s matches %s Non-code object in %.200simport %s # from %s wb# can't create %s # can't write %s # wrote %s ss|O!:load_sourcebad/closed file object packageimport %s # frozen%s __path__s:init_frozenBad magic number in %.200simport hook without loaderimport %s # directory %s [O]ss:load_packageEmpty module nameModule name too long__all____doc__[s]{OO}OOOO# installing zipimport hook zipimport# can't import zipimport zipimporter# installed zipimport hook sOs(ssi):load_moduleinvalid file open mode %.200sss|O!:load_compiledss|O!:load_dynamicSEARCH_ERRORPY_SOURCEPY_COMPILEDC_EXTENSIONPY_RESOURCEPKG_DIRECTORYC_BUILTINPY_FROZENPY_CODERESOURCEIMP_HOOKo XX̉̉X'PyImport_GetModuleDict: no module dictionary!No such frozen object named %.200sExcluded frozen object named %.200ssys.meta_path must be a list of import hooksfull frozen module name too longNo frozen submodule named %.200ssys.path must be a list of directory namessys.path_hooks must be a list of import hookssys.path_importer_cache must be a dict_PyImport_FixupExtension: module %.200s not loadedimport %s # previously loaded (%s) Cannot re-init internal module %.200sLoaded module %.200s not found in sys.modulesimport: deleting existing key insys.modules failedunable to get modification time from '%s'import %s # precompiled from %s frozen object %.200s is not a code objectfile object required for import (type code %d)Purported %s module %.200s not found%s module %.200s not properly initializedDon't know how to import %.200s (type code %d)reload() argument must be modulereload(): module %.200s not in sys.modulesreload(): parent %.200s not in sys.modulesItem in ``from list'' not a stringinitializing sys.meta_path, sys.path_hooks or path_importer_cache failed# can't import zipimport.zipimporter load_module arg#2 should be a file or Nonedynamic module does not define init function (init%.200s)dynamic module not initialized properlyimport %s # dynamically loaded from %s bad marshal dataatofNULL object in marshal datas#|i:loadsO:loadOO|i:dumpunmarshallable objectO|i:dumpsEOF read where object expectedcannot unmarshal code objects in restricted execution modeXXX readobject called with exception set marshal.load() arg must be filemarshal.dump() 2nd arg must be fileobject too deeply nested to marshalSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSAShSSSSSSSSSSSSSSSSSSSSS0SSĭSSSSSSStSSSSSS9SSSSSSSSS,SSSSRSSSSSSSSXSSInterpreter not initialized (version mismatch?)module functions cannot set METH_CLASS or METH_STATICPyModule_AddObject() needs module as first argPyModule_AddObject() needs non-NULL valuestring too long for Python stringNULL object passed to Py_BuildValuebad format char passed to Py_BuildValuemodule '%s' has no __dict__unmatched paren in formatUnmatched paren in format33333333333333333333333333333233333333333333333333333T32333Ti3a33333333333333333T33TT3iT33333333333 bbbbbbbbibbbbbbbbbbbbbbbbbbbbbbibbibbibbbibbbbbbbbbbbbbibbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||PPPPPPPPVPPPPPPPPPPPPPPPPPPPPPPVPPVPPVPPPVPPPPPPPPPPPPPVPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP|ZZZZZZZZ`ZZZZZZZZZZZZZZZZZZZZZZ`ZZ`ZZ`ZlwZZ`ZZZZZZZZZZZZZ`ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZlZwZZZZZZZZZZZZZZZZZZZZZZZZZZZZZlZwPyThreadState_Clear: warning: thread still has a frame PyThreadState_Delete: NULL tstatePyThreadState_Delete: NULL interpPyThreadState_Delete: invalid tstatePyThreadState_Delete: tstate is still currentPyThreadState_DeleteCurrent: no current tstatePyThreadState_Get: no current threadCouldn't create autoTLSkey mappingCouldn't create thread-state for new threadPyInterpreterState_Delete: invalid interpPyInterpreterState_Delete: remaining threadsauto-releasing thread-state, but no thread-state for this threadThis thread state must be current when releasingpythonmodulesPYTHONHOMElost sys.stderr print_file_and_lineO(ziiz)msgoffsettext File "", line ^ unexpected EOF while parsingexpression too longexpected an indented blockunexpected indentunexpected unindentinvalid syntaxinvalid tokenunknown decode errorerror=%d unknown parsing error(sO)Fatal Python error: %s ???excepthookError in sys.excepthook: Original exception was: sys.excepthook is missing Error in sys.exitfunc: >>> ... Bad magic number in .pyc fileBad code object in .pyc filecan't create __main__ modulePYTHONDEBUGPYTHONVERBOSEPYTHONOPTIMIZECannot set codeset of stdinCannot set codeset of stdoutEOF while scanning triple-quoted stringEOL while scanning single-quoted stringinconsistent use of tabs and spaces in indentationunindent does not match any outer indentation leveltoo many levels of indentation'import site' failed; traceback: 'import site' failed; use -v for traceback python: Can't reopen .pyc file can't add __builtins__ to __main__Py_Initialize: can't make first interpreterPy_Initialize: can't make first threadPy_Initialize: can't init framesPy_Initialize: can't init intsPy_Initialize: can't make modules dictionaryPy_Initialize: can't initialize __builtin__Py_Initialize: can't initialize sysPy_NewInterpreter: call Py_Initialize firstPy_EndInterpreter: thread is not currentPy_EndInterpreter: thread still has a framePy_EndInterpreter: not the last threadu)@callstatsexc_infoexc_cleargetdefaultencodinggetdlopenflagsgetfilesystemencodinggetrefcountgetrecursionlimitgetcheckintervalsetprofilesettrace(OOO)|O:exits:setdefaultencodingc_callc_exceptionc_returni:setcheckintervali:setrecursionlimiti:setdlopenflags|i:_getframecall stack is not deep enoughOO:call_tracing is a directory__displayhook____excepthook__hexversionfinaliiisiversion_infoapi_versioncopyrightplatformexecutableexec_prefixmaxintmaxunicodebuiltin_module_nameslittlebyteorderwarnoptionslost __builtin__... truncatedcan't create sys.pathcan't assign sys.pathno mem for sys.argvcan't assign sys.argv-cno mem for sys.path insertionsys.path.insert(0) failedrecursion limit must be positivetb_nexttb_frametb_lastitb_lineno../Python/traceback.ctracebacklimitTraceback (most recent call last): File "%.500s", line %d, in %.500s 'l%module.so./%-.255sinit%.200sdlopen("%s", %x); unknown dlopen() error  sem_destroysem_postsem_waitsem_trywaitsem_initbuffer overflow in getpath.c's joinpath()Could not find platform independent libraries Could not find platform dependent libraries Consider setting $PYTHONHOME to [:] Not enough memory for dynamic PYTHONPATH. Using default static PYTHONPATH. PYTHONPATHos.pyModules/Setup/usrlib/python00.ziplib/lib-dynload:plat-linux2:lib-tk..Libenabledisableisenabledget_debugget_thresholdcollectget_objectsget_referrersget_referentsi:set_debugi|ii:set_threshold(iii)garbageDEBUG_STATSDEBUG_COLLECTABLEDEBUG_UNCOLLECTABLEDEBUG_INSTANCESDEBUG_OBJECTSDEBUG_SAVEALLDEBUG_LEAKGC object already tracked__del__ %ldgc: %.100s <%.100s %p> uncollectablegc: done. garbage collectiongc couldn't allocate "__del__"gc: collecting generation %d... gc: objects in each generation:gc: %.100s <%.100s instance at %p> gc: done, %ld unreachable, %ld uncollectable. gc couldn't create gc.garbage listunexpected exception during garbage collectionthread.lockstart_newallocate_lockallocateexit_threadinterrupt_mainget_identthread._localThread-local dataLocal-data dictionaryreleaselocked_locklocked|i:acquirerelease unlocked lockthread.local.%pOO|O:start_new_threadfirst arg must be callable2nd arg must be a tuplecan't start new thread can't allocate lockno current thread identthread.errorLockTypeInitialization arguments are not supportedCouldn't get thread-state dictionaryUnhandled exception in thread started by optional 3rd arg must be a dictionarypausedefault_int_handleri:alarmiO:signalsignal number out of rangei:getsignalSIG_DFLSIG_IGNNSIGSIGHUPSIGINTSIGQUITSIGILLSIGTRAPSIGIOTSIGABRTSIGFPESIGKILLSIGBUSSIGSEGVSIGSYSSIGPIPESIGALRMSIGTERMSIGUSR1SIGUSR2SIGCLDSIGCHLDSIGPWRSIGIOSIGURGSIGWINCHSIGPOLLSIGSTOPSIGTSTPSIGCONTSIGTTINSIGTTOUSIGVTALRMSIGPROFSIGXCPUSIGXFSZSIGRTMINSIGRTMAX(iO)signal only works in main threadsignal handler must be signal.SIG_IGN, signal.SIG_DFL, or a callable objectf_bsizef_frsizef_blocksf_bfreef_bavailf_filesf_ffreef_favailf_flagf_namemaxst_modeprotection bitsst_inoinodest_devdevicest_nlinknumber of hard linksst_uiduser ID of ownerst_gidgroup ID of ownerst_sizetotal size, in bytesinteger time of last accessinteger time of last changest_atimest_mtimetime of last modificationst_ctimest_blksizeblocksize for filesystem I/Ost_blocksnumber of blocks allocatedst_rdevdevice type (if inode device)ctermidgetcwdgetcwduunameunlinkforkopenptyforkptygetegidgeteuidgetgidgetgroupsgetpidgetppidgetuidgetloginseteuidsetegidsetreuidsetregidsetgroupssetsidfdopenpipefchdirfsyncfdatasyncWIFCONTINUEDtmpfiletmpnamabortgetloadavgPC_ASYNC_IOPC_CHOWN_RESTRICTEDPC_FILESIZEBITSPC_LINK_MAXPC_MAX_CANONPC_MAX_INPUTPC_NAME_MAXPC_NO_TRUNCPC_PATH_MAXPC_PIPE_BUFPC_PRIO_IOPC_SOCK_MAXBUFPC_SYNC_IOPC_VDISABLESC_2_CHAR_TERMSC_2_C_BINDSC_2_C_DEVSC_2_C_VERSIONSC_2_FORT_DEVSC_2_FORT_RUNSC_2_LOCALEDEFSC_2_SW_DEVSC_2_UPESC_2_VERSIONSC_AIO_LISTIO_MAXSC_AIO_MAXSC_AIO_PRIO_DELTA_MAXSC_ARG_MAXSC_ASYNCHRONOUS_IOSC_ATEXIT_MAXSC_AVPHYS_PAGESSC_BC_BASE_MAXSC_BC_DIM_MAXSC_BC_SCALE_MAXSC_BC_STRING_MAXSC_CHARCLASS_NAME_MAXSC_CHAR_BITSC_CHAR_MAXSC_CHAR_MINSC_CHILD_MAXSC_CLK_TCKSC_COLL_WEIGHTS_MAXSC_DELAYTIMER_MAXSC_EQUIV_CLASS_MAXSC_EXPR_NEST_MAXSC_FSYNCSC_GETGR_R_SIZE_MAXSC_GETPW_R_SIZE_MAXSC_INT_MAXSC_INT_MINSC_IOV_MAXSC_JOB_CONTROLSC_LINE_MAXSC_LOGIN_NAME_MAXSC_LONG_BITSC_MAPPED_FILESSC_MB_LEN_MAXSC_MEMLOCKSC_MEMLOCK_RANGESC_MEMORY_PROTECTIONSC_MESSAGE_PASSINGSC_MQ_OPEN_MAXSC_MQ_PRIO_MAXSC_NGROUPS_MAXSC_NL_ARGMAXSC_NL_LANGMAXSC_NL_MSGMAXSC_NL_NMAXSC_NL_SETMAXSC_NL_TEXTMAXSC_NPROCESSORS_CONFSC_NPROCESSORS_ONLNSC_NZEROSC_OPEN_MAXSC_PAGESIZESC_PAGE_SIZESC_PASS_MAXSC_PHYS_PAGESSC_PIISC_PII_INTERNETSC_PII_INTERNET_DGRAMSC_PII_INTERNET_STREAMSC_PII_OSISC_PII_OSI_CLTSSC_PII_OSI_COTSSC_PII_OSI_MSC_PII_SOCKETSC_PII_XTISC_POLLSC_PRIORITIZED_IOSC_PRIORITY_SCHEDULINGSC_REALTIME_SIGNALSSC_RE_DUP_MAXSC_RTSIG_MAXSC_SAVED_IDSSC_SCHAR_MAXSC_SCHAR_MINSC_SELECTSC_SEMAPHORESSC_SEM_NSEMS_MAXSC_SEM_VALUE_MAXSC_SHARED_MEMORY_OBJECTSSC_SHRT_MAXSC_SHRT_MINSC_SIGQUEUE_MAXSC_SSIZE_MAXSC_STREAM_MAXSC_SYNCHRONIZED_IOSC_THREADSSC_THREAD_ATTR_STACKADDRSC_THREAD_ATTR_STACKSIZESC_THREAD_KEYS_MAXSC_THREAD_PRIORITY_SCHEDULINGSC_THREAD_PRIO_INHERITSC_THREAD_PRIO_PROTECTSC_THREAD_PROCESS_SHAREDSC_THREAD_SAFE_FUNCTIONSSC_THREAD_STACK_MINSC_THREAD_THREADS_MAXSC_TIMERSSC_TIMER_MAXSC_TTY_NAME_MAXSC_TZNAME_MAXSC_T_IOV_MAXSC_UCHAR_MAXSC_UINT_MAXSC_UIO_MAXIOVSC_ULONG_MAXSC_USHRT_MAXSC_VERSIONSC_WORD_BITSC_XBS5_ILP32_OFF32SC_XBS5_ILP32_OFFBIGSC_XBS5_LP64_OFF64SC_XBS5_LPBIG_OFFBIGSC_XOPEN_CRYPTSC_XOPEN_ENH_I18NSC_XOPEN_LEGACYSC_XOPEN_REALTIMESC_XOPEN_REALTIME_THREADSSC_XOPEN_SHMSC_XOPEN_UNIXSC_XOPEN_VERSIONSC_XOPEN_XCU_VERSIONSC_XOPEN_XPG2SC_XOPEN_XPG3SC_XOPEN_XPG4CS_LFS64_CFLAGSCS_LFS64_LDFLAGSCS_LFS64_LIBSCS_LFS64_LINTFLAGSCS_LFS_CFLAGSCS_LFS_LDFLAGSCS_LFS_LIBSCS_LFS_LINTFLAGSCS_PATHCS_XBS5_ILP32_OFF32_CFLAGSCS_XBS5_ILP32_OFF32_LDFLAGSCS_XBS5_ILP32_OFF32_LIBSCS_XBS5_ILP32_OFF32_LINTFLAGSCS_XBS5_ILP32_OFFBIG_CFLAGSCS_XBS5_ILP32_OFFBIG_LDFLAGSCS_XBS5_ILP32_OFFBIG_LIBSCS_XBS5_LP64_OFF64_CFLAGSCS_XBS5_LP64_OFF64_LDFLAGSCS_XBS5_LP64_OFF64_LIBSCS_XBS5_LP64_OFF64_LINTFLAGSCS_XBS5_LPBIG_OFFBIG_CFLAGSCS_XBS5_LPBIG_OFFBIG_LDFLAGSCS_XBS5_LPBIG_OFFBIG_LIBS|i:stat_float_timeseti:accesss:systemi:_exiteti|ii:isattyi:majori:minorii:makedeviO:ftruncates:unsetenvi:strerrori:WCOREDUMPi:WCONTINUEDi:WIFSTOPPEDi:WIFSIGNALEDi:WIFEXITEDi:WEXITSTATUSi:WTERMSIGi:WSTOPSIG|zz:tempnamunexpected NULL from tmpnam_rsO&:pathconfF_OKR_OKW_OKTMP_MAXWNOHANGWUNTRACEDO_RDONLYO_WRONLYO_RDWRO_NDELAYO_NONBLOCKO_APPENDO_DSYNCO_RSYNCO_SYNCO_NOCTTYO_CREATO_EXCLO_LARGEFILEO_DIRECTO_DIRECTORYO_NOFOLLOWEX_OKEX_USAGEEX_DATAERREX_NOINPUTEX_NOUSEREX_NOHOSTEX_UNAVAILABLEEX_SOFTWAREEX_OSERREX_OSFILEEX_CANTCREATEX_IOERREX_TEMPFAILEX_PROTOCOLEX_NOPERMEX_CONFIGconfstr_namessysconf_namesposix.stat_resultposix.statvfs_resultenvironpathconf_namess:readlinks:statvfsi:ttynamestricti:niceetet:symlinketet:renameetet:linki:umask(sssss)dddddetOO:execve%s=%s(ii)ii:killii:killpgs|si:popenwti:setuidi:setgidO:setgidtoo many groupsgroups must be integersgroup id too bigi:getpgidii:waitpidi:getsidii:setpgidi:tcgetpgrpii:tcsetpgrpi:closei:dupii:dup2iOi:lseekii:readis#:writei|siinvalid file mode '%s's|i:mkfifos|ii:mknodss:putenvi:fstatvfsw+bO&:confstrO&:sysconfiO&:fpathconfetO:execvi:fstateti:chmodetii:chownetii:lchownU:listdiret:listdiret|i:mkdiret:statet:lstatet:removeet:rmdiret:chrootet:chdiretO:utimeinteger time of last modificationSC_THREAD_DESTRUCTOR_ITERATIONSCS_XBS5_ILP32_OFFBIG_LINTFLAGSCS_XBS5_LPBIG_OFFBIG_LINTFLAGSstrerror() argument out of rangetempnam is a potential security risk to your programtmpnam is a potential security risk to your programunrecognized configuration nameconfiguration names must be strings or integersLoad averages are unobtainableexecve() arg 2 must be a tuple or listexecve() arg 3 must be a mapping objectet;execve() arg 2 must contain only stringsexecve(): env.keys() or env.values() is not a lists;execve() arg 3 contains a non-string keys;execve() arg 3 contains a non-string valueunable to determine login namesetgroups argument must be a sequenceexecv() arg 2 must be a tuple or listexecv() arg 2 must contain only stringsutime() arg 2 must be a tuple (atime, mtime)$tIB& .>errorcodeENODEVENOCSIEHOSTUNREACHENOMSGEUCLEANEL2NSYNCEL2HLTENODATAENOTBLKENOSYSEPIPEEINVALEOVERFLOWEADVEINTREUSERSENOTEMPTYENOBUFSEPROTOEREMOTEENAVAILECHILDELOOPEXDEVE2BIGESRCHEMSGSIZEEAFNOSUPPORTEBADREHOSTDOWNEPFNOSUPPORTENOPROTOOPTEBUSYEWOULDBLOCKEBADFDEDOTDOTEISCONNENOANOESHUTDOWNECHRNGELIBBADENONETEBADEEBADFEMULTIHOPEUNATCHEPROTOTYPEENOSPCENOEXECEALREADYENETDOWNENOTNAMEACCESELNRNGEILSEQENOTDIRENOTUNIQEPERMEDOMEXFULLECONNREFUSEDEISDIREPROTONOSUPPORTEROFSEADDRNOTAVAILEIDRMECOMMESRMNTEREMOTEIOEL3RSTEBADMSGENFILEELIBMAXESPIPEENOLINKENETRESETETIMEDOUTENOENTEEXISTEDQUOTENOSTREBADSLTEBADRQCELIBACCEFAULTEFBIGEDEADLKENOTCONNEDESTADDRREQELIBSCNENOLCKEISNAMECONNABORTEDENETUNREACHESTALEENOSRENOMEMENOTSOCKESTRPIPEEMLINKERANGEELIBEXECEL3HLTECONNRESETEADDRINUSEEOPNOTSUPPEREMCHGEAGAINENAMETOOLONGENOTTYERESTARTESOCKTNOSUPPORTETIMEEBFONTEDEADLOCKETOOMANYREFSEMFILEETXTBSYEINPROGRESSENXIOENOPKGpwd.struct_passwdpw_nameuser namepw_passwdpasswordpw_uiduser idpw_gidgroup idpw_gecosreal namepw_dirhome directorypw_shellshell programgetpwallstruct_pwents:getpwnamI:getpwuidgetpwuid(): uid not found: %dgetpwnam(): name not found: %sgetcodesizegetlower_sre.SRE_Pattern_sre.SRE_Match_sre.SRE_Scanner__copy____deepcopy__finditerOiO!|iOOexpected string or bufferbuffer has negative sizebuffer size mismatchO|ii:scannerpatterngroupindexO:expand_expand|O:groupdictno such group|O:start|O:end|O:spancannot copy this match objectMAGICCODESIZE|O:groupslastindexlastgroupregsendposO|ii:findallmaxsplitO|i:split_subxjoinNireplOO|i:subnOO|i:subO|ii:searchO|ii:match"6_w'EGQcmVDDDDDDDDDDDDDDDDDDDDDsdweeeeeeeeeeeeeeeeeeeeeU   aP u  55Erv  O  J  K ( [ +|z;E/EVo!n@K&K&q&'K&K&K&K&K&K&K&K&K&K&K&u'K&K&K&K''K&K&K&&&(F*f***D+++(,((,Y11A.}.'2'2:2--00..((6//(U)E)Y2<5m4Y24Y2u3{2231445)76775B6`666(78B8aaabaaaaaaaaaaabaaa[b/baaabamaximum recursion limit exceededinternal error in regular expression enginecannot copy this pattern objectcannot deepcopy this pattern objectcannot deepcopy this match objectraw_unicode_escape_decodeO:registers:lookupO|ss:encodeO|ss:decodet#|zii:utf_16_ex_decodeOiit#|z:charbuffer_encodesO:register_errors:lookup_errorO!|z:escape_encodes#|z:escape_decodeO|z:utf_8_encodet#|zi:utf_8_decodeO|z:utf_7_encodet#|z:utf_7_decodeO|zi:utf_16_encodeO|z:utf_16_le_encodeO|z:utf_16_be_encodet#|zi:utf_16_decodet#|zi:utf_16_le_decodet#|zi:utf_16_be_decodeO|z:unicode_escape_encodet#|z:unicode_escape_decodeO|z:unicode_internal_encodeO|z:unicode_internal_decodeO|z:raw_unicode_escape_encodeO|z:latin_1_encodet#|z:latin_1_decodeO|z:ascii_encodet#|z:ascii_decodeO|zO:charmap_encodet#|zO:charmap_decodes#|z:readbuffer_encodet#|z:raw_unicode_escape_decode14:43:58Apr 27 2006#%d, %.20s, %.9sno mem to build parser accelerators XXX too high nonterminal number!no mem to add parser accelerators XXX too many states!XXX ambiguity!NT%d%.32s(%.32s)no mem for new parser no mem for next token ENDMARKERNAMENUMBERSTRINGNEWLINEINDENTDEDENTLPARRPARLSQBRSQBCOLONCOMMASEMIPLUSMINUSVBARAMPERLESSGREATERPERCENTBACKQUOTELBRACERBRACEEQEQUALNOTEQUALLESSEQUALGREATEREQUALTILDECIRCUMFLEXLEFTSHIFTRIGHTSHIFTDOUBLESTARPLUSEQUALMINEQUALPERCENTEQUALAMPEREQUALVBAREQUALCIRCUMFLEXEQUALLEFTSHIFTEQUALRIGHTSHIFTEQUALDOUBLESTAREQUALDOUBLESLASHDOUBLESLASHEQUALutf-8utf-8-iso-8859-1iso-latin-1iso-8859-1-iso-latin-1-with BOMencoding problem: %stab-width::tabstop=:ts=set tabsize=tok_backup: begin of bufferTab size set to %d Ȕєؔ!(18AHQXa•ӕ (@c{vrǷܷUu Y+:IXgUeYYYYYYYYYYtYYYYYYYYYYYYYYYYYYYYYYYYYYYεYݵYYYYYYYYYYYYYYYYYYYYYYYYYYY (7Non-ASCII character '\x%.2x' in file %.200s on line %i, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details%s: inconsistent use of tabs and spaces in indentation unsupported operand type(s) for ** or pow(): '%s' and '%s'unsupported operand type(s) for pow(): '%s', '%s', '%s'NULL result without error in PyObject_Callcan't multiply sequence by non-intunsupported operand type(s) for %s: '%s' and '%s'iter() returned non-iterator of type '%.100s'isinstance() arg 2 must be a class, type, or tuple of classes and typesissubclass() arg 1 must be a classissubclass() arg 2 must be a class or tuple of classesnull argument to internal routinesequence index must be integerobject does not support item assignmentobject doesn't support item deletionobject does not support item deletionexpected a character buffer objectexpected a single-segment buffer objectexpected a readable buffer objectexpected a writeable buffer objectnull byte in argument for int()__int__ returned non-int (type %.200s)int() argument must be a string or a numbernull byte in argument for long()__long__ returned non-long (type %.200s)long() argument must be a string or a number__float__ returned non-float (type %.200s)object doesn't support slice assignmentobject doesn't support slice deletionsequence.index(x): x not in sequencecall of non-callable attribute** or pow()**='%s' object is not callable*iteration over non-sequence__class__nest level of tuple too deep+=%=//=-=>>=<<=&=^=|=<<>>//len() of unsized objectunindexable objectunsubscriptable objectbad operand type for unary -bad operand type for unary +bad operand type for unary ~bad operand type for abs()object can't be concatenatedobject can't be repeatedunsliceable objectiterable argument requiredcount exceeds C int sizeindex exceeds C int sizeFalseTrue|O:boolinstancemethodim_classim_funcim_selfclassobj../Objects/classobject.cO!|O:instance__coerce____itruediv____truediv____rtruediv____cmp__ in __call____hex____nonzero____len____contains____delslice____delitem__(N)__setslice____setitem__(NO)(iiO)__getslice__(i)__len__() should return >= 0instance has no next() method__iter____hash____eq__unhashable instance__repr__<%s.%s instance at %p>__neg____pos____abs____invert____int____long____float____oct____init__() should return None__getattr____setattr____delattr__basesSOO__lt____le____ne____gt____ge____ifloordiv____floordiv____rfloordiv____ior____or____ror____ixor____xor____rxor____iand____and____rand____irshift____rshift____rrshift____ilshift____lshift____rlshift____imod____mod____rmod____idiv____div____rdiv____imul____mul____rmul____isub____sub____rsub____iadd____add____radd____divmod____rdivmod____pow____rpow____ipow__the class associated with a methodthe function (or other callable) implementing a methodthe instance to which a method is bound; None for unbound methodsinstance() second arg must be dictionary or None__dict__ not accessible in restricted mode__dict__ must be set to a dictionary__class__ not accessible in restricted mode__class__ must be set to a class%.50s instance has no attribute '%.400s'coercion should return None or 2-tuplecomparison did not return an int%.200s instance has no __call__ methodfirst argument must be callableunbound methods must have non-NULL im_classunbound method %s%s must be called with %s instance as first argument (got %s%s instead)instance.__dict__ not accessible in restricted mode__nonzero__ should return an int__nonzero__ should return >= 0__len__() should return an int__iter__ returned non-iterator of type '%.100s'__hash__() should return an intthis constructor takes no argumentsPyClass_New: name must be a stringPyClass_New: dict must be a dictionaryPyClass_New: bases must be a tuplePyClass_New: base must be a classclass.__dict__ not accessible in restricted modeclass %.50s has no attribute '%.400s'classes are read-only in restricted modea __bases__ item causes an inheritance cycle__name__ must not contain null bytes__bases__ items must be classes__name__ must be a string object__bases__ must be a tuple object__dict__ must be a dictionary objectVVUVVVrealimagconjugate__getnewargs__%%.%ig%%+.%ig(%s%sj)complex_abs(D)complex() arg is not a stringstrtodfloat() out of range: %.150s|OO:complex__complex__complex_addcomplex_subcomplex_mulclassic complex divisioncomplex_classic_divcomplex remaindercomplex divmod()complex modulocomplex_powcomplex exponentiaioncomplex_divthe real part of a complex numberthe imaginary part of a complex numberno ordering relation is defined for complex numberscan't convert complex to int; use int(abs(z))can't convert complex to long; use long(abs(z))can't convert complex to float; use abs(z)complex() literal too large to convertcomplex() arg is an empty stringcomplex() arg contains a null bytecomplex() arg is a malformed stringcomplex() can't take second arg if first is a stringcomplex() second arg can't be a stringcomplex() argument must be a string or a numberfloat(r) didn't return a floatcomplex divmod(), // and % are deprecated0.0 to a negative or complex powerTrue if the file is closednewlinessoftspacefile namefile encodingfilenotellreadintoxreadlineswritelinesflushI/O operation on closed file (ss) (sss)Unknown newlines value 0x%x (is)rUinvalid mode: %s../Objects/fileobject.cEOF when reading a line|i:readline|l:reads#t#O|i:seekw#|l:readlinesclose failed: [Errno %d] %s writeobject with NULL filebufferinget|si:fileO|si:fileend-of-line convention used in this fileflag indicating that a space needs to be printed; used by printfile mode ('r', 'U', 'w', 'a', possibly with 'b' or '+' added)<%s file u'%s', mode '%s' at %p><%s file '%s', mode '%s' at %p>fileno() returned a non-integerargument must be an int, or have a fileno() method.file descriptor cannot be a negative integer (%i)line is longer than a Python string can holdfile() constructor not accessible in restricted modeobject.readline() returned non-stringrequested number of bytes is more than a Python string can holdwritelines() requires an iterable argumentwritelines() argument must be a sequence of stringsnull file for PyFile_WriteString^Q3&ča float is requiredrichcompare(d)frexp() result out of rangeempty string for float()|O:float# cleanup floatssubtractmultiplyclassic float divisiondividefloat modulofloat divmod()divmod(dd)nb_float should return float objectfloat too large to pack with f formatfloat too large to pack with d formatUnicode float() literal too long to convertfloat() argument must be a string or a numberinvalid literal for float(): %.200snull byte in argument for float(): %d unfreed float%s in %d out of %d block%s # pow() 3rd argument not allowed unless all arguments are integers0.0 cannot be raised to a negative powernegative number cannot be raised to a fractional power?@KMK431f0KA?f_localsf_linenof_tracef_backf_codef_builtinsf_globalsf_lastif_restrictedf_exc_typef_exc_valuef_exc_tracebacklineno must be an integerXXX block stack overflowXXX block stack underflowf_lineno can only be set by a trace functionline %d comes before the current code blockline %d comes after the current code blockcan't jump to 'except' line as there's no exceptioncan't jump into or out of a 'finally' blockcan't jump into the middle of a blockan integer is required-0%lo-0x%lx(l)# cleanup ints(ll)|Oi:intclassic int divisionnegative shift countnb_int should return int object: %d unfreed int%s in %d out of %d block%s # integer division or modulo by zeroint() base must be >= 2 and <= 36invalid literal for int(): %.200sint() can't convert non-string with explicit basepow() 2nd argument cannot be negative when 3rd argument specifiedpow() 3rd argument cannot be 0Bcallable-iterator../Objects/iterobject.clistreverseiteratorlistiterator__reversed__appendextendreversecmpwrappersortwrapper../Objects/listobject.clist index out of range[...], expected a sortwrapperobjectO|O&O&:indexlist.index(x): x not in listlist objects are unhashable|OOi:sortlist modified during sortlist indices must be integersiO:insertargument must be iterable|O:listcan only assign an iterablelist.remove(x): x not in list|i:poppop from empty listpop index out of rangelist assignment index out of rangecan only concatenate list (not "%.200s") to listcomparison function must return intcannot add more objects to listmust assign iterable to extended sliceattempt to assign sequence of size %d to extended slice of size %d=R XR bR lR vR R ../Objects/longobject.clong int too large to convertlong too big to convertinteger conversion failed|Oi:longclassic long divisionlong int too large to convert to intcan't convert negative value to unsigned longlong has too many bits to express in a platform size_tcan't convert negative long to unsignedlong int too large to convert to floatlong division or modulo by zerolong/long too large for a floatcannot convert float infinity to longlong() arg 2 must be >= 2 and <= 36long string too large to convertinvalid literal for long(): %.200slong() can't convert non-string with explicit baseGdictionary-itemiteratordictionary-valueiteratordictionary-keyiteratorhas_keysetdefaultpopitemfromkeysiterkeysitervaluesiteritems../Objects/dictobject.c{...}pop(): dictionary is emptydict objects are unhashable{}{popitem(): dictionary is emptydictionary changed size during iterationcannot convert dictionary update sequence element #%d to a sequencedictionary update sequence element #%d has length %d; 2 is requiredbuiltin_function_or_method__self__../Objects/methodobject.c__methods__%.200s() takes no arguments (%d given)%.200s() takes exactly one argument (%d given)%.200s() takes no keyword argumentsmethod.__self__ not accessible in restricted mode5 6 6 6 5 a5 a5 a5 5 ../Objects/moduleobject.cnameless modulemodule filename missing# clear[1] %s # clear[2] %s S|O:module.__init__NotImplementedTypeNoneType<%s object at %p>print recursionattribute name must be string__unicode__assign todeallocating NoneNotImplementedCan't initialize 'type'Can't initialize 'weakref'Can't initialize 'bool'Can't initialize 'str'Can't initialize 'list'Can't initialize type(None)Py_Reprunhashable typeNULL object : NULL in cmpnumber coercion failed../Objects/object.c__members__Expected keys() to be a list.__repr__ returned non-string (type %.200s)__str__ returned non-string (type %.200s)tp_compare didn't return -1 or -2 for exceptiontp_compare didn't return -1, 0 or 1'%.50s' object has no attribute '%.400s''%.100s' object has no attributes (%s .%.100s)'%.100s' object has only read-only attributes (%s .%.100s)Can't initialize type(NotImplemented) type : %s refcount: %d address : %p '%.50s' object attribute '%.400s' is read-onlymodule.__dict__ is not a dictionaryeHO^ _ ^ _  _ ^ slicestopstepindicesellipsisEllipsisslice step cannot be zeroslice(slice()islowerisupperisspaceisdigitistitleisalphaisalnumcapitalizeswapcasetranslatebasestring|O:lstrip|O:rstrip|O:strip../Objects/stringobject.c\%c\t\n\r\x%02xrepeated string is too longO|O&O&:startswith(s#)|O:strstring index out of range|i:splitlines|i:expandtabsi:zfilli|c:centeri|c:rjusti|c:ljust|Oi:rsplitempty separator|Oi:splitreleasing interned strings O|O&O&:countO|O&O&:endswithsubstring not foundOO|i:replace%iTrailing \ in stringinvalid \x escapeignoreformat requires a mappingincomplete format key* wants intincomplete formatint argument required%s0%c%%.%dl%c%s%%%s.%dl%cfloat argument required%%%s.%d%cc;%c requires int or charb;%c requires int or chardeletion of interned string failedImmortal interned string died.Inconsistent interned string state.expected string or Unicode object, %.200s foundexpected string without null bytescannot concatenate 'str' and '%.200s' objects'in ' requires string as left operandaccessing non-existent string segmentCannot use string as modifiable bufferThe basestring type cannot be instantiatedPyString_InternInPlace: strings only please!string is too long for a Python stringsequence expected, %.80s foundsequence item %i: expected string, %.80s foundjoin() is too long for a Python stringstring is too large to make reprO|O&O&:find/rfind/index/rindex%s arg must be None, str or unicodedecoder did not return a string object (type=%.400s)decoder did not return a string/unicode object (type=%.400s)encoder did not return a string object (type=%.400s)encoder did not return a string/unicode object (type=%.400s)decoding error; unknown error handling code: %.400snot enough arguments for format string%s argument has non-string str()formatted integer is too long (precision too large?)formatted float is too long (precision too large?)unsupported format character '%c' (0x%x) at index %inot all arguments converted during string formattingdeletions are implemented differently for unicodetranslation table must be 256 characters longstring indices must be integers  #     ΁ ΁   ΁                              :                                                                               v   P c c c c c c c c c c c h c c c c c c c c c c o c c c c c h c c P                  S                                                              [                "      (,* Eunnamed field__reduce__tuple index out of range(O(OO))O|O:structseqconstructor requires a sequence%.500s() takes a dict as second arg, if any%.500s() takes an at least %d-sequence (%d-sequence given)%.500s() takes an at most %d-sequence (%d-sequence given)%.500s() takes a %d-sequence (%d-sequence given)tupleiterator../Objects/tupleobject.c,)|O:tupletuple assignment index out of rangecan only concatenate tuple (not "%.200s") to tupletuple indices must be integers      __thisclass__the class invoking super()__self_class__The most base typethe object's classhelper for pickle__basicsize____itemsize____flags____weakrefoffset____base____dictoffset____mro__mro__subclasses__x.__len__() <==> len(x)x.__add__(y) <==> x+yx.__mul__(n) <==> x*nx.__rmul__(n) <==> n*xx.__getitem__(y) <==> x[y]x.__contains__(y) <==> y in xx.__iadd__(y) <==> x+=yx.__imul__(y) <==> x*=yx.__radd__(y) <==> y+xx.__sub__(y) <==> x-yx.__rsub__(y) <==> y-xx.__mul__(y) <==> x*yx.__rmul__(y) <==> y*xx.__div__(y) <==> x/yx.__rdiv__(y) <==> y/xx.__mod__(y) <==> x%yx.__rmod__(y) <==> y%xx.__neg__() <==> -xx.__pos__() <==> +xx.__abs__() <==> abs(x)x.__nonzero__() <==> x != 0x.__invert__() <==> ~xx.__lshift__(y) <==> x< y< x>>yx.__rrshift__(y) <==> y>>xx.__and__(y) <==> x&yx.__rand__(y) <==> y&xx.__xor__(y) <==> x^yx.__rxor__(y) <==> y^xx.__or__(y) <==> x|yx.__ror__(y) <==> y|xx.__int__() <==> int(x)x.__long__() <==> long(x)x.__float__() <==> float(x)x.__oct__() <==> oct(x)x.__hex__() <==> hex(x)x.__iadd__(y) <==> x+yx.__isub__(y) <==> x-yx.__imul__(y) <==> x*yx.__idiv__(y) <==> x/yx.__imod__(y) <==> x%yx.__ipow__(y) <==> x**yx.__ilshift__(y) <==> x< x>>yx.__iand__(y) <==> x&yx.__ixor__(y) <==> x^yx.__ior__(y) <==> x|yx.__floordiv__(y) <==> x//yx.__rfloordiv__(y) <==> y//xx.__truediv__(y) <==> x/yx.__rtruediv__(y) <==> y/xx.__ifloordiv__(y) <==> x//yx.__itruediv__(y) <==> x/yx.__str__() <==> str(x)x.__repr__() <==> repr(x)x.__cmp__(y) <==> cmp(x,y)x.__hash__() <==> hash(x)x.__call__(...) <==> x(...)__getattribute__x.__lt__(y) <==> x x<=yx.__eq__(y) <==> x==yx.__ne__(y) <==> x!=yx.__gt__(y) <==> x>yx.__ge__(y) <==> x>=yx.__iter__() <==> iter(x)__get____set__descr.__set__(obj, value)__delete__descr.__delete__(obj)__new____weakref__can't set %s.__module__can't delete %s.__module__This object has no __dict__iiOexpected %d arguments, got %d, NULL>O!|O:super<%s.%s object at %p>|i:__reduce_ex____getstate____slotnames___slotnames__newobj__(Oi)_reduce_ex<%s '%s.%s'><%s '%s'>can't set %s.__name__can't delete %s.__name__duplicate base class %sbases must be typestype() takes 1 or 3 argumentsSO!O!:type__slots____slots__ must be strings__slots__ must be identifierscan't set %s.__bases__can't delete %s.__bases__(O)(OO)the type of the instance invoking super(); may be Nonemro() -> list return a type's method resolution order__subclasses__() -> list of immediate subclassesx.__getslice__(i, j) <==> x[i:j] Use of negative indices is not supported.x.__setitem__(i, y) <==> x[i]=yx.__delitem__(y) <==> del x[y]x.__setslice__(i, j, y) <==> x[i:j]=y Use of negative indices is not supported.x.__delslice__(i, j) <==> del x[i:j] Use of negative indices is not supported.x.__divmod__(y) <==> divmod(x, y)x.__rdivmod__(y) <==> divmod(y, x)x.__pow__(y[, z]) <==> pow(x, y[, z])y.__rpow__(x[, z]) <==> pow(x, y[, z])x.__coerce__(y) <==> coerce(x, y)x.__getattribute__('name') <==> x.namex.__setattr__('name', value) <==> x.name = valuex.__delattr__('name') <==> del x.namex.next() -> the next value, or raise StopIterationdescr.__get__(obj[, type]) -> valuex.__init__(...) initializes x; see x.__class__.__doc__ for signaturedictionary for instance variables (if defined)list of weak references to the object (if defined)T.__new__(S, ...) -> a new object with type S, a subtype of TThis object has no __weaklist____get__(None, None) is invalidPyArg_UnpackTuple() argument list is not a tuple, <%s object>>can't apply this %s to %s object%s assignment: '%s' deallocator differs from '%s'%s assignment: '%s' object layout differs from '%s'super(type, obj): obj must be an instance or subtype of typedefault __new__ takes no parameterscan't delete __class__ attribute__class__ must be set to new-style class, not '%s' object__class__ assignment: only for heap types__getnewargs__ should return a tuplecopy_reg._slotnames didn't return a list or Nonecannot create '%.100s' instancescan only assign string to %s.__name__, not '%s'__new__() called with non-type 'self'%s.__new__(): not enough arguments%s.__new__(X): X is not a type object (%s)%s.__new__(%s): %s is not a subtype of %s%s.__new__(%s) is not safe, use %s.__new__()can't set attributes of built-in/extension type '%s'Out of memory interning slotdef namesmethod cannot be both class and statictype '%.100s' participates in gc and is a base type but has inappropriate tp_free slotCannot create a consistent method resolution order (MRO) for basesmultiple bases have instance lay-out conflicta new-style class can't have only classic basestype object '%.50s' has no attribute '%.400s'metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its basestype '%.100s' is not an acceptable base typenonempty __slots__ not supported for subtype of '%s'__dict__ slot disallowed: we already got one__weakref__ slot disallowed: either we already got one, or __itemsize__ != 0can only assign tuple to %s.__bases__, not %scan only assign non-empty tuple to %s.__bases__, not ()%s.__bases__ must be tuple of old- or new-style classes, not '%s'__nonzero__ should return bool or int, returned %s__coerce__ didn't return a 2-tuple%s.__cmp__(x,y) requires y to be a '%s', not a '%s'weakcallableproxyweakproxy:__call__weak object has gone away../Objects/weakrefobject.ccannot create weak reference to '%s' objectweakly-referenced object no longer existsisdecimalisnumeric../Objects/unicodeobject.ccode pairs are not supportedunexpected special characterutf7unterminated shift sequenceunexpected end of dataunexpected code byteinternal errorinvalid dataillegal encodingutf8truncated dataillegal UTF-16 surrogateutf16truncated \uXXXX escapetruncated \UXXXXXXXX escapetruncated \xXX escapeillegal Unicode characterunicodedataucnhash_CAPImalformed \N character escape\ at end of stringrawunicodeescapetruncated \uXXXX0123456789abcdef(u#)Can't initialize 'unicode'truncated inputunicode_internalordinal not in range(256)ordinal not in range(128)asciixmlcharrefreplace&#%d;charmapcharacter maps to i|O&:centeri|O&:ljusti|O&:rjust|Oss:unicodeO|O&O&:findO|O&O&:rfindO|O&O&:rindexcan't resize shared unicode objectsO!i;decoding error handler must return (unicode, int) tupleposition %d from error handler out of boundspartial character in shift sequencenon-zero padding bits in shift sequenceABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/unsupported Unicode code rangeend of string in escape sequenceunknown Unicode character name\N escapes not supported (can't load unicodedata module)O!i;encoding error handler must return (unicode, int) tuplecharacter mapping must be in range(256)character mapping must return integer, None or straccessing non-existent unicode segmentcannot use unicode as modifiable buffercharacter mapping must be in range(0x%lx)character mapping must return integer, None or unicodeillegal code point (> 0x10FFFF)invalid decimal Unicode stringcharacter mapping must be in range(65536)unichr() arg not in range(0x110000) (wide Python build)decoder did not return an unicode object (type=%.400s)decoding Unicode is not supportedcoercing to Unicode: need string or buffer, %.80s foundsequence item %i: expected string or Unicode, %.80s foundThe fill character cannot be converted to UnicodeThe fill character must be exactly one character longO!i;translating error handler must return (unicode, int) tuple%s arg must be None, unicode or str%c arg not in range(0x110000) (wide Python build)    < * ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( + ( ( ( ( F+ ( ( ( ( ( ( ( ( ]+ ]+ ]+ ]+ ]+ ]+ ]+ ]+ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( #) ( ( ( ( ( ( .+ ( ( ( ( ( ( + ( ( ( ( + * ( ( ( %* ( ( ( ( ( ( ( <* ( ( ( S* ( j* * * ( + M a a i a a a a a a a | a  a a  j 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8    8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8  8 8 8 8 8 8 8 8 8 8 e     8  8 8 8 8 8  8 8   8  8 8   0   yy  9 Oaa 88 A ~.. 22 33 66 55 11 // -- ++ ** && '' %% TT&%@? P0  JJ VV dd pp ~~ A A  A ( AB>> AzD@F0A@APA`ApAAAAAA@@@?>A@ B@ ?HBC@E@pB@`?BABUUUUUU??UUUUUU?UUUUUU??333333???applycoercedelattrevalfiltergetattrhasattrhashhexisinstanceissubclasslenminoctraw_inputreducereloadsetattrsums|OOO:__import__l:chrchr() arg not in range(256)l:unichrOss|ii:compileexecsinglecompile(): unrecognised flagslocals must be a mappingglobals must be a dicts|O!O:execfileS:intern%s() arg is an empty sequence[raw_]input[raw_]input: lost sys.stdin[raw_]input: lost sys.stdout[raw_]input: input too longs;embedded '\0' in input lined|i:roundO|OOi:sortedvars(): no locals!?classmethodfrozensetreversedstaticmethodxrangeapply() arg 2 expected sequence, found %sapply() arg 3 expected dictionary, found %scompile() expected string without null bytescompile() arg 3 must be 'exec' or 'eval' or 'single'globals must be a real dict; try eval(expr, {}, mapping)eval must be given globals and locals when called without a framecode object passed to eval() may not contain free variableseval() arg 1 must be a string or code objectgetattr(): attribute name must be stringhasattr(): attribute name must be stringmap() requires at least two argshex() argument can't be converted to hex__hex__ returned non-string (type %.200s)can't intern subclass of stringiter(v, w): v must be callableoct() argument can't be converted to oct__oct__ returned non-string (type %.200s)ord() expected string of length 1, but %.200s foundord() expected a character, but string of length %d foundrange() integer start argument expected, got %s.range() integer end argument expected, got %s.range() integer step argument expected, got %s.range() step argument must not be zerorange() result has too many itemsreduce() arg 2 must support iterationreduce() of empty sequence with no initial valuevars() argument must have __dict__ attributesum() can't sum strings [use ''.join(seq) instead]zip argument #%d must support iterationcan't filter str to str: __getitem__ returned different typecan't filter unicode to unicode: __getitem__ returned different typefilter(): unsubscriptable tuplel;range() requires 1-3 int argumentsll|l;range() requires 1-3 int argumentsExceptionStopIterationStandardErrorTypeErrorSystemExitKeyboardInterruptImportErrorEnvironmentErrorIOErrorOSErrorEOFErrorRuntimeErrorNotImplementedErrorNameErrorUnboundLocalErrorAttributeErrorSyntaxErrorIndentationErrorTabErrorAssertionErrorLookupErrorIndexErrorKeyErrorArithmeticErrorOverflowErrorZeroDivisionErrorFloatingPointErrorValueErrorUnicodeErrorUnicodeEncodeErrorUnicodeDecodeErrorUnicodeTranslateErrorReferenceErrorSystemErrorMemoryErrorUserWarningPendingDeprecationWarningSyntaxWarningOverflowWarningRuntimeWarningFutureWarningO:__str__OO:__getitem__[Errno %s] %s: %s[Errno %s] %s%.200s attribute must be intreason%.200s attribute must be strsu#iisss#iis%s (%s, line %ld)%s (%s)%s (line %ld)O!O!O!O!O!unbound method must be called with instance as first argument%.200s attribute must be unicodeexceptions bootstrapping error.Base class `Exception' could not be created.Standard exception classes could not be created.An exception class could not be initialized.Module dictionary insertion problem.Cannot pre-allocate MemoryError instance can't translate character u'\x%02x' in position %d: %.400scan't translate character u'\u%04x' in position %d: %.400scan't translate character u'\U%08x' in position %d: %.400scan't translate characters in position %d-%d: %.400s'%.400s' codec can't decode byte 0x%02x in position %d: %.400s'%.400s' codec can't decode bytes in position %d-%d: %.400s'%.400s' codec can't encode character u'\x%02x' in position %d: %.400s'%.400s' codec can't encode character u'\u%04x' in position %d: %.400s'%.400s' codec can't encode character u'\U%08x' in position %d: %.400s'%.400s' codec can't encode characters in position %d-%d: %.400sPyEval_AcquireThread: NULL new thread statePyEval_AcquireThread: non-NULL old thread statePyEval_ReleaseThread: NULL thread statePyEval_ReleaseThread: wrong thread statePyEval_SaveThread: NULL tstatePyEval_RestoreThread: NULL tstatemaximum recursion depth exceeded%skeyword list must be a dictionaryslice indices must be integers or None%.200s%s got multiple values for keyword argument '%.200s'local variable '%.200s' referenced before assignmentinvalid argument to DUP_TOPX (bytecode corruption?)raise: arg 3 must be a traceback or Noneraising a string exception is deprecatedinstance exception may not have a separate valueexceptions must be classes, instances, or strings (deprecated), not %sexec: arg 1 must be a string, file, or code objectexec: arg 2 must be a dictionary or Noneexec: arg 3 must be a mapping or Nonecode object passed to exec may not contain free variablesError when calling the metaclass bases %sno locals found when storing %sneed more than %d value%s to unpackglobal name '%.200s' is not definedfree variable '%.200s' referenced before assignment in enclosing scopeno locals found during 'import *'from-import-* object has no __dict__ and no __all__%s%s argument after ** must be a dictionary%s%s argument after * must be a sequenceerror return without exception setPyEval_EvalCodeEx: NULL globals%.200s() takes %s %d %sargument%s (%d given)%.200s() keywords must be strings%.200s() got an unexpected keyword argument '%.400s'%.200s() got multiple values for keyword argument '%.400s'argument list must be a tuple constructorceval: tstate mix-upceval: orphan tstatelost sys.displayhookbad RAISE_VARARGS opargno locals'finally' pops bad exception__metaclass__name '%.200s' is not definedno locals when deleting %stoo many values to unpackunpack non-sequenceno locals when loading %s__import__ not foundcannot import name %.230sXXX lineno: %d, opcode: %d unknown opcodenon-keyword at mostexactlyat least1 z z   z 1 1 1   0  B 1 2 1 1  G  }  H      %     1 1 1 1 1 1     1 1 1 1 1 1 ~ ~ ~ ~ 1  I  t   ɿ  6 ʹ d   + 1   z  3 а g   ,  1  ߮  8  Ь  ֪  ^  8 1  A     ] !  t    c 1 b X >  1 1 < 1 1  K K K 1 "   1 1 1   } { 6    1 1 ( ( (   $ C P ]     , 9   C P co_argcountco_nlocalsco_stacksizeco_flagsco_codeco_constsco_namesco_varnamesco_freevarsco_cellvarsco_filenameco_nameco_firstlinenoco_lnotab(ziOO)../Python/compile.cstring to parse is too longutf-16-be\u%02x%02xglobalis a nested function.%dnon-string found in code slotiiiiSO!O!O!SSiS|O!O!:code__future___[%d]lost exceptioncan not assign to __debug__[outmost-iterable]dotted_name too longcom_make_closure()assignment to Nonedeleting Nonelost syntax errorcom_and_expr: operator not &com_xor_expr: operator not ^com_expr: expr operator not |com_augassign: bad operator'break' outside loop(s)asbad block popduplicate keyword argumentmore than 255 argumentscan't assign to operatorcan't delete function callcan't assign to function callunknown trailer typecan't assign to ()can't assign to []can't assign to literalcan't assign to lambdacom_assign: bad node'return' outside function'yield' outside functioninvalid list_iter node typeinvalid gen_iter node typename tuples must contain only strings, not '%.500s'unknown scope for %.100s in %.100s(%s) in %s symbols: %s locals: %s globals: %s name '%.400s' is a function parameter and declared globalcontains a nested function with free variablesimport * is not allowed in function '%.100s' because it %sunqualified exec is not allowed in function '%.100s' it %sfunction '%.100s' uses import * and bare exec, which are illegal because it %sduplicate argument '%s' in function definitionInvalid syntax. Assignment to None.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzcode: argcount must not be negativecode: nlocals must not be negativename '%.400s' is assigned to before global declarationname '%.400s' is used prior to global declarationfrom __future__ imports must occur at the beginning of the fileimport * only allowed at module levellookup %s in %s %d %d freevars of %s: %s can not delete variable '%.400s' referenced in nested scopecompile_node: unexpected node typeencoding declaration in Unicode stringcom_atom: unexpected node typecom_apply_trailer: unknown trailer typecom_term: operator not *, /, // or %com_arith_expr: operator not + or -com_shift_expr: operator not << or >>com_backpatch: offset too largecom_comparison: unknown comparison opnon-default argument follows default argument'continue' not properly in loop'continue' not supported inside 'finally' clausetrailing comma not allowed without surrounding parenthesestoo many statically nested blockscom_node: unexpected node typenon-keyword arg after keyword arglambda cannot contain assignmentkeyword can't be an expressionassign to generator expression not possibleaugmented assign to generator expression not possibleaugmented assign to tuple literal or generator expression not possibleaugmented assign to list literal or comprehension not possiblecan't assign to list comprehension'return' with argument inside generator'yield' not allowed in a 'try' block with a 'finally' clausedefault 'except:' must be lastG6BF6B6B6B6B6B6B6B{F6B6B]F6B6B6B6B6BBF6BE6B6B6B6B6B6B6BDDxH6B@H6BG6BG6B6B6B6B6B6B6B6B6B6B6B6B6B6B BxDfDC6B6B6B6B6B6B6B6BC{BAGB\^w^g^^^Wc{ele>c>ce>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>c>cc'e>c>c>c>c>c>c>c>cd>ccUheeeeeeeeggggeeeeeeeeeeeeeeeeeeeeeeeeeeegggggeggggggggieeeeeeeegeeeeeeeeeeeg hddddddddggggddddddddddddddddddddddddddd`hggggdgggggggguhddddddddgdddddddddddg_jeeeeeeeefififi\ieeeeeeeeeeeeeeeeeeeeeeeeeeeui\i\i\i\ie\i\i\i\i\i\i\i\iieeeeeeee\ieeeeeeeeeee\i^sssssssssssssssss^s^s^s^ssssss^s^s^s^svuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuxuuuuuuw"xwN{uuKzuuuxzzxuu"xuuxxxxuuuuuuuuuuuuuuuuuuuuuс 8\88888888888888888888n8888n88888888888888888888888888n8888nZ ZZZZZZZZZZZZZZZZZZZZZZZZۓѓOʛʛʛʛ##/ʛt#ʛʛʛʛʛʛʛ)<>S\oʛbʛУ fy+ʛʛʛʛʛʛʛʛʛʛʛʛʛʛʛʛ Ԧۦ8\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Ȯ\&\\\\\\\\\\\\\\\\\\\           11112222(u#i)strict_errorsignore_errorsxmlcharrefreplace_errorsbackslashreplacebackslashreplace_errorshandler must be callablestring is too largeunknown encoding: %sargument must be callabledon't know how to handle %.400s in error callbackcodec must pass exception instancecan't initialize codec error registrycan't initialize codec registryunknown error handler name '%.400s'no codec search functions registered: can't find encodingcodec search functions must return 4-tuplesdecoder must return a tuple (object,integer)encoder must return a tuple (object,integer)warnwarning: %s warn_explicit(sOsizO)Exception in ignored (isO)bad argument to internal function%s:%d: bad argument to internal functionbad argument type for built-in operationPyErr_NewException: name must be module.classfuture statement does not support import *future feature %.100s is not definednested_scopesgeneratorsbracesnot a chance00////////q0 0///////////////////////////////////////////0/////////%.200s() argument %d, item %d %.256sat least at most ../Python/getargs.cintegermust be %.50s, not %.50sintegerintegerintegerintegerintegerintegerintegerlongintegerfloatfloatcomplex(unicode conversion error)(unspecified)string or read-only bufferstring without null bytesstring or None(buffer is NULL)(encoding failed)(buffer_len is NULL)(memory error)(cleanup problem)(buffer overflow)read-write bufferimpossibleexpected %d arguments, not %dexcess ')' in getargs formatmissing ')' in getargs format%.200s%s takes no argumentsbad format string: %.200skeywords must be strings%s expected %s%d arguments, got %dunpacked tuple should have %s%d elements, but has %d%s does not take keyword argumentsinteger argument expected, got floatunsigned byte integer is less than minimumunsigned byte integer is greater than maximumsigned short integer is less than minimumsigned short integer is greater than maximumstring or single-segment read-only bufferstring without null bytes or None(unknown parser marker combination)string or unicode or text buffer(encoder failed to return a string)(encoded string without NULL bytes)single-segment read-write bufferinvalid use of 't' format characterstring or read-only character bufferexpected %d arguments, not %.50smust be %d-item sequence, not %.50smust be sequence of length %d, not %d%.200s%s takes at least one argumentold style getargs format uses new featuresnew style getargs format but argument is not a tuple%.150s%s takes %s %d argument%s (%d given)more argument specifiers than keyword list entriestuple found in format when using keyword argumentsmore keyword list entries than argument specifierskeyword parameter '%s' was given by position and by name%.200s%s takes %s %d argument%s (%d given)'%s' is an invalid keyword argument for this functionT888888R998~:H:88:888;8@888888888888X;;c@ BA8UAK<8=<888888=m>>8?88?ddddddddddddd=edddSedSeddddddddddddddd^eddddddddddddddddddddd [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)]linux2breakcontinueyieldraiseassertelifelsewhilefinallyexceptnotsingle_inputfile_inputeval_inputdecoratordecoratorsfuncdefparametersvarargslistfpdeffplistsimple_stmtsmall_stmtexpr_stmtaugassignprint_stmtdel_stmtpass_stmtflow_stmtbreak_stmtcontinue_stmtreturn_stmtyield_stmtraise_stmtimport_stmtimport_nameimport_fromimport_as_namedotted_as_nameimport_as_namesdotted_as_namesdotted_nameglobal_stmtexec_stmtassert_stmtcompound_stmtif_stmtwhile_stmtfor_stmttry_stmtexcept_clausesuiteand_testnot_testcomparisoncomp_opxor_exprand_exprshift_exprarith_exprtermfactorpoweratomlistmakertestlist_gexplambdeftrailersubscriptlistsubscriptsliceopexprlisttestlisttestlist_safedictmakerclassdefarglistlist_iterlist_forlist_ifgen_itergen_forgen_iftestlist1encoding_decl( > r`I( > r`I `I 0 ( > r`I  > `I> r @  > `I `I `I I @ (@`I  0`I"restricted attributebad memberdescr typereadonly attributebad memberdescr type for %skjjWk kksk^k(k#kkj@kjjj2k`nmm7onQmmonnn`nmnQmQmQmmocan't delete numeric/char attributesymtable entrysymbolschildrenoptimizednestedqqqqqGrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqGrGrqqqqqqqq;rqGrs_push: parser stack overflow input line too longcan't re-enter readlinesize must be zero or positiveread-writebuffer is read-onlybuffer()O|ii:bufferbuffer object expectedbuffer index out of range<%s buffer ptr %p, size %d at %p><%s buffer for %p, size %d, offset %d at %p>single-segment buffer object expectedright operand length must match slice lengthoffset must be zero or positiveaccessing non-existent buffer segmentwritable buffers are not hashablebuffer assignment index out of rangeright operand must be a single bytecell../Objects/cellobject.cPyCObjectPyCObject_FromVoidPtrAndDesc called with null descriptionPyCObject_AsVoidPtr with non-C-objectPyCObject_AsVoidPtr called with null pointerPyCObject_GetDesc with non-C-objectPyCObject_GetDesc called with null pointerInvalid call to PyCObject_SetVoidPtrfgetfdelwrapper_descriptor__objclass__method-wrapperdictproxyD.keys() -> list of D's keysgetset_descriptormember_descriptorclassmethod_descriptorunreadable attributecan't delete attributecan't set attribute|OOOO:propertyD.has_key(k) -> True if D has a key k, else FalseD.get(k[,d]) -> D[k] if D.has_key(k), else d. d defaults to None.D.values() -> list of D's valuesD.items() -> list of D's (key, value) pairs, as 2-tuplesD.iterkeys() -> an iterator over the keys of DD.itervalues() -> an iterator over the values of DD.iteritems() -> an iterator over the (key, value) items of DD.copy() -> a shallow copy of Dwrapper %s doesn't take keyword argumentsdescriptor '%.200s' for '%.100s' objects doesn't apply to '%.100s' objectdescriptor '%.300s' of '%.100s' object needs an argumentdescriptor '%.200s' requires a '%.100s' object but received a '%.100s'descriptor '%s' for type '%s' needs either an object or a typedescriptor '%s' for type '%s' needs a type, not a '%s' as arg 2descriptor '%s' for type '%s' doesn't apply to type '%s'attribute '%.300s' of '%.100s' objects is not writabledescriptor '%s' for '%s' objects doesn't apply to '%s' objectattribute '%.300s' of '%.100s' objects is not readableO:enumerateargument to reversed() must be a sequencegeneratorgi_framegi_runninggenerator already executingfunc_codefunc_defaultsfunc_dictfunc_namefunc_closurefunc_docfunc_globals../Objects/funcobject.cnon-tuple default argsnon-tuple closureargdefsO!O!|OOO:functionarg 5 (closure) must be tuplefunction attributes not accessible in restricted modefunc_name must be set to a string objectarg 3 (name) must be None or stringarg 4 (defaults) must be None or tuplearg 5 (closure) must be None or tuple%s requires closure of length %d, not %darg 5 (closure) expected cell, found %suninitialized classmethod objectuninitialized staticmethod objectfunc_code must be set to a code object%s() requires a code object with %d free vars, not %dfunc_defaults must be set to a tuple objectfunction's dictionary may not be deletedsetting function's dictionary to a non-dictrangeiteratorinteger additionxrange(%ld)xrange(%ld, %ld)xrange(%ld, %ld, %ld)../Objects/rangeobject.cxrange()PyRange_New's 'repetitions' argument must be 1xrange object index out of rangel;xrange() requires 1-3 int argumentsll|l;xrange() requires 1-3 int argumentsxrange() arg 3 must not be zeroxrange() result has too many itemsintersectionissubsetissupersetsymmetric_differenceuniondiscardintersection_updatesymmetric_difference_updatefrozenset()set objects are unhashable%s(%s)%s([])can only compare to a setpop from an empty setcannot compare sets using cmp()T&BO~ HQ H| O !0KK(oJoo@ vQQQQQQQQQRR&R6RFRVRfRvRRRRRRRRRSS&S6SFSVSfSvSSSSSSSSSTT&T6TFTVTfTvTTTTTTTTTUU&U6UFUVUfUvUUUUUUUUUVV&V6VFVVVfVvVVVVVVVVVWW&W6WFWVWfWvWWWWWWWWWXX&X6XFXVXfXvXXXXXXXXXYY&Y6YFYVYfYvYYYYYYYYYZZ&Z6ZFZVZfZvZZZZZZZZZ[[&[6[F[V[f[v[[[[[[[[[\\&\6\F\V\f\v\\\\\\\\\]]&]6]F]V]f]v]]] HiP9U[_@ePaiv[q1zn~g@*JQ{@zH+6 G TSq; Z,x 1 @9*dU `o#!|IK`%p/A.4o=AUKS ^]o`. }@A7Y(-2;2emJ @y):' @4 ' q5y\B "N3_p!# Do  C:gl  @ [6``F G`}  Qq [kU$@%,` 8 $C_M@ %@W[ 5Z`_ x.a  9 >_l !G(w`3!$~ X!V/!E%!!Q#]`1#H]f#"#  #Sz$4`S$6$.Q $n0$,%-%BK1y% ^%A%7%[W&g&((j&+-&*v@& @& z'(@(! =(.`M(+(l()0`(+;@(?@(K( ](-e(y(4 ")/R)-)Bc@sdZdZddgZdkZdkZdkZdkZdkZdZdZ dei fdYZ dei fdYZ e e d d Zed jo endS( s HTTP server base class. Note: the class in this module doesn't implement any HTTP request; see SimpleHTTPServer for simple implementations of GET, HEAD and POST (including CGI scripts). It does, however, optionally implement HTTP/1.1 persistent connections, as of version 0.3. Contents: - BaseHTTPRequestHandler: HTTP request handler base class - test: test function XXX To do: - log requests even later (to capture byte count) - log user-agent header and other interesting goodies - send error log to separate file s0.3t HTTPServertBaseHTTPRequestHandlerNs Error response

Error response

Error code %(code)d.

Message: %(message)s.

Error code explanation: %(code)s = %(explain)s. cCs(|iddiddiddS(Nt&s&ts>(thtmltreplace(R((t$/usr/lib/python2.4/BaseHTTPServer.pyt _quote_html\scBstZdZdZRS(NicCsHtii||iid \}}ti||_ ||_ dS(s.Override server_bind to store the server name.iN( t SocketServert TCPServert server_bindtselftsockett getsocknamethosttporttgetfqdnt server_namet server_port(R RR((RR cs (t__name__t __module__tallow_reuse_addressR (((RR_sc BstZdZdeiidZdeZdZ dZ dZ e dZ eZe dZd Zd Zd d d Zd ZdZdZdZdZdddddddgZe dddddddd d!d"d#d$g Zd%Zd&ZeiZhd'd<d*d<d-d<d0d<d3d<d6d<d9d<d<d<d?d<dBd<dEd<dHd<dKd<dNd<dQd<dTd<dVd<dYd<d\d<d_d<dbd<ded<dhd<dkd<dnd<dqd<dtd<dwd<dzd<d}d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd where is a (case-sensitive) keyword such as GET or POST, is a string containing path information for the request, and should be the string "HTTP/1.0" or "HTTP/1.1". is encoded using the URL encoding scheme (using %xx to signify the ASCII character with hex code xx). The specification specifies that lines are separated by CRLF but for compatibility with the widest range of clients recommends servers also handle LF. Similarly, whitespace in the request line is treated sensibly (allowing multiple spaces between components and allowing trailing whitespace). Similarly, for output, lines ought to be separated by CRLF pairs but most clients grok LF characters just fine. If the first line of the request has the form (i.e. is left out) then this is assumed to be an HTTP 0.9 request; this form has no optional headers and data part and the reply consists of just the data. The reply form of the HTTP 1.x protocol again has three parts: 1. One line giving the response code 2. An optional set of RFC-822-style headers 3. The data Again, the headers and data are separated by a blank line. The response code line has the form where is the protocol version ("HTTP/1.0" or "HTTP/1.1"), is a 3-digit response code indicating success or failure of the request, and is an optional human-readable string explaining what the response code means. This server parses the request and the headers, and then calls a function specific to the request type (). Specifically, a request SPAM will be handled by a method do_SPAM(). If no such method exists the server sends an error response to the client. If it exists, it is called with no arguments: do_SPAM() Note that the request name is case sensitive (i.e. SPAM and spam are different requests). The various request details are stored in instance variables: - client_address is the client IP address in the form (host, port); - command, path and version are the broken-down request line; - headers is an instance of mimetools.Message (or a derived class) containing the header information; - rfile is a file object open for reading positioned at the start of the optional input data part; - wfile is a file object open for writing. IT IS IMPORTANT TO ADHERE TO THE PROTOCOL FOR WRITING! The first thing to be written must be the response line. Then follow 0 or more header lines, then a blank line, and then the actual data (if any). The meaning of the header lines depends on the command executed by the server; in most cases, when data is returned, there should be at least one header line of the form Content-type: / where and should be registered MIME types, e.g. "text/html" or "text/plain". sPython/is BaseHTTP/c Csd|_d|_}d|_|i}|ddjo|d }n |ddjo|d }n||_|i}t |djo-|\}}}|d d jo|i d d |t Snyf|id dd}|id }t |djo tnt|dt|df}Wn1ttfj o|i d d |t SnX|djo|idjo d|_n|djo|i dd|t Sq7n}t |djoB|\}}d|_|djo|i d d|t Sq7n(|pt Sn|i d d|t S||||_|_ |_|i|id|_|iidd}|idjo d|_n1|idjo|idjo d|_ntS(s'Parse a request (internal). The request should be stored in self.raw_requestline; the results are in self.command, self.path, self.request_version and self.headers. Return True for success, False for failure; on failure, an error is sent back. sHTTP/0.9iis is iisHTTP/isBad request version (%r)t/t.iisHTTP/1.1isInvalid HTTP Version (%s)tGETsBad HTTP/0.9 request type (%r)sBad request syntax (%r)t Connectionttcloses keep-aliveN(ii(ii(tNoneR tcommandtrequest_versiontversiontclose_connectiontraw_requestlinet requestlinetsplittwordstlentpatht send_errortFalsetbase_version_numbertversion_numbert ValueErrortintt IndexErrortprotocol_versiont MessageClasstrfiletheaderstgettconntypetlowertTrue( R R#R*R4R RR%R'R+((Rt parse_requestsd        $             # cCs|ii|_|ipd|_dSn|ipdSnd|i}t||p|i dd|idSnt ||}|dS(sHandle a single HTTP request. You normally don't need to override this method; see the class __doc__ string for information on how to handle specific HTTP commands such as GET and POST. iNtdo_isUnsupported method (%r)( R R1treadlineR"R!R7RtmnamethasattrR(tgetattrtmethod(R R:R=((Rthandle_one_request#s    cCs3d|_|ix|ip|iqWdS(s&Handle multiple requests if necessary.iN(R R!R>(R ((Rthandle8s    cCsy|i|\}}Wntj od\}}nX|djo |}n|}|i d|||i hd|<dt |<d|<}|i |||idd|idd |i|id jo.|d jo!|djo|ii|ndS(sSend and log an error reply. Arguments are the error code, and a detailed message. The detailed message defaults to the short entry matching the response code. This sends an error response (so it must be called before any output has been generated), logs the error, and finally sends a piece of HTML explaining the error to the user. s???scode %d, message %stcodetmessagetexplains Content-Types text/htmlRRtHEADiii0N(s???s???(ii0(R t responsesR@tshorttlongtKeyErrorRARRBt log_errorterror_message_formatRtcontentt send_responset send_headert end_headersRtwfiletwrite(R R@RARFRJRERB((RR(@s   . *cCs|i||djo/||ijo|i|d}qId}n|idjo$|iid|i ||fn|i d|i |i d|i dS(sSend the response header and log the response code. Also send two standard headers with the server software version and the current date. iRsHTTP/0.9s %s %d %s tServertDateN( R t log_requestR@RARRDRRNROR/RLtversion_stringtdate_time_string(R R@RA((RRKas   $cCs|idjo|iid||fn|idjoD|idjo d|_q|idjo d|_qndS( sSend a MIME header.sHTTP/0.9s%s: %s t connectionRis keep-aliveiN(R RRNROtkeywordtvalueR5R!(R RVRW((RRLus cCs(|idjo|iidndS(s,Send the blank line ending the MIME headers.sHTTP/0.9s N(R RRNRO(R ((RRMst-cCs)|id|it|t|dS(sNLog an accepted request. This is called by send_response(). s "%s" %s %sN(R t log_messageR#tstrR@tsize(R R@R[((RRRs cGs|i|dS(sLog an error. This is called when a request cannot be fulfilled. By default it passes the message on to log_message(). Arguments are the same as for log_message(). XXX This should go to the separate error log. N(R RYtargs(R R\((RRHs cGs1tiid|i|i||fdS(sLog an arbitrary message. This is used by all other logging functions. Override it if you have specific logging wishes. The first argument, FORMAT, is a format string for the message to be logged. If the format string contains any % escapes requiring parameters, they should be specified as subsequent arguments (it's just like printf!). The client host and current date/time are prefixed to every message. s%s - - [%s] %s N(tsyststderrROR taddress_stringtlog_date_time_stringtformatR\(R RaR\((RRYscCs|id|iS(s*Return the server software version string.t N(R tserver_versiont sys_version(R ((RRSsc Csgti} ti| \ }}} }}}}} }d|i || |i|||||f}|S(s@Return the current date and time formatted for a message header.s#%s, %02d %3s %4d %02d:%02d:%02d GMTN(ttimetnowtgmtimetyeartmonthtdaythhtmmtsstwdtytzR t weekdaynamet monthnamets( R RnRlRsRiRmRkRpRhRoRfRj((RRTs  *-c Cs]ti} ti| \ }}} }}}} }}d| |i |||||f}|S(s.Return the current time formatted for logging.s%02d/%3s/%04d %02d:%02d:%02dN(ReRft localtimeRhRiRjRkRlRmtxRoRpR RrRs( R RpRlRsRiRmRkRhRoRuRfRj((RR`s  *#tMontTuetWedtThutFritSattSuntJantFebtMartAprtMaytJuntJultAugtSeptOcttNovtDeccCs |id \}}ti|S(sReturn the client address formatted for logging. This version looks up the full hostname using gethostbyaddr(), and tries to find a name that contains at least one dot. iN(R tclient_addressRRR R(R RR((RR_ssHTTP/1.0idtContinues!Request received, please continueiesSwitching Protocolss.Switching to new protocol; obey Upgrade headeritOKs#Request fulfilled, document followsitCreatedsDocument created, URL followsitAccepteds/Request accepted, processing continues off-lineisNon-Authoritative InformationsRequest fulfilled from cacheis No responses"Request fulfilled, nothing followsis Reset Contents#Clear input form for further input.isPartial ContentsPartial content follows.i,sMultiple Choicess,Object has several resources -- see URI listi-sMoved Permanentlys(Object moved permanently -- see URI listi.tFounds(Object moved temporarily -- see URI listi/s See Others'Object moved -- see Method and URL listi0s Not modifieds)Document has not changed since given timei1s Use ProxysAYou must use proxy specified in Location to access this resource.i3sTemporary Redirectis Bad requests(Bad request syntax or unsupported methodit Unauthorizeds*No permission -- see authorization schemesisPayment requireds"No payment -- see charging schemesit Forbiddens0Request forbidden -- authorization will not helpis Not FoundsNothing matches the given URIisMethod Not Alloweds,Specified method is invalid for this server.isNot Acceptables&URI not available in preferred format.isProxy Authentication Requireds8You must authenticate with this proxy before proceeding.isRequest Time-outs#Request timed out; try again later.itConflictsRequest conflict.itGones6URI no longer exists and has been permanently removed.isLength Requireds#Client must specify Content-Length.isPrecondition Faileds!Precondition in headers is false.isRequest Entity Too LargesEntity is too large.isRequest-URI Too LongsURI is too long.isUnsupported Media Types"Entity body in unsupported format.isRequested Range Not SatisfiablesCannot satisfy request range.isExpectation Faileds(Expect condition could not be satisfied.isInternal errorsServer got itself in troubleisNot Implementeds&Server does not support this operationis Bad Gateways,Invalid responses from another server/proxy.isService temporarily overloadeds8The server cannot process the request due to a high loadisGateway timeouts4The gateway server did not receive a timely responseisHTTP Version not supportedsCannot fulfill request.(Rs!Request received, please continue(sSwitching Protocolss.Switching to new protocol; obey Upgrade header(sOKs#Request fulfilled, document follows(RsDocument created, URL follows(Rs/Request accepted, processing continues off-line(sNon-Authoritative InformationsRequest fulfilled from cache(s No responses"Request fulfilled, nothing follows(s Reset Contents#Clear input form for further input.(sPartial ContentsPartial content follows.(sMultiple Choicess,Object has several resources -- see URI list(sMoved Permanentlys(Object moved permanently -- see URI list(Rs(Object moved temporarily -- see URI list(s See Others'Object moved -- see Method and URL list(s Not modifieds)Document has not changed since given time(s Use ProxysAYou must use proxy specified in Location to access this resource.(sTemporary Redirects(Object moved temporarily -- see URI list(s Bad requests(Bad request syntax or unsupported method(Rs*No permission -- see authorization schemes(sPayment requireds"No payment -- see charging schemes(Rs0Request forbidden -- authorization will not help(s Not FoundsNothing matches the given URI(sMethod Not Alloweds,Specified method is invalid for this server.(sNot Acceptables&URI not available in preferred format.(sProxy Authentication Requireds8You must authenticate with this proxy before proceeding.(sRequest Time-outs#Request timed out; try again later.(RsRequest conflict.(Rs6URI no longer exists and has been permanently removed.(sLength Requireds#Client must specify Content-Length.(sPrecondition Faileds!Precondition in headers is false.(sRequest Entity Too LargesEntity is too large.(sRequest-URI Too LongsURI is too long.(sUnsupported Media Types"Entity body in unsupported format.(sRequested Range Not SatisfiablesCannot satisfy request range.(sExpectation Faileds(Expect condition could not be satisfied.(sInternal errorsServer got itself in trouble(sNot Implementeds&Server does not support this operation(s Bad Gateways,Invalid responses from another server/proxy.(sService temporarily overloadeds8The server cannot process the request due to a high load(sGateway timeouts4The gateway server did not receive a timely response(sHTTP Version not supportedsCannot fulfill request.(!RRt__doc__R]R R$Rdt __version__RcR7R>R?RR(tDEFAULT_ERROR_MESSAGERIRKRLRMRRRHRYRSRTR`RqRrR_R/t mimetoolstMessageR0RD(((RRks. f  H         -  sHTTP/1.0cCstidottid}nd}d|f}||_|||}|i i }dG|dGdG|dGdGH|i dS( sTest the HTTP request handler class. This runs an HTTP server on port 8000 (or the first command line argument). ii@RsServing HTTP oniRs...N(R]targvR-Rtserver_addresstprotocolt HandlerClassR/t ServerClassthttpdR Rtsat serve_forever(RRRRRRR((Rttest)s  t__main__(RRt__all__R]ReR RR RRR RtStreamRequestHandlerRRR( RRRR RRR]RReRRR ((Rt?s3         c@sdkZdkZeiieidZeiieo{eiidpkxheieD]SZ e i do=eiiee Z eii e oe eid - socket type: - SOCK_STREAM (reliable stream, e.g. TCP) - SOCK_DGRAM (datagrams, e.g. UDP) For request-based servers (including socket-based): - client address verification before further looking at the request (This is actually a hook for any processing that needs to look at the request before anything else, e.g. logging) - how to handle multiple requests: - synchronous (one request is handled at a time) - forking (each request is handled by a new process) - threading (each request is handled by a new thread) The classes in this module favor the server type that is simplest to write: a synchronous TCP/IP server. This is bad class design, but save some typing. (There's also the issue that a deep class hierarchy slows down method lookups.) There are five classes in an inheritance diagram, four of which represent synchronous servers of four types: +------------+ | BaseServer | +------------+ | v +-----------+ +------------------+ | TCPServer |------->| UnixStreamServer | +-----------+ +------------------+ | v +-----------+ +--------------------+ | UDPServer |------->| UnixDatagramServer | +-----------+ +--------------------+ Note that UnixDatagramServer derives from UDPServer, not from UnixStreamServer -- the only difference between an IP and a Unix stream server is the address family, which is simply repeated in both unix server classes. Forking and threading versions of each type of server can be created using the ForkingServer and ThreadingServer mix-in classes. For instance, a threading UDP server class is created as follows: class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass The Mix-in class must come first, since it overrides a method defined in UDPServer! Setting the various member variables also changes the behavior of the underlying server mechanism. To implement a service, you must derive a class from BaseRequestHandler and redefine its handle() method. You can then run various versions of the service by combining one of the server classes with your request handler class. The request handler class must be different for datagram or stream services. This can be hidden by using the request handler subclasses StreamRequestHandler or DatagramRequestHandler. Of course, you still have to use your head! For instance, it makes no sense to use a forking server if the service contains state in memory that can be modified by requests (since the modifications in the child process would never reach the initial state kept in the parent process and passed to each child). In this case, you can use a threading server, but you will probably have to use locks to avoid two requests that come in nearly simultaneous to apply conflicting changes to the server state. On the other hand, if you are building e.g. an HTTP server, where all data is stored externally (e.g. in the file system), a synchronous class will essentially render the service "deaf" while one request is being handled -- which may be for a very long time if a client is slow to reqd all the data it has requested. Here a threading or forking server is appropriate. In some cases, it may be appropriate to process part of a request synchronously, but to finish processing in a forked child depending on the request data. This can be implemented by using a synchronous server and doing an explicit fork in the request handler class handle() method. Another approach to handling multiple simultaneous requests in an environment that supports neither threads nor fork (or where these are too expensive or inappropriate for the service) is to maintain an explicit table of partially finished requests and to use select() to decide which request to work on next (or whether to handle a new incoming request). This is particularly important for stream services where each client can potentially be connected for a long time (if threads or subprocesses cannot be used). Future work: - Standard classes for Sun RPC (which uses either UDP or TCP) - Standard mix-in classes to implement various authentication and encryption schemes - Standard framework for select-based multiplexing XXX Open problems: - What to do with out-of-band data? BaseServer: - split generic "request" functionality out into BaseServer class. Copyright (C) 2000 Luke Kenneth Casson Leighton example: read entries from a SQL database (requires overriding get_request() to return a table entry from the database). entry is processed by a RequestHandlerClass. s0.4Nt TCPServert UDPServertForkingUDPServertForkingTCPServertThreadingUDPServertThreadingTCPServertBaseRequestHandlertStreamRequestHandlertDatagramRequestHandlertThreadingMixInt ForkingMixIntAF_UNIXtUnixStreamServertUnixDatagramServertThreadingUnixStreamServertThreadingUnixDatagramServert BaseServercBshtZdZdZdZdZdZdZdZdZ dZ d Z d Z RS( s9Base class for server classes. Methods for the caller: - __init__(server_address, RequestHandlerClass) - serve_forever() - handle_request() # if you do not use serve_forever() - fileno() -> int # for select() Methods that may be overridden: - server_bind() - server_activate() - get_request() -> request, client_address - verify_request(request, client_address) - server_close() - process_request(request, client_address) - close_request(request) - handle_error() Methods for derived classes: - finish_request(request, client_address) Class variables that may be overridden by derived classes or instances: - address_family - socket_type - allow_reuse_address Instance variables: - RequestHandlerClass - socket cCs||_||_dS(s/Constructor. May be extended, do not override.N(tserver_addresstselftRequestHandlerClass(RRR((t"/usr/lib/python2.4/SocketServer.pyt__init__s cCsdS(sSCalled by constructor to activate the server. May be overridden. N((R((Rtserver_activatescCsx|iqWdS(s,Handle one request at a time until doomsday.iN(Rthandle_request(R((Rt serve_foreverscCsy|i\}}Wntij o dSnX|i||o?y|i||Wq|i|||i |qXndS(s&Handle one request, possibly blocking.N( Rt get_requesttrequesttclient_addresstsocketterrortverify_requesttprocess_requestt handle_errort close_request(RRR((RRs cCstS(snVerify the request. May be overridden. Return True if we should proceed with this request. N(tTrue(RRR((RRscCs!|i|||i|dS(sVCall finish_request. Overridden by ForkingMixIn and ThreadingMixIn. N(Rtfinish_requestRRR!(RRR((RRscCsdS(sDCalled to clean-up the server. May be overridden. N((R((Rt server_closescCs|i|||dS(s8Finish one request by instantiating RequestHandlerClass.N(RRRR(RRR((RR#scCsdS(s)Called to clean up an individual request.N((RR((RR!scCs2ddGHdG|GHdk}|iddGHdS(stHandle an error gracefully. May be overridden. The default is to print a traceback and continue. t-i(s4Exception happened during processing of request fromN(Rt tracebackt print_exc(RRRR&((RR s   ( t__name__t __module__t__doc__RRRRRRR$R#R!R (((RRs &       cBsktZdZeiZeiZdZe Z dZ dZ dZ dZdZdZdZRS( sBase class for various socket-based server classes. Defaults to synchronous IP stream (i.e., TCP). Methods for the caller: - __init__(server_address, RequestHandlerClass) - serve_forever() - handle_request() # if you don't use serve_forever() - fileno() -> int # for select() Methods that may be overridden: - server_bind() - server_activate() - get_request() -> request, client_address - verify_request(request, client_address) - process_request(request, client_address) - close_request(request) - handle_error() Methods for derived classes: - finish_request(request, client_address) Class variables that may be overridden by derived classes or instances: - address_family - socket_type - request_queue_size (only for stream sockets) - allow_reuse_address Instance variables: - server_address - RequestHandlerClass - socket icCsFti|||ti|i|i|_|i|i dS(s/Constructor. May be extended, do not override.N( RRRRRRtaddress_familyt socket_typet server_bindR(RRR((RREs   cCsA|io |iititidn|ii|idS(sOCalled by constructor to bind the socket. May be overridden. iN(Rtallow_reuse_addressRt setsockoptt SOL_SOCKETt SO_REUSEADDRtbindR(R((RR-Ms  cCs|ii|idS(sSCalled by constructor to activate the server. May be overridden. N(RRtlistentrequest_queue_size(R((RRWscCs|iidS(sDCalled to clean-up the server. May be overridden. N(RRtclose(R((RR$_scCs |iiS(sMReturn socket file number. Interface required by select(). N(RRtfileno(R((RR6gscCs |iiS(sYGet the request and client address from the socket. May be overridden. N(RRtaccept(R((RRoscCs|idS(s)Called to clean up an individual request.N(RR5(RR((RR!ws(R(R)R*RtAF_INETR+t SOCK_STREAMR,R4tFalseR.RR-RR$R6RR!(((RRs )       cBs>tZdZeZeiZdZdZ dZ dZ RS(sUDP server class.i cCs.|ii|i\}}||if|fS(N(RRtrecvfromtmax_packet_sizetdatat client_addr(RR=R>((RRscCsdS(N((R((RRscCsdS(N((RR((RR!s( R(R)R*R:R.Rt SOCK_DGRAMR,R<RRR!(((RR|s    cBs,tZdZeZdZdZdZRS(s5Mix-in class to handle each request in a new process.i(cCsx|iot|i|ijo ti}nd}ytid|\}}Wnti j o d}nX|pPn|ii |qWdS(s+Internal routine to wait for died children.iN( Rtactive_childrentlent max_childrentostWNOHANGtoptionstwaitpidtpidtstatusRtNonetremove(RRHRGRE((Rtcollect_childrens   cCs|iti}|oB|idjo g|_n|ii||i|dSnQy!|i ||ti dWn,z|i ||Wdti dXnXdS(s-Fork a new subprocess to process the request.Nii(RRKRCtforkRGR@RItappendR!RR#Rt_exitR (RRRRG((RRs"    (R(R)R*RIR@RBRKR(((RR s  cBs&tZdZeZdZdZRS(s4Mix-in class to handle each request in a new thread.cCsLy!|i|||i|Wn$|i|||i|nXdS(sgSame as in BaseServer but as a thread. In addition, exception handling is done here. N(RR#RRR!R (RRR((Rtprocess_request_threadscCsSdk}|id|id||f}|io|idn|i dS(s*Start a new thread to process the request.Nttargettargsi( t threadingtThreadRRORRtttdaemon_threadst setDaemontstart(RRRRRRT((RRs  (R(R)R*R:RUROR(((RR s  cBstZRS(N(R(R)(((RRscBstZRS(N(R(R)(((RRscBstZRS(N(R(R)(((RRscBstZRS(N(R(R)(((RRscBstZeiZRS(N(R(R)RR R+(((RR scBstZeiZRS(N(R(R)RR R+(((RR scBstZRS(N(R(R)(((RRscBstZRS(N(R(R)(((RRscBs2tZdZdZdZdZdZRS(sBase class for request handler classes. This class is instantiated for each request to be handled. The constructor sets the instance variables request, client_address and server, and then calls the handle() method. To implement a specific service, all you need to do is to derive a class which defines a handle() method. The handle() method can find the request as self.request, the client address as self.client_address, and the server (in case it needs access to per-server information) as self.server. Since a separate instance is created for each request, the handle() method can define arbitrary other instance variariables. cCsN||_||_||_z"|i|i|iWddt_ XdS(N( RRRtservertsetupthandletfinishRItsyst exc_traceback(RRRRX((RRs     cCsdS(N((R((RRYscCsdS(N((R((RRZscCsdS(N((R((RR[s(R(R)R*RRYRZR[(((RRs   cBs,tZdZdZdZdZdZRS(s4Define self.rfile and self.wfile for stream sockets.iicCsF|i|_|iid|i|_|iid|i|_dS(Ntrbtwb(RRt connectiontmakefiletrbufsizetrfiletwbufsizetwfile(R((RRY.s cCs<|iip|iin|ii|iidS(N(RRetclosedtflushR5Rc(R((RR[3s  (R(R)R*RbRdRYR[(((RR s   cBs tZdZdZdZRS(s6Define self.rfile and self.wfile for datagram sockets.cCsFdk}|i\|_|_|i|i|_|i|_dS(N(tStringIORRtpacketRRcRe(RRh((RRYAs cCs#|ii|ii|idS(N(RRtsendtoRetgetvalueR(R((RR[Gs(R(R)R*RYR[(((RR:s  (R*t __version__RR\RCt__all__thasattrtextendRRRR R RRRRR R RRRRR(R RRRRmRR RlRRR R\RR RRRCRRRR((Rt?xs0    'j//c@s}dZydklZWnej o dZnXdgZdZdfdYZdZedjo endS( s File-like objects that read from or write to a string buffer. This implements (nearly) all stdio methods. f = StringIO() # ready for writing f = StringIO(buf) # ready for reading f.close() # explicitly release resources held flag = f.isatty() # always false pos = f.tell() # get current position f.seek(pos) # set current position f.seek(pos, mode) # mode 0: absolute; 1: relative; 2: relative to EOF buf = f.read() # read until EOF buf = f.read(n) # read up to n bytes buf = f.readline() # read until end of line ('\n') or EOF list = f.readlines()# list of f.readline() results until EOF f.truncate([size]) # truncate file at to at most size (default: current pos) f.write(buf) # write at current position f.writelines(list) # for line in list: f.write(line) f.getvalue() # return whole file's contents as a string Notes: - Using a real file is often faster (but less convenient). - There's also a much faster implementation in C, called cStringIO, but it's not subclassable. - fileno() is left unimplemented so that code which uses it triggers an exception early. - Seeking far beyond EOF and then writing will insert real null bytes that occupy space in the buffer. - There's a simple test set (see end of this file). (sEINVALitStringIOcCs|o tdndS(NsI/O operation on closed file(tclosedt ValueError(R((t/usr/lib/python2.4/StringIO.pyt_complain_ifclosed&scBstZdZddZdZdZdZdZddZd Z d d Z e d Z dd Z e dZdZdZdZdZRS(sclass StringIO([buffer]) When a StringIO object is created, it can be initialized to an existing string by passing the string to the constructor. If no string is given, the StringIO will start empty. The StringIO object can accept either Unicode or 8-bit strings, but mixing the two may take some care. If both are used, 8-bit strings that cannot be interpreted as 7-bit ASCII (that use the 8th bit) will cause a UnicodeError to be raised when getvalue() is called. tcCs`t|tpt|}n||_t||_g|_d|_t|_ d|_ dS(Ni( t isinstancetbuft basestringtstrtselftlentbuflisttpostFalseRt softspace(R R((Rt__init__6s    cCs|S(N(R (R ((Rt__iter__AscCs5|io tn|i}|p tn|S(s_A file object is its own iterator, for example iter(f) returns f (unless f is closed). When a file is used as an iterator, typically in a for loop (for example, for line in f: print line), the next() method is called repeatedly. This method returns the next input line, or raises StopIteration when EOF is hit. N(R Rt StopIterationtreadlinetr(R R((RtnextDs    cCs'|ipt|_|`|`ndS(s Free the memory buffer. N(R RtTrueRR (R ((RtcloseRs  cCst|itS(s_Returns False because StringIO objects are not connected to a tty-like device. N(RR RR(R ((RtisattyYs icCst|i|io(|idi|i7_g|_n|djo||i7}n|djo||i7}nt d||_dS(sSet the file's current position. The mode argument is optional and defaults to 0 (absolute file positioning); other values are 1 (seek relative to the current position) and 2 (seek relative to the file's end). There is no return value. RiiiN( RR RR RtjointmodeR R tmax(R R R((Rtseek`s     cCst|i|iS(s#Return the file's current position.N(RR RR (R ((Rttellss icCst|i|io(|idi|i7_g|_n|djo |i}nt |i ||i}|i|i |!}||_ |S(sERead at most size bytes from the file (less if the read hits EOF before obtaining size bytes). If the size argument is negative or omitted, read all data until EOF is reached. The bytes are returned as a string object. An empty string is returned when EOF is encountered immediately. RiN( RR RR RRtnR tnewpostminR R(R RRR((Rtreadxs      cCst|i|io(|idi|i7_g|_n|iid|i}|djo |i }n |d}|dj o)|i||jo|i|}qn|i|i|!}||_|S(s$Read one entire line from the file. A trailing newline character is kept in the string (but may be absent when a file ends with an incomplete line). If the size argument is present and non-negative, it is a maximum byte count (including the trailing newline) and an incomplete line may be returned. An empty string is returned only when EOF is encountered immediately. Note: Unlike stdio's fgets(), the returned string contains null characters ('') if they occurred in the input. Rs iiN(RR RR RRtfindR tiR RtlengthtNoneR(R R$R#RR((RRs         cCswd}g}|i}xX|oP|i||t|7}d|jo |jnoPn|i}qW|S(s'Read until EOF using readline() and return a list containing the lines thus read. If the optional sizehint argument is present, instead of reading up to EOF, whole lines totalling approximately sizehint bytes (or more to accommodate a final whole line). iN(ttotaltlinesR RtlinetappendR tsizehint(R R*R'R(R&((Rt readliness  cCst|i|djo |i}n>|djottdn||ijo ||_n|i| |_ ||_ dS(sTruncate the file's size. If the optional size argument is present, the file is truncated to (at most) that size. The size defaults to the current position. The current file position is not changed unless the position is beyond the new file size. If the specified size exceeds the file's current size, the file remains unchanged. isNegative size not allowedN( RR RtsizeR%R tIOErrortEINVALtgetvalueRR (R R,((Rttruncates      cCsrt|i|pdSnt|tpt|}n|i}|i }||jo2|i i ||t ||_ |_dSn||jo"|i i d|||}n|t |}||jom|i o|idi|i 7_n|i| ||i|g|_ d|_||jo |}q\n|i i ||}||_ ||_dS(sGWrite a string to the file. There is no return value. NtR(RR RtsRRR R tsposR tslenR R)RRR(R R2R4R3R((Rtwrites6            cCs(|i}x|D]}||qWdS(sWrite a sequence of strings to the file. The sequence can be any iterable object producing strings, typically a list of strings. There is no return value. (The name is intended to match readlines(); writelines() does not add line separators.) N(R R5titerableR((R R6R5R(((Rt writeliness  cCst|idS(s"Flush the internal buffer N(RR R(R ((RtflushscCs9|io(|idi|i7_g|_n|iS(s Retrieve the entire contents of the "file" at any time before the StringIO object's close() method is called. The StringIO object can accept either Unicode or 8-bit strings, but mixing the two may take some care. If both are used, 8-bit strings that cannot be interpreted as 7-bit ASCII (that use the 8th bit) will cause a UnicodeError to be raised when getvalue() is called. RN(R R RR(R ((RR/s   (t__name__t __module__t__doc__RRRRRRRR!R%RR+R0R5R7R8R/(((RR*s            ! c Csdk}|ido|id}nd}t|di}t|di}t}x|d D]}|i |qlW|i |d|i |jo tdn|i}dG|GH|it|d|i |d|iddGt|iGHd G|iGH|i}d Gt|GH|it| d|it|}||jo td n|it|d|i}|d }|i|it||i}||jo td ndGt|GdGHdG|iGH|i|jo tdn|i|d|idddG|iGH|i|djo tdn|idS(Nis /etc/passwdRis write faileds File length =is First line =s Position =s Second line =sbad result after seek backis#bad result after seek back from EOFtReads more liness bad lengthisTruncated length =struncate did not adjust length(tsystargvtfiletopenR+R'R!ttextRtfR(R5R7R/t RuntimeErrorRR$RR treprRtline2tlistR0R( RBRAR'RER=RFR$R?R(((RttestsV                 t__main__N( R;terrnoR.t ImportErrort__all__RRRGR9(RKRRGRR.((Rt?s    - c@sdZZZdZZZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)d&Z*d'Z+d(Z,d)Z-d*Z.d+Z/d,Z0d-Z1d.Z2d/Z3d0Z4d1Z5d2Z6d3Z7d4Z8d5Z9d6Z:d7Z;d8Z<d9Z=d:Z>d;Z?d<Z@d=ZAd>ZBd?ZCd@ZDdAZEdBZFdCZGdDZHdEZIdFZJdGZKdHZLdIS(Jiitntstwtetnwtswtnetsetnstewtnsewtcentertnonetxtytbothtleftttoptrighttbottomtraisedtsunkentflattridgetgroovetsolidt horizontaltverticaltnumerictchartwordtbaselinetinsidetoutsidetsels sel.firstssel.lasttendtinserttcurrenttanchortalltnormaltdisabledtactivethiddentcascadet checkbuttontcommandt radiobuttont separatortsingletbrowsetmultipletextendedtdotboxt underlinetpieslicetchordtarctfirsttlasttbuttt projectingtroundtbeveltmitertmovetotscrolltunitstpagesN(MtNOtFALSEtOFFtYEStTRUEtONtNtStWtEtNWtSWtNEtSEtNStEWtNSEWtCENTERtNONEtXtYtBOTHtLEFTtTOPtRIGHTtBOTTOMtRAISEDtSUNKENtFLATtRIDGEtGROOVEtSOLIDt HORIZONTALtVERTICALtNUMERICtCHARtWORDtBASELINEtINSIDEtOUTSIDEtSELt SEL_FIRSTtSEL_LASTtENDtINSERTtCURRENTtANCHORtALLtNORMALtDISABLEDtACTIVEtHIDDENtCASCADEt CHECKBUTTONtCOMMANDt RADIOBUTTONt SEPARATORtSINGLEtBROWSEtMULTIPLEtEXTENDEDtDOTBOXt UNDERLINEtPIESLICEtCHORDtARCtFIRSTtLASTtBUTTt PROJECTINGtROUNDtBEVELtMITERtMOVETOtSCROLLtUNITStPAGES(MRRoRRuRbR\RRRhRwRlRR}RURNReRIRRZRWRiRVR`RERRQRgRzRRRRSRRsRORaR_RRGRfRqRdRmRRRKRrRyRLRRpRRMRYRXRTRvRxRjRRJRtR]RFRkR^RPRnR~R|RR{RHR[RcRRR((t(/usr/lib/python2.4/lib-tk/Tkconstants.pyt?sc@sdZdZdkZeidjo dkZndkZeZeiZdkTdk Tydk Z e Z [ Wne j o e Z nXdZeeiZeeiZeiZeiZeiZy eiWnej oe e_nXy eiWnej oe e_nXdZy eiZWnej onXdZy eiZWnej onXdfd YZdae ad Zd Z d d Z!da"dfdYZ#de#fdYZ$de#fdYZ%de#fdYZ&de#fdYZ'ddZ(e)Z*eZ+dZ,dfdYZ-dfdYZ.dfd YZ/d!e-e/fd"YZ0e e d!dd#Z1d$fd%YZ2d&fd'YZ3d(fd)YZ4d*e-fd+YZ5d,e5e2e3e4fd-YZ6d.e5e/fd/YZ7d0e6fd1YZ8d2Z9d3Z:d4Z;d5Z<e d6Z=d7e6fd8YZ>d9e6fd:YZ?d;e6fd<YZ@d=e6fd>YZAd?e6fd@YZBdAe6fdBYZCdCe6fdDYZDdEe6fdFYZEdGe6fdHYZFdIe6fdJYZGdKe6fdLYZHdMe6fdNYZIdOe6fdPYZJdQfdRYZKdSeEfdTYZLdUfdVYZMdWeMfdXYZNdYeMfdZYZOd[ZPd\ZQd]e6fd^YZRd_e6fd`YZSdae6fdbYZTdce8fddYZUdee8fdfYZVdgZWeXdhjo eWndS(is2Wrapper functions for Tcl/Tk. Tkinter provides classes which allow the display, positioning and control of widgets. Toplevel widgets are Tk and Toplevel. Other widgets are Frame, Label, Entry, Text, Canvas, Button, Radiobutton, Checkbutton, Scale, Listbox, Scrollbar, OptionMenu, Spinbox LabelFrame and PanedWindow. Properties of the widgets are specified with keyword arguments. Keyword arguments have the same name as the corresponding resource under Tk. Widgets are positioned with one of the geometry managers Place, Pack or Grid. These managers can be called with methods place, pack, grid available in every Widget. Actions are bound to events by resources (e.g. keyword argument command) or with the method bind. Example (Hello, World): import Tkinter from Tkconstants import * tk = Tkinter.Tk() frame = Tkinter.Frame(tk, relief=RIDGE, borderwidth=2) frame.pack(fill=BOTH,expand=1) label = Tkinter.Label(frame, text="Hello, World") label.pack(fill=X, expand=1) button = Tkinter.Button(frame,text="Exit",command=tk.destroy) button.pack(side=BOTTOM) tk.mainloop() s$Revision: 39220 $Ntwin32(t*icCsff}xY|D]Q}t|ttfjo|t|}q |dj o||f}q q W|S(sInternal function.N(tresttupletitemttypet TupleTypetListTypet_flattentNone(RRR((t$/usr/lib/python2.4/lib-tk/Tkinter.pyR@s cCst|tjo|Snt|ttfjo|Snh}xst|D]e}y|i|WqOt t fj o9}dG|GHx)|i D]\}}|||R?((R ttrace_variablescCs3|iidd|i|||ii|dS(sDelete the trace callback for a variable. MODE is one of "r", "w", "u" for read, write, undefine. CBNAME is the name of the callback returned from trace_variable or trace. R;tvdeleteN(R*R-R@R0RAR?R+t deletecommand(R*RAR?((R t trace_vdeletescCs4t|ii|ii|iidd|iS(s&Return all trace callback information.R;tvinfoN(tmapR*R-tsplitt splitlistR@R0(R*((R t trace_vinfos(RRRR2R R3R5R6R1R:RBR;RERJ(((R R&s       t StringVarcBs)tZdZdZedZdZRS(s#Value holder for strings variables.R'cCsti||dS(sKConstruct a string variable. MASTER can be given as master widget.N(R&R3R*R)(R*R)((R R3scCs7|ii|i}t|to|Snt|S(s#Return value of variable as string.N(R*R-R9R0R8t isinstancet basestringtstr(R*R8((R R:s (RRRR2R R3R:(((R RKs  tIntVarcBs2tZdZdZedZdZdZRS(s#Value holder for integer variables.icCsti||dS(sMConstruct an integer variable. MASTER can be given as master widget.N(R&R3R*R)(R*R)((R R3scCs0t|tot|}nti||S(s;Set the variable to value, converting booleans to integers.N(RLR8tbooltintR&R1R*(R*R8((R R1scCst|ii|iS(s/Return the value of the variable as an integer.N(tgetintR*R-R9R0(R*((R R:s(RRRR2R R3R1R:(((R ROs   t DoubleVarcBs)tZdZdZedZdZRS(s!Value holder for float variables.f0.0cCsti||dS(sLConstruct a float variable. MASTER can be given as a master widget.N(R&R3R*R)(R*R)((R R3scCst|ii|iS(s,Return the value of the variable as a float.N(t getdoubleR*R-R9R0(R*((R R: s(RRRR2R R3R:(((R RSs  t BooleanVarcBs)tZdZdZedZdZRS(s#Value holder for boolean variables.tfalsecCsti||dS(sNConstruct a boolean variable. MASTER can be given as a master widget.N(R&R3R*R)(R*R)((R R3scCs|ii|ii|iS(s+Return the value of the variable as a bool.N(R*R-t getbooleanR9R0(R*((R R:s(RRRR2R R3R:(((R RU s  cCstii|dS(sRun the main loop of Tcl.N(RR,tmainlooptn(RY((R RXscCstii|S(s1Convert true and false to integer values 1 and 0.N(RR,RWts(RZ((R RW"stMisccBstZdZeZdZdZedZdZdZ dZ ddZ e Z ed Z ed Zdd d Zdd ZeZeZdZdZeZdZdZdZdZdZdZdZedZdZ dZ!ddZ"dZ#dZ$dZ%dZ&d Z'd!Z(d"Z)ed#Z*ed$Z+d%Z,d&Z-ed'Z.d(Z/d)Z0d*Z1d+Z2d,Z3d-Z4ed.Z*ed/Z5e5Z6ed0Z7dd1Z8dd2Z9d3Z:d4Z;d5Z<d6Z=dd7Z>d8Z?d9Z@d:ZAd;ZBd<ZCd=ZDdd>ZEd?ZFd@ZGdAZHdBZIddCZJdDZKdEZLdFZMdGZNdHZOdIZPdJZQdKZRdLZSdMZTdNZUdOZVdPZWdQZXdRZYdSZZdTZ[dUZ\dVZ]dWZ^dXZ_dYZ`ddZZad[Zbd\Zcd]Zdd^Zed_Zfd`ZgdaZhdbZidcZjddZkdeZledfZmdgdhZneeediZoedjZpeeedkZqdlZreeedmZsdnZtddoZudpZvdqZwdrZxdsZydtZzeduZ{dvZ|e|Z}edgdwZ~e~ZdxZdZdieZdZdZdZedZeZdZeZdZdZdZdgZedZeZdZeZdZeeeedZeZdZhdZeZdZedZhdZeZdZeZeedZdZdZdZedZdZdZRS(sRInternal class. Base class which defines methods common for interior widgets.cCsE|idj o1x!|iD]}|ii|qWd|_ndS(skInternal function. Delete all Tcl commands created for this widget in the Tcl interpreter.N(R*t _tclCommandsR tnameR,RD(R*R]((R tdestroy.s  cCs>|ii|y|ii|Wntj onXdS(sDInternal function. Delete the Tcl command provided in NAME.N(R*R,RDR]R\tremovet ValueError(R*R]((R RD8s cCs"|ii|iidd|S(sSet Tcl internal variable, whether the look and feel should adhere to Motif. A parameter of 1 means adhere to Motif (e.g. no color change if mouse passes over slider). Returns the set value.R1ttk_strictMotifN(R*R,RWR@tboolean(R*Rb((R RaBscCs|iiddS(sDChange the color scheme to light brown as used in Tk 3.6 and before.t tk_bisqueN(R*R,R@(R*((R RcKscOs.|iidt|t|idS(s Set a new color scheme for all widget elements. A single color as argument will cause that all colors of Tk widget elements are derived from this. Alternatively several keyword parameters and its associated colors can be given. The following keywords are valid: activeBackground, foreground, selectColor, activeForeground, highlightBackground, selectBackground, background, highlightColor, selectForeground, disabledForeground, insertBackground, troughColor.t tk_setPaletteN(s tk_setPalette(R*R,R@RtargstkwR(R*ReRf((R RdNs cGsdS(s)Do not use. Needed in Tk 3.6 and earlier.N((R*Re((R t tk_menuBar[sR(cCs|iidd|dS(sWait until the variable is modified. A parameter of type IntVar, StringVar, DoubleVar or BooleanVar must be given.ttkwaitR<N(R*R,R@R](R*R]((R t wait_variable^scCs4|djo |}n|iidd|idS(sQWait until a WIDGET is destroyed. If no parameter is given self is used.RhtwindowN(RjR R*R,R@t_w(R*Rj((R t wait_windowes  cCs4|djo |}n|iidd|idS(sxWait until the visibility of a WIDGET changes (e.g. it appears). If no parameter is given self is used.Rht visibilityN(RjR R*R,R@Rk(R*Rj((R twait_visibilityls  t1cCs|ii||dS(sSet Tcl variable NAME to VALUE.N(R*R,tsetvarR]R8(R*R]R8((R RptscCs|ii|S(s"Return value of Tcl variable NAME.N(R*R,tgetvarR](R*R]((R RqwscCs|ii|S(sPReturn a boolean value for Tcl boolean values true and false given as parameter.N(R*R,RWRZ(R*RZ((R RW|scCs|iid|idS(sDirect input focus to this widget. If the application currently does not have the focus this widget will get the focus if the application gets the focus through the window manager.tfocusN(R*R,R@Rk(R*((R t focus_setscCs|iidd|idS(stDirect input focus to this widget even if the application does not have the focus. Use with caution!Rrs-forceN(R*R,R@Rk(R*((R t focus_forcescCs<|iid}|djp| odSn|i|S(sReturn the widget which has currently the focus in the application. Use focus_displayof to allow working with several displays. Return None if application does not have the focus.RrtnoneN(R*R,R@R]R t _nametowidget(R*R]((R t focus_gets cCsE|iidd|i}|djp| odSn|i|S(sReturn the widget which has currently the focus on the display where this widget is located. Return None if the application does not have the focus.Rrs -displayofRuN(R*R,R@RkR]R Rv(R*R]((R tfocus_displayofs cCsE|iidd|i}|djp| odSn|i|S(syReturn the widget which would have the focus if top level for this widget gets the focus from the window manager.Rrs-lastforRuN(R*R,R@RkR]R Rv(R*R]((R t focus_lastfors cCs|iiddS(sXThe widget under mouse will get automatically focus. Can not be disabled easily.ttk_focusFollowsMouseN(R*R,R@(R*((R RzscCs4|iid|i}|pdSn|i|S(snReturn the next widget in the focus order which follows widget which has currently the focus. The focus order first goes to the next child, then to the children of the child recursively and then to the next sibling which is higher in the stacking order. A widget is omitted if it has the takefocus resource set to 0.t tk_focusNextN(R*R,R@RkR]R Rv(R*R]((R R{s cCs4|iid|i}|pdSn|i|S(sHReturn previous widget in the focus order. See tk_focusNext for details.t tk_focusPrevN(R*R,R@RkR]R Rv(R*R]((R R|s cGso|p|iid|nNg}||||d}|i|}|i ||iid||SdS(sCall function once after given time. MS specifies the time in milliseconds. FUNC gives the function which shall be called. Additional parameters are given as parameters to the function call. Return identifier to cancel scheduling with after_cancel.taftercCsAz||Wdy|i|dWntj onXXdS(Ni(tfuncReR*RDttmptTclError(R~ReR*R((R tcallitsN( R~R*R,R@tmsRReRR=R]tappend(R*RR~ReRRR]((R R}s cGs|id||S(sCall FUNC once if the Tcl main loop has no event to process. Return an identifier to cancel the scheduling with after_cancel.tidleN(R*R}R~Re(R*R~Re((R t after_idlescCsoy?|iidd|}|ii|d}|i|Wntj onX|iidd|dS(sCancel scheduling of function identified with ID. Identifier returned by after or after_idle must be given as first parameter.R}tinfoitcancelN( R*R,R@tidtdataRItscriptRDR(R*RRR((R t after_cancelsicCs!|iid|i|dS(sRing a display's bell.tbellN(sbell(R*R,R@t _displayoft displayof(R*R((R RscKsB|idp|i|d|idp|i|d where MODIFIER is one of Control, Mod2, M2, Shift, Mod3, M3, Lock, Mod4, M4, Button1, B1, Mod5, M5 Button2, B2, Meta, M, Button3, B3, Alt, Button4, B4, Double, Button5, B5 Triple, Mod1, M1. TYPE is one of Activate, Enter, Map, ButtonPress, Button, Expose, Motion, ButtonRelease FocusIn, MouseWheel, Circulate, FocusOut, Property, Colormap, Gravity Reparent, Configure, KeyPress, Key, Unmap, Deactivate, KeyRelease Visibility, Destroy, Leave and DETAIL is the button number for ButtonPress, ButtonRelease and DETAIL is the Keysym for KeyPress and KeyRelease. Examples are for pressing Control and mouse button 1 or for pressing A and the Alt key (KeyPress can be omitted). An event pattern can also be a virtual event of the form <> where AString can be arbitrary. This event can be generated by event_generate. If events are concatenated they must appear shortly after each other. FUNC will be called if the event sequence occurs with an instance of Event as argument. If the return value of FUNC is "break" no further bound function is invoked. An additional boolean parameter ADD specifies whether FUNC will be called additionally to the other bound function or whether it will replace the previous function. Bind will return an identifier to allow deletion of the bound function with unbind without memory leak. If FUNC or SEQUENCE is omitted the bound function or list of bound events are returned.tbindN(R*R6RkR1R~R(R*R1R~R((R R7~s%cCs8|iid|i|d|o|i|ndS(sWUnbind for this widget for event SEQUENCE the function identified with FUNCID.R7R'N(R*R,R@RkR1R4RD(R*R1R4((R tunbindscCs|id|||dS(sBind to all widgets at an event SEQUENCE a call to function FUNC. An additional boolean parameter ADD specifies whether FUNC will be called additionally to the other bound function or whether it will replace the previous function. See bind for the return value.R7talliN(sbindsall(R*R6R1R~R(R*R1R~R((R tbind_allscCs|iidd|ddS(s8Unbind for all widgets for event SEQUENCE all functions.R7R9R'N(R*R,R@R1(R*R1((R t unbind_allscCs|id|f|||dS(s=Bind to widgets with bindtag CLASSNAME at event SEQUENCE a call of function FUNC. An additional boolean parameter ADD specifies whether FUNC will be called additionally to the other bound function or whether it will replace the previous function. See bind for the return value.R7iN(R*R6RR1R~R(R*RR1R~R((R t bind_classscCs|iid||ddS(sYUnbind for a all widgets with bindtag CLASSNAME for event SEQUENCE all functions.R7R'N(R*R,R@RR1(R*RR1((R t unbind_classscCs|ii|dS(sCall the mainloop of Tk.N(R*R,RXRY(R*RY((R RXscCs|iidS(s8Quit the Tcl interpreter. All widgets will be destroyed.N(R*R,tquit(R*((R R>scCs.|o#ttt|ii|SndS(sInternal function.N(RRRGRRR*R,RI(R*R((R RscCs.|o#ttt|ii|SndS(sInternal function.N(RRRGRTR*R,RI(R*R((R t _getdoublesscCs|o|ii|SndS(sInternal function.N(RR*R,RW(R*R((R t _getbooleanscCs7|od|fSn|djod|ifSnfS(sInternal function.s -displayofN(RR R*Rk(R*R((R Rs  cCs|ot||f}n t|}f}x~|iD]p\}}|dj oW|ddjo|d }nt|o|i |}n|d||f}q<q<W|S(sInternal function.it_t-N( RfRRRRRRR tcallableR*R=(R*RRfRRR((R Rs    cCs|}|ddjo|i}|d}nx^|oV|id}|djo|| ||d}}nd}|i|}|}q4W|S(sPReturn the Tkinter instance of a widget identified by its Tcl name NAME.it.iR'N(R*twR]t_roottfindtittailR(R*R]RHRIRE((R t nametowidgets    cCst|||i}tt|}y |i }Wnt j onXy||i }Wnt j onX|i i |||o1|idjo g|_n|ii|n|S(sReturn a newly created Tcl function. If this function is called, the Python function FUNC will be executed. An optional function SUBST can be given which will be executed before FUNC.N(t CallWrapperR~tsubstR*t__call__tfR.RR]tim_funcRRR,t createcommandR3R\R R(R*R~RLR3R]RN((R R=s"  cCs%|}x|io |i}q W|S(sInternal function.N(R*RER)(R*RE((R RFs  s%#s%bs%fs%hs%ks%ss%ts%ws%xs%ys%As%Es%Ks%Ns%Ws%Ts%Xs%Ys%Dt cGst|t|ijo|Sn|ii}t}d}|\}}}}}}}}}}}}}} } } } } }t}|||_|||_y|||_ Wnt!j onX|||_"|||_#|||_$|||_%|||_&|||_|||_||_'y|||_(Wnt!j onX||_)|| |_*| |_+y|i,| |_-Wnt.j o| |_-nX|| |_/|| |_0y|||_1Wnt2j od|_1nX|fS(sInternal function.cCs,yt|SWntj o |SnXdS(s?Tk changed behavior in 8.4.2, returning "??" rather more often.N(RQRZR`(RZ((R t getint_event!s iN(3tlenReR*t _subst_formatR,RWRQRRRRtnsigntbRNthRRZRRERR)tAtEtKtNtWtTtXtYtDRtetserialtnumRrRRtkeycodetstatettimeR&tchart send_eventtkeysymt keysym_numRRvtwidgetRtx_rootty_roottdeltaR`(R*ReRRRWRURXRYR`RZR[R]R\R_R^RVRaRNRWRRRRZRRER)R((R R2sP  ?    cCsIdk}|i|i|i}}}|i}|i |||dS(sInternal function.N( tsystexc_typet exc_valuet exc_tracebacktexctvalttbR*RFtroottreport_callback_exception(R*RsRtRuRoRv((R t_report_exceptionTs   cCs>|ot||f}n|ot|}n|djokh}xZ|ii|iit|i |fD]+}|ddf|d||dd}sRzN(RGR*R,RHR@Rk(R*((R tkeys{s cCs|iS(s+Return the window path name of this widget.N(R*Rk(R*((R R6st_noarg_cCsV|tijo&|i|iidd|iSn|iidd|i|dS(sSet or get the status for propagation of geometry information. A boolean argument specifies whether the geometry information of the slaves will determine the size of this widget. If no argument is given the current setting will be returned. tpackt propagateN(tflagR[RR*R@R,R@Rk(R*R((R tpack_propagates&cCs1t|i|ii|iidd|iS(sHReturn a list of all slaves of this widget in its packing order.RtslavesN(RGR*RvR,RIR@Rk(R*((R t pack_slavess cCs1t|i|ii|iidd|iS(sHReturn a list of all slaves of this widget in its packing order.tplaceRN(RGR*RvR,RIR@Rk(R*((R t place_slavess cCsdd|if}|dj o!|dj o|||f}n|dj o!|dj o|||f}n|i|i i |pdS(sReturn a tuple of integer coordinates for the bounding box of this widget controlled by the geometry manager grid. If COLUMN, ROW is given the bounding box applies from the cell with row and column 0 to the specified cell. If COL2 and ROW2 are given the bounding box starts at that cell. The returned integers specify the offset of the upper left corner in the master widget and the width and height. tgridtbboxN( R*RkRetcolumnR trowtcol2trow2RR,R@(R*RRRRRe((R t grid_bboxs c Cst|tjoS| oK|ddjo|d }n|d djod|}n|f} n|i||} | p|iid||i |}|ii |} h} xtdt| dD]f}| |d}| |d}|p d }n*d|jot|}n t|}|| |     % cKs|id|||S(sConfigure column INDEX of a grid. Valid resources are minsize (minimum size of the column), weight (how much does additional space propagate to this column) and pad (how much space to let additionally).tcolumnconfigureN(R*RRRRf(R*RRRf((R tgrid_columnconfigurescCs/|i|iidd|i||pdS(sReturn a tuple of column and row which identify the cell at which the pixel at position X and Y inside the master widget is located.RtlocationN(R*RR,R@RkRR)R (R*RR)((R t grid_locationscCsV|tijo&|i|iidd|iSn|iidd|i|dS(sSet or get the status for propagation of geometry information. A boolean argument specifies whether the geometry information of the slaves will determine the size of this widget. If no argument is given, the current setting will be returned. RRN(RR[RR*R@R,R@Rk(R*R((R tgrid_propagates&cKs|id|||S(sConfigure row INDEX of a grid. Valid resources are minsize (minimum size of the row), weight (how much does additional space propagate to this row) and pad (how much space to let additionally).t rowconfigureN(R*RRRRf(R*RRRf((R tgrid_rowconfigurescCs)|i|iidd|ipdS(s<Return a tuple of the number of column and rows in the grid.RtsizeN(R*RR,R@RkR (R*((R t grid_sizescCsf}|dj o|d|f}n|dj o|d|f}nt|i|ii|ii dd|i f|S(sHReturn a list of all slaves of this widget in its packing order.s-rows-columnRRN( ReRR RRGR*RvR,RIR@Rk(R*RRRe((R t grid_slavess   cGs'dd|f|}|ii|dS(sBind a virtual event VIRTUAL (of the form <>) to an event SEQUENCE such that the virtual event is triggered whenever SEQUENCE occurs.teventRN(tvirtualt sequencesReR*R,R@(R*RRRe((R t event_addscGs'dd|f|}|ii|dS(s-Unbind a virtual event VIRTUAL from SEQUENCE.RtdeleteN(RRReR*R,R@(R*RRRe((R t event_deletescKs`dd|i|f}x4|iD]&\}}|d|t|f}q"W|i i |dS(sGenerate an event SEQUENCE. Additional keyword arguments specify parameter of the event (e.g. x, y, rootx, rooty).Rtgenerates-%sN( R*RkR1ReRfRRRRNR,R@(R*R1RfReRR((R tevent_generates  cCs"|ii|iidd|S(suReturn a list of all virtual events or the information about the SEQUENCE bound to the virtual event VIRTUAL.RRN(R*R,RIR@R(R*R((R t event_info#scCs|iiddS(s*Return a list of all existing image names.timagetnamesN(R*R,R@(R*((R t image_names+scCs|iiddS(s?Return a list of all available image types (e.g. phote bitmap).RttypesN(R*R,R@(R*((R t image_types/s(s%#s%bs%fs%hs%ks%ss%ts%ws%xs%ys%As%Es%Ks%Ns%Ws%Ts%Xs%Ys%D(RRRR R\R^RDRaRcRdRgRitwaitvarRlRnRpRqRQRRtfloatRTRWRsRrRtRwRxRyRzR{R|R}RRRRRRRRRRRRRRRRRRRRRRtliftRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR R RRRRRRRRR!R#R%R'R(R*RR,R-R6R7R8R:R;R<R=RXR>RR?R@RRRJRvR=tregisterRFRTtjoinR5R2RxRyRztconfigR{t __getitem__R}RR6RRRRRRRRRRRRRRRRRRRRRRRR(((R R['sB                                                                                        (             9            "        RKcBs tZdZdZdZRS(swInternal class. Stores function to call when some user defined Tcl function is called e.g. after an event occurred.cCs||_||_||_dS(s(Store FUNC, SUBST and WIDGET as members.N(R~R*RLRk(R*R~RLRk((R R37s  cGsfy.|io|i|}n|i|SWn1tj o}t|n|iinXdS(s3Apply first function SUBST to arguments, than FUNC.N(R*RLReR~R#RRkRx(R*ReR((R RM<s  (RRRR3RM(((R RK4s  tWmcBstZdZeeeedZeZdZeZedZeZ dZ e Z edZ e Z dZeZedZeZdZeZed ZeZeeeed ZeZed ZeZed ZeZd ZeZedZeZedZ e Z!eedZ"e"Z#edZ$e$Z%eedZ&e&Z'eedZ(e(Z)edZ*e*Z+edZ,e,Z-eedZ.e.Z/eedZ0e0Z1edZ2e2Z3edZ4e4Z5edZ6e6Z7edZ8e8Z9dZ:e:Z;RS(sAProvides functions for the communication with the window manager.c Cs.|i|iidd|i||||S(sInstruct the window manager to set the aspect ratio (width/height) of this widget to be between MINNUMER/MINDENOM and MAXNUMER/MAXDENOM. Return a tuple of the actual values if no argument is given.twmtaspectN( R*RR,R@RktminNumertminDenomtmaxNumertmaxDenom(R*RRRR((R t wm_aspectKscGs&dd|if|}|ii|S(sThis subcommand returns or sets platform specific attributes The first form returns a list of the platform specific flags and their values. The second form returns the value for the specific option. The third form sets one or more of the values. The values are as follows: On Windows, -disabled gets or sets whether the window is in a disabled state. -toolwindow gets or sets the style of the window to toolwindow (as defined in the MSDN). -topmost gets or sets whether this is a topmost window (displays above all other windows). On Macintosh, XXXXX On Unix, there are currently no special attribute values. Rt attributesN(R*RkReR,R@(R*Re((R t wm_attributesWscCs|iidd|i|S(sVStore NAME in WM_CLIENT_MACHINE property of this widget. Return current value.RtclientN(R*R,R@RkR](R*R]((R t wm_clientmscGsRt|djo |f}ndd|if|}t|i|ii|S(sStore list of window names (WLIST) into WM_COLORMAPWINDOWS property of this widget. This list contains windows whose colormaps differ from their parents. Return current list of widgets if WLIST is empty.iRtcolormapwindowsN( RStwlistR*RkReRGRvR,R@(R*RRe((R twm_colormapwindowsrs  cCs|iidd|i|S(sStore VALUE in WM_COMMAND property. It is the command which shall be used to invoke the application. Return current command if VALUE is None.RRN(R*R,R@RkR8(R*R8((R t wm_command{scCs|iidd|iS(sDeiconify this widget. If it was never mapped it will not be mapped. On Windows it will raise this widget and give it the focus.Rt deiconifyN(R*R,R@Rk(R*((R t wm_deiconifyscCs|iidd|i|S(sSet focus model to MODEL. "active" means that this widget will claim the focus itself, "passive" means that the window manager shall give the focus. Return current focus model if MODEL is None.Rt focusmodelN(R*R,R@Rktmodel(R*R((R t wm_focusmodelscCs|iidd|iS(sAReturn identifier for decorative frame of this widget if present.RtframeN(R*R,R@Rk(R*((R twm_framescCs|iidd|i|S(siSet geometry to NEWGEOMETRY of the form =widthxheight+x+y. Return current value if None is given.RRN(R*R,R@Rkt newGeometry(R*R((R t wm_geometrysc Cs.|i|iidd|i||||S(sInstruct the window manager that this widget shall only be resized on grid boundaries. WIDTHINC and HEIGHTINC are the width and height of a grid unit in pixels. BASEWIDTH and BASEHEIGHT are the number of grid units requested in Tk_GeometryRequest.RRN( R*RR,R@Rkt baseWidtht baseHeighttwidthInct heightInc(R*RRRR((R twm_gridscCs|iidd|i|S(s~Set the group leader widgets for related widgets to PATHNAME. Return the group leader of this widget if None is given.RtgroupN(R*R,R@RktpathName(R*R((R twm_groupscCs|iidd|i|S(sZSet bitmap for the iconified widget to BITMAP. Return the bitmap if None is given.Rt iconbitmapN(R*R,R@Rktbitmap(R*R((R t wm_iconbitmapscCs|iidd|iS(sDisplay widget as icon.RticonifyN(R*R,R@Rk(R*((R t wm_iconifyscCs|iidd|i|S(sVSet mask for the icon bitmap of this widget. Return the mask if None is given.RticonmaskN(R*R,R@RkR(R*R((R t wm_iconmaskscCs|iidd|i|S(sSSet the name of the icon for this widget. Return the name if None is given.RticonnameN(R*R,R@RktnewName(R*R((R t wm_iconnamescCs(|i|iidd|i||S(sSet the position of the icon of this widget to X and Y. Return a tuple of the current values of X and X if None is given.Rt iconpositionN(R*RR,R@RkRR)(R*RR)((R twm_iconpositionscCs|iidd|i|S(sgSet widget PATHNAME to be displayed instead of icon. Return the current value if None is given.Rt iconwindowN(R*R,R@RkR(R*R((R t wm_iconwindowscCs(|i|iidd|i||S(sSet max WIDTH and HEIGHT for this widget. If the window is gridded the values are given in grid units. Return the current values if None is given.RtmaxsizeN(R*RR,R@RkR&R(R*R&R((R t wm_maxsizescCs(|i|iidd|i||S(sSet min WIDTH and HEIGHT for this widget. If the window is gridded the values are given in grid units. Return the current values if None is given.RtminsizeN(R*RR,R@RkR&R(R*R&R((R t wm_minsizescCs%|i|iidd|i|S(sInstruct the window manager to ignore this widget if BOOLEAN is given with 1. Return the current value if None is given.RtoverrideredirectN(R*R@R,R@RkRb(R*Rb((R twm_overrideredirectscCs|iidd|i|S(sInstruct the window manager that the position of this widget shall be defined by the user if WHO is "user", and by its own policy if WHO is "program".Rt positionfromN(R*R,R@Rktwho(R*R((R twm_positionfromscCsEt|o|i|}n|}|iidd|i||S(sBind function FUNC to command NAME for this widget. Return the function bound to NAME if None is given. NAME could be e.g. "WM_SAVE_YOURSELF" or "WM_DELETE_WINDOW".RtprotocolN( RCR~R*R=RR,R@RkR](R*R]R~R((R t wm_protocols  cCs|iidd|i||S(syInstruct the window manager whether this width can be resized in WIDTH or HEIGHT. Both values are boolean values.Rt resizableN(R*R,R@RkR&R(R*R&R((R t wm_resizablescCs|iidd|i|S(sInstruct the window manager that the size of this widget shall be defined by the user if WHO is "user", and by its own policy if WHO is "program".RtsizefromN(R*R,R@RkR(R*R((R t wm_sizefromscCs|iidd|i|S(sQuery or set the state of this widget as one of normal, icon, iconic (see wm_iconwindow), withdrawn, or zoomed (Windows only).RReN(R*R,R@Rktnewstate(R*R((R twm_statescCs|iidd|i|S(sSet the title of this widget.RttitleN(R*R,R@RkR(R*R((R twm_titlescCs|iidd|i|S(s_Instruct the window manager that this widget is transient with regard to widget MASTER.Rt transientN(R*R,R@RkR)(R*R)((R t wm_transientscCs|iidd|iS(sWithdraw this widget from the screen such that it is unmapped and forgotten by the window manager. Re-draw it with wm_deiconify.RtwithdrawN(R*R,R@Rk(R*((R t wm_withdraws(<RRRR RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRReRRRRRR(((R RHsr                         tTkcBsetZdZdZeedddedZdZdZdZd Z d Z d Z RS( syToplevel widget of Tk which represents mostly the main window of an appliation. It has an associated Tcl interpreter.RDRiic Csd|_h|_d|_d|_|djobdk}dk} | i i |i d}| i i |\}}|djo||}qnd} ti|||| t||||_|o|in|i||dS(s@Return a new Toplevel widget on screen SCREENNAME. A new Tcl interpreter will be created. BASENAME will be used for the identification of the profile file (see readprofile). It is constructed from sys.argv[0] without extensions if None is given. CLASSNAME is the name of the widget class.iNs.pys.pycs.pyo(s.pys.pycs.pyo(R R*R)Rt _tkloadedR,tbaseNameRotostpathtbasenametargvtsplitexttextt interactivet_tkintertcreatet screenNameRt wantobjectstuseTktsynctuset_loadtkt readprofile( R*RRRR R R RoRRR((R R3 s       'cCs)|ip|ii|indS(N(R*RR,tloadtkR (R*((R R%s  cCssd|_to.ttdotidd|in|iid}|t i jot dt i |fnt |iid}|t ijot dt i|fntdjot d t tn|idjo g|_n|iid t|iid t|iid |iid tot o |an|id |idS( Nit SchedParamsit tk_versions4tk.h version (%s) doesn't match libtk.a version (%s)t tcl_versions6tcl.h version (%s) doesn't match libtcl.a version (%s)f4.0s)Tk 4.0 or higher is required; found Tk %sttkerrortexittWM_DELETE_WINDOW(R*Rt_MacOSthasattrRRR,RqRRt TK_VERSIONt RuntimeErrorRNRt TCL_VERSIONt TkVersionR\R RPR!R%RRRRR^(R*RR((R R )s,    cCsix!|iiD]}|iqW|iid|iti|t ot |jo da ndS(shDestroy this and all descendants widgets. This will end the application of this Tcl interpreter.R^N( R*RtvaluesRR^R,R@RkR[RRR (R*R((R R^Ns c BsQdk}|iido|id}n |i}|ii|d|}|ii|d|}|ii|d|}|ii|d|}hd|<} d| U|ii|o|iid|n|ii|oe|| n|ii|o|iid|n|ii|oe|| ndS(sInternal function. It reads BASENAME.tcl and CLASSNAME.tcl into the Tcl Interpreter and calls execfile on BASENAME.py and CLASSNAME.py if such a file exists in the home directory.NtHOMEs.%s.tcls.%s.pyR*sfrom Tkinter import *tsource(RtenvironRthometcurdirRRRt class_tcltclass_pyRtbase_tcltbase_pyR*tdirtisfileR,R@texecfile( R*RRR#R$R"R!RRR%((R R Ws&  cCsTdk}dk}|iid||_||_||_ |i |||dS(s6Internal function. It reports exception on sys.stderr.NsException in Tkinter callback ( t tracebackRotstderrtwriteRst last_typeRtt last_valueRutlast_tracebacktprint_exception(R*RsRtRuR(Ro((R Rwls   cCst|i|S(s3Delegate attribute access to the interpreter objectN(tgetattrR*R,tattr(R*R0((R t __getattr__ts( RRRRkR R3RR R^R RwR1(((R R s   %  cCst||||S(N(RRRRR (RRRR ((R tTclstPackcBs`tZdZhdZeZZZdZeZdZ e Z e i Z Z e iZZRS(sQGeometry manager Pack. Base class to use the methods pack_* in every widget.cKs0|iidd|if|i||dS(sPack a widget in the parent widget. Use as options: after=widget - pack it after you have packed widget anchor=NSEW (or subset) - position widget according to given direction before=widget - pack it before you will pack widget expand=bool - expand widget if parent size grows fill=NONE or X or Y or BOTH - fill widget if widget grows in=master - use master to contain this widget ipadx=amount - add internal padding in x direction ipady=amount - add internal padding in y direction padx=amount - add padding in x direction pady=amount - add padding in y direction side=TOP or BOTTOM or LEFT or RIGHT - where to add this widget. RRzN(R*R,R@RkRRRf(R*RRf((R tpack_configurescCs|iidd|idS(s:Unmap this widget and do not use it for the packing order.RtforgetN(R*R,R@Rk(R*((R t pack_forgetscCs|ii|iidd|i}h}xjtdt|dD]P}||d}||d}|d djo|i |}n|||dgD]3}|i|o||||d <||=q q W|iidd|if|i||dS(sPlace a widget in the parent widget. Use as options: in=master - master relative to which the widget is placed. x=amount - locate anchor of this widget at position x of master y=amount - locate anchor of this widget at position y of master relx=amount - locate anchor of this widget between 0.0 and 1.0 relative to width of master (1.0 is right edge) rely=amount - locate anchor of this widget between 0.0 and 1.0 relative to height of master (1.0 is bottom edge) anchor=NSEW (or subset) - position anchor according to given direction width=amount - width of this widget in pixel height=amount - height of this widget in pixel relwidth=amount - width of this widget between 0.0 and 1.0 relative to width of master (1.0 is the same width as the master) relheight=amount - height of this widget between 0.0 and 1.0 relative to height of master (1.0 is the same height as the master) bordermode="inside" or "outside" - whether to take border width of master widget into account tin_iRRzN( RRfRR*R,R@RkRR(R*RRfR((R tplace_configures cCs|iidd|idS(sUnmap this widget.RR5N(R*R,R@Rk(R*((R t place_forgetscCs|ii|iidd|i}h}xjtdt|dD]P}||d}||d}|d djo|i |}n|||RRzRR[RRRRR?R5R@RARRRRRRRRRRR(((R R=s           t BaseWidgetcBs>tZdZdZhhfdZdZfdZRS(sInternal class.cCsto)|ptp tant}q0n||_|i|_d}|i do|d}|d=n|pt t |}n||_ |i djod||_ n|i d||_ h|_|iii |i o|ii|i in||ii|i d9Z?d:Z@d;ZAd<ZBd=ZCd>ZDd?ZERS(@s?Canvas widget to display graphical elements like lines or text.cKsti||d||dS(sConstruct a canvas widget with the parent MASTER. Valid resource names: background, bd, bg, borderwidth, closeenough, confine, cursor, height, highlightbackground, highlightcolor, highlightthickness, insertbackground, insertborderwidth, insertofftime, insertontime, insertwidth, offset, relief, scrollregion, selectbackground, selectborderwidth, selectforeground, state, takefocus, width, xscrollcommand, xscrollincrement, yscrollcommand, yscrollincrement.tcanvasN(RIR3R*R)RRf(R*R)RRf((R R3s cGs!|ii|idf|dS(sInternal function.taddtagN(R*R,R@RkRe(R*Re((R RcscCs|i|d|dS(s*Add tag NEWTAG to all items above TAGORID.taboveN(R*RctnewtagttagOrId(R*ReRf((R t addtag_abovescCs|i|ddS(sAdd tag NEWTAG to all items.R9N(R*RcRe(R*Re((R t addtag_allscCs|i|d|dS(s*Add tag NEWTAG to all items below TAGORID.tbelowN(R*RcReRf(R*ReRf((R t addtag_belowscCs |i|d||||dS(sAdd tag NEWTAG to item which is closest to pixel at X, Y. If several match take the top-most. All items closer than HALO are considered overlapping (all are closests). If START is specified the next below this tag is taken.tclosestN(R*RcReRR)thalotstart(R*ReRR)RlRm((R taddtag_closestscCs |i|d||||dS(sLAdd tag NEWTAG to all items in the rectangle defined by X1,Y1,X2,Y2.tenclosedN(R*RcRetx1ty1tx2ty2(R*ReRpRqRrRs((R taddtag_enclosedscCs |i|d||||dS(sWAdd tag NEWTAG to all items which overlap the rectangle defined by X1,Y1,X2,Y2.t overlappingN(R*RcReRpRqRrRs(R*ReRpRqRrRs((R taddtag_overlappingscCs|i|d|dS(s)Add tag NEWTAG to all items with TAGORID.twithtagN(R*RcReRf(R*ReRf((R taddtag_withtagscGs-|i|ii|idf|pdS(s|Return a tuple of X1,Y1,X2,Y2 coordinates for a rectangle which encloses all items with tags specified as arguments.RN(R*RR,R@RkReR (R*Re((R RscCs;|ii|id||d|o|i|ndS(sbUnbind for all items with TAGORID for event SEQUENCE the function identified with FUNCID.R7R'N(R*R,R@RkRfR1R4RD(R*RfR1R4((R t tag_unbindscCs"|i|id|f|||S(s&Bind to all items with TAGORID at event SEQUENCE a call to function FUNC. An additional boolean parameter ADD specifies whether FUNC will be called additionally to the other bound function or whether it will replace the previous function. See bind for the return value.R7N(R*R6RkRfR1R~R(R*RfR1R~R((R ttag_bindscCs"t|ii|id||S(srReturn the canvas x coordinate of pixel position SCREENX rounded to nearest multiple of GRIDSPACING units.tcanvasxN(RTR*R,R@Rktscreenxt gridspacing(R*R|R}((R R{scCs"t|ii|id||S(srReturn the canvas y coordinate of pixel position SCREENY rounded to nearest multiple of GRIDSPACING units.tcanvasyN(RTR*R,R@RktscreenyR}(R*RR}((R R~ scGs2tt|ii|ii|idf|S(s8Return a list of coordinates for the item given in ARGS.tcoordsN(RGRTR*R,RIR@RkRe(R*Re((R Rsc Csut|}|d}t|ttfjo|d }nh}t|ii |i d|||i ||S(sInternal function.iRN(RReRRR RRRR*R,R@RktitemTypeRRf(R*RReRfR((R t_creates  cOs|id||S(s6Create arc shaped region with coordinates x1,y1,x2,y2.tarcN(R*RReRf(R*ReRf((R t create_arcscOs|id||S(s%Create bitmap with coordinates x1,y1.RN(R*RReRf(R*ReRf((R t create_bitmap"scOs|id||S(s)Create image item with coordinates x1,y1.RN(R*RReRf(R*ReRf((R t create_image%scOs|id||S(s-Create line with coordinates x1,y1,...,xn,yn.tlineN(R*RReRf(R*ReRf((R t create_line(scOs|id||S(s)Create oval with coordinates x1,y1,x2,y2.tovalN(R*RReRf(R*ReRf((R t create_oval+scOs|id||S(s0Create polygon with coordinates x1,y1,...,xn,yn.tpolygonN(R*RReRf(R*ReRf((R tcreate_polygon.scOs|id||S(s.Create rectangle with coordinates x1,y1,x2,y2.t rectangleN(R*RReRf(R*ReRf((R tcreate_rectangle1scOs|id||S(s#Create text with coordinates x1,y1.ttextN(R*RReRf(R*ReRf((R t create_text4scOs|id||S(s+Create window with coordinates x1,y1,x2,y2.RjN(R*RReRf(R*ReRf((R t create_window7scGs!|ii|idf|dS(sDelete characters of text items identified by tag or id in ARGS (possibly several times) from FIRST to LAST character (including).tdcharsN(R*R,R@RkRe(R*Re((R R:scGs!|ii|idf|dS(s<Delete items identified by all tag or ids contained in ARGS.RN(R*R,R@RkRe(R*Re((R R>scGs!|ii|idf|dS(siDelete tag or id given as last arguments in ARGS from items identified by first argument in ARGS.tdtagN(R*R,R@RkRe(R*Re((R RAscGs-|i|ii|idf|pfS(sInternal function.RGN(R*RR,R@RkRe(R*Re((R RGEscCs|id|S(sReturn items above TAGORID.RdN(R*RGRf(R*Rf((R t find_aboveIscCs |idS(sReturn all items.R9N(R*RG(R*((R tfind_allLscCs|id|S(sReturn all items below TAGORID.RiN(R*RGRf(R*Rf((R t find_belowOscCs|id||||S(sReturn item which is closest to pixel at X, Y. If several match take the top-most. All items closer than HALO are considered overlapping (all are closests). If START is specified the next below this tag is taken.RkN(R*RGRR)RlRm(R*RR)RlRm((R t find_closestRscCs|id||||S(s=Return all items in rectangle defined by X1,Y1,X2,Y2.RoN(R*RGRpRqRrRs(R*RpRqRrRs((R t find_enclosedXscCs|id||||S(sLReturn all items which overlap the rectangle defined by X1,Y1,X2,Y2.RuN(R*RGRpRqRrRs(R*RpRqRrRs((R tfind_overlapping\scCs|id|S(sReturn all items with TAGORID.RwN(R*RGRf(R*Rf((R t find_withtag`scGs|ii|idf|S(s.Set focus to the first item specified in ARGS.RrN(R*R,R@RkRe(R*Re((R RrcscGs)|ii|ii|idf|S(s=Return tags associated with the first item specified in ARGS.tgettagsN(R*R,RIR@RkRe(R*Re((R RfscGs!|ii|idf|dS(sdSet cursor at position POS in the item identified by TAGORID. In ARGS TAGORID must be first.ticursorN(R*R,R@RkRe(R*Re((R RjscGs#t|ii|idf|S(s?Return position of cursor as integer in item specified in ARGS.RN(RRR*R,R@RkRe(R*Re((R RnscGs!|ii|idf|dS(sSInsert TEXT in item TAGORID at position POS. ARGS must be TAGORID POS TEXT.R[N(R*R,R@RkRe(R*Re((R R[qscCs'|ii|idf|d|fS(s9Return the resource value for an OPTION for item TAGORID.titemcgetRBN(R*R,R@RkRfR(R*RfR((R RuscKs|id|f||S(sConfigure resources of an item TAGORID. The values for resources are specified as keyword arguments. To get an overview about the allowed keyword arguments call the method without arguments. t itemconfigureN(R*RyRfRRf(R*RfRRf((R RyscGs!|ii|idf|dS(sJLower an item TAGORID given in ARGS (optional below another item).RN(R*R,R@RkRe(R*Re((R t tag_lowerscGs!|ii|idf|dS(s#Move an item TAGORID given in ARGS.tmoveN(R*R,R@RkRe(R*Re((R RscKs)|ii|idf|i||S(sPrint the contents of the canvas to a postscript file. Valid options: colormap, colormode, file, fontmap, height, pageanchor, pageheight, pagewidth, pagex, pagey, rotate, witdh, x, y.t postscriptN(R*R,R@RkRRRf(R*RRf((R RscGs!|ii|idf|dS(sJRaise an item TAGORID given in ARGS (optional above another item).RN(R*R,R@RkRe(R*Re((R t tag_raisescGs!|ii|idf|dS(s9Scale item TAGORID with XORIGIN, YORIGIN, XSCALE, YSCALE.tscaleN(R*R,R@RkRe(R*Re((R RscCs#|ii|idd||dS(s&Remember the current X, Y coordinates.tscantmarkN(R*R,R@RkRR)(R*RR)((R t scan_marksi cCs&|ii|idd|||dS(sAdjust the view of the canvas to GAIN times the difference between X and Y and the coordinates given in scan_mark.RtdragtoN(R*R,R@RkRR)tgain(R*RR)R((R t scan_dragtoscCs#|ii|idd||dS(sLAdjust the end of the selection near the cursor of an item TAGORID to index.tselecttadjustN(R*R,R@RkRfR(R*RfR((R t select_adjustscCs|ii|idddS(s,Clear the selection if it is in this widget.RRN(R*R,R@Rk(R*((R t select_clearscCs#|ii|idd||dS(s:Set the fixed end of a selection in item TAGORID to INDEX.RtfromN(R*R,R@RkRfR(R*RfR((R t select_fromscCs |ii|iddpdS(s(Return the item which has the selection.RRN(R*R,R@RkR (R*((R t select_itemscCs#|ii|idd||dS(s=Set the variable end of a selection in item TAGORID to INDEX.RttoN(R*R,R@RkRfR(R*RfR((R t select_toscCs |ii|id|pdS(s$Return the type of the item TAGORID.RN(R*R,R@RkRfR (R*Rf((R RscGsK|p#|i|ii|idSn|ii|idf|dS(s1Query and change horizontal position of the view.txviewN(ReR*R?R,R@Rk(R*Re((R Rs#cCs |ii|idd|dS(ssAdjusts the view in the window so that FRACTION of the total width of the canvas is off-screen to the left.RtmovetoN(R*R,R@Rktfraction(R*R((R t xview_movetoscCs#|ii|idd||dS(sTShift the x-view according to NUMBER which is measured in "units" or "pages" (WHAT).RtscrollN(R*R,R@RkRR0(R*RR0((R t xview_scrollscGsK|p#|i|ii|idSn|ii|idf|dS(s/Query and change vertical position of the view.tyviewN(ReR*R?R,R@Rk(R*Re((R Rs#cCs |ii|idd|dS(ssAdjusts the view in the window so that FRACTION of the total height of the canvas is off-screen to the top.RRN(R*R,R@RkR(R*R((R t yview_movetoscCs#|ii|idd||dS(sTShift the y-view according to NUMBER which is measured in "units" or "pages" (WHAT).RRN(R*R,R@RkRR0(R*RR0((R t yview_scrolls(FRRRR R3RcRgRhRjRnRtRvRxRRyRzR{R~RRRRRRRRRRRRRRRGRRRRRRRRrRRRR[RRt itemconfigRRRRRRRRRRRRRRRRRRRRRR(((R Ras                                                          t CheckbuttoncBsJtZdZehdZdZdZdZdZdZ RS(s7Checkbutton widget which is either in on- or off-state.cKsti||d||dS(sConstruct a checkbutton widget with the parent MASTER. Valid resource names: activebackground, activeforeground, anchor, background, bd, bg, bitmap, borderwidth, command, cursor, disabledforeground, fg, font, foreground, height, highlightbackground, highlightcolor, highlightthickness, image, indicatoron, justify, offvalue, onvalue, padx, pady, relief, selectcolor, selectimage, state, takefocus, text, textvariable, underline, variable, width, wraplength.t checkbuttonN(RIR3R*R)RRf(R*R)RRf((R R3s cCs|ii|iddS(sPut the button in off-state.tdeselectN(R*R,R@Rk(R*((R RscCs|ii|iddS(sFlash the button.RWN(R*R,R@Rk(R*((R RWscCs|ii|idS(s<Toggle the button and invoke a command if given as resource.RXN(R*R,R@Rk(R*((R RXscCs|ii|iddS(sPut the button in on-state.RN(R*R,R@Rk(R*((R RscCs|ii|iddS(sToggle the button.ttoggleN(R*R,R@Rk(R*((R Rs( RRRR R3RRWRXRR(((R Rs     tEntrycBstZdZehdZedZdZdZdZdZ dZ dZ d Z e Z d ZeZd ZeZd ZeZd ZeZdZeZdZdZdZRS(s1Entry widget which allows to display simple text.cKsti||d||dS(sConstruct an entry widget with the parent MASTER. Valid resource names: background, bd, bg, borderwidth, cursor, exportselection, fg, font, foreground, highlightbackground, highlightcolor, highlightthickness, insertbackground, insertborderwidth, insertofftime, insertontime, insertwidth, invalidcommand, invcmd, justify, relief, selectbackground, selectborderwidth, selectforeground, show, state, takefocus, textvariable, validate, validatecommand, vcmd, width, xscrollcommand.tentryN(RIR3R*R)RRf(R*R)RRf((R R3s cCs |ii|id||dS(s.Delete text from FIRST to LAST (not included).RN(R*R,R@Rktfirsttlast(R*RR((R RscCs|ii|idS(sReturn the text.R:N(R*R,R@Rk(R*((R R:scCs|ii|id|dS(sInsert cursor at INDEX.RN(R*R,R@RkR(R*R((R R scCst|ii|id|S(sReturn position of cursor.RN(RRR*R,R@RkR(R*R((R R scCs |ii|id||dS(sInsert STRING at INDEX.R[N(R*R,R@RkRR(R*RR((R R[ scCs |ii|idd|dS(s&Remember the current X, Y coordinates.RRN(R*R,R@RkR(R*R((R R scCs |ii|idd|dS(sAdjust the view of the canvas to 10 times the difference between X and Y and the coordinates given in scan_mark.RRN(R*R,R@RkR(R*R((R R scCs |ii|idd|dS(s9Adjust the end of the selection near the cursor to INDEX.RRN(R*R,R@RkR(R*R((R tselection_adjust scCs|ii|idddS(s,Clear the selection if it is in this widget.RRN(R*R,R@Rk(R*((R R scCs |ii|idd|dS(s*Set the fixed end of a selection to INDEX.RRN(R*R,R@RkR(R*R((R tselection_from scCs%|ii|ii|iddS(s,Return whether the widget has the selection.RtpresentN(R*R,RWR@Rk(R*((R tselection_present scCs#|ii|idd||dS(s3Set the selection from START to END (not included).RRN(R*R,R@RkRmRY(R*RmRY((R tselection_range$ scCs |ii|idd|dS(s-Set the variable end of a selection to INDEX.RRN(R*R,R@RkR(R*R((R t selection_to( scCs|ii|id|dS(s1Query and change horizontal position of the view.RN(R*R,R@RkR(R*R((R R, scCs |ii|idd|dS(sqAdjust the view in the window so that FRACTION of the total width of the entry is off-screen to the left.RRN(R*R,R@RkR(R*R((R R/ scCs#|ii|idd||dS(sTShift the x-view according to NUMBER which is measured in "units" or "pages" (WHAT).RRN(R*R,R@RkRR0(R*RR0((R R3 s(RRRR R3RR:RRR[RRRRRRRRRtselect_presentRt select_rangeRRRRR(((R Rs0                tFramecBstZdZehdZRS(sFFrame widget which may contain other widgets and can have a 3D border.cKst||f}f}|idod|df}|d=n,|idod|df}|d=nti||d|h|dS(sConstruct a frame widget with the parent MASTER. Valid resource names: background, bd, bg, borderwidth, class, colormap, container, cursor, height, highlightbackground, highlightcolor, highlightthickness, relief, takefocus, visual, width.RKs-classRRN( RRRfRGRRIR3R*R)(R*R)RRfRG((R R39 s  (RRRR R3(((R R7 s tLabelcBstZdZehdZRS(s0Label widget which can display text and bitmaps.cKsti||d||dS(sConstruct a label widget with the parent MASTER. STANDARD OPTIONS activebackground, activeforeground, anchor, background, bitmap, borderwidth, cursor, disabledforeground, font, foreground, highlightbackground, highlightcolor, highlightthickness, image, justify, padx, pady, relief, takefocus, text, textvariable, underline, wraplength WIDGET-SPECIFIC OPTIONS height, state, width tlabelN(RIR3R*R)RRf(R*R)RRf((R R3K s(RRRR R3(((R RI s tListboxcBs"tZdZehdZdZdZdZedZedZ dZ dZ d Z d Z d Zd Zd ZeZedZeZdZeZedZeZdZdZdZdZdZdZdZdZedZ e Z!RS(s3Listbox widget which can display a list of strings.cKsti||d||dS(sConstruct a listbox widget with the parent MASTER. Valid resource names: background, bd, bg, borderwidth, cursor, exportselection, fg, font, foreground, height, highlightbackground, highlightcolor, highlightthickness, relief, selectbackground, selectborderwidth, selectforeground, selectmode, setgrid, takefocus, width, xscrollcommand, yscrollcommand, listvariable.tlistboxN(RIR3R*R)RRf(R*R)RRf((R R3a scCs|ii|id|dS(s"Activate item identified by INDEX.tactivateN(R*R,R@RkR(R*R((R Rj scGs-|i|ii|idf|pdS(svReturn a tuple of X1,Y1,X2,Y2 coordinates for a rectangle which encloses the item identified by index in ARGS.RN(R*RR,R@RkReR (R*Re((R Rm scCs"|ii|ii|idS(s2Return list of indices of currently selected item.t curselectionN(R*R,RIR@Rk(R*((R Rr scCs |ii|id||dS(s/Delete items from FIRST to LAST (not included).RN(R*R,R@RkRR(R*RR((R Rw scCsP|o,|ii|ii|id||Sn|ii|id|SdS(s4Get list of items from FIRST to LAST (not included).R:N(RR*R,RIR@RkR(R*RR((R R:z s,cCs:|ii|id|}|djodSnt|S(s+Return index of item identified with INDEX.RRuN(R*R,R@RkRRHR RR(R*RRH((R R s  cGs$|ii|id|f|dS(sInsert ELEMENTS at INDEX.R[N(R*R,R@RkRtelements(R*RR((R R[ scCst|ii|id|S(s5Get index of item which is nearest to y coordinate Y.tnearestN(RRR*R,R@RkR)(R*R)((R R scCs#|ii|idd||dS(s&Remember the current X, Y coordinates.RRN(R*R,R@RkRR)(R*RR)((R R scCs#|ii|idd||dS(sAdjust the view of the listbox to 10 times the difference between X and Y and the coordinates given in scan_mark.RRN(R*R,R@RkRR)(R*RR)((R R scCs|ii|id|dS(s"Scroll such that INDEX is visible.tseeN(R*R,R@RkR(R*R((R R scCs |ii|idd|dS(s-Set the fixed end oft the selection to INDEX.RtanchorN(R*R,R@RkR(R*R((R tselection_anchor scCs#|ii|idd||dS(s6Clear the selection from FIRST to LAST (not included).RRN(R*R,R@RkRR(R*RR((R R scCs(|ii|ii|idd|S(s+Return 1 if INDEX is part of the selection.RtincludesN(R*R,RWR@RkR(R*R((R tselection_includes scCs#|ii|idd||dS(smSet the selection from FIRST to LAST (not included) without changing the currently selected elements.RR1N(R*R,R@RkRR(R*RR((R t selection_set scCst|ii|idS(s-Return the number of elements in the listbox.RN(RRR*R,R@Rk(R*((R R scGsK|p#|i|ii|idSn|ii|idf|dS(s1Query and change horizontal position of the view.RN(R0R*R?R,R@Rk(R*R0((R R s#cCs |ii|idd|dS(sqAdjust the view in the window so that FRACTION of the total width of the entry is off-screen to the left.RRN(R*R,R@RkR(R*R((R R scCs#|ii|idd||dS(sTShift the x-view according to NUMBER which is measured in "units" or "pages" (WHAT).RRN(R*R,R@RkRR0(R*RR0((R R scGsK|p#|i|ii|idSn|ii|idf|dS(s/Query and change vertical position of the view.RN(R0R*R?R,R@Rk(R*R0((R R s#cCs |ii|idd|dS(spAdjust the view in the window so that FRACTION of the total width of the entry is off-screen to the top.RRN(R*R,R@RkR(R*R((R R scCs#|ii|idd||dS(sTShift the y-view according to NUMBER which is measured in "units" or "pages" (WHAT).RRN(R*R,R@RkRR0(R*RR0((R R scCs'|ii|idf|d|fS(s4Return the resource value for an ITEM and an OPTION.RRBN(R*R,R@RkRR(R*RR((R R scKs|id|f||S(s9Configure resources of an ITEM. The values for resources are specified as keyword arguments. To get an overview about the allowed keyword arguments call the method without arguments. Valid resource names: background, bg, foreground, fg, selectbackground, selectforeground.RN(R*RyRRRf(R*RRRf((R R s("RRRR R3RRRRR:RR[RRRRRt select_anchorRRRtselect_includesRt select_setRRRRRRRRRR(((R R_ s>                         tMenucBstZdZehdZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd dZdZhdZhdZhdZhdZhdZhdZhdZhdZhdZhdZhdZhdZedZdZedZ e Z!dZ"d Z#d!Z$d"Z%d#Z&d$Z'RS(%sPMenu widget which allows to display menu bars, pull-down menus and pop-up menus.cKsti||d||dS(sAConstruct menu widget with the parent MASTER. Valid resource names: activebackground, activeborderwidth, activeforeground, background, bd, bg, borderwidth, cursor, disabledforeground, fg, font, foreground, postcommand, relief, selectcolor, takefocus, tearoff, tearoffcommand, title, type.tmenuN(RIR3R*R)RRf(R*R)RRf((R R3 scCsdS(N((R*((R ttk_bindForTraversal scCs|iid|idS(Nt tk_mbPost(R*R,R@Rk(R*((R R scCs|iiddS(Nt tk_mbUnpost(R*R,R@(R*((R R scCs|iid|i|dS(Nttk_traverseToMenu(R*R,R@RkRg(R*Rg((R R scCs|iid|i|dS(Nttk_traverseWithinMenu(R*R,R@RkRg(R*Rg((R R scCs|iid|iS(Nttk_getMenuButtons(R*R,R@Rk(R*((R R scCs|iid|dS(Nt tk_nextMenu(R*R,R@tcount(R*R((R R scCs|iid|dS(Nttk_nextMenuEntry(R*R,R@R(R*R((R R scCs|iid|idS(Nt tk_invokeMenu(R*R,R@Rk(R*((R R scCs|iid|idS(Nt tk_firstMenu(R*R,R@Rk(R*((R R scCs|iid|idS(Nttk_mbButtonDown(R*R,R@Rk(R*((R R sR'cCs#|iid|i|||dS(s/Post the menu at position X,Y with entry ENTRY.ttk_popupN(R*R,R@RkRR)R(R*RR)R((R R scCs|ii|id|dS(sActivate entry at INDEX.RN(R*R,R@RkR(R*R((R R scKs0|ii|id|f|i||dS(sInternal function.RN(R*R,R@RkRRRRf(R*RRRf((R R scKs|id|p|dS(sAdd hierarchical menu item.tcascadeN(R*RRRf(R*RRf((R t add_cascade scKs|id|p|dS(sAdd checkbutton menu item.RN(R*RRRf(R*RRf((R tadd_checkbutton scKs|id|p|dS(sAdd command menu item.RN(R*RRRf(R*RRf((R t add_command scKs|id|p|dS(sAddd radio menu item.t radiobuttonN(R*RRRf(R*RRf((R tadd_radiobutton scKs|id|p|dS(sAdd separator.t separatorN(R*RRRf(R*RRf((R t add_separator scKs3|ii|id||f|i||dS(sInternal function.R[N( R*R,R@RkRRRRRf(R*RRRRf((R R[ scKs|i|d|p|dS(s$Add hierarchical menu item at INDEX.RN(R*R[RRRf(R*RRRf((R tinsert_cascade scKs|i|d|p|dS(s#Add checkbutton menu item at INDEX.RN(R*R[RRRf(R*RRRf((R tinsert_checkbutton scKs|i|d|p|dS(sAdd command menu item at INDEX.RN(R*R[RRRf(R*RRRf((R tinsert_command scKs|i|d|p|dS(sAddd radio menu item at INDEX.RN(R*R[RRRf(R*RRRf((R tinsert_radiobutton scKs|i|d|p|dS(sAdd separator at INDEX.RN(R*R[RRRf(R*RRRf((R tinsert_separator scCs |ii|id||dS(s;Delete menu items between INDEX1 and INDEX2 (not included).RN(R*R,R@Rktindex1tindex2(R*RR((R R! scCs |ii|id|d|S(s>Return the resource value of an menu item for OPTION at INDEX.t entrycgetRBN(R*R,R@RkRR(R*RR((R R$ scKs|id|f||S(sConfigure a menu item at INDEX.tentryconfigureN(R*RyRRRf(R*RRRf((R R' scCs:|ii|id|}|djodSnt|S(s4Return the index of a menu item identified by INDEX.RRuN(R*R,R@RkRRHR RR(R*RRH((R R+ s  cCs|ii|id|S(sRInvoke a menu item identified by INDEX and execute the associated command.RXN(R*R,R@RkR(R*R((R RX0 scCs |ii|id||dS(sDisplay a menu at position X,Y.tpostN(R*R,R@RkRR)(R*RR)((R R4 scCs|ii|id|S(s*Return the type of the menu item at INDEX.RN(R*R,R@RkR(R*R((R R7 scCs|ii|iddS(s Unmap a menu.tunpostN(R*R,R@Rk(R*((R R: scCst|ii|id|S(sEReturn the y-position of the topmost pixel of the menu item at INDEX.t ypositionN(RRR*R,R@RkR(R*R((R R= s((RRRR R3RRRRRRRRRRRRRRRRRRRR[RRRRRRRRt entryconfigRRXRRRR(((R R sJ                                  t MenubuttoncBstZdZehdZRS(s(Menubutton widget, obsolete since Tk8.0.cKsti||d||dS(Nt menubutton(RIR3R*R)RRf(R*R)RRf((R R3D s(RRRR R3(((R RB s tMessagecBstZdZehdZRS(sKMessage widget to display multiline text. Obsolete since Label does it too.cKsti||d||dS(Ntmessage(RIR3R*R)RRf(R*R)RRf((R R3I s(RRRR R3(((R RG s t RadiobuttoncBsAtZdZehdZdZdZdZdZRS(sGRadiobutton widget which shows only one of several buttons in on-state.cKsti||d||dS(sConstruct a radiobutton widget with the parent MASTER. Valid resource names: activebackground, activeforeground, anchor, background, bd, bg, bitmap, borderwidth, command, cursor, disabledforeground, fg, font, foreground, height, highlightbackground, highlightcolor, highlightthickness, image, indicatoron, justify, padx, pady, relief, selectcolor, selectimage, state, takefocus, text, textvariable, underline, value, variable, width, wraplength.RN(RIR3R*R)RRf(R*R)RRf((R R3N s cCs|ii|iddS(sPut the button in off-state.RN(R*R,R@Rk(R*((R RY scCs|ii|iddS(sFlash the button.RWN(R*R,R@Rk(R*((R RW] scCs|ii|idS(s<Toggle the button and invoke a command if given as resource.RXN(R*R,R@Rk(R*((R RX` scCs|ii|iddS(sPut the button in on-state.RN(R*R,R@Rk(R*((R Rc s( RRRR R3RRWRXR(((R RL s    tScalecBsDtZdZehdZdZdZedZdZRS(s1Scale widget which can display a numerical scale.cKsti||d||dS(sConstruct a scale widget with the parent MASTER. Valid resource names: activebackground, background, bigincrement, bd, bg, borderwidth, command, cursor, digits, fg, font, foreground, from, highlightbackground, highlightcolor, highlightthickness, label, length, orient, relief, repeatdelay, repeatinterval, resolution, showvalue, sliderlength, sliderrelief, state, takefocus, tickinterval, to, troughcolor, variable, width.RN(RIR3R*R)RRf(R*R)RRf((R R3i scCsJ|ii|id}yt|SWntj ot|SnXdS(s*Get the current value as integer or float.R:N(R*R,R@RkR8RRR`RT(R*R8((R R:s s cCs|ii|id|dS(sSet the value to VALUE.R1N(R*R,R@RkR8(R*R8((R R1z scCs"|i|ii|id|S(sReturn a tuple (X,Y) of the point along the centerline of the trough that corresponds to VALUE or the current value if None is given.RN(R*RR,R@RkR8(R*R8((R R} scCs|ii|id||S(scReturn where the point X,Y lies. Valid return values are "slider", "though1" and "though2".tidentifyN(R*R,R@RkRR)(R*RR)((R R  s( RRRR R3R:R1RR (((R Rg s    t ScrollbarcBsStZdZehdZdZdZdZdZdZ dZ RS(s?Scrollbar widget which displays a slider at a certain position.cKsti||d||dS(slConstruct a scrollbar widget with the parent MASTER. Valid resource names: activebackground, activerelief, background, bd, bg, borderwidth, command, cursor, elementborderwidth, highlightbackground, highlightcolor, highlightthickness, jump, orient, relief, repeatdelay, repeatinterval, takefocus, troughcolor, width.t scrollbarN(RIR3R*R)RRf(R*R)RRf((R R3 scCs|ii|id|dS(sxDisplay the element at INDEX with activebackground and activerelief. INDEX can be "arrow1","slider" or "arrow2".RN(R*R,R@RkR(R*R((R R scCs"t|ii|id||S(snReturn the fractional change of the scrollbar setting if it would be moved by DELTAX or DELTAY pixels.RnN(RTR*R,R@Rktdeltaxtdeltay(R*R R ((R Rn scCs"t|ii|id||S(sRReturn the fractional value which corresponds to a slider position of X,Y.RN(RTR*R,R@RkRR)(R*RR)((R R scCs|ii|id||S(sYReturn the element under position X,Y as one of "arrow1","slider","arrow2" or "".R N(R*R,R@RkRR)(R*RR)((R R  scCs|i|ii|idS(sZReturn the current fractional values (upper and lower end) of the slider position.R:N(R*R?R,R@Rk(R*((R R: scGs!|ii|idf|dS(siSet the fractional values of the slider position (upper and lower ends as value between 0 and 1).R1N(R*R,R@RkRe(R*Re((R R1 s( RRRR R3RRnRR R:R1(((R R  s      tTextcBs{tZdZehdZdZdZdZdZdZ dZ edZ ed Z d Z eed Zd Zed ZdZdZdZdZedZdZedZhdZdZdZdZedZdZdZdZdZ dZ!dZ"d Z#eeeeeeed!Z$d"Z%d#Z&ed$Z'ed%Z(d&Z)ed'Z*e*Z+d(Z,ed)Z-ed*Z.ed+Z/ed,Z0ed-Z1d.Z2ed/Z3d0Z4ed1Z5e5Z6hd2Z7d3Z8d4Z9d5Z:d6Z;d7Z<d8Z=d9Z>d:Z?RS(;s4Text widget which can display text in various forms.cKsti||d||dS(sConstruct a text widget with the parent MASTER. STANDARD OPTIONS background, borderwidth, cursor, exportselection, font, foreground, highlightbackground, highlightcolor, highlightthickness, insertbackground, insertborderwidth, insertofftime, insertontime, insertwidth, padx, pady, relief, selectbackground, selectborderwidth, selectforeground, setgrid, takefocus, xscrollcommand, yscrollcommand, WIDGET-SPECIFIC OPTIONS autoseparators, height, maxundo, spacing1, spacing2, spacing3, state, tabs, undo, width, wrap, RN(RIR3R*R)RRf(R*R)RRf((R R3 scGs-|i|ii|idf|pdS(sReturn a tuple of (x,y,width,height) which gives the bounding box of the visible part of the character at the index in ARGS.RN(R*RR,R@RkReR (R*Re((R R scCs|iid|i|dS(Nttk_textSelectTo(R*R,R@RkR(R*R((R R scCs|iid|idS(Nttk_textBackspace(R*R,R@Rk(R*((R R scCs#|iid|i|||dS(Nttk_textIndexCloser(R*R,R@RkR\RVR(R*R\RVR((R R scCs|iid|i|dS(Nttk_textResetAnchor(R*R,R@RkR(R*R((R R scCs+|ii|ii|id|||S(sReturn whether between index INDEX1 and index INDEX2 the relation OP is satisfied. OP is one of <, <=, ==, >=, >, or !=.tcompareN(R*R,RWR@RkRtopR(R*RRR((R R scCs%|ii|ii|id|S(sjTurn on the internal consistency checks of the B-Tree inside the text widget according to BOOLEAN.tdebugN(R*R,RWR@RkRb(R*Rb((R R scCs |ii|id||dS(s?Delete the characters between INDEX1 and INDEX2 (not included).RN(R*R,R@RkRR(R*RR((R R scCs"|i|ii|id|S(sReturn tuple (x,y,width,height,baseline) giving the bounding box and baseline position of the visible part of the line containing the character at INDEX.t dlineinfoN(R*RR,R@RkR(R*R((R R sc Ksg}d}d}|pg}|d} | }nzt|tp|i |}}n|d|g7}x.|D]&}||o|i d|qvqvW|i ||o|i |n|ii|id||SWd|o|i|nXdS(sReturn the contents of the widget between index1 and index2. The type of contents returned in filtered based on the keyword parameters; if 'all', 'image', 'mark', 'tag', 'text', or 'window' are given and true, then the corresponding items are returned. The result is a list of triples of the form (key, value, index). If none of the keywords are true then 'all' is used by default. If the 'command' argument is given, it is called once for each element of the list of triples, with the values of each triple serving as the arguments to the function. In this case the list is not returned.cCs|i|||fdS(N(RRR|R8R(R|R8RR((R t append_triple ss-commandRBtdumpN(ReR t func_nameRRRRLRNR*R=RfR|RRRR,R@RkRD( R*RRRRfR|RReRR((R R s0     cGs-|i|ii|idf|pfS(srInternal method This method controls the undo mechanism and the modified flag. The exact behavior of the command depends on the option argument that follows the edit argument. The following forms of the command are currently supported: edit_modified, edit_redo, edit_reset, edit_separator and edit_undo teditN(R*RR,R@RkRe(R*Re((R R s cCs|id|S(s;Get or Set the modified flag If arg is not specified, returns the modified flag of the widget. The insert, delete, edit undo and edit redo commands or the user can set or clear the modified flag. If boolean is specified, sets the modified flag of the widget to arg. tmodifiedN(R*Rtarg(R*R((R t edit_modified! scCs |idS(s Redo the last undone edit When the undo option is true, reapplies the last undone edits provided no other edits were done since then. Generates an error when the redo stack is empty. Does nothing when the undo option is false. tredoN(R*R(R*((R t edit_redo, scCs |idS(s(Clears the undo and redo stacks tresetN(R*R(R*((R t edit_reset6 scCs |idS(snInserts a separator (boundary) on the undo stack. Does nothing when the undo option is false RN(R*R(R*((R tedit_separator; scCs |idS(sDUndoes the last edit action If the undo option is true. An edit action is defined as all the insert and delete commands that are recorded on the undo stack in between two separators. Generates an error when the undo stack is empty. Does nothing when the undo option is false tundoN(R*R(R*((R t edit_undoB scCs|ii|id||S(s5Return the text from INDEX1 to INDEX2 (not included).R:N(R*R,R@RkRR(R*RR((R R:M scCs]|d djod|}n|ddjo|d }n|ii|idd||S(s9Return the value of OPTION of an embedded image at INDEX.iRBiRARR{N(RR*R,R@RkR(R*RR((R t image_cgetQ s cKs|idd|f||S(s%Configure an embedded image at INDEX.RRzN(R*RyRRRf(R*RRRf((R timage_configureX scKs+|ii|idd||i||S(s"Create an embedded image at INDEX.RRN(R*R,R@RkRRRRf(R*RRRf((R t image_create[ scCs|ii|iddS(s3Return all names of embedded images in this widget.RRN(R*R,R@Rk(R*((R R` scCs|ii|id|S(s1Return the index in the form line.char for INDEX.RN(R*R,R@RkR(R*R((R Rc scGs'|ii|id||f|dS(sInsert CHARS before the characters at INDEX. An additional tag can be given in ARGS. Additional CHARS and tags can follow in ARGS.R[N(R*R,R@RkRtcharsRe(R*RR(Re((R R[f scCs"|ii|idd||fS(sChange the gravity of a mark MARKNAME to DIRECTION (LEFT or RIGHT). Return the current value if None is given for DIRECTION.RtgravityN(R*R,R@RktmarkNamet direction(R*R*R+((R t mark_gravityj scCs%|ii|ii|iddS(sReturn all mark names.RRN(R*R,RIR@Rk(R*((R t mark_nameso scCs#|ii|idd||dS(s0Set mark MARKNAME before the character at INDEX.RR1N(R*R,R@RkR*R(R*R*R((R tmark_sets scGs$|ii|iddf|dS(sDelete all marks in MARKNAMES.RtunsetN(R*R,R@Rkt markNames(R*R0((R t mark_unsetv scCs#|ii|idd|pdS(s-Return the name of the next mark after INDEX.RtnextN(R*R,R@RkRR (R*R((R t mark_nexty scCs#|ii|idd|pdS(s2Return the name of the previous mark before INDEX.RtpreviousN(R*R,R@RkRR (R*R((R t mark_previous| scCs#|ii|idd||dS(s&Remember the current X, Y coordinates.RRN(R*R,R@RkRR)(R*RR)((R R scCs#|ii|idd||dS(s~Adjust the view of the text to 10 times the difference between X and Y and the coordinates given in scan_mark.RRN(R*R,R@RkRR)(R*RR)((R R sc Cs|idg} |o| idn|o| idn|o| idn|o| idn|o| idn| o| id| i| n|dd jo| id n| i|| i||o| i|n|i it| S( sSearch PATTERN beginning from INDEX until STOPINDEX. Return the index of the first character of a match or an empty string.tsearchs -forwardss -backwardss-exacts-regexps-nocases-countiRBs--N(R*RkRetforwardsRt backwardstexacttregexptnocaseRRRt stopindexR,R@R( R*RRR<R7R8R9R:R;RRe((R R6 s*  cCs|ii|id|dS(s3Scroll such that the character at INDEX is visible.RN(R*R,R@RkR(R*R((R R scGs*|ii|idd||f|dS(s|Add tag TAGNAME to all characters between INDEX1 and index2 in ARGS. Additional pairs of indices may follow in ARGS.ttagRN(R*R,R@RkttagNameRRe(R*R>RRe((R ttag_add scCs>|ii|idd||d|o|i|ndS(sgUnbind for all characters with TAGNAME for event SEQUENCE the function identified with FUNCID.R=R7R'N(R*R,R@RkR>R1R4RD(R*R>R1R4((R Ry s"cCs%|i|idd|f|||S(s+Bind to all characters with TAGNAME at event SEQUENCE a call to function FUNC. An additional boolean parameter ADD specifies whether FUNC will be called additionally to the other bound function or whether it will replace the previous function. See bind for the return value.R=R7N(R*R6RkR>R1R~R(R*R>R1R~R((R Rz scCs]|d djod|}n|ddjo|d }n|ii|idd||S(s+Return the value of OPTION for tag TAGNAME.iRBiRAR=R{N(RR*R,R@RkR>(R*R>R((R ttag_cget s cKs|idd|f||S(sConfigure a tag TAGNAME.R=RzN(R*RyR>RRf(R*R>RRf((R t tag_configure scGs$|ii|iddf|dS(sDelete all tags in TAGNAMES.R=RN(R*R,R@RkttagNames(R*RB((R t tag_delete scCs#|ii|idd||dS(s`Change the priority of tag TAGNAME such that it is lower than the priority of BELOWTHIS.R=RN(R*R,R@RkR>R(R*R>R((R R scCs(|ii|ii|idd|S(sReturn a list of all tag names.R=RN(R*R,RIR@RkR(R*R((R t tag_names scCs.|ii|ii|idd|||S(sReturn a list of start and end index for the first sequence of characters between INDEX1 and INDEX2 which all have tag TAGNAME. The text is searched forward from INDEX1.R=t nextrangeN(R*R,RIR@RkR>RR(R*R>RR((R t tag_nextrange scCs.|ii|ii|idd|||S(sReturn a list of start and end index for the first sequence of characters between INDEX1 and INDEX2 which all have tag TAGNAME. The text is searched backwards from INDEX1.R=t prevrangeN(R*R,RIR@RkR>RR(R*R>RR((R t tag_prevrange scCs#|ii|idd||dS(saChange the priority of tag TAGNAME such that it is higher than the priority of ABOVETHIS.R=RN(R*R,R@RkR>R(R*R>R((R R scCs(|ii|ii|idd|S(s7Return a list of ranges of text which have tag TAGNAME.R=trangesN(R*R,RIR@RkR>(R*R>((R t tag_ranges scCs&|ii|idd|||dS(sARemove tag TAGNAME from all characters between INDEX1 and INDEX2.R=R_N(R*R,R@RkR>RR(R*R>RR((R t tag_remove scCs]|d djod|}n|ddjo|d }n|ii|idd||S(s:Return the value of OPTION of an embedded window at INDEX.iRBiRARjR{N(RR*R,R@RkR(R*RR((R t window_cget s cKs|idd|f||S(s&Configure an embedded window at INDEX.RjRzN(R*RyRRRf(R*RRRf((R twindow_configure scKs3|ii|idd|f|i||dS(sCreate a window at INDEX.RjRN(R*R,R@RkRRRRf(R*RRRf((R t window_create scCs%|ii|ii|iddS(s4Return all names of embedded windows in this widget.RjRN(R*R,RIR@Rk(R*((R t window_names scGsK|p#|i|ii|idSn|ii|idf|dS(s1Query and change horizontal position of the view.RN(R0R*R?R,R@Rk(R*R0((R R s#cCs |ii|idd|dS(ssAdjusts the view in the window so that FRACTION of the total width of the canvas is off-screen to the left.RRN(R*R,R@RkR(R*R((R R scCs#|ii|idd||dS(s\Shift the x-view according to NUMBER which is measured in "units" or "pages" (WHAT).RRN(R*R,R@RkRR0(R*RR0((R R scGsK|p#|i|ii|idSn|ii|idf|dS(s/Query and change vertical position of the view.RN(R0R*R?R,R@Rk(R*R0((R R s#cCs |ii|idd|dS(ssAdjusts the view in the window so that FRACTION of the total height of the canvas is off-screen to the top.RRN(R*R,R@RkR(R*R((R R scCs#|ii|idd||dS(s\Shift the y-view according to NUMBER which is measured in "units" or "pages" (WHAT).RRN(R*R,R@RkRR0(R*RR0((R R scGs$|ii|iddf|dS(sObsolete function, use see.Rs -pickplaceN(R*R,R@RkR0(R*R0((R tyview_pickplace s(@RRRR R3RRRRRRRRRRRRRR!R"R$R:R%R&R'RRR[R,R-R.R1R3R5RRR6RR?RyRzR@RAt tag_configRCRRDRFRHRRJRKRLRMt window_configRNRORRRRRRRP(((R R sz          (                                          t_setitcBs#tZdZedZdZRS(s>Internal class. It wraps the command in the widget OptionMenu.cCs||_||_||_dS(N(R8R*t _setit__valuetvart _setit__varR>t_setit__callback(R*RUR8R>((R R3 s  cGs8|ii|i|io|i|i|ndS(N(R*RVR1RTRWRe(R*Re((R RM s (RRRR R3RM(((R RS s  t OptionMenucBs)tZdZdZdZdZRS(s?OptionMenu which allows the user to select a value from a menu.c Os5hdd<d|<dd<dt<dd<d d<} ti||d | d |_t|d d dd}|_ |i |_ |id}|ido |d=n|otd|idn|id|dt|||x0|D](}|id|dt|||qW||d RRRRR8RSRR( R*R)R<R8RRcRRR>Rf((R R3 s$<     cCs(|djo |iSnti||S(NR(R]R*RaRIR(R*R]((R R6 s  cCsti|d|_dS(s,Destroy this widget and the associated menu.N(RR^R*R Ra(R*((R R^; s (RRRR3RR^(((R RX s   tImagecBsttZdZdZehedZdZdZdZdZ dZ e Z dZ d Z d ZRS( sBase class for images.ic Ks@d|_|pt}|p tdq.n|i|_|pFtid7_dtif}|ddjod|d}qn|o|ot ||f}n|o |}nf}xN|i D]@\}}t|o|i|}n|d||f}qW|iidd||f|||_dS( NsToo early to create imageis pyimage%riRBRARR(R R*R]R)RRR,Rdt_last_idRfRRRRRRRCR=R@timgtype( R*RfR]RR)RfRRR((R R3C s.      cCs|iS(N(R*R](R*((R R6Y scCsE|io7y|iidd|iWqAtj oqAXndS(NRR(R*R]R,R@R(R*((R R5Z s  cCs$|ii|idd||dS(NRzRB(R*R,R@R]R|R8(R*R|R8((R R}a scCs|ii|idd|S(NRzRB(R*R,R@R]R|(R*R|((R Rc scKsf}xt|iD]p\}}|dj oW|ddjo|d }nt|o|i |}n|d||f}qqW|i i |i df|dS(sConfigure the image.iRARBRN( RRRfRRRR RCR*R=R,R@R](R*RfRRR((R Rze s   cCst|iidd|iS(sReturn the height of the image.RRN(RRR*R,R@R](R*((R Rp scCs|iidd|iS(s8Return the type of the imgage, e.g. "photo" or "bitmap".RRN(R*R,R@R](R*((R Rt scCst|iidd|iS(sReturn the width of the image.RR&N(RRR*R,R@R](R*((R R&w s(RRRReR R3R6R5R}RRzRRRR&(((R Rd@ s        t PhotoImagecBstZdZehedZdZdZdZdZddZ ddZ d Z ed Z eed Z RS( s?Widget which can display colored images in GIF, PPM/PGM format.cKs ti|d||||dS(stCreate an image with NAME. Valid resource names: data, format, file, gamma, height, palette, width.tphotoN(RdR3R*R]RR)Rf(R*R]RR)Rf((R R3~ scCs|ii|iddS(sDisplay a transparent image.tblankN(R*R,R@R](R*((R Ri scCs|ii|idd|S(sReturn the value of OPTION.R{RBN(R*R,R@R]R(R*R((R R{ scCs|ii|idd|S(NR{RB(R*R,R@R]R|(R*R|((R R scCs&t}|ii|d|i|S(s;Return a new PhotoImage with the same image as this widget.tcopyN(Rgt destImageR*R,R@R](R*Rk((R Rj s R'cCsFt}|djo |}n|ii|d|id|||S(s\Return a new PhotoImage with the same image as this widget but zoom it with X and Y.R'Rjs-zoomN(RgRkR)RR*R,R@R](R*RR)Rk((R tzoom s   "cCsFt}|djo |}n|ii|d|id|||S(skReturn a new PhotoImage based on the same image as this widget but use only every Xth or Yth pixel.R'Rjs -subsampleN(RgRkR)RR*R,R@R](R*RR)Rk((R t subsample s   "cCs|ii|id||S(s8Return the color (red, green, blue) of the pixel at X,Y.R:N(R*R,R@R]RR)(R*RR)((R R: scCsd|id|f}|o7|ddjo|d}n|dt|}n|ii|dS(syPut row formated colors to image starting from position TO, e.g. image.put("{red green} {blue yellow}", to=(4,6))tputis-toiN(s-to(R*R]RReRRR,R@(R*RRRe((R Rn scCs`|id|f}|o|d|f}n|o|dt|}n|ii|dS(sRWrite image to file FILENAME in FORMAT starting from position FROM_COORDS.R*s-formats-fromN(s-from( R*R]tfilenameRetformatt from_coordsRR,R@(R*RoRpRqRe((R R* s(RRRR R3RiR{RRjRlRmR:RnR*(((R Rg| s         t BitmapImagecBs tZdZehedZRS(s"Widget which can display a bitmap.cKs ti|d||||dS(sqCreate a bitmap with NAME. Valid resource names: background, data, file, foreground, maskdata, maskfile.RN(RdR3R*R]RR)Rf(R*R]RR)Rf((R R3 s(RRRR R3(((R Rr s cCstiiddS(NRR(RR,R@(((R R scCstiiddS(NRR(RR,R@(((R R stSpinboxcBstZdZehdZdZedZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZedZRS(sspinbox widget.cKsti||d||dS(sConstruct a spinbox widget with the parent MASTER. STANDARD OPTIONS activebackground, background, borderwidth, cursor, exportselection, font, foreground, highlightbackground, highlightcolor, highlightthickness, insertbackground, insertborderwidth, insertofftime, insertontime, insertwidth, justify, relief, repeatdelay, repeatinterval, selectbackground, selectborderwidth selectforeground, takefocus, textvariable xscrollcommand. WIDGET-SPECIFIC OPTIONS buttonbackground, buttoncursor, buttondownrelief, buttonuprelief, command, disabledbackground, disabledforeground, format, from, invalidcommand, increment, readonlybackground, state, to, validate, validatecommand values, width, wrap, tspinboxN(RIR3R*R)RRf(R*R)RRf((R R3 scCs|ii|id|S(sReturn a tuple of X1,Y1,X2,Y2 coordinates for a rectangle which encloses the character given by index. The first two elements of the list give the x and y coordinates of the upper-left corner of the screen area covered by the character (in pixels relative to the widget) and the last two elements give the width and height of the character, in pixels. The bounding box may refer to a region outside the visible area of the window. RN(R*R,R@RkR(R*R((R R s cCs|ii|id||S(sWDelete one or more elements of the spinbox. First is the index of the first character to delete, and last is the index of the character just after the last one to delete. If last isn't specified it defaults to first+1, i.e. a single character is deleted. This command returns an empty string. RN(R*R,R@RkRR(R*RR((R R scCs|ii|idS(sReturns the spinbox's stringR:N(R*R,R@Rk(R*((R R: scCs|ii|id|S(sAlter the position of the insertion cursor. The insertion cursor will be displayed just before the character given by index. Returns an empty string RN(R*R,R@RkR(R*R((R R scCs|ii|id||S(s{Returns the name of the widget at position x, y Return value is one of: none, buttondown, buttonup, entry R N(R*R,R@RkRR)(R*RR)((R R  scCs|ii|id|S(s;Returns the numerical index corresponding to index RN(R*R,R@RkR(R*R((R R scCs|ii|id||S(sDInsert string s at index Returns an empty string. R[N(R*R,R@RkRRZ(R*RRZ((R R[ scCs|ii|id|S(sCauses the specified element to be invoked The element could be buttondown or buttonup triggering the action associated with it. RXN(R*R,R@Rktelement(R*Ru((R RX scGs-|i|ii|idf|pfS(sInternal function.RN(R*RR,R@RkRe(R*Re((R R# scCs|id|S(sRecords x and the current view in the spinbox window; used in conjunction with later scan dragto commands. Typically this command is associated with a mouse button press in the widget. It returns an empty string. RN(R*RR(R*R((R R( scCs|id|S(sCompute the difference between the given x argument and the x argument to the last scan mark command It then adjusts the view left or right by 10 times the difference in x-coordinates. This command is typically associated with mouse motion events in the widget, to produce the effect of dragging the spinbox at high speed through the window. The return value is an empty string. RN(R*RR(R*R((R R1 s cGs-|i|ii|idf|pfS(sInternal function.RN(R*RR,R@RkRe(R*Re((R R= scCs|id|S(sLocate the end of the selection nearest to the character given by index, Then adjust that end of the selection to be at index (i.e including but not going beyond index). The other end of the selection is made the anchor point for future select to commands. If the selection isn't currently in the spinbox, then a new selection is created to include the characters between index and the most recent selection anchor point, inclusive. Returns an empty string. RN(R*RR(R*R((R RB s cCs |idS(sClear the selection If the selection isn't in this widget then the command has no effect. Returns an empty string. RN(R*R(R*((R RP scCs|id|S(sSets or gets the currently selected element. If a spinbutton element is specified, it will be displayed depressed RuN(R*RRu(R*Ru((R tselection_elementX s(RRRR R3RRR:RR RR[RXRRRRRRRv(((R Rs s"            t LabelFramecBstZdZehdZRS(slabelframe widget.cKsti||d||dS(sConstruct a labelframe widget with the parent MASTER. STANDARD OPTIONS borderwidth, cursor, font, foreground, highlightbackground, highlightcolor, highlightthickness, padx, pady, relief, takefocus, text WIDGET-SPECIFIC OPTIONS background, class, colormap, container, height, labelanchor, labelwidget, visual, width t labelframeN(RIR3R*R)RRf(R*R)RRf((R R3d s(RRRR R3(((R Rwb s t PanedWindowcBstZdZehdZdZdZeZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZedZeZdZRS(spanedwindow widget.cKsti||d||dS(sTConstruct a panedwindow widget with the parent MASTER. STANDARD OPTIONS background, borderwidth, cursor, height, orient, relief, width WIDGET-SPECIFIC OPTIONS handlepad, handlesize, opaqueresize, sashcursor, sashpad, sashrelief, sashwidth, showhandle, t panedwindowN(RIR3R*R)RRf(R*R)RRf((R R3z s cKs-|ii|id|f|i|dS(s!Add a child widget to the panedwindow in a new pane. The child argument is the name of the child widget followed by pairs of arguments that specify how to manage the windows. Options may have any of the values accepted by the configure subcommand. RN(R*R,R@RkRRRf(R*RRf((R R scCs|ii|id|dS(sRemove the pane containing child from the panedwindow All geometry management options for child will be forgotten. R5N(R*R,R@RkR(R*R((R R_ scCs|ii|id||S(sIdentify the panedwindow component at point x, y If the point is over a sash or a sash handle, the result is a two element list containing the index of the sash or handle, and a word indicating whether it is over a sash or a handle, such as {0 sash} or {2 handle}. If the point is over any other part of the panedwindow, the result is an empty list. R N(R*R,R@RkRR)(R*RR)((R R  s cGs-|i|ii|idf|pfS(sInternal function.tproxyN(R*RR,R@RkRe(R*Re((R R{ scCs |idS(sBReturn the x and y pair of the most recent proxy location tcoordN(R*R{(R*((R t proxy_coord scCs |idS(s+Remove the proxy from the display. R5N(R*R{(R*((R t proxy_forget scCs|id||S(s:Place the proxy at the given x and y coordinates. RN(R*R{RR)(R*RR)((R t proxy_place scGs-|i|ii|idf|pfS(sInternal function.tsashN(R*RR,R@RkRe(R*Re((R R scCs|id|S(sAReturn the current x and y pair for the sash given by index. Index must be an integer between 0 and 1 less than the number of panes in the panedwindow. The coordinates given are those of the top left corner of the region containing the sash. pathName sash dragto index x y This command computes the difference between the given coordinates and the coordinates given to the last sash coord command for the given sash. It then moves that sash the computed difference. The return value is the empty string. R|N(R*RR(R*R((R t sash_coord s cCs|id|S(sRecords x and y for the sash given by index; Used in conjunction with later dragto commands to move the sash. RN(R*RR(R*R((R t sash_mark scCs|id|||S(s?Place the sash given by index at the given coordinates RN(R*RRRR)(R*RRR)((R t sash_place scCs'|ii|idf|d|fS(swQuery a management option for window. Option may be any value allowed by the paneconfigure subcommand tpanecgetRBN(R*R,R@RkRR(R*RR((R R scKs|djom| oeh}xT|ii|ii|id|D]+}|ddf|d||dds s<1>s( RIR3R*R)RRfR7RQRSRTRU(R*R)RRf((R R3>s (RRR R3(((R R=st TributtoncBstZdhdZRS(NcKsti||d|||id|i|id|i|id|i |id|i |d|d<|d|ds s<1>stbgtfgtactivebackground( RIR3R*R)RRfR7RQRSRTRU(R*R)RRf((R R3Fs(RRR R3(((R REscCst}dt}tdjo1y|tdd}WqQtj oqQXnt|d|}|it |ddd|d}|i||_ t |dd d|i }|i|i |i|i|idS( NsThis is Tcl/Tk version %sf8.0999999999999996s This should be a cedilla: s iso-8859-1Rs Click me!RcCs|iidd|idS(NRs[%s](RvttestRz(Rv((R R~^stQUIT(RRvt TclVersionRtunicodet NameErrorRRRRORR^R>RRRRX(R>RRRRv((R t_testRs(             t__main__(YRt __version__RotplatformtFixTkRttkinterRRt TkconstantstMacOSRt ImportErrorR RRRRRRtREADABLEtWRITABLEt EXCEPTIONtcreatefilehandlerRtdeletefilehandlerRRRRRRR!R%R/R&RKRORSRURXRQRRRTRWR[RKRRR2R3R8R=RBRIRJRORZR]R^R_R`RaRRRRRRRRRRR RRSRXRdRgRrRRRsRwRyRRRR(HRRRRXRRSRRRRRwRRORKRBRR^R]RRWRZRRRJRRdRRRRR=RR&RSRRRORaRRURyRgRR!RIRRoRTR RRRR3RXR_RsRRrRRRR[RKRRRR2RR`RR8R%R((R t?s              ,  8   ~,546>      Jvm!(a %<<    c@sFdZdfdYZdefdYZdfdYZdS(sGA more or less complete user-defined wrapper around dictionary objects.tUserDictcBstZddZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZddZddZddZdZdZdZddZeeZRS(NcKsIh|_|dj o|i|nt|o|i|ndS(N(tselftdatatdicttNonetupdatetlentkwargs(RRR((t/usr/lib/python2.4/UserDict.pyt__init__s    cCs t|iS(N(treprRR(R((Rt__repr__ scCs;t|tot|i|iSnt|i|SdS(N(t isinstanceRRtcmpRR(RR((Rt__cmp__ scCs t|iS(N(RRR(R((Rt__len__scCs |i|S(N(RRtkey(RR((Rt __getitem__scCs||i|scCs ||ijS(N(RRR(RR((Rt __contains__@scCs(|}x|D]}|||R((Rt _really_load\s                       ( t__name__t __module__t__doc__RKR*RRGR3RT(((RR 0s (RWR"R7tloggingt cookielibRRt FileCookieJarR;ROR.RRCRMRRR (RXRZR;RRMR.RCR7ROR"RRRR R((Rt? s= c@s`dZdkZdkZdkZdklZlZlZlZl Z defdYZ dS(s+Mozilla / Netscape cookie loading / saving.N(sreraise_unmasked_exceptionss FileCookieJars LoadErrorsCookiesMISSING_FILENAME_TEXTtMozillaCookieJarcBs5tZdZdZdZdZeeedZRS(s WARNING: you may want to backup your browser's cookies file if you use this class to save cookies. I *think* it works, but there have been bugs in the past! This class differs from CookieJar only in the format it uses to save and load cookies to and from a file. This class uses the Mozilla/Netscape `cookies.txt' format. lynx uses this file format, too. Don't expect cookies saved while the browser is running to be noticed by the browser (in fact, Mozilla on unix will overwrite your saved cookies if you change them on disk while it's running; on Windows, you probably can't save at all while the browser is running). Note that the Mozilla/Netscape format will downgrade RFC2965 cookies to Netscape cookies on saving. In particular, the cookie version and port number information is lost, together with information about whether or not Path, Port and Discard were specified by the Set-Cookie2 (or Set-Cookie) header, and whether or not the domain as set in the HTTP header started with a dot (yes, I'm aware some domains in Netscape files start with a dot and some don't -- trust me, you really don't want to know any more about this). Note that though Mozilla and Netscape use the same format, they use slightly different headers. The class saves cookies using the Netscape header by default (Mozilla can cope with that). s#( Netscape)? HTTP Cookie Files # Netscape HTTP Cookie File # http://www.netscape.com/newsref/std/cookie_spec.html # This is a generated file! Do not edit. cCs(ti} |i} ti|i| p|i t d|nyx|i} | djoPn| i do| d } n| iidp)| iidp| idjoqRn| id\}} }}}}}|d j}| d j} |djo|}d}n|id }| |jptt}|djod}t}ntd ||dt|| ||t|||ddh} | o| ioqRn| o| i"| oqRn|i#| qRWWn*t$t%ft d || fnXdS( Ns4%s does not look like a Netscape format cookies fileits it#t$s tTRUEt.is#invalid Netscape format file %s: %s(&ttimetnowtftreadlinetmagictretsearchtselftmagic_retcloset LoadErrortfilenametlinetendswithtstript startswithtsplittdomaintdomain_specifiedtpathtsecuretexpirestnametvaluetNonet initial_dottAssertionErrortFalsetdiscardtTruetCookietctignore_discardtignore_expirest is_expiredt set_cookietreraise_unmasked_exceptionstIOError(R RRR&R'RRRRRR RRR%RRRR"((t'/usr/lib/python2.4/_MozillaCookieJar.pyt _really_load/sZ     ?$          c Cs|djo-|idj o |i}q:ttnt|d}z9|i|it i } x|D]}| o|i oqon| o|i| oqon|io d}nd}|iido d} nd} |idj ot|i}nd}|idjod} |i}n|i} |i}|idi|i| |i||| |gdqoWWd|iXdS(NtwRtFALSERRs s (RRR t ValueErrortMISSING_FILENAME_TEXTtopenRtwritetheaderRRtcookieR&R"R'R(RRRRRtstrRRtjoinRR( R RR&R'RRRR5RRRR((R,tsaveps>        =( t__name__t __module__t__doc__RR4R-RR!R8(((R,Rs  A( R;R Rtloggingt cookielibR*t FileCookieJarRR$R1R( R<R>RRR1R R$RR*((R,t?s%c@s+dkZdkZeeidjoeidZndZyeieZWn ej odedGHnXeii GHdeii GHdeii GHdeii dGHd GHd GHxie d D][Zeiei GHd eieiGHd eiei GHdeiei d dGHd GHqWdS(Niis%http://rss.cnn.com/rss/cnn_latest.rsss Cannot parse s , invalid urls s Reload Time: s minutess---------------------s Newest Pastes:is Posted on s at ids...(t feedparsertsystlentargvtsitetparsetjtIOErrortfeedttitletlinkt descriptiontttltrangetitentriestdate(RRRRR((t rssreader.pyt?s*    c@s[dZdgZdefdYZdZdefdYZdklZlZdS(s Thread-local objects. (Note that this module provides a Python version of the threading.local class. Depending on the version of Python you're using, there may be a faster one available. You should always import the `local` class from `threading`.) Thread-local objects support the management of thread-local data. If you have data that you want to be local to a thread, simply create a thread-local object and use its attributes: >>> mydata = local() >>> mydata.number = 42 >>> mydata.number 42 You can also access the local-object's dictionary: >>> mydata.__dict__ {'number': 42} >>> mydata.__dict__.setdefault('widgets', []) [] >>> mydata.widgets [] What's important about thread-local objects is that their data are local to a thread. If we access the data in a different thread: >>> log = [] >>> def f(): ... items = mydata.__dict__.items() ... items.sort() ... log.append(items) ... mydata.number = 11 ... log.append(mydata.number) >>> import threading >>> thread = threading.Thread(target=f) >>> thread.start() >>> thread.join() >>> log [[], 11] we get different data. Furthermore, changes made in the other thread don't affect data seen in this thread: >>> mydata.number 42 Of course, values you get from a local object, including a __dict__ attribute, are for whatever thread was current at the time the attribute was read. For that reason, you generally don't want to save these values across threads, as they apply only to the thread they came from. You can create custom local objects by subclassing the local class: >>> class MyLocal(local): ... number = 2 ... initialized = False ... def __init__(self, **kw): ... if self.initialized: ... raise SystemError('__init__ called too many times') ... self.initialized = True ... self.__dict__.update(kw) ... def squared(self): ... return self.number ** 2 This can be useful to support default values, methods and initialization. Note that if you define an __init__ method, it will be called each time the local object is used in a separate thread. This is necessary to initialize each thread's dictionary. Now if we create a local object: >>> mydata = MyLocal(color='red') Now we have a default number: >>> mydata.number 2 an initial color: >>> mydata.color 'red' >>> del mydata.color And a method that operates on the data: >>> mydata.squared() 4 As before, we can access the data in a separate thread: >>> log = [] >>> thread = threading.Thread(target=f) >>> thread.start() >>> thread.join() >>> log [[('color', 'red'), ('initialized', True)], 11] without affecting this thread's data: >>> mydata.number 2 >>> mydata.color Traceback (most recent call last): ... AttributeError: 'MyLocal' object has no attribute 'color' Note that subclasses can define slots, but they are not thread local. They are shared across threads: >>> class MyLocal(local): ... __slots__ = 'number' >>> mydata = MyLocal() >>> mydata.number = 42 >>> mydata.color = 'red' So, the separate thread: >>> thread = threading.Thread(target=f) >>> thread.start() >>> thread.join() affects what we see: >>> mydata.number 11 >>> del mydata tlocalt _localbasecBstZdZdZRS(Nt _local__keyt _local__argst _local__lockcOsti|}ddtt|f}ti|d|ti|d||fti|dt |p|o#|i ti jot dnti |d}|ti|<|S(NRs thread.local.RRs*Initialization arguments are not supportedt__dict__(tobjectt__new__tclstselftstrtidtkeyt __setattr__targstkwtRLockt__init__t TypeErrort__getattribute__tdictt currentThreadR(RRRR R R((t&/usr/lib/python2.4/_threading_local.pyRs!(s _local__keys _local__argss _local__lock(t__name__t __module__t __slots__R(((RRscCsti|d}tii|}|djo{h}|ti|<d?d@<dAdB<dCdD<dEdF<dGdH<dIdJ<dKdL<dMdN<dOdP<dQdR<dSdT<dUdV<dWdX7}||d@d>7}|i t|d?t|d ?d @t|d?d @t|d ?t|d ?d @t|d ?d @t|d?t|d @gqUWti|}|djo|d dSnX|d jo|d dSn;|djo|d dSn|djo|d dSn|S(scEncode a string using Base32. s is the string to encode. The encoded string is returned. itis!HHBiiii iii iiis======is====is===iit=N(tpartstdivmodtlenRtquantatleftovertrangetitstructtunpacktc1tc2tc3textendt_b32tabt EMPTYSTRINGRR( RRMRRGRJRQRRRKRP((RRs, .y     c Cs'tt|d\}}|otdn|o%t|hdd<d|<}n|o|i }nd} t i d|} | o5t| id} | djo|| }qng}d}d } x|D]}ti|}|djotd n|t|| >7}| d 8} | djo*|itid |d}d } qqWtid |} | djo d } ny| djo| d } n^| djo| d } nC| djo| d } n(| djo| d } n td|i| ti|S(sGDecode a Base32 encoded string. s is the string to decode. Optional casefold is a flag specifying whether a lowercase alphabet is acceptable as input. For security purposes, the default is False. RFC 3548 allows for optional mapping of the digit 0 (zero) to the letter O (oh), and for optional mapping of the digit 1 (one) to either the letter I (eye) or letter L (el). The optional argument map01 when not None, specifies which letter the digit 1 should be mapped to (when map01 is not None, the digit 0 is always mapped to the letter O). For security purposes the default is None, so that 0 and 1 are not allowed in the input. The decoded string is returned. A TypeError is raised if s were incorrectly padded or if there are non-alphabet characters present in the string. isIncorrect paddingt0R:t1is(?P[=]*)$tpadi#sNon-base32 digit foundis%010xRiiiiiiiiN(RHRIRRJRKR$tmap01RtcasefoldtuppertpadcharstretsearchtmotgroupRGtacctshifttct_b32revtgettvalR tappendRt unhexlifytlastRUR( RRZRYRfRGRJRKRaRcRiR\RbR_((RRsT%            cCsti|iS(scEncode a string using Base16. s is the string to encode. The encoded string is returned. N(RthexlifyRR[(R((RRscCsG|o|i}ntid|otdnti|S(swDecode a Base16 encoded string. s is the string to decode. Optional casefold is a flag specifying whether a lowercase alphabet is acceptable as input. For security purposes, the default is False. The decoded string is returned. A TypeError is raised if s were incorrectly padded or if there are non-alphabet characters present in the string. s [^0-9A-F]sNon-base16 digit foundN(RZRR[R]R^R$RRh(RRZ((RR s iLcCsxto|it}|pPnxGt|tjo3|itt|}|pPn||7}q(Wti|}|i |qWdS(sEncode a file.N( tTruetinputtreadt MAXBINSIZERRItnsRRtlinetoutputtwrite(RlRqRRpRo((RRscCsGx@to8|i}|pPnti|}|i|qWdS(sDecode a file.N( RkRltreadlineRpRR!RRqRr(RlRqRRp((RR*s cCs]g}xGtdt|tD]-}|||t!}|iti |qWdi |S(sEncode a string.iRN( tpiecesRLRIRRnRMtchunkRgRRR(RRMRuRt((RR4scCs ti|S(sDecode a string.N(RR!R(R((RR=scCsLdk}dk}y#|i|idd\}}WnF|ij o7}|i|_|GHd|idGH|i dnXt }xu|D]m\}}|djo t }n|djo t}n|d jo t}n|d jotdSqqW|o2|dd jo!|t|dd |in||i|idS( sSmall test programNitdeutsusage: %s [-d|-e|-u|-t] [file|-] -d, -u: decode -e: encode (default) -t: encode and decode string 'Aladdin:open sesame'iis-es-ds-us-tt-trb(tsystgetopttargvtoptstargsterrorR#tstderrtstdouttexitRtfunctotaRttest1topentstdin(RR}RRyRR#RzR|((RttestDs.#      !cCs5d}t|}t|}|Gt|G|GHdS(NsAladdin:open sesame(ts0Rts1Rts2trepr(RRR((RR]s  t__main__(*t__doc__R]RNRt__all__t_[1]RLt_xtchrRRURR RRR R R R t _b32alphabettvaluesRRTtdictRRtlongRdRtFalseRRR t MAXLINESIZERnRRRRRRt__name__( RR R RdRRTRRnRNRRRR RR]RRRRRRRR RRR RRURRRR((Rt?s>   0-     ' '? *J       c@sdZdddZeZdddZeZdddZdddZy/dklZlZlZlZlZlZWne j onXdS(sBisection algorithms.icCsy|djot|}nxE||jo7||d}|||jo |}q |d}q W|i||dS(sInsert item x in list a, and keep it sorted assuming a is sorted. If x is already in a, insert it to the right of the rightmost x. Optional args lo (default 0) and hi (default len(a)) bound the slice of a to be searched. iiN(thitNonetlentatlotmidtxtinsert(RRRRR((t/usr/lib/python2.4/bisect.pyt insort_rights   cCsi|djot|}nxE||jo7||d}|||jo |}q |d}q W|S(srReturn the index where to insert item x in list a, assuming a is sorted. The return value i is such that all e in a[:i] have e <= x, and all e in a[i:] have e > x. So if x already appears in the list, i points just beyond the rightmost x already there. Optional args lo (default 0) and hi (default len(a)) bound the slice of a to be searched. iiN(RRRRRRR(RRRRR((Rt bisect_rights    cCsy|djot|}nxE||jo7||d}|||jo|d}q |}q W|i||dS(sInsert item x in list a, and keep it sorted assuming a is sorted. If x is already in a, insert it to the left of the leftmost x. Optional args lo (default 0) and hi (default len(a)) bound the slice of a to be searched. iiN(RRRRRRRR(RRRRR((Rt insort_left+s   cCsi|djot|}nxE||jo7||d}|||jo|d}q |}q W|S(sqReturn the index where to insert item x in list a, assuming a is sorted. The return value i is such that all e in a[:i] have e < x, and all e in a[i:] have e >= x. So if x already appears in the list, i points just before the leftmost x already there. Optional args lo (default 0) and hi (default len(a)) bound the slice of a to be searched. iiN(RRRRRRR(RRRRR((Rt bisect_left=s    (s bisect_rights bisect_lefts insort_lefts insort_rightsinsortsbisectN( t__doc__RR tinsortR tbisectR R t_bisectt ImportError(R RR RR R ((Rt?s/c@sdZdkZdddddddd d d d d ddddddgZeZdZdZdddddddddddddg ZdfdYZdfdYZ e dZ e dZ ed Z ed!Z ed"\ZZZZZZZdad#Zd$Zd%Zd&Zd'Zd(Zd)Zd*Zd+Zd,Z ddd-Z!ddd.Z"d"d/dZ#d0Z$e#e$d1Z%e#e$d2Z&dde$d3Z'dde$d4Z(d5Z)ei*e)ddi+Z,d6Z-dS(7s$Calendar printing functions Note when comparing these calendars to the ones printed by cal(1): By default, these calendars have Monday as the first day of the week, and Sunday as the last (the European convention). Use setfirstweekday() to set the first day of the week (0=Monday, 6=Sunday).Nterrortsetfirstweekdayt firstweekdaytisleaptleapdaystweekdayt monthranget monthcalendartprmonthtmonthtprcaltcalendarttimegmt month_namet month_abbrtday_nametday_abbrt weekheaderiiiiiit_localized_monthcBsstZgZedD]#Zeeideddiq[Zei dddZ dZ dZ RS( Ni iiicCsdS(Nt((tx((t/usr/lib/python2.4/calendar.pyt"scCs ||_dS(N(tformattself(RR((Rt__init__$scCsZ|i|}t|to,g}|D]}|||iq(~Sn||iSdS(N( Rt_monthstitfuncst isinstancetslicet_[1]tfR(RRRR R((Rt __getitem__'s ,cCsdS(Ni ((R((Rt__len__.s( t__name__t __module__RtrangeRtdatetimetdatetstrftimeRtinsertRR!R"(((RRs =  t_localized_daycBs`tZgZedD]#Zeeiddediq[ZdZ dZ dZ RS(NiiicCs ||_dS(N(RR(RR((RR6scCsZ|i|}t|to,g}|D]}|||iq(~Sn||iSdS(N( Rt_daysRRRRRR R(RRRR R((RR!9s ,cCsdS(Ni((R((RR"@s( R#R$RR%RR&R'R(R+RR!R"(((RR*1s=  s%As%as%Bs%bicCstS(N(t _firstweekday(((RRPscCs5t|jo tjnp tdn|adS(s4Set weekday (Monday=0, Sunday=6) to start each week.s4bad weekday number; must be 0 (Monday) to 6 (Sunday)N(tMONDAYRtSUNDAYt ValueErrorR,(R((RRSs  cCs0|ddjo|ddjp|ddjS(s.Return 1 for leap years, 0 for non-leap years.iiidiN(tyear(R0((RR[scCsD|d8}|d8}|d|d|d|d|d|dS(sFReturn number of leap years in range [y1, y2). Assume y1 <= y2.iiidiN(ty1ty2(R1R2((RR_s  cCsti|||iS(sTReturn weekday (0-6 ~ Mon-Sun) for year (1970-...), month (1-12), day (1-31).N(R&R'R0R tdayR(R0R R3((RRfscCshd|jo djnp tdnt||d}t||tjo t|}||fS(sQReturn weekday (0-6 ~ Mon-Sun) and number of days (28-31) for year, month.ii sbad month numberN( R R/RR0tday1tmdaystFebruaryRtndays(R0R R4R7((RRks  !c Cst||\}}g}td}t|ddd}x||josdddddddg}xD|D]<}d|jo |jno|||((RtprweekscCs[g}xE|D]=}|djo d}n d|}|i|i|q Wdi|S(s/Returns a single week in a string (no newline).iRs%2it N(tdaysR=R3tsR;tcenterR>tjoin(R=R>RBRAR3((RR<s   cCsp|djo t}nt}g}x=tttdD](}|i||d| i |q7Wdi |S(sReturn a header for a week.i iR@N( R>RtnamesRRAR%R,RR;RCRD(R>RRARE((RRs  &cCst||||GdS(sPrint a month's calendar.N(R ttheyeartthemonthtwtl(RFRGRHRI((RRscCstd|}td|}dt||fid|ddid|t|id|}x8t ||D]'}|t ||id|}q}W|| dS(s.Return a month's calendar string (multi-line).iis%s %ris N( tmaxRHRIR RGRFRCtrstripRRBRtaweekR<(RFRGRHRIRLRB((RR sO%iicCst|||||GHdS(s-Prints 3-column formatting for year calendarsN(tformat3cstringtatbtctcolwidthtspacing(RNRORPRQRR((Rtformat3cscCs7|i|d||i|d||i|S(sEReturns a string formatted from 3 strings, centered within 3 columns.R@N(RNRCRQRRRORP(RNRORPRQRR((RRMscCst||||GdS(sPrint a year's calendar.N(R R0RHRIRP(R0RHRIRP((RR sc Cs#td|}td|}td|}|ddd}t|i|d|did|} t |}t |||||i}x{t ttddD]c} | d|t t| t| dt| d||id||d|} g}d}xZt | | dD]E} t|| } t| |jot| }n|i| q'Wxt |D]} g}xL|D]D} | t| jo|idq|it| | |qW| t |d|d|d||id|} q}WqW| | dS( s1Returns a year's calendar as a multi-line string.iiiis i iRN(RJRHRIRPRQtreprR0RCRKRBRtheaderRMR%tJanuarytqR tdatatheighttamonthRtcaltlenR;RtweeksR<(R0RHRIRPRYRURQRXR]RRZRWRBR[((RR s>/ +' #ic Csq|d \}}} }} }ti||di t | d}|d|}|d| }|d|}|S(sBUnrelated but handy function to calculate Unix timestamp from GMT.iiii<N(ttupleR0R R3thourtminutetsecondR&R't toordinalt _EPOCH_ORDRAthourstminutestseconds( R^R_RfRAR RdRaR0ReR3R`((RR s'(.t__doc__R&t__all__R/RRVR6R5RR*RRR RR%R-tTUESDAYt WEDNESDAYtTHURSDAYtFRIDAYtSATURDAYR.R,RRRRRRRR?R<RRR t _colwidtht_spacingRSRMR R tEPOCHR'RbRcR ((R-RRlR.R&R RMR5RoRRmR*RRRhRiRkR RRnRcR<R6RRRVRjRpR?R RRR RRRRR RRS((Rt?sF <-    !          c@sdZdZdkZdkZdkZdkZdkZdkZdklZdddddd d d d d ddddddddgZ dZ e a dZ dZdZe adae eidddZdddZdddZdZdZdfd YZdfd!YZdeifd"YZdefd#YZdefd$YZd efd%YZeid&Ze e e e d'Zeid(Z d)Z!d*Z"d+Z#d,Z$e d-Z%d.d/Z&e'd0jo endS(1sSupport module for CGI (Common Gateway Interface) scripts. This module defines a number of utilities for use by CGI scripts written in Python. s2.6N(sStringIOtMiniFieldStoraget FieldStoragetFormContentDicttSvFormContentDicttInterpFormContentDictt FormContenttparsetparse_qst parse_qsltparse_multipartt parse_headertprint_exceptiont print_environt print_formtprint_directorytprint_argumentstprint_environ_usagetescapetcGsato5t o-yttdaWq<tj oq<Xntp tantat|dS(sWrite a log message, if there is a log file. Even though this function is called initlog(), you should always use log(); log is a variable that is set either to initlog (initially), to dolog (once the log file has been opened), or to nolog (when logging is disabled). The first argument is a format string; the remaining arguments (if any) are arguments to the % operator, so e.g. log("%s: %s", "a", "b") will write "a: b" to the log file, followed by a newline. If the global logfp is not None, it should be a file object to which log data is written. If the global logfp is None, the global logfile may be a string giving a filename to open, in append mode. This file should be world writable!!! If the file can't be opened, logging is silently disabled (since there is no safe place where we could send an error message). taN(tlogfiletlogfptopentIOErrortnologtlogtdologtallargs(R((t/usr/lib/python2.4/cgi.pytinitlog:s  cGsti||ddS(s=Write a log message to the log file. See initlog() for docs.s N(Rtwritetfmttargs(RR ((RR]scGsdS(s9Dummy function, assigned to log when logging is disabled.N((R((RRasicCs|d jo ti}nd|jod|d         cCs\h}xOt|||D];\}}||jo||i|q|g||g}|idD]#}|idD] }||q'q~}g}x|D]} | o| oqMn| idd} t | djo:|ot d| fn|o| i dqqMnt | dp|oUti| did d }ti| did d } |i || fqMqMW|S( sParse a query given as a string argument. Arguments: qs: URL-encoded query string to be parsed keep_blank_values: flag indicating whether blank values in URL encoded queries should be treated as blank strings. A true value indicates that blanks should be retained as blank strings. The default false value indicates that blank values are to be ignored and treated as if they were not included. strict_parsing: flag indicating what to do with parsing errors. If false (the default), errors are silently ignored. If true, errors raise a ValueError exception. Returns a list, as G-d intended. R't;t=iisbad query field: %rRit+t N(t_[1]R4tsplitts1ts2tpairstrt name_valueR7tnvtlenR2R6R;turllibtunquotetreplaceR9R:( R4R6R7R@R9RCRBRDRERFR:RG((RRs&@cCsd}d|jo|d}nt|ptd|fnd|} d|d} h}d}xM|| jo?d}d} |ot i |}|id}|o*yt|}Wqtj oqXn|djo4to|tjo tdn|i|} q#d} ng}xi|i} | p | }Pn| d djo(| i}|| | fjoPqn|i| q,W| djoqin|djop|oe|d} | d d jo| d } n | dd jo| d } n| |dKsR<iR=iiit"s\\s\s\"N(tmapRZRAtplisttpoptlowerR]R.tptfindtiR[R9R:RHRK(RZR.RhR:RfR]RcR9((RR Es 9 "cBsPtZdZeZeZeZeZhZeZ hZ hZ dZ dZ RS(s=Like FieldStorage, for use when no file uploads are possible.cCs||_||_dS(s&Constructor from field name and value.N(R9tselfR:(RiR9R:((Rt__init__ks cCsd|i|ifS(s Return printable representation.sMiniFieldStorage(%r, %r)N(RiR9R:(Ri((Rt__repr__qs(t__name__t __module__t__doc__R)tfilenametlistttypetfilet type_optionst dispositiontdisposition_optionsRVRjRk(((RR]s  cBstZdZeedeidddZdZdZdZ dZ edZ ed Z d Z d Zd Zd ZdZdZeZdZdZddZdZdZdZdZdZdZedZRS(sStore a sequence of fields, reading multipart/form-data. This class provides naming, typing, files stored on disk, and more. At the top level, it is accessible like a dictionary, whose keys are the field names. (Note: None can occur as a field name.) The items are either a Python list (if there's multiple values) or another FieldStorage or MiniFieldStorage object. If it's a single object, it has the following attributes: name: the field name, if specified; otherwise None filename: the filename, if specified; otherwise None; this is the client side filename, *not* the file name on which it is stored (that's a temporary file you don't deal with) value: the value as a *string*; for file uploads, this transparently reads the file every time you request the value file: the file(-like) object from which you can read the data; None if the data is stored a simple string type: the content-type, or None if not specified type_options: dictionary of options specified on the content-type line disposition: content-disposition, or None if not specified disposition_options: dictionary of corresponding options headers: a dictionary(-like) object (sometimes rfc822.Message or a subclass thereof) containing *all* headers The class is subclassable, mostly for the purpose of overriding the make_file() method, which is called internally to come up with a file open for reading and writing. This makes it possible to override the default choice of storing all files in a temporary directory and unlinking them as soon as they have been opened. Ric Cshd} ||_||_d|jo|di} n| djp | djopd|jo|d}n&tidotid}nd}t |}|djohdd<}qn|djoch}| d jod|d [value, value, ...] key in form -> Boolean form.keys() -> [key, key, ...] form.values() -> [[val, val, ...], [val, val, ...], ...] form.items() -> [(key, [val, val, ...]), (key, [val, val, ...]), ...] form.dict == {key: [val, val, ...], ...} cCs*td||_|_|d|_dS(NR,R&(RR,RiR8RSt query_string(RiR,((RRjs(RlRmRnRR,Rj(((RRs cBs2tZdZdZdZdZdZRS(sForm content as dictionary expecting a single value per field. If you only expect a single value for each field, then form[key] will return that single value. It will raise an IndexError if that expectation is not true. If you expect a field to have possible multiple values, than you can use form.getlist(key) to get all of the values. values() and items() are a compromise: they return single strings where there is a single value, and lists of strings otherwise. cCs6t|i|djo tdn|i|dS(Nisexpecting a single valuei(RHRiR8R]t IndexError(RiR]((RR-s cCs |i|S(N(RiR8R](RiR]((RR1scCsYg}xL|iiD];}t|djo|i|dq|i|qW|S(Nii(tresultRiR8tvaluesR:RHR;(RiRR:((RR3scCskg}x^|iiD]M\}}t|djo|i||dfq|i||fqW|S(Nii(RRiR8titemsR]R:RHR;(RiR:RR]((RR:s (RlRmRnRRRR(((RR!s    cBs)tZdZdZdZdZRS(s7This class is present for backwards compatibility only.cCsyti||}|ddjoLyt|SWqotj o+yt|SWqktj oqkXqoXn|iS(Nis 0123456789+-.( RRRiR]RR/R2tfloatR[(RiR]R((RREscCs`g}xS|iD]E}y|i||Wqtj o|i|i|qXqW|S(N(RRiRR]R;RR8(RiRR]((RRMs cCslg}x_|iD]Q}y|i|||fWqtj o!|i||i|fqXqW|S(N(RRiRR]R;RR8(RiRR]((RRUs #(RlRmRnRRR(((RRCs   cBsDtZdZdZdZdZdZdZdZRS(s7This class is present for backwards compatibility only.cCs'||ijo|i|SndSdS(N(R]RiR8R)(RiR]((RRascCsM||ijo5t|i||jo|i||SqIdSndSdS(N(R]RiR8RHtlocationR)(RiR]R((Rt indexed_valueds cCs+||ijo|i|dSndSdS(Ni(R]RiR8R)(RiR]((RR:jscCst|i|S(N(RHRiR8R](RiR]((RR~mscCs1||ijo|i|diSndSdS(Ni(R]RiR8R[R)(RiR]((RtstrippedoscCs|iS(N(RiR8(Ri((Rtparsrs( RlRmRnRRR:R~RR(((RR_s      cCsdGHHtit_yWt}ttt|t|t d}|d}dGH|Wnt nXdGHday/t}ttt|t|Wnt nXdS(sRobust test CGI script, usable as main program. Write minimal HTTP headers and dump all information provided to the script in HTML form. sContent-type: text/htmlcBs ddUdS(Ns,testing print_exception() -- italics?((((RtfscCs |dS(N(R(R((Rtgss9

What follows is a test, not an actual exception:

s*

Second try with a small maxlen...

i2N(R*tstdouttstderrRtformRRR R R,RRRR R1(R,RRR((Rttestys8          cCs|djoti\}}}ndk}HdGH|i|||i ||}dt di |d t |dfGH~dS(Ns+

Traceback (most recent call last):

s
%s%s
Ri( RqR)R*texc_infoR:ttbt tracebackt format_tbtlimittformat_exception_onlyRpRR\(RqR:RRRRp((RR s  ",cCs]|i}|iHdGHdGHx/|D]'}dGt|GdGt||GHq(WdGHHdS(s#Dump the shell environment as HTML.s

Shell Environment:

s
s
s
s
N(R,RtsortR]R(R,RR]((RR s  %cCs|i}|iHdGH|p dGHndGHx^|D]V}dt|dG||}dttt|dGHdtt|GHq8Wd GHHd S( s$Dump the contents of a form as HTML.s

Form Contents:

s

No form fields.s

s
t:sss
s
N(RRRR]RR:treprRq(RRR:R]((RR s     cCsVHdGHyti}Wn-tij o}dGtt|GHn Xt|GHHdS(s#Dump the current directory as HTML.s#

Current Working Directory:

s os.error:N(RtgetcwdtpwdterrortmsgRtstr(RR((RRs cCsHdGHHtiGHHdS(Ns

Command Line Arguments:

(R*R5(((RRs cCs dGHdS(s9Dump a list of environment variables used by CGI as HTML.s

These environment variables could have been set:

  • AUTH_TYPE
  • CONTENT_LENGTH
  • CONTENT_TYPE
  • DATE_GMT
  • DATE_LOCAL
  • DOCUMENT_NAME
  • DOCUMENT_ROOT
  • DOCUMENT_URI
  • GATEWAY_INTERFACE
  • LAST_MODIFIED
  • PATH
  • PATH_INFO
  • PATH_TRANSLATED
  • QUERY_STRING
  • REMOTE_ADDR
  • REMOTE_HOST
  • REMOTE_IDENT
  • REMOTE_USER
  • REQUEST_METHOD
  • SCRIPT_NAME
  • SERVER_NAME
  • SERVER_PORT
  • SERVER_PROTOCOL
  • SERVER_ROOT
  • SERVER_SOFTWARE
In addition, HTTP headers sent by the server may be passed in the environment as well. Here are some common variable names:
  • HTTP_ACCEPT
  • HTTP_CONNECTION
  • HTTP_HOST
  • HTTP_PRAGMA
  • HTTP_REFERER
  • HTTP_USER_AGENT
N((((RRscCsW|idd}|idd}|idd}|o|idd}n|S( s=Replace special characters '&', '<' and '>' by SGML entities.R's&ts>Ras"N(tsRKtquote(RR((RR ss^[ -~]{0,200}[!-~]$cCsdk}|i||S(N(tretmatcht _vb_patternR(RRR((RRMs t__main__((Rnt __version__R*RRIRTRtUserDictRyt__all__RR)RRRRRR1R,RRRR R RRRRRRRR R R RRRRRMRl(!RTR RR RRRR RRRIRR RR RRRRRRR*RRRRRyRRRRRMR((Rt?sN       <  #  5) ^ "'   /  c@sdZdkZdkZy dkTWn"ej oZedenXdddddd d d d d ddddddddddddddgZdZdZ Z dZ Z dZ d Zeid!joe ZZe Zne ZZeZe Ze Ze ZeZd"fd#YZd$efd%YZd&efd'YZd(fd)YZd*fd+YZd,dd-d.d/Zdd-d0Zd1Zd2Z d3Z!d4Z"d5Z#d6Z$y@e%d-Z&e%d7Z'e%d8Z(e%d9Z)e%d:Z*Wn1e+j o%dZ&dZ'dZ(dZ)dZ*nXd;Z,e,o dk-Z-ne.d<jo4eei/d=d>e_/eei0d>d=e_0ndS(?s codecs -- Python Codec Registry, API and helpers. Written by Marc-Andre Lemburg (mal@lemburg.com). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. N(t*s%Failed to load the builtin codecs: %stregistertlookuptopent EncodedFiletBOMtBOM_BEtBOM_LEtBOM32_BEtBOM32_LEtBOM64_BEtBOM64_LEtBOM_UTF8t BOM_UTF16t BOM_UTF16_LEt BOM_UTF16_BEt BOM_UTF32t BOM_UTF32_LEt BOM_UTF32_BEt strict_errorst ignore_errorstreplace_errorstxmlcharrefreplace_errorstregister_errort lookup_errorssssttlittletCodeccBs&tZdZddZddZRS(s Defines the interface for stateless encoders/decoders. The .encode()/.decode() methods may use different error handling schemes by providing the errors argument. These string values are predefined: 'strict' - raise a ValueError error (or a subclass) 'ignore' - ignore the character and continue with the next 'replace' - replace with a suitable replacement character; Python will use the official U+FFFD REPLACEMENT CHARACTER for the builtin Unicode codecs on decoding and '?' on encoding. 'xmlcharrefreplace' - Replace with the appropriate XML character reference (only for encoding). 'backslashreplace' - Replace with backslashed escape sequences (only for encoding). The set of allowed values can be extended via register_error. tstrictcCs tdS(s+ Encodes the object input and returns a tuple (output object, length consumed). errors defines the error handling to apply. It defaults to 'strict' handling. The method may not store state in the Codec instance. Use StreamCodec for codecs which have to keep state in order to make encoding/decoding efficient. The encoder must be able to handle zero length input and return an empty object of the output object type in this situation. N(tNotImplementedError(tselftinputterrors((t/usr/lib/python2.4/codecs.pytencodebscCs tdS(s Decodes the object input and returns a tuple (output object, length consumed). input must be an object which provides the bf_getreadbuf buffer slot. Python strings, buffer objects and memory mapped files are examples of objects providing this slot. errors defines the error handling to apply. It defaults to 'strict' handling. The method may not store state in the Codec instance. Use StreamCodec for codecs which have to keep state in order to make encoding/decoding efficient. The decoder must be able to handle zero length input and return an empty object of the output object type in this situation. N(R(RRR ((R!tdecodeus(t__name__t __module__t__doc__R"R#(((R!RLs  t StreamWritercBs;tZddZdZdZdZedZRS(NRcCs||_||_dS(s[ Creates a StreamWriter instance. stream must be a file-like object open for writing (binary) data. The StreamWriter may use different error handling schemes by providing the errors keyword argument. These parameters are predefined: 'strict' - raise a ValueError (or a subclass) 'ignore' - ignore the character and continue with the next 'replace'- replace with a suitable replacement character 'xmlcharrefreplace' - Replace with the appropriate XML character reference. 'backslashreplace' - Replace with backslashed escape sequences (only for encoding). The set of allowed parameter values can be extended via register_error. N(tstreamRR (RR(R ((R!t__init__s cCs/|i||i\}}|ii|dS(s> Writes the object's contents encoded to self.stream. N(RR"tobjectR tdatatconsumedR(twrite(RR*R+R,((R!R-scCs|idi|dS(s[ Writes the concatenated list of strings to the stream using .write(). tN(RR-tjointlist(RR0((R!t writelinesscCsdS(s5 Flushes and resets the codec buffers used for keeping state. Calling this method should ensure that the data on the output is put into a clean state, that allows appending of new fresh data without having to rescan the whole stream to recover state. N((R((R!tresets cCs||i|S(s? Inherit all other methods from the underlying stream. N(tgetattrRR(tname(RR4R3((R!t __getattr__s(R$R%R)R-R1R2R3R5(((R!R's     t StreamReadercBstZddZddZddedZdedZdedZ dZ d d Z d Z d Z ed ZRS(NRcCs1||_||_d|_d|_d|_dS(s[ Creates a StreamReader instance. stream must be a file-like object open for reading (binary) data. The StreamReader may use different error handling schemes by providing the errors keyword argument. These parameters are predefined: 'strict' - raise a ValueError (or a subclass) 'ignore' - ignore the character and continue with the next 'replace'- replace with a suitable replacement character; The set of allowed parameter values can be extended via register_error. R.N(R(RR t bytebuffert charbuffertNonet linebuffer(RR(R ((R!R)s     cCs tdS(N(R(RRR ((R!R#sic Cs|io"di|i|_d|_nxjtob|djo?|djo|ioPq~qt|i|joPqnt|i|joPn|djo|i i }n|i i |}|i |}y|i||i\} }Wnntj ob} |oO|i|| i |i\} }| it}t|djoqgqlnX|||_ |i| 7_|pPq/q/W|djo|i}d|_n|i| }|i||_|S(s Decodes data from the stream self.stream and returns the resulting object. chars indicates the number of characters to read from the stream. read() will never return more than chars characters, but it might return less, if there are not enough characters available. size indicates the approximate maximum number of bytes to read from the stream for decoding purposes. The decoder can modify this setting as appropriate. The default value -1 indicates to read and decode as much as possible. size is intended to prevent having to decode huge files in one step. If firstline is true, and a UnicodeDecodeError happens after the first line terminator in the input only the first line will be returned, the rest of the input will be kept until the next call to read(). The method should use a greedy read strategy meaning that it should read as much data as is allowed within the definition of the encoding and the given size, e.g. if optional encoding endings or state markers are available on the stream, these should be read too. R.iiN(RR:R/R8R9tTruetcharstsizetlenR(treadtnewdataR7R+R#R tnewcharst decodedbytestUnicodeDecodeErrortexct firstlinetstartt splitlinestlinestresult( RR=R<RERBR+RHR@RIRARD((R!R?sJ         "       c Csm|iop|id}|id=t|idjo|id|_d |_n|p|itd}n|Sn|pd}d}xt o|i |dt }|o4|ido ||i dddd7}qn||7}|it }|ot|djo|d}|d=t|djo)|d c|i7<||_d |_n|d|i|_|p|itd}nPn|d}|ditd}||jo9di|d|i|_|o |}n|}Pq n| p |d j o+|o| o|itd}nPn|d jo|d 9}qqW|S( s Read one line from the input stream and return the decoded data. size, if given, is passed as size argument to the read() method. iiiHR.REs R=R<ii@iN(RR:tlineR>R8R9tkeependsRGtFalseR=treadsizeR;R?R+tendswithRHt line0withendtline0withoutendR/( RR=RKRORPR+RHRMRJ((R!treadline?s^     $         cCs|i}|i|S(sZ Read all lines available on the input stream and return them as list of lines. Line breaks are implemented using the codec's decoder method and are included in the list entries. sizehint, if given, is ignored since there is no efficient way to finding the true end-of-line. N(RR?R+RGRK(RtsizehintRKR+((R!t readliness  cCsd|_d|_d|_dS(s Resets the codec buffers used for keeping state. Note that no stream repositioning should take place. This method is primarily intended to be able to recover from decoding errors. R.uN(RR7R8R9R:(R((R!R2s  icCs!|i|ii||dS(sp Set the input stream's current position. Resets the codec buffers used for keeping state. N(RR2R(tseektoffsettwhence(RRURV((R!RTs cCs%|i}|o|SntdS(s4 Return the next decoded line from the input stream.N(RRQRJt StopIteration(RRJ((R!tnexts  cCs|S(N(R(R((R!t__iter__scCs||i|S(s? Inherit all other methods from the underlying stream. N(R3RR(R4(RR4R3((R!R5s(R$R%R)R#RLR?R9R;RQRSR2RTRXRYR3R5(((R!R6s  OI   tStreamReaderWritercBs}tZdZdZddZddZedZedZdZ d Z d Z d Z d Z ed ZRS(s StreamReaderWriter instances allow wrapping streams which work in both read and write modes. The design is such that one can use the factory functions returned by the codec.lookup() function to construct the instance. tunknownRcCs:||_||||_||||_||_dS(sR Creates a StreamReaderWriter instance. stream must be a Stream-like object. Reader, Writer must be factory functions or classes providing the StreamReader, StreamWriter interface resp. Error handling is done in the same way as defined for the StreamWriter/Readers. N(R(RtReaderR treadertWritertwriter(RR(R\R^R ((R!R)s  icCs|ii|S(N(RR]R?R=(RR=((R!R?scCs|ii|S(N(RR]RQR=(RR=((R!RQscCs|ii|S(N(RR]RSRR(RRR((R!RSscCs |iiS(s4 Return the next decoded line from the input stream.N(RR]RX(R((R!RXscCs|S(N(R(R((R!RYscCs|ii|S(N(RR_R-R+(RR+((R!R-scCs|ii|S(N(RR_R1R0(RR0((R!R1scCs|ii|iidS(N(RR]R2R_(R((R!R2s cCs||i|S(s? Inherit all other methods from the underlying stream. N(R3RR(R4(RR4R3((R!R5s(R$R%R&tencodingR)R?R9RQRSRXRYR-R1R2R3R5(((R!RZs          t StreamRecodercBstZdZdZdZddZddZedZedZ dZ d Z d Z d Z d Zed ZRS(sE StreamRecoder instances provide a frontend - backend view of encoding data. They use the complete set of APIs returned by the codecs.lookup() function to implement their task. Data written to the stream is first decoded into an intermediate format (which is dependent on the given codec combination) and then written to the stream using an instance of the provided Writer class. In the other direction, data is read from the stream using a Reader instance and then return encoded data to the caller. R[RcCsL||_||_||_||||_||||_||_dS(s Creates a StreamRecoder instance which implements a two-way conversion: encode and decode work on the frontend (the input to .read() and output of .write()) while Reader and Writer work on the backend (reading and writing to the stream). You can use these objects to do transparent direct recodings from e.g. latin-1 to utf-8 and back. stream must be a file-like object. encode, decode must adhere to the Codec interface, Reader, Writer must be factory functions or classes providing the StreamReader, StreamWriter interface resp. encode and decode are needed for the frontend translation, Reader and Writer for the backend translation. Unicode is used as intermediate encoding. Error handling is done in the same way as defined for the StreamWriter/Readers. N( R(RR"R#R\R R]R^R_(RR(R"R#R\R^R ((R!R)s   icCs1|ii|}|i||i\}}|S(N(RR]R?R=R+R"R t bytesencoded(RR=RbR+((R!R??scCsQ|djo|ii}n|ii|}|i||i\}}|S(N( R=R9RR]RQR+R"R Rb(RR=RbR+((R!RQEs  cCs7|ii}|i||i\}}|idS(Ni(RR]R?R+R"R RbRG(RRRR+Rb((R!RSNscCs.|ii}|i||i\}}|S(s4 Return the next decoded line from the input stream.N(RR]RXR+R"R Rb(RRbR+((R!RXTscCs|S(N(R(R((R!RY[scCs+|i||i\}}|ii|S(N(RR#R+R t bytesdecodedR_R-(RR+Rc((R!R-^scCs:di|}|i||i\}}|ii|S(NR.( R/R0R+RR#R RcR_R-(RR0R+Rc((R!R1cscCs|ii|iidS(N(RR]R2R_(R((R!R2is cCs||i|S(s? Inherit all other methods from the underlying stream. N(R3RR(R4(RR4R3((R!R5ns(R$R%R&t data_encodingt file_encodingR)R?R9RQRSRXRYR-R1R2R3R5(((R!Ra s  !       trbRic Cs|dj od|jo|d}nti|||} |djo| Snt|\}}}}t | |||} || _| S(s Open an encoded file using the given mode and return a wrapped version providing transparent encoding/decoding. Note: The wrapped version will only accept the object format defined by the codecs, i.e. Unicode objects for most builtin codecs. Output is also codec dependent and will usually by Unicode as well. Files are always opened in binary mode, even if no binary mode was specified. This is done to avoid data loss due to encodings using 8-bit values. The default file mode is 'rb' meaning to open the file in binary read mode. encoding specifies the encoding which is to be used for the file. errors may be given to define the error handling. It defaults to 'strict' which causes ValueErrors to be raised in case an encoding error occurs. buffering has the same meaning as for the builtin open() API. It defaults to line buffered. The returned wrapped file object provides an extra attribute .encoding which allows querying the used encoding. This attribute is only available if an encoding was specified as parameter. tbN(R`R9tmodet __builtin__Rtfilenamet bufferingtfileRtetdtsrtswRZR tsrw( RjRhR`R RkRmRnRoRpRlRq((R!Rws  c Cst|djo |}nt|d \}}t|d\}}t||||||}||_||_|S(s Return a wrapped version of file which provides transparent encoding translation. Strings written to the wrapped file are interpreted according to the given data_encoding and then written to the original file as string using file_encoding. The intermediate encoding will usually be Unicode but depends on the specified codecs. Strings are read from the file using file_encoding and then passed back to the caller as string using data_encoding. If file_encoding is not given, it defaults to data_encoding. errors may be given to define the error handling. It defaults to 'strict' which causes ValueErrors to be raised in case an encoding error occurs. The returned wrapped file object provides two extra attributes .data_encoding and .file_encoding which reflect the given parameters of the same name. The attributes can be used for introspection by Python programs. iN( ReR9RdRR"R#R\R^RaRlR Ro( RlRdReR RoR^R#R\R"((R!Rs      cCst|dS(s Lookup up the codec for the given encoding and return its encoder function. Raises a LookupError in case the encoding cannot be found. iN(RR`(R`((R!t getencoderscCst|dS(s Lookup up the codec for the given encoding and return its decoder function. Raises a LookupError in case the encoding cannot be found. iN(RR`(R`((R!t getdecoderscCst|dS(s Lookup up the codec for the given encoding and return its StreamReader class or factory function. Raises a LookupError in case the encoding cannot be found. iN(RR`(R`((R!t getreaderscCst|dS(s Lookup up the codec for the given encoding and return its StreamWriter class or factory function. Raises a LookupError in case the encoding cannot be found. iN(RR`(R`((R!t getwriterscCs%h}x|D]}||| dict Return a dictionary where elements of the rng sequence are mapped to themselves. N(trestrngti(RwRxRv((R!tmake_identity_dicts cCsLh}x?|iD]1\}}||jo|||In,'        c @sdZdkZdkZdkZdkZdkZdkZdkZdkl Z y dk Z Wne j odk Z nXdkZdklZeidiZeeiZdZfdZdZdZd d d d d ddgZddddddddddddg ZgZx!eD]Zeieiq(We dZ!e dZ"hde <de <d e <d!e d:Z?d;Z@d<ZAd=ZBd>ZCei$d?ZDd@ZEdAZFdBZGdCZHdDfdEYZIdFfdGYZJdHeJfdIYZKdJZLdKZMdLfdMYZNdNfdOYZOdPePfdQYZQdReOfdSYZRdTkSlTZTlUZUdUkVlWZWdS(VsHTTP cookie handling for web clients. This module has (now fairly distant) origins in Gisle Aas' Perl module HTTP::Cookies, from the libwww-perl library. Docstrings, comments and debug strings in this code refer to the attributes of the HTTP cookie system as cookie-attributes, to distinguish them clearly from Python attributes. Class diagram (note that the classes which do not derive from FileCookieJar are not distributed with the Python standard library, but are available from http://wwwsearch.sf.net/): CookieJar____ / \ FileCookieJar \ / | \ \ MozillaCookieJar | LWPCookieJar \ | | | ---MSIEBase | | / | | | / MSIEDBCookieJar BSDDBCookieJar |/ MSIECookieJar N(s StringTypes(stimegmt cookielibsQa filename was not supplied (nor was the CookieJar instance initialised with one)cCs|tttf}tid}t||ondk}dk }dk }|i }|i d||i}|id|dddS(Niscookielib bug! %st stackleveli(tunmaskedtKeyboardInterruptt SystemExitt MemoryErrortsystexc_infotetypet issubclasstwarningst tracebacktStringIOtft print_exctNonetgetvaluetmsgtwarn(RR R R RRR ((t/usr/lib/python2.4/cookielib.pytreraise_unmasked_exceptions+s  icCs|d \}}}}}}|tjod|jo djnod|jo djnohd|jo djnoJd|jo djno,d|jo djnot|SndSdS( Niii iiii;i=( ttttyeartmonthtmdaythourtmintsect EPOCH_YEARttimegmR(RRRRRRR((Rt_timegm?stMontTuetWedtThutFritSattSuntJantFebtMartAprtMaytJuntJultAugtSeptOcttNovtDeccCs\|djoti}nti|d \}}}}}}d||||||fS(sHReturn a string representing time in seconds since epoch, t. If the function is called without an argument, it will use the current time. The format of the returned string is like "YYYY-MM-DD hh:mm:ssZ", representing Universal Time (UTC, aka GMT). An example of this format is: 1994-11-24 08:49:37Z is%04d-%02d-%02d %02d:%02d:%02dZN( ttRttimetgmtimeRtmonRRRR(R2RRRRRR5((Rt time2isozMs  %cCsn|djoti}nti|d \}}}}}}}dt ||t |d||||fS(sReturn a string representing time in seconds since epoch, t. If the function is called without an argument, it will use the current time. The format of the returned string is like this: Wed, DD-Mon-YYYY HH:MM:SS GMT is"%s %02d-%s-%04d %02d:%02d:%02d GMTiN( R2RR3R4RR5RRRRtwdaytDAYStMONTHS(R2RRRRRR7R5((Rt time2netscape^s  (tGMTtUTCtUTtZs^([-+])?(\d\d?):?(\d\d)?$cCsd}|tjo d}nti|}|oodt|id}|ido!|dt|id}n|iddjo | }qn|S(Niiiii<it-( Rtoffsetttzt UTC_ZONESt TIMEZONE_REtsearchtmtinttgroup(RARER@((Rtoffset_from_tz_stringrs  !c Csyti|id}Wnitj o]yt|} Wntj o dSnXd| jo djno | }qdSnX|djo d}n|djo d}n|djo d}nt|}t|}t|}t|}t|}|djot it i d} | d} |}|| | }| |} t| djo)| djo|d}q|d}qnt|||||||f} | dj oR|djo d}n|i}t|}|djodSn| |} n| S(Nii iiidi2R<(t MONTHS_LOWERtindexR5tlowert ValueErrorRFtimonRthrRRtyrtdayR3t localtimetcur_yrREttmptabsRRAR2tupperRHR@( RPR5RORNRRRARSR@RERMRRR2((Rt _str2timesR               !      sV^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$s+^(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)[a-z]*,?\s*s^ (\d\d?) # day (?:\s+|[-\/]) (\w+) # month (?:\s+|[-\/]) (\d+) # year (?: (?:\s+|:) # separator before clock (\d\d?):(\d\d) # hour:min (?::(\d\d))? # optional seconds )? # optional clock \s* ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+)? # timezone \s* (?:\(\w+\))? # ASCII representation of timezone in parens. \s*$c Cs;ti|}|o|i}ti|did}t |d|t |dt |dt |dt |df}t |Sn|i}tid|d}d gd\} }}}}} }ti|}|d j o%|i\} }}}}} }nd St| ||||| |S( sReturns time in seconds since epoch of time represented by a string. Return value is an integer. None is returned if the format of str is unrecognized, the time is outside the representable range, or the timezone string is not recognized. If the string contains no timezone, UTC is assumed. The timezone in the string may be numerical (like "-0800" or "+0100") or a string timezone (like "UTC", "GMT", "BST" or "EST"). Currently, only the timezone strings equivalent to UTC (zero offset) are known to the function. The function loosely parses the following formats: Wed, 09 Feb 1994 22:23:32 GMT -- HTTP format Tuesday, 08-Feb-94 14:15:29 GMT -- old rfc850 HTTP format Tuesday, 08-Feb-1994 14:15:29 GMT -- broken rfc850 HTTP format 09 Feb 1994 22:23:32 GMT -- HTTP format (no weekday) 08-Feb-94 14:15:29 GMT -- rfc850 format (no weekday) 08-Feb-1994 14:15:29 GMT -- broken rfc850 format (no weekday) The parser ignores leading and trailing whitespace. The time may be absent. If the year is given with only 2 digits, the function will select the century that makes the year closest to the current date. iiiiiitiN(tSTRICT_DATE_RERDttextREtgroupstgRIRJRKR5RFtfloatRRtlstript WEEKDAY_REtsubRRPRORNRRRAtLOOSE_HTTP_DATE_RERV( RYRORAR[RRRERNR5RRP((Rt http2times J " %s^ (\d{4}) # year [-\/]? (\d\d?) # numerical month [-\/]? (\d\d?) # day (?: (?:\s+|[-:Tt]) # separator before clock (\d\d?):?(\d\d) # hour:min (?::?(\d\d(?:\.\d*)?))? # optional seconds (and fractional) )? # optional clock \s* ([-+]?\d\d?:?(:?\d\d)? |Z|z)? # timezone (Z is "zero meridian", i.e. GMT) \s*$c Cs|i}dgd\}}}}}}}t i |}|dj o(|i \}}}}}}}} ndSt|||||||S(sv As for http2time, but parses the ISO 8601 formats: 1994-02-03 14:15:29 -0100 -- ISO 8601 format 1994-02-03 14:15:29 -- zone is optional 1994-02-03 -- only date 1994-02-03T14:15:29 -- Use T as separator 19940203T141529Z -- ISO 8601 compact format 19940203 -- only date iN(RYR]RRPR5RORNRRRAt ISO_DATE_RERDRERZt_RV( RYRARRNRERR5RORPRc((Rtiso2times  " (cCs+|id\}}|i| |i|S(s)Return unmatched part of re.Match object.iN(tmatchtspantstarttendtstring(ReRgRh((Rt unmatched4ss^\s*([^=\s;,]+)s&^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"s^\s*=\s*([^\s;,]*)s\\(.)c Cst|tjptg}x|D]}|}g}xo|ogti |}|ot |}|i d}ti |}|o1t |}|i d} tid| } nHti |}|o+t |}|i d} | i} nd} |i|| fq<|iido2|id}|o|i|ng}q<tidd|\}}|djptd|||f|}q<W|o|i|q'q'W|S( smParse header values into a list of lists containing key,value pairs. The function knows how to deal with ",", ";" and "=" as well as quoted values after "=". A list of space separated tokens are parsed as if they were separated by ";". If the header_values passed as argument contains multiple values, then they are treated as if they were a single value separated by comma ",". This means that this function is useful for parsing header fields that follow this syntax (BNF as from the HTTP/1.1 specification, but we relax the requirement for tokens). headers = #header header = (token | parameter) *( [";"] (token | parameter)) token = 1* separators = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) qdtext = > quoted-pair = "\" CHAR parameter = attribute "=" value attribute = token value = token | quoted-string Each header is represented by a list of key/value pairs. The value for a simple token (not part of a parameter) is None. Syntactically incorrect headers will not necessarily be parsed as you would want. This is easier to describe with some examples: >>> split_header_words(['foo="bar"; port="80,81"; discard, bar=baz']) [[('foo', 'bar'), ('port', '80,81'), ('discard', None)], [('bar', 'baz')]] >>> split_header_words(['text/html; charset="iso-8859-1"']) [[('text/html', None), ('charset', 'iso-8859-1')]] >>> split_header_words([r'Basic realm="\"foo\bar\""']) [[('Basic', None), ('realm', '"foobar"')]] is\1t,s^[=\s;]*RWis&split_header_words bug: '%s', '%s', %sN(ttypet header_valuest StringTypestAssertionErrortresultRYt orig_texttpairstHEADER_TOKEN_RERDRERjRGtnametHEADER_QUOTED_VALUE_REtvaluetHEADER_ESCAPE_RER_tHEADER_VALUE_REtrstripRtappendR]t startswithtretsubntnon_junkt nr_junk_chars( RmRrRtRRYR~RERqRpRv((Rtsplit_header_words=sH,    $ s([\"\\])cCsg}x|D]}g}xu|D]m\}}|dj oGtid|p t i d|}d|}nd||f}n|i |q W|o|i di |q q Wdi |S(sDo the inverse (almost) of the conversion done by split_header_words. Takes a list of lists of (key, value) pairs and produces a single header value. Attribute values are quoted if needed. >>> join_header_words([[("text/plain", None), ("charset", "iso-8859/1")]]) 'text/plain; charset="iso-8859/1"' >>> join_header_words([[("text/plain", None)], [("charset", "iso-8859/1")]]) 'text/plain, charset="iso-8859/1"' s^\w+$s\\\1s"%s"s%s=%ss; s, N( theaderstlistsRrtattrtktvRR|RDtHEADER_JOIN_ESCAPE_RER_Rztjoin(RRrRRRR((Rtjoin_header_wordss   c Csd}g}x|D]} g}t} xBtti d| D](\}}|i }|djoq>nd |jo|d}}n(ti d |d \}}|i}|d jo|i}||jo |}n|d jo t} n|djoL|ido|d }n|ido|d }nt|}qSn|i||fq>W|o)| p|idn|i|qqW|S(s5Ad-hoc parser for Netscape protocol cookie-attributes. The old Netscape cookie format for Set-Cookie can for instance contain an unquoted "," in the expires field, so we have to use this ad-hoc parser instead of split_header_words. XXX This may not make the best possible effort to parse all the crap that Netscape Cookie headers contain. Ronald Tschalar's HTTPClient parser is probably better, so could do worse than following that if this ever gives any trouble. Currently, this is also used for parsing RFC 2109 cookies. texpirestdomaintpathtsecuretportsmax-ages;\s*RWt=s\s*=\s*iitversiont"it0N(sexpiressdomainspathssecuresportsmax-age(sversionR(t known_attrsRpt ns_headerst ns_headerRrtFalset version_sett enumerateR|tsplittiitparamRyRRRR]RKtlctTrueR{tendswithRaRz( RRrRRRRRRRpRR((Rtparse_ns_headerssD            s\.\d+$cCs[ti|otSn|djotSn|ddjp|ddjotSntS(s*Return True if text is a host domain name.RWit.iN(tIPV4_RERDRYRR(RY((Rtis_HDNs "cCs|i}|i}||jotSnt|ptSn|i|}|djp |djotSn|idptSnt|dptSntS(sReturn True if domain A domain-matches domain B, according to RFC 2965. A and B may be host domain names or IP addresses. RFC 2965, section 1: Host names can be specified either as an IP address or a HDN string. Sometimes we compare one host name with another. (Such comparisons SHALL be case-insensitive.) Host A's name domain-matches host B's if * their host name strings string-compare equal; or * A is a HDN string and has the form NB, where N is a non-empty name string, B has the form .B', and B' is a HDN string. (So, x.y.com domain-matches .Y.com but not Y.com.) Note that domain-match is not a commutative operation: a.b.c.com domain-matches .c.com, but not the reverse. iiRiN( tARKtBRRRtrfindtiR{(RRR((Rt domain_matchs    cCsti|otSntS(sdReturn True if text is a sort-of-like a host domain name. For accepting/blocking domains. N(RRDRYRR(RY((Rtliberal_is_HDNscCs|i}|i}t|o t|p||jotSntSn|id}|o|i|otSn| o||jotSntS(s\For blocking/accepting domains. A and B may be host domain names or IP addresses. RN( RRKRRRRR{t initial_dotR(RRR((Rtuser_domain_match%s   s:\d+$cCsa|i}ti|d}|djo|idd}ntid|d}|iS(sReturn request-host, as defined by RFC 2965. Variation from RFC: returned value is lowercased, for convenient comparison. iRWtHostN( trequestt get_full_urlturlturlparsethostt get_headert cut_port_reR_RK(RRR((Rt request_host:s  cCsOt|}}|iddjoti| o|d}n||fS(szReturn a tuple (request-host, effective request-host name). As defined by RFC 2965, except both are lowercased. Ris.localN(RRterhntreq_hosttfindRRD(RRR((Rteff_request_hostJs 'cCs|i}ti|d\}}}}|od||f}nt|}ti dd|d||f}|i dpd|}n|S(s$request-URI, as defined by RFC 2965.is%s;%sRWt/N( RRRRRt parameterstquerytfragt escape_patht urlunparsetreq_pathR{(RRRRRRR((Rt request_pathUs  !cCsy|i}|id}|djoG||d}yt|Wqutj otd|dSquXnt }|S(Nt:iisnonnumeric port: '%s'( Rtget_hostRRRRRFRLtdebugRtDEFAULT_HTTP_PORT(RRRR((Rt request_portds    s%/;:@&=+$,!~*'()s%([0-9a-fA-F][0-9a-fA-F])cCsd|idiS(Ns%%%si(ReRGRU(Re((Rtuppercase_escaped_charvscCsKt|to|id}nti|t}tit |}|S(sEEscape any invalid characters in HTTP URL, and uppercase all escapes.sutf-8N( t isinstanceRtunicodetencodeturllibtquotetHTTP_PATH_SAFEtESCAPED_CHAR_RER_R(R((RRxs  cCst|id}|djoT||d}|id}t|o&|djp |djo d|Sqpn|S(sBReturn reach of host h, as defined by RFC 2965, section 1. The reach R of a host name H is defined as follows: * If - H is the host domain name of a host; and, - H has the form A.B; and - A has no embedded (that is, interior) dots; and - B has at least one embedded dot, or B is the string "local". then the reach of H is .B. * Otherwise, the reach of H is H. >>> reach("www.acme.com") '.acme.com' >>> reach("acme.com") 'acme.com' >>> reach("acme.local") '.local' RiitlocalN(thRRtbR(RRR((Rtreachs 'cCs8t|}t|t|iptSntSdS(s RFC 2965, section 3.3.6: An unverifiable transaction is to a third-party host if its request- host U does not domain-match the reach R of the request-host O in the origin transaction. N(RRRRRtget_origin_req_hostRR(RR((Rtis_third_partys  tCookiecBsStZdZdZdZedZdZedZdZ dZ RS(sHTTP Cookie. This class represents both Netscape and RFC 2965 cookies. This is deliberately a very simple class. It just holds attributes. It's possible to construct Cookie instances that don't comply with the cookie standards. CookieJar.make_cookies is the factory function for Cookie objects -- it deals with cookie parsing, supplying defaults, and normalising to the representation used in this class. CookiePolicy is responsible for checking them to see whether they should be accepted from and returned to the server. Note that the port may be present in the headers, but unspecified ("Port" rather than"Port=80", for example); if this is the case, port is None. cCs|dj ot|}n| dj ot| } n|djo|tjotdn||_||_ ||_ ||_||_|i |_ ||_ ||_| |_| |_| |_| |_| |_||_||_ti||_dS(Ns-if port is None, port_specified must be false(RRRFRRtport_specifiedRRLtselfRtRvRRKtdomain_specifiedtdomain_initial_dotRtpath_specifiedRtdiscardtcommentt comment_urltcopytrestt_rest(RRRtRvRRRRRRRRRRRRR((Rt__init__s,                cCs ||ijS(N(RtRR(RRt((Rthas_nonstandard_attrscCs|ii||S(N(RRtgetRttdefault(RRtR((Rtget_nonstandard_attrscCs||i|( RRRtpRRtlimitRvRtt namevalue(RRRR((Rt__str__s   cCsg}xgddddddddd d d d d ddgD]2}t||}|id|t|fq:W|idt|iddi|S(NRRtRvRRRRRRRRRRRRs%s=%ssrest=%ss Cookie(%s)s, ( targsRttgetattrRRRztreprRR(RRtRR((Rt__repr__ s4!( t__name__t __module__t__doc__RRRRRRRR(((RRs  '     t CookiePolicycBs2tZdZdZdZdZdZRS(s Defines which cookies get accepted from and returned to server. May also modify cookies, though this is probably a bad idea. The subclass DefaultCookiePolicy defines the standard rules for Netscape and RFC 2965 cookies -- override that if you want a customised policy. cCs tdS(sReturn true if (and only if) cookie should be accepted from server. Currently, pre-expired cookies never get this far -- the CookieJar class deletes such cookies itself. N(tNotImplementedError(RtcookieR((Rtset_ok#scCs tdS(sAReturn true if (and only if) cookie should be returned to server.N(R(RRR((Rt return_ok,scCstS(sMReturn false if cookies should not be returned, given cookie domain. N(R(RRR((Rtdomain_return_ok0scCstS(sKReturn false if cookies should not be returned, given cookie path. N(R(RRR((Rtpath_return_ok5s(RRRRRRR(((RRs   tDefaultCookiePolicyc Bs tZdZdZdZdZdZeeBZeee e e e e e ee e d Z dZ dZ dZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!RS(sBImplements the standard rules for accepting and returning cookies.iiiic Cs||_||_||_||_||_||_| |_| |_| |_ |dj ot ||_ n f|_ |dj ot |}n||_dS(sAConstructor arguments should be passed as keyword arguments only.N(tnetscapeRtrfc2965t hide_cookie2t strict_domaintstrict_rfc2965_unverifiabletstrict_ns_unverifiabletstrict_ns_domaintstrict_ns_set_initial_dollartstrict_ns_set_pathtblocked_domainsRttuplet_blocked_domainstallowed_domainst_allowed_domains( RRRRRRRRRRRR((RREs             cCs|iS(s4Return the sequence of blocked domains (as a tuple).N(RR(R((RRdscCst||_dS(s$Set the sequence of blocked domains.N(RRRR(RR((Rtset_blocked_domainsgscCs0x)|iD]}t||otSq q WtS(N(RRtblocked_domainRRRR(RRR((Rt is_blockedks   cCs|iS(s=Return None, or the sequence of allowed domains (as a tuple).N(RR(R((RRqscCs*|dj ot|}n||_dS(s-Set the sequence of allowed domains, or None.N(RRRRR(RR((Rtset_allowed_domainsts cCsH|idjotSnx)|iD]}t||otSq"q"WtS(N(RRRRtallowed_domainRRR(RRR ((Rtis_not_allowedzs  cCsstd|i|i|id j ptx?d D]7}d|}t||}|||pt Sq4q4Wt S( s If you override .set_ok(), be sure to call this method. If it returns false, so should your subclass (assuming your subclass wants to be more strict about which cookies to accept). s - checking cookie %s=%sRt verifiabilityRtRRRtset_ok_N(sversionR snamespathsdomainsport(RRRtRvRRotntfn_nameRRtfnRRR(RRRRRR((RRs  cCs|idjotd|i|itSn|idjo|i otdtSn.|idjo|i otdtSnt S(Ns0 Set-Cookie2 without version attribute (%s=%s)is$ RFC 2965 cookies are switched offs$ Netscape cookies are switched off( RRRRRtRvRRRRR(RRR((Rtset_ok_versions  cCsz|ioit|o\|idjo|iotdtSqv|idjo|i otdtSqvnt S(Nis> third-party RFC 2965 cookie during unverifiable transactions> third-party Netscape cookie during unverifiable transaction( Rtis_unverifiableRRRRRRRRR(RRR((Rtset_ok_verifiabilitys   cCsI|idjo5|io+|iidotd|itSntS(Nit$s' illegal name (starts with '$'): '%s'( RRRRRtR{RRR(RRR((Rt set_ok_names-cCsw|ioit|}|idjp|idjo|io/|i|i  ot d|i |t Sqsnt S(Nis7 path attribute %s is not a prefix of request path %s( RRRRRRRRR{RRRR(RRRR((Rt set_ok_paths  >  c Cs|i|iotd|itSn|i|iotd|itSn|iout|\}} |i}|i o|i ddjo|id}|idd|}|djoy||d} ||d|!} | iddd d d d d ddg jo(t| djotd|tSqEqIn|ido|d}n|}|iddj}| o"|djotd|tSn|idjoS| i| o>| id o-d| i| otd| |tSqn|idjp|i|i@o,t| |ptd| |tSq\n|idjp|i|i@oT|t| } | iddjo)t i!| otd| |tSqqnt"S(Ns" domain %s is in user block-lists& domain %s is not in user allow-listRiiitcotactcomtedutorgtnettgovtmilRFs& country-code second level domain %ss.locals/ non-local domain %s contains no embedded dotsS effective request-host %s (even with added initial dot) does not end end with %ss5 effective request-host %s does not domain-match %ss. host prefix %s for domain %s contains a dot(#RR RRRRR RRRRRRtcountRRtjttldtsldRKtlenR{tundotted_domainRt embedded_dotsRRRtDomainRFC2965MatchRtDomainStrictNoDotst host_prefixRRDR( RRRRR%RR!RR&R#R)RR"((Rt set_ok_domainsV    A 7  !  !' cCs|iot|}|djo d}n t|}x||iidD]M}yt |Wn$t j ot d|t SnX||joPqLqLWt d||it SntS(Nt80Rks bad port %s (not numeric)s$ request port (%s) not found in %s(RRRRtreq_portRtstrRRRRFRLRRR(RRRRR,((Rt set_ok_ports$          cCs\td|i|ix?d D]7}d|}t||}|||pt SqqWt S( s If you override .return_ok(), be sure to call this method. If it returns false, so should your subclass (assuming your subclass wants to be more strict about which cookies to return). s - checking cookie %s=%sRR RRRRt return_ok_N(sversions verifiabilityssecuresexpiressportsdomain( RRRtRvRRRRRRRR(RRRRRR((RRs  cCs^|idjo|i otdtSn.|idjo|i otdtSntS(Nis$ RFC 2965 cookies are switched offs$ Netscape cookies are switched off(RRRRRRRR(RRR((Rtreturn_ok_version#s  cCsz|ioit|o\|idjo|iotdtSqv|idjo|i otdtSqvnt S(Nis> third-party RFC 2965 cookie during unverifiable transactions> third-party Netscape cookie during unverifiable transaction( RRRRRRRRRRR(RRR((Rtreturn_ok_verifiability,s   cCs3|io%|idjotdtSntS(Nthttpss( secure cookie with non-secure request(RRRtget_typeRRR(RRR((Rtreturn_ok_secure8s cCs)|i|iotdtSntS(Ns cookie expired(RRRt_nowRRR(RRR((Rtreturn_ok_expires>s cCs{|iomt|}|djo d}nxG|iidD]}||joPq@q@Wtd||it Snt S(NR+Rks0 request port %s does not match cookie port %s( RRRRR,RRRRRR(RRRRR,((Rtreturn_ok_portDs       cCst|\}}|i}|idjo;|i|i @o*|i o||jot dt Sn|idjo)t || ot d||t Sn|idjo-d|i| ot d||t SntS(NisQ cookie with unspecified domain does not string-compare equal to request domainsQ effective request-host name %s does not domain-match RFC 2965 cookie domain %sRs; request-host %s does not match Netscape cookie domain %s(RRRRRRRRRtDomainStrictNonDomainRRRRRR(RRRRRR((Rtreturn_ok_domainRs 9 ! % cCst|\}}|idpd|}n|idpd|}n|i|p |i|ptSn|i |ot d|tSn|i |ot d|tSnt S(NRs" domain %s is in user block-lists& domain %s is not in user allow-list( RRRRR{RRRRR RR R(RRRRR((RRhs   cCsEtd|t|}|i|ptd||tSntS(Ns- checking cookie path=%ss %s does not path-match %s(RRRRRR{RR(RRRR((RR~s   ("RRRR(R8R't DomainLiberalt DomainStrictRRRRRRR RR R RRRRRR*R.RR0R1R4R6R7R9RR(((RR;s:  *         8       cCs&|i}|it|i|S(N(tadicttkeystsorttmapR(R<R=((Rtvals_sorted_by_keys  ccsxt|}xe|D]]}t}y |iWntj on#Xt}xt|D] }|VqSW|p|VqqWdS(sBIterates over nested mapping, depth-first, in sorted order by key.N( R@tmappingtvaluestobjRtitemstAttributeErrorRt deepvaluestsubobj(RARCRGRB((RRFs   tAbsentcBstZRS(N(RR(((RRHst CookieJarcBstZdZeidZeidZeidZeidZeidZ dZ e dZ dZ d Zd Zd Zd Zd ZdZdZdZdZdZdZe e e dZdZdZdZdZdZdZRS(sCollection of HTTP cookies. You may not need to know about this class: try urllib2.build_opener(HTTPCookieProcessor).open(url). s\Ws([\"\\])s\.?[^.]*s[^.]*s^\.+s^\#LWP-Cookies-(\d+\.\d+)cCs?|djo t}n||_ti|_h|_dS(N( tpolicyRRRt_policyt _threadingtRLockt _cookies_lockt_cookies(RRJ((RRs    cCs ||_dS(N(RJRRK(RRJ((Rt set_policyscCsg}|ii||pgSntd||i|}x|i D]}|ii ||pqKn||}xR|i D]D}|ii||ptdqntd|i|qWqKW|S(Ns!Checking %s for cookies to returns not returning cookies it's a match(tcookiesRRKRRRRROtcookies_by_pathR=RRtcookies_by_nameRBRRRz(RRRRRRSRQRR((Rt_cookies_for_domains$       cCs=g}x0|iiD]}|i|i||qW|S(s2Return a list of cookies to be returned to server.N(RQRROR=RtextendRTR(RRRQR((Rt_cookies_for_requests c Csd}|i|t} g}x|D]}|i}| p,t} |djo|i d|qkn|i d j o?|i i|i o)|djo|iid|i }n |i }|i d jo|i |in|i d|i|f|djo|io|i d|in|iidoG|i}|i o|ido|d}n|i d |n|id j o6d }|io|d |i}n|i |qq)q)W|S( sReturn a list of cookie-attributes to be returned to server. like ['foo="bar"; $Path="/"', ...] The $Version attribute is also added when appropriate (currently only once per request). cCstt|it|iS(N(tcmpR$RRta(RXR((Rtdecreasing_sizesis $Version=%ss\\\1s%s=%ss $Path="%s"Ris $Domain="%s"s$Ports="%s"N(RYRQR>RRtattrsRRRRzRvRRt non_word_reRDtquote_reR_RtRRRR{RRRR( RRQRYRvRRRRZRR((Rt _cookie_attrss@    3     cCs5td|iitti|i_|_t|\}}|ii |ii @}|i|}|i|}|o1|idp|iddi|qn|iioY|ii oK|id o:x7|D]+}|idjo|iddPqqWn|ii|idS(sAdd correct Cookie: header to request (urllib2.Request object). The Cookie2 header is also added unless policy.hide_cookie2 is true. tadd_cookie_headerRs; tCookie2is $Version="1"N(RRRNtacquireRFR3RKR5RRRRRR8tstrict_non_domainRVRQR]RZt has_headertadd_unredirected_headerRRRRRtreleasetclear_expired_cookies(RRRQRRRaRRZ((RR^s&  !,  cCsDg}d} d}x+|D]#}|d \}}t}t} h}h} x|d D]\} } | i}||jp || jo |} n| | jo| djo t} n| |joqRn| djo2| djotd t} Pn| i} n| djo0|oqRn| djotdqRqBn| djoTt}yt| } Wn$tj otdt} PnXd} |i| } n| |jp | | joJ| djo/| dd d gjotd| t} Pn| || |D]6}|i|o |i|i|i |i q q W|ii dS(sDiscard all expired cookies. You probably don't need to call this method: expired cookies are never sent back to the server (provided you're using DefaultCookiePolicy), this method is called by CookieJar itself every so often, and the .save() method won't save expired cookies anyway (unless you ask otherwise by passing a true ignore_expires argument). N( RRNR`R3RRRRrRRRtRd(RRR((RReus   $cCs t|iS(N(RFRRO(R((Rt__iter__scCs%d}x|D]}|d}q W|S(s#Return number of contained cookies.iiN(RRR(RRR((Rt__len__s cCsDg}x!|D]}|it|q Wd|idi|fS(Ns<%s[%s]>s, (trRRRzRt __class__R(RRR((RRs cCsDg}x!|D]}|it|q Wd|idi|fS(Ns<%s[%s]>s, (RRRRzR-RR(RRR((RRs ( RRRR|tcompileR[R\tstrict_domain_ret domain_retdots_retmagic_reRRRPRTRVR]R^RoRtRuRRRRRrRReRRRR(((RRIs6      < # a X 4     t LoadErrorcBstZRS(N(RR(((RRst FileCookieJarcBsVtZdZeeedZeeedZeeedZeeedZRS(s6CookieJar that can be loaded from and saved to a file.cCs_ti|||dj o&y |dWqCtdqCXn||_t||_dS(s} Cookies are NOT loaded from the named file until either the .load() or .revert() method is called. RWsfilename must be string-likeN( RIRRRJtfilenameRRLRqt delayload(RRRRJ((RRs   cCs tdS(sSave cookies to a file.N(R(RRtignore_discardtignore_expires((RtsavescCsr|djo-|idj o |i}q:ttnt|}z|i||||Wd|i XdS(sLoad cookies from a file.N( RRRRLtMISSING_FILENAME_TEXTtopenR t _really_loadRRtclose(RRRRR ((Rtloads   cCs|djo-|idj o |i}q:ttn|iiti|i }h|_ y|i |||Wn%ttfj o||_ nX|iidS(sClear all cookies and reload cookies from a saved file. Raises LoadError (or IOError) if reversion is not successful; the object's state will not be altered if this happens. N(RRRRLRRNR`RtdeepcopyROt old_stateRRRRtIOErrorRd(RRRRR((Rtreverts     ( RRRRRRRRR(((RRs  (s LWPCookieJarslwp_cookie_str(sMozillaCookieJar(XRRR|RRR3RtloggingttypesRnt threadingRLt ImportErrortdummy_threadingthttplibtcalendarRt getLoggerRR-t HTTP_PORTRRRRRR8R9RIRRzRKRR6R:RBRRCRHRVRXtIR^tXR`RaRbRdRjRsRuRxRwRRRRRRRRRRRRRRRRRRRRRRRR@RFRHRIRRRt _LWPCookieJart LWPCookieJartlwp_cookie_strt_MozillaCookieJartMozillaCookieJar(FRRRRRRR@RRRRRjR6RbRRRRRRuRRdRRRRRRR|R:RVRRnRBRRxRRRsRHRIRRRRRCRRIRFRRRwRRRRRLR9RaR8RHRR^RR3RRRRXR`((Rt?s?      *  *  5 8 !  U  8  '       # ^!M  :c @sqdZdkZdklZdefdYZeZydklZWne j o dZnXdddgZ dk Z dZ d ZhZZd ZxEeieeeeeeeeeeieif D]Zeee[[dfdYZ?dZ@eAdjo e@ndS(sGeneric (shallow and deep) copying operations. Interface summary: import copy x = copy.copy(y) # make a shallow copy of y x = copy.deepcopy(y) # make a deep copy of y For module specific errors, copy.Error is raised. The difference between shallow and deep copying is only relevant for compound objects (objects that contain other objects, like lists or class instances). - A shallow copy constructs a new compound object and then (to the extent possible) inserts *the same objects* into it that the original contains. - A deep copy constructs a new compound object and then, recursively, inserts *copies* into it of the objects found in the original. Two problems often exist with deep copy operations that don't exist with shallow copy operations: a) recursive objects (compound objects that, directly or indirectly, contain a reference to themselves) may cause a recursive loop b) because deep copy copies *everything* it may copy too much, e.g. administrative data structures that should be shared even between copies Python's deep copy operation avoids these problems by: a) keeping a table of objects already copied during the current copying pass b) letting user-defined classes override the copying operation or the set of components copied This version does not copy types like module, class, function, method, nor stack trace, stack frame, nor file, socket, window, nor array, nor any similar types. Classes can use the same interfaces to control copying that they use to control pickling: they can define methods called __getinitargs__(), __getstate__() and __setstate__(). See the documentation for module "pickle" for information on these methods. N(sdispatch_tabletErrorcBstZRS(N(t__name__t __module__(((t/usr/lib/python2.4/copy.pyR6s(s PyStringMaptcopytdeepcopycCs;x4ti|D]}y|i|SWqqXqWdSdS(N(tinspecttgetmrotclstbaseclst__dict__tnametNone(RR R ((Rt _getspecialBscCs t|}ti|}|o||Snt|d}|o||Snti|}|o||}nt |dd}|o|d}n[t |dd}|o |}n5t |dd}|o |Snt d|t ||dS(slShallow copy operation on arbitrary Python objects. See the module's __doc__ string for more info. t__copy__t __reduce_ex__it __reduce__s%un(shallow)copyable object of type %siN(ttypetxRt_copy_dispatchtgettcopierR tdispatch_tabletreductortrvtgetattrR Rt _reconstruct(RRRRR((RRKs,   cCs|S(N(R(R((Rt_copy_immutableqst ComplexTypet UnicodeTypetCodeTypecCst||S(N(RR(R((Rt_copy_with_constructor|scCs |iS(N(RR(R((Rt_copy_with_copy_methodscCst|do|iSnt|do|i}|i|}nt}|i|_t|do|i}n |i }t|do|i |n|i i ||S(NRt__getinitargs__t __getstate__t __setstate__( thasattrRRR!targst __class__tyt _EmptyClassR"tstateR R#tupdate(RR%R)R'((Rt _copy_insts    c Cs|djo h}nt|}|i||} | |j o| Snt|}t i|}|o|||} n4yt |t}Wntj o d}nX|ot||} nt|d}|o|||} nti|}|o||}nt|dd}|o|d}n^t|dd}|o |}n8t|dd}|o||Sntd|t||d|} | ||tAssertionErrorR-R R<tntcallableR%R)tlistitertdictitertdeepRR'R.titemR8RARBR$R#t slotstateR R*R@tsetattr(RRFRMR-RORKR)R%RJRLRARBRIRNR'((RR9sb          #   R(cBstZRS(N(RR(((RR(ssc Csdddddd ddghdd6           '    RU(s ComplexTypes UnicodeTypesCodeType(Bt__doc__ttypestcopy_regRt ExceptionRterrortorg.python.coret PyStringMapt ImportErrorR t__all__RR RRR/RtNoneTypetinttlongtfloattboolRGR>t frozensetRtxranget ClassTypetBuiltinFunctionTypettR RRtlisttdicttsetR R+t InstanceTypeRR1R5tIntTypetLongTypet FloatTypet BooleanTypeRtAttributeErrort StringTypeRRtTypeTypet XRangeTypeR9tListTypeR?t TupleTypeRCtDictionaryTypeR6RDRR(RiR(R R5R9RR?RCRRRRrR1R RpR(RiRR R+RRRkRR/RR6R|RnRD((Rt?1s     $  4      6                       5 5 c@sdZdklZdddddgZhZddZdZye Wne j onXd Z ee e e d Z d d >Z d ZdZdZhZhZhZdZdZdZdS(sHelper to provide extensibility for pickle/cPickle. This is only useful to add pickle support for extension types defined in C, not for instances of user-defined classes. (s ClassTypetpicklet constructort add_extensiontremove_extensiontclear_extension_cachecCsit|tjotdnt|ptdn|t|<|dj ot |ndS(Ns-copy_reg is not intended for use with classess$reduction functions must be callable( ttypetob_typet _ClassTypet TypeErrortcallabletpickle_functiontdispatch_tabletconstructor_obtNoneR(RR R ((t/usr/lib/python2.4/copy_reg.pyRs   cCs!t|ptdndS(Nsconstructors must be callable(R tobjectR(R((RRs cCst|i|iffS(N(tcomplextctrealtimag(R((Rtpickle_complex'scCsF|tjoti|}n#|i||}|i|||S(N(tbaseRt__new__tclstobjtstatet__init__(RRRR((Rt_reconstructor.s  ii cCsL|djptx>|iiD]*}t|do|it@ oPq!q!Wt }|t jo d}n1||ijot d|i n||}|i||f}y |i}Wn_tj oSt|ddot dny |i}Wq&tj o d}q&Xn X|}|ot||fSn t|fSdS(Nit __flags__scan't pickle %s objectst __slots__sNa class that defines __slots__ without defining __getstate__ cannot be pickled(tprototAssertionErrortselft __class__t__mro__RthasattrRt _HEAPTYPERR RRt__name__targst __getstate__tgetstatetAttributeErrortgetattrt__dict__tdictR(R RR&R(RRR,((Rt _reduce_ex:s2        cGs|i||S(N(RRR&(RR&((Rt __newobj__[scCs|iid}|dj o|Sng}t|dpnx|iD]}d|ijo|id}t |t o |f}nxr|D]f}|djoqq|i do/|i d o|id|i|fq|i|qWqKqKWy ||_WnnX|S( sReturn a list of slot names for a given class. This needs to find slots defined by the class and its bases, so we can't simply return the __slots__ attribute. We must walk down the Method Resolution Order and concatenate the __slots__ of each class found there. (This assumes classes don't modify their __slots__ attribute to misrepresent their slots after the class is defined.) t __slotnames__RR+t __weakref__t__s_%s%sN(s__dict__s __weakref__(RR+tgettnamesR R#R"Rtslotst isinstancet basestringtnamet startswithtendswithtappendR%R/(RRR7R3R4((Rt _slotnames^s2      ! cCst|}d|jo djnp tdn||f}ti||joti||jodSn|tjotd|t|fn|tjotd|t|fn|t|<|t|t_extension_cache(R?R7R=R@((RRs , cCstidS(N(RCtclear(((RRsN(t__doc__ttypest ClassTypeRt__all__R R RRRt NameErrorRRR$R-R.R;RARBRCRRR(RBRRHRARCRR.R$R-RRRRRR;RR ((Rt?s,      !  8  c@sdZdkZdkZdkTdklZddddgeZ[ddZdd Zd d Z d dddd Z e Z d Z dZ dZedjo endS(s0Disassembler of Python byte code into mnemonics.N(t*(s__all__tdist disassembletdistbtdiscocCs{|djotdSnt|tijo |i}nt|do |i}nt|do |i }nt|do|i i }|i x|D]t\}}t|titititifjo=d|GHyt|Wntj o}dG|GHnXHqqWnSt|dot|n5t|tot|ntdt|idS( snDisassemble classes, methods, functions, or code. With no argument, disassemble the last traceback. Ntim_funct func_codet__dict__sDisassembly of %s:sSorry:tco_codes(don't know how to disassemble %s objects(txtNoneRttypettypest InstanceTypet __class__thasattrRRRtitemstsorttnametx1t MethodTypet FunctionTypetCodeTypet ClassTypeRt TypeErrortmsgRt isinstancetstrtdisassemble_stringt__name__(R RRRR((t/usr/lib/python2.4/dis.pyR s6      +  cCsr|djoKy ti}Wntj otdnXx|io |i}q<Wnt|ii |i dS(s2Disassemble a traceback (default: last traceback).s no last traceback to disassembleN( ttbR tsystlast_tracebacktAttributeErrort RuntimeErrorttb_nextRttb_frametf_codettb_lasti(R((RR2s   ic Cs}|i}t|}tt|}t|} d} d}d}x1| | jo#|| }t|} | |jo"| djoHnd|| GndG| |jodGndG| |jodGndGt| idGt| idG| d } | tjoht|| t|| d d |}d}| d } | tjo|d }nt|id G| tjodt|i|dGqs| tjod|i|dGqs| tjodt| |dGqs| tjod|i|dGqs| t jodt!|dGqs| t"jo5|djo|i#|i$}nd||dGqsnHqHWdS(sDisassemble a code object.is%3ds s-->s>>s iiiiilit(t)s(to N(%tcoRtcodet findlabelstlabelstdicttfindlinestartst linestartstlentntit extended_argR tfreetctordtoptlastitreprtrjusttopnametljustt HAVE_ARGUMENTtopargt EXTENDED_ARGthasconstt co_conststhasnametco_namesthasjrelthaslocalt co_varnamest hascomparetcmp_opthasfreet co_cellvarst co_freevars( R*R9R4R+R-R0R6R?R5R3R2R8((RR<s`            *         c Cst|}t|} d}x|| jo||}t|} ||jodGndG||jodGndGt |i dGt | i dG|d}| tjo7t||t||dd }|d }t |i d G| tjo-|od t ||d Gqd|Gq| tjo-|dj od ||d Gqd|Gq| tjodt ||d Gq| tjo'|od ||d Gqd|Gq| tjod t|d GqnHq!WdS(Nis-->s s>>s iiiiiiR(R)s(%d)s(to (R,R+R-R1R2R3R6R7R8R9R:R;R<R=R>R?RAt constantsRCtnamesR RERFtvarnamesRHRI( R+R9RORNRMR-R?R6R3R2R8((RRmsJ         &          cCsg}t|}d}x||jo||}t|}|d}|tjot||t||dd}|d}d}|t jo||}n|t jo |}n|djo"||jo|i |qqqqW|S(s`Detect all offsets in a byte code which are jump targets. Return the list of offsets. iiiiiN(R-R1R+R2R3R6R7R8R>R?tlabelREthasjabstappend(R+R6R3R-R2R?RPR8((RR,s*      &      c csg}|idddD]}|t|q~}g}|idddD]}|t|qR~}d}|i }d}x]t ||D]L\} }| o/||jo||fV|}n|| 7}n||7}qW||jo||fVndS(sFind the offsets in a byte code which are start of lines in the source. Generate pairs (offset, lineno) as described in Python/compile.c. iNii(t_[1]R+t co_lnotabR6R7tbyte_incrementstline_incrementsR t lastlinenotco_firstlinenotlinenotaddrtzipt byte_incrt line_incr( R+R6RZRSRVR]RYRURWR\((RR/s 77      cCstido_tido!tiidtidntid}| p |djo d}qsnd}|djo ti}n t |}|i }|dj o|i nd}t ||d}t|dS(s*Simple test program to disassemble a file.iisusage: python dis.py [-|file] t-stexecN(R targvtstderrtwritetexittfnR tstdintftopentreadtsourcetclosetcompileR+R(R+RfRiRd((Rt_tests$      t__main__(t__doc__R R topcodet__all__t _opcodes_allR RRRRRR,R/RlR( RpRR,RRR RqR/RRlR R((Rt?s     & 1(    c@sdZdZdZdS(sdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) s5$Id: __init__.py 38355 2005-01-20 19:25:24Z theller $s2.4.1N(t__doc__t __revision__t __version__(RR((t(/usr/lib/python2.4/distutils/__init__.pyt? sc@sDdZdZdkZdklZdZdZddZdS(sdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.s4$Id: dep_util.py 37828 2004-11-10 22:23:15Z loewis $N(sDistutilsFileErrorcCs|tii|ptd|ntii|pdSndkl}ti||}ti||}||jS(sReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. sfile '%s' does not existi(sST_MTIMEN( tostpathtexiststsourcetDistutilsFileErrorttargettstattST_MTIMEtmtime1tmtime2(RRRRR ((t(/usr/lib/python2.4/distutils/dep_util.pytnewers cCst|t|jo tdng}g}xXtt|D]D}t||||o&|i |||i ||qEqEW||fS(sWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. s+'sources' and 'targets' must be same lengthN( tlentsourcesttargetst ValueErrort n_sourcest n_targetstrangetiR tappend(R RRRR((R tnewer_pairwise#s terrorcCstii|pdSndkl}ti||}x|D]}tii|p>|djoq|djoqBq|djodSqnti||}||jodSqBqBWdSdS(sReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). i(sST_MTIMERtignoreR iN( RRRRRRt target_mtimeR Rtmissingt source_mtime(R RRRRRR((R t newer_group9s$        (t__doc__t __revision__Rtdistutils.errorsRR RR(RRRRR R((R t?s     c@sdZdZdefdYZdefdYZdefdYZdefd YZd efd YZd efd YZdefdYZ defdYZ defdYZ defdYZ defdYZ defdYZdefdYZdefdYZdefdYZd efd!YZd"efd#YZd$efd%YZd&S('sdistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".s2$Id: errors.py 37828 2004-11-10 22:23:15Z loewis $tDistutilsErrorcBstZdZRS(sThe root of all Distutils evil.(t__name__t __module__t__doc__(((t&/usr/lib/python2.4/distutils/errors.pyRs tDistutilsModuleErrorcBstZdZRS(sUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).(RRR(((RRs tDistutilsClassErrorcBstZdZRS(sSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.(RRR(((RRs tDistutilsGetoptErrorcBstZdZRS(s7The option table provided to 'fancy_getopt()' is bogus.(RRR(((RRs tDistutilsArgErrorcBstZdZRS(saRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.(RRR(((RR#s tDistutilsFileErrorcBstZdZRS(sAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before IOError or OSError could be raised.(RRR(((RR (s tDistutilsOptionErrorcBstZdZRS(sSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.(RRR(((RR .s tDistutilsSetupErrorcBstZdZRS(sqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.(RRR(((RR 7s tDistutilsPlatformErrorcBstZdZRS(sWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.(RRR(((RR <s tDistutilsExecErrorcBstZdZRS(s`Any problems executing an external program (such as the C compiler, when compiling C files).(RRR(((RR Bs tDistutilsInternalErrorcBstZdZRS(soInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).(RRR(((RRGs tDistutilsTemplateErrorcBstZdZRS(s%Syntax error in a file list template.(RRR(((RRLs tCCompilerErrorcBstZdZRS(s#Some compile/link operation failed.(RRR(((RRQs tPreprocessErrorcBstZdZRS(s.Failure to preprocess one or more C/C++ files.(RRR(((RRTs t CompileErrorcBstZdZRS(s2Failure to compile one or more C/C++ source files.(RRR(((RRWs tLibErrorcBstZdZRS(sKFailure to create a static library from one or more C/C++ object files.(RRR(((RRZs t LinkErrorcBstZdZRS(s]Failure to link one or more C/C++ object files into an executable or shared library file.(RRR(((RR^s tUnknownFileErrorcBstZdZRS(s(Attempt to process an unknown file type.(RRR(((RRbs N(Rt __revision__t ExceptionRRRRRR R R R R RRRRRRRR(RRRRR R R RRR RRRR RRRRR((Rt? s& c@sdZdZdZdZdZdZdkZdfdYZeZei Z ei Z ei Z ei Z ei Z eiZd Zd ZdS( s,A simple log mechanism styled after PEP 282.iiiiiNtLogcBsStZedZdZdZdZdZdZdZ dZ RS( NcCs ||_dS(N(t thresholdtself(RR((t#/usr/lib/python2.4/distutils/log.pyt__init__scCs>||ijo*|p |GHn ||GHtiindS(N(tlevelRRtargstmsgtsyststdouttflush(RRRR((Rt_logs   cGs|i|||dS(N(RR RRR(RRRR((RtlogscGs|it||dS(N(RR tDEBUGRR(RRR((Rtdebug"scGs|it||dS(N(RR tINFORR(RRR((Rtinfo%scGs|it||dS(N(RR tWARNRR(RRR((Rtwarn(scGs|it||dS(N(RR tERRORRR(RRR((Rterror+scGs|it||dS(N(RR tFATALRR(RRR((Rtfatal.s( t__name__t __module__RRR R RRRRR(((RRs      cCsti}|t_|S(N(t _global_logRtoldR(RR((Rt set_threshold9s  cCsU|djottn7|djottn|djottndS(Niii(tvRRRR (R((Rt set_verbosity?s    (t__doc__R RRRRRRRR RRRRRRR(RRRRRRRRRRRRR RRR ((Rt?s  !        c@sdZdZdkZdkZdkZdkTdklZddddZdZ dddd Z dddd Z dddd Z dd ZdS( sdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. s1$Id: spawn.py 37828 2004-11-10 22:23:15Z loewis $N(t*(slogiicCstidjot||d|n_tidjot||d|n8tidjot||d|ntdtidS(sRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. tposixtdry_runtnttos2s1don't know how to spawn programs on platform '%s'N( tostnamet _spawn_posixtcmdt search_pathRt _spawn_ntt _spawn_os2tDistutilsPlatformError(RR tverboseR((t%/usr/lib/python2.4/distutils/spawn.pytspawnscCsTxMtt|D]9}ti||ddjod|||||D]6}tii||}tii|o|SqqWdSn|SdS(sTry to find 'executable' in the directories listed in 'path' (a string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']). Returns the complete filename or None if not found. tPATHtwin32Rs.exeN(tpathtNoneRtenvironRtsplittpathseptpathstsplitextRtbasetextR)tplatformRtisfiletpRtf(RR:R?RFRERBRA((RRs - (t__doc__t __revision__R)RRtdistutils.errorst distutilsRRRR R RR;R( RRHR RRRR)RR RR((Rt?s  >c@s dZdZdkZdkZdkZdkZdklZdkl Z dk l Z dk l Z dZdZd Zd ad Zd Zd dZdaaadZdZdd d dZdZd d dddd ddZdZdS(sudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. s1$Id: util.py 36560 2004-07-18 06:16:08Z tim_one $N(sDistutilsPlatformError(snewer(sspawn(slogcCstidjpttd o tiSnti\}}}}}t i |}t i |dd}t i |dd}|d djod ||fSn|d d joA|d d jo,d }dt|d d|df}qn|d djod ||fSnw|d djod|||fSnQ|d djo?d}tid}|i|}|o|i}qnd|||fS(sReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 For non-POSIX platforms, currently just returns 'sys.platform'. tposixtunamet/tt t_itlinuxs%s-%stsunosit5tsolariss%d.%siiitirixtaixs%s-%s.%sitcygwins[\d.]+s%s-%s-%sN(tostnamethasattrtsystplatformRtosnamethosttreleasetversiontmachinetstringtlowertreplacetinttretcompiletrel_retmatchtmtgroup(RRRRRRR((t$/usr/lib/python2.4/distutils/util.pyt get_platforms0! *cCstidjo|Sn|p|Sn|ddjotd|n|ddjotd|nti|d}xd|jo|idqW|p tiSnt ti i |S(sReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. Rispath '%s' cannot be absoluteispath '%s' cannot end with '/'t.N( R tseptpathnamet ValueErrorRtsplittpathstremovetcurdirtapplytpathtjoin(R%R(((R!t convert_pathKs   cCstidjoEtii|ptii||Sqtii||dSnDtidjoNtii|\}}|ddjo|d}ntii||SntidjoQtii|\}}|dti jo|d}ntii||Sntidjodtii|ptii||Sqt i |dd}d|d}tii||Snt d tid S( s Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. Ritntis\tos2tmact:s!nothing known about platform '%s'N(R RR,tisabsR%R-tnew_roott splitdrivetdriveR$RR'telementstDistutilsPlatformError(R4R%R7R6R,((R!t change_rootgs,icCstodSntidjoAtiid o-dk}|itidtidtstrR R=(RRDRC((R!t_substss\$([a-zA-Z_][a-zA-Z_0-9]*)sinvalid variable '$%s'N( RBRDRFRtsubtstKeyErrortvarR&(RHRDRJRF((R!t subst_varss serror: cCsut|doMt|do=|io|d|i|if}qq|d|i}n|t|d}|S(sGenerate a useful error message from an EnvironmentError (IOError or OSError) exception object. Handles Python 1.5.1 and 1.5.2 styles, and does what it can to deal with exception objects that don't have a filename (which happens when the error is due to a two-file operation, such as 'rename()' or 'link()'. Returns the error message as a string prefixed with 'prefix'. tfilenametstrerrors%s: %ss%siN(RtexcRLtprefixRMterrorRE(RNRORP((R!tgrok_environment_errors  cCs8tidtiatidatidadS(Ns [^\\\'\"%s ]*s'(?:[^'\\]|\\.)*'s"(?:[^"\\]|\\.)*"(RRRt whitespacet _wordchars_ret _squote_ret _dquote_re(((R!t _init_regexscCstd jo tnti|}g}d}x|oti||}|i }|t |jo|i || Pn||ti jo.|i || ti||}d}n||djo$|| ||d}|d}n||djoti||}n9||djoti||}ntd|||d jotd||n|i\}}|| ||d|d!||}|i d}|t |jo|i |Pq6q6W|S( sSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. is\it't"s!this can't happen (bad char '%c')s"bad string (mismatched %s quotes?)iN(RStNoneRVRtstripRHtwordstposRRtendtlentappendRRtlstripRTRUt RuntimeErrorR&tspantbeg(RHR]RcRR\R[((R!t split_quotedsD     %  cCss|djo=d|i|f}|ddjo|dd!d}qJnti||pt||ndS(sPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. s%s%ris,)it)N( tmsgRYtfunct__name__targstlogtinfotdry_runR+(RgRiRftverboseRl((R!texecutes  cCsMti|}|djodSn&|djodSntd|fdS(sConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. tytyesttttruetont1itntnotftfalsetofft0isinvalid truth value %rN(RoRpRqRrRsRt(RuRvRwRxRyRz(RRtvalR&(R{((R!t strtobool-s  icCs|djoto |dj}n|py#dkl} | d\}}Wn3tj o'dkl } d| d}}nXt i d||p|dj ot i|d} nt|d} | id| ititt|dd | id |||||f| inti|g}|d jo|id d n"|d jo|id dnt |d|t!t i"|fd|d|n7dk#l$}x&|D]} | ddjoqn| todpd}| } |oB| t(| |jot)d| |fn| t(|} n|ot i*i|| } nt i*i+|}|o`|pt-| |o2t i d| ||p|| || qqt i.d| |qqWdS(sByte-compile a collection of Python source files to either .pyc or .pyo files in the same directory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize (generate .pyc) 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. i(smkstemps.py(smktemps$writing byte-compilation script '%s'tws2from distutils.util import byte_compile files = [ s, s] s byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) is-Ois-OORls removing %s(scompileitctos1invalid prefix: filename %r doesn't start with %rsbyte-compiling %s to %ss%skipping byte-compilation of %s to %sN(/tdirectRYt __debug__toptimizettempfiletmkstempt script_fdt script_namet ImportErrortmktempRjRkRlR tfdopentscripttopentwriteRR-tmaptreprtpy_filestforceROtbase_dirRmtcloseRt executabletcmdtinserttspawnRnR)t py_compileRtfiletcfiletdfileR^R&R,tbasenamet cfile_basetnewertdebug(RRRRORRmRlRRRRRRRRRRRR((R!t byte_compile=s`     &     cCsBti|d}tti|}ti|ddd}|S(sReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline. s iRN(RR'theadertlinesRRZR-(RR((R!t rfc822_escapes (t__doc__t __revision__RR RRtdistutils.errorsR8tdistutils.dep_utilRtdistutils.spawnRt distutilsRjR"R.R9R<RBRKRQRYRSRTRURVRdRnR|RR(RR8RBRRVRdRRKRRjRRR.RRRQR"R|RnR9R ((R!t?s($     <  &     ? c@sdZdZdZddddddd gZd kZdefd YZhd Zd Z dZ dZ d e fdYZ eaeadZd S(s,Drop-in replacement for the thread module. Meant to be used as a brain-dead substitute so that threaded code does not need to be rewritten for when the thread module is not present. Suggested usage is:: try: import thread except ImportError: import dummy_thread as thread s Brett Cannonsbrett@python.orgterrortstart_new_threadtexitt get_identt allocate_locktinterrupt_maintLockTypeNcBstZdZdZRS(s%Dummy implementation of thread.error.cGs ||_dS(N(targstself(RR((t"/usr/lib/python2.4/dummy_thread.pyt__init__s(t__name__t __module__t__doc__R (((R Rs cCst|ttjotdnt|ttjotdntay|||Wn#t j ont i nXt at ota tndS(sDummy implementation of thread.start_new_thread(). Compatibility is maintained by making sure that ``args`` is a tuple and ``kwargs`` is a dictionary. If an exception is raised and it is SystemExit (which can be done by thread.exit()) it is caught and nothing is done; all other exceptions are printed out by using traceback.print_exc(). If the executed function calls interrupt_main the KeyboardInterrupt will be raised when the function returns. s2nd arg must be a tuples3rd arg must be a dictN(ttypeRttuplet TypeErrortkwargstdicttFalset_maintfunctiont SystemExitt _tracebackt print_exctTruet _interrupttKeyboardInterrupt(RRR((R Rs$ cCs tdS(s&Dummy implementation of thread.exit().N(R(((R R=scCsdS(sDummy implementation of thread.get_ident(). Since this module should only be used when threadmodule is not available, it is safe to assume that the current process is the only thread. Thus a constant can be safely returned. iN((((R RAscCstS(s/Dummy implementation of thread.allocate_lock().N(R(((R RJscBs5tZdZdZedZdZdZRS(sClass implementing dummy implementation of thread.LockType. Compatibility is maintained by maintaining self.locked_status which is a boolean that stores the state of the lock. Pickling of the lock, though, should not be done since if the thread module is then used with an unpickled ``lock()`` from here problems could occur from this class not having atomic methods. cCs t|_dS(N(RRt locked_status(R((R R YscCsY|djot|_dSn8|p#|ipt|_tSqUtSnt|_tSdS(sDummy implementation of acquire(). For blocking calls, self.locked_status is automatically set to True and returned appropriately based on value of ``waitflag``. If it is non-blocking, then the value is actually checked and not set if it is already acquired. This is all done so that threading.Condition's assert statements aren't triggered and throw a little fit. N(twaitflagtNoneRRRR(RR((R tacquire\s      cCs!|ip tnt|_tS(sRelease the dummy lock.N(RRRRR(R((R treleasets    cCs|iS(N(RR(R((R tlocked}s(R R R R RRR R!(((R RNs    cCsto tntadS(s^Set _interrupt flag to True to have start_new_thread raise KeyboardInterrupt upon exiting.N(RRRR(((R Rs  (R t __author__t __email__t__all__t tracebackRt ExceptionRRRRRtobjectRRRRRR( RR$RRRR"R#RRRR((R t? s    3c@s^dZdklZdkZeZeZeZzdejoedZ e ZnededAdd character set properties to the global registry. charset is the input character set, and must be the canonical name of a character set. Optional header_enc and body_enc is either Charset.QP for quoted-printable, Charset.BASE64 for base64 encoding, Charset.SHORTEST for the shortest of qp or base64 encoding, or None for no encoding. SHORTEST is only valid for header_enc. It describes how message headers and message bodies in the input charset are to be encoded. Default is no encoding. Optional output_charset is the character set that the output should be in. Conversions will proceed from input charset, to Unicode, to the output charset when the method Charset.convert() is called. The default is to output in the same character set as the input. Both input_charset and output_charset must have Unicode codec entries in the module's charset-to-codec mapping; use add_codec(charset, codecname) to add codecs the module does not know about. See the codecs module's documentation for more information. s!SHORTEST not allowed for body_encN(tbody_enctSHORTESTt ValueErrort header_enctoutput_charsettCHARSETStcharset(RRRR((t#/usr/lib/python2.4/email/Charset.pyt add_charset_s cCs|t|((Rtconverts cCs]t|tp|idjo|Snyt||idSWntj o |SnXdS(sConvert a possibly multibyte string to a safely splittable format. Uses the input_codec to try and convert the string to Unicode, so it can be safely split on character boundaries (even for multibyte characters). Returns the string as-is if it isn't known how to convert it to Unicode with the input_charset. Characters that could not be converted to Unicode will be replaced with the Unicode replacement character U+FFFD. treplaceN(t isinstanceR>R%R)R1R+t LookupError(R)R>((Rt to_splittables  cCsu|o |i}n |i}t|t p |djo|Sny|i |dSWnt j o |SnXdS(s*Convert a splittable string back into an encoded string. Uses the proper codec to try and convert the string from Unicode back into an encoded format. Return the string as-is if it is not Unicode, or if it could not be converted from Unicode. Characters that could not be converted from Unicode will be replaced with an appropriate character (usually '?'). If to_output is True (the default), uses output_codec to convert to an encoded format. If to_output is False, uses input_codec. RAN( t to_outputR)R2tcodecR1RBtustrR%R+R?RC(R)RGRERF((Rtfrom_splittables   cCs|ip|iS(sReturn the output character set. This is self.output_charset if that is not None, otherwise it is self.input_charset. N(R)RR&(R)((Rtget_output_charset)scCs|i}|itjo"tii|t |t Sn|it jo"ti i |t |t Sn^|itjoCtii|}ti i |}t||t |t Sn t |SdS(s/Return the length of the encoded header string.N(R)RItcsetR/R*temailt base64MIMEt base64_lenR>tlentMISC_LENR;t quopriMIMEtheader_quopri_lenRtlenb64tlenqptmin(R)R>RJRSRR((Rtencoded_header_len1s ""cCs|i}|o|i|}n|itjotii ||Sn|it joti i ||ddSnz|it joetii|}ti i|}||jotii ||Sqti i ||ddSn|SdS(sEHeader-encode a string, optionally converting it to output_charset. If convert is True, the string will be converted from the input charset to the output charset automatically. This is not useful for multibyte character sets, which have line length issues (multibyte characters must be split on a character, not a byte boundary); use the high-level Header class to deal with these issues. convert defaults to False. The type of encoding (base64 or quoted-printable) will be based on self.header_encoding. t maxlinelenN(R)RIRJR@R>R/R*RKRLt header_encodeR;RPR+RRMRRRQRS(R)R>R@RJRSRR((RRW@s   cCsj|o|i|}n|itjotii|Sn)|itjoti i|Sn|SdS(sBody-encode a string and convert it to output_charset. If convert is True (the default), the string will be converted from the input charset to output charset automatically. Unlike header_encode(), there are no issues with byte boundaries and multibyte charsets in email bodies, so this is usually pretty safe. The type of encoding (base64 or quoted-printable) will be based on self.body_encoding. N( R@R)R>R0R*RKRLt body_encodeR;RP(R)R>R@((RRX_s (t__name__t __module__t__doc__tDEFAULT_CHARSETR3R4t__repr__R7R8R=R@RDtTrueRHRIRUtFalseRWRX(((RR$s +           (temail.base64MIMERKtemail.quopriMIMEtemail.EncodersR<R;R*RROR\R+RRR"RR R#R$(R;RR\R<R#R*ROR"R RR$RKRR((Rt?s   o !  c@sVdZdkZdklZdZdZdZdZdZ dZ dS( s Encodings and related functions.N(s encodestringcCs"t|dt}|iddS(Nt quotetabst s=20(t _encodestringtstTruetenctreplace(RR((t$/usr/lib/python2.4/email/Encoders.pyt_qencode scCsW|p|Sn|ddj}ti|}| o|ddjo |d Sn|S(Nis (Rt hasnewlinetbase64t encodestringtvalue(RR R ((Rt_bencodes cCs3|i}t|}|i|d|ds4)(?P--)?(?P[ \t]*)(?P\r\n|\r|\n)?$tendtlinesepii(>RRAtheadersR*RRtheaderREtmatchtNLCRERR t_parse_headersR1RRRR/t set_payloadt EMPTYSTRINGtjoinR>R R,RBR6R=RR8t get_boundarytboundaryR.R:R;tNoBoundaryInMultipartDefectt separatortretcompiletescapet boundaryretcapturing_preambletpreambleRREtmotgrouptlastlinet NLCRE_eoltsearchteolmoRR0tepilogueRDt get_payloadtpayloadt isinstancet basestringRtStartBoundaryNotFoundDefectt firstlinet NLCRE_boltbolmo(RRdR`RDR^RERfRZR=RORUR]RVRRWRXRRFRQRB((RR,sd                         "                %  c Csd} g}xt|D]\}}|ddjoD| p)ti|}|i i i |qn|i |qn| o:t i|d id}||i | ' in front of them. Optional maxheaderlen specifies the longest length for a non-continued header. When a header line is longer (in characters, with tabs expanded to 8 spaces) than maxheaderlen, the header will split as defined in the Header class. Set maxheaderlen to zero to disable header wrapping. The default is 78, as recommended (but not required) by RFC 2822. N(toutfptselft_fpt mangle_from_t _mangle_from_t maxheaderlent _maxheaderlen(R R RR((Rt__init__)s  cCs|ii|dS(N(R R twriteR(R R((RR>scCsY|oA|i}|pdtiti}n|i|IJn|i|dS(sPrint the message object tree rooted at msg to the output file specified when the Generator instance was created. unixfrom is a flag that forces the printing of a Unix From_ delimiter before the first object in the message tree. If the original message has no From_ delimiter, a `standard' one is crafted. By default, this is False to inhibit the printing of any From_ delimiter. Note that for subobjects, no From_ line is printed. s From nobody N( tunixfromtmsgt get_unixfromtufromttimetctimeR R t_write(R RRR((RtflattenBs  cCs'tidtd|i||dS(Ns$__call__() deprecated; use flatten()i(twarningstwarntDeprecationWarningR RRR(R RR((Rt__call__Us  cCs|i||i|iS(s1Clone this generator with the exact same options.N(R t __class__tfpRR(R R!((RtcloneZscCs|i}z!t|_}|i|Wd||_Xt|dd}|djo|i |n |||ii |i dS(Nt_write_headers( R R toldfptStringIOtsfpt _dispatchRtgetattrtNonetmethR#Rtgetvalue(R RR$R&R*((RRbs    cCs|i}|i}ti||fidd}t |d|d}|djoF|idd}t |d|d}|djo |i}qn||dS(Nt-Rt_handle_(Rtget_content_maintypetmaintget_content_subtypetsubt UNDERSCOREtjointreplacetspecificR(R R)R*tgenerict _writeBody(R RR1R6R5R*R/((RR'}s  !  cCsx|iD]\}}|id|I|idjo|i|IJq t|to|i|i IJq t |o|i|IJq |it|d|id|ddi IJq W|iJdS(Ns%s:it maxlinelent header_nametcontinuation_wss ( RtitemsthtvR R RRtHeadertencodeR (R RR<R=((RR#s  cCs|i}|djodSnt|tptdt|n|i ot i d|}n|i i |dS(Nsstring payload expected: %ss>From (Rt get_payloadtpayloadR)Rt basestringt TypeErrorttypeR RtfcreR1R R(R RRA((Rt _handle_texts   c Csg}|i}|djo g}nFt|to|ii |dSnt|t p |g}nxL|D]D}t }|i|}|i|dt|i|iquWti|}|idt|} |i| jo|i| n|idj o|i|iIJn|id| IJ|o|ii |idnx/|D]'}|id| IJ|ii |qhW|ii d| d|idj o|iJ|ii |indS(NRtfailobjs--is --(tmsgtextsRR@tsubpartsR)RRBR R RtlisttpartR%RR"tgRRtappendR+tNLR3talltextt get_boundaryt_make_boundarytboundaryt set_boundarytpreambletpopt body_parttepilogue( R RRORLRHRIRRKRVRR((Rt_handle_multiparts@     cCsg}x|iD]}t}|i|}|i |dt |i }|i d}|o/|ddjo|iti|d q|i|qW|iiti|dS(NRs it(tblocksRR@RKR%RR R"RLRRR+ttexttsplittlinesRMRNR3R R(R RRZRLR[R]RRK((Rt_handle_message_delivery_statuss   cCsNt}|i|}|i|iddt|i i |i dS(NiR( R%RR R"RLRRR@RR RR+(R RRLR((Rt_handle_messages (t__name__t __module__t__doc__RRRRRRR"RR'R#RFR7RXR^R_(((RR s          7 sD[Non-text (%(type)s) part of message omitted, filename %(filename)s]tDecodedGeneratorcBs)tZdZededZdZRS(sGenerator a text representation of a message. Like the Generator base class, except that non-text parts are substituted with a format string representing the part. iNcCs=ti|||||djo t|_ n ||_ dS(sLike Generator.__init__() except that an additional optional argument is allowed. Walks through all subparts of a message. If the subpart is of main type `text', then it prints the decoded payload of the subpart. Otherwise, fmt is a format string that is used instead of the message payload. fmt is expanded with the following keywords (in %(keyword)s format): type : Full MIME type of the non-text part maintype : Main MIME type of the non-text part subtype : Sub-MIME type of the non-text part filename : Filename of the non-text part description: Description associated with the non-text part encoding : Content transfer encoding of the non-text part The default value for fmt is None, meaning [Non-text (%(type)s) part of message omitted, filename %(filename)s] N( R RR R RRtfmtR)t_FMTt_fmt(R R RRRd((RRs   c Csx|iD]}|i}|djo||idtIJq |djoq ||ihd|i <d|i<d|i <d|i d<d |i d d <d |i d d<IJq WdS(NR[tdecodet multipartRDtmaintypetsubtypetfilenames [no filename]t descriptionsContent-Descriptions[no description]tencodingsContent-Transfer-Encodings [no encoding]( RtwalkRKR.RiR R@RRftget_content_typeR0t get_filenametget(R RRKRi((RR'7s    Y(R`RaRbRR)RR'(((RRcs is%%0%ddcCstiti}ddt|d}|djo|Sn|}d}xet o]t i dt i|dt i}|i|pPn|dt|}|d7}qLW|S( Nt=is==is^--s(--)?$t.i(trandomt randrangetsystmaxintttokenRfRRR[R)tbtcounterRtretcompiletescapet MULTILINEtcretsearchR(R[RyRxRRRRz((RRQQs &(RbR{RvRRtRt cStringIOR%t email.HeaderR>R2RNR|R~RER R ReRctlentreprRwt_widthRfR)RQ(RERRNR2R R%RtR R>RvR{RfRRReRQRc((Rt?s"        9 c@sdZdkZdkZdkZdkZdklZdkl Z dZ dZ dZ ddZ dZd Ze d Ze d Zeid eieiBZeid ZeiiZdZeeddZdfdYZdZdZdS(s+Header encoding and decoding functionality.N(sHeaderParseError(sCharsets t u iuiLsus-asciisutf-8si =\? # literal =? (?P[^?]*?) # non-greedy up to the next ? is the charset \? # literal ? (?P[qb]) # either a "q" or a "b", case insensitive \? # literal ? (?P.*?) # non-greedy up to the next ?= is the encoded string \?= # literal ?= s[\041-\176]+:$c Cs?t|}ti|p|d fgSng}d} x|iD]} ti| p|i | d fqFnti | }x|o|i di }|oW|o9|ddd jo$|ddt|d f|dRR@R?((R"t __unicode__s       cCs||ijS(N(totherR/R<(R/RF((R"t__eq__scCs ||j S(N(R/RF(R/RF((R"t__ne__scCs7|djo |i}n!t|tpt|}n|djot|toF|ipd}t |||}|i pd}|i||qt|t olxit|tfD]C}y'|i pd}|i||}PWqtj oqXqWtp tdqn|ii||fdS(s>Append a string to the MIME header. Optional charset, if given, should be a Charset instance or the name of a character set (which will be converted to a Charset instance). A value of None (the default) means that the charset given in the constructor is used. s may be a byte string or a Unicode string. If it is a byte string (i.e. isinstance(s, str) is true), then charset is the encoding of that byte string, and a UnicodeError will be raised if the string cannot be decoded with that charset. If s is a Unicode string, then charset is a hint specifying the character set of the characters in the string. In this case, when producing an RFC 2822 compliant header using RFC 2047 rules, the Unicode string will be encoded using the following charsets in order: us-ascii, the charset hint, utf-8. The first character set not to provoke a UnicodeError is used. Optional `errors' is passed as the third argument to any unicode() or ustr.encode() call. t8bitsus-asciisutf-8 conversion failedN(RRR/R0R*R+RRt input_codectincodecRBR7tustrt output_codectoutcodecR<R.tUTF8t UnicodeErrortFalsetAssertionErrorR6R (R/RRR7RLRNRK((R"R s,    cCsA|i|}|i|t} |i| } | |jo| |fgSn|djo||fgSn|djo|i ||||Snb| t |jo6|} |i|| t} |i|| t}nt|||\} }|i| }|i|t}||fg} | |i|||i|S(NRIsus-ascii(Rt to_splittableRt splittabletfrom_splittabletTrueRtencoded_header_lentelenR$R/t _split_asciit splitcharsR2tsplitpntRQtfirsttlastt _binsplitt fsplittabletfencodedtchunkt_splitR:(R/RRR$RZR]RTR_R`RXR[RRaR\((R"Rbs$   cCs8t|||i|i|}t||gt |S(N( RYRtfirstlenR/R:R1RZtchunkstzipRR2(R/RRRcRZRd((R"RY?sc Csg}x|D]\}}|pq n|djp|idjo |}n|i|}|o|dido d}nd}t ||||q Wt |i}|i|S(NiRR(Rdt newchunksRRRtheader_encodingRt header_encodetendswithtextrat _max_appendR$tNLR/R1tjoinerRD( R/RfR$RjRRRRdRm((R"t_encode_chunksDs    s;, c Csg}|i}d} x|iD]u\}}|| d}||i djo |}n||i ||||7}|d\}}|i |} qW|i||S(sEncode a message header into an RFC-compliant format. There are many issues involved in converting a given string for use in an email header. Only certain character sets are readable in most email clients, and as header strings can only contain a subset of 7-bit ASCII, care must be taken to properly convert and encode (with Base64 or quoted-printable) header strings. In addition, there is a 75-character length limit on any given encoded header field, so line-wrapping must be performed, even with double-byte character sets. This method will do its best to convert the string to the correct character set used in email, and encode and line wrap it safely with the appropriate scheme for that character set. If the given charset is not known or an error occurs during conversion, this function will return the header untouched. Optional splitchars is a string containing characters to split long ASCII lines on, in rough support of RFC 2822's `highest level syntactic breaks'. This doesn't affect RFC 2047 encoded lines. iiRiN(RfR/R9R$tlastlenR6RRt targetlenRWRbRZt lastchunkt lastcharsetRn( R/RZR$RqRrRRfRRpRo((R"R<gs   ( t__name__t __module__RR;R=RERGRHR RbRYRnR<(((R"R's5    7 .  #cCsg} |}x}|iD]o} | i} t| |jo| i| |}qnx6|D]}|| joPq_q_W| i| |}qt i d|}|djo |}nd}|d}t|}t|idt}g} d} xi|i| D]X} | tdt| d|}t| }| }|djoI|oBt| djo/ti| do| i| | |7} q |||jo| o| i|i | |n||joG|djo:t!| |||d}| i#|d |dg} n | g} |t| d} |}q | i| | |7} q W| o| i|i | qqW| S( Ns%s\s*s;,RRs iii($tlinesRctmaxlenRR R tlstripR2R trestlenRZtchtretcompiletcreteolRmtjoinlenR&R3R4twslentthistlinelenRtparttmaxtcurlentpartlent onfirstlinetfcretmatchRDRYtsubltextend(RRcRxR&RZRyRRR~RRR RRuR}RvRR|RmRR((R"RYsb          ! ;      c Csd}t|}xj||jo\||dd?}|i|| t}|i |}||jo |}q|d}qW|i|| t } |i||t }| |fS(Nii(tiR2RTtjtmRRURVRaRWtchunklenR$RQR\R]( RTRR$RRaRRRR]R\((R"R^s    (t__doc__RzRtemail.quopriMIMERtemail.base64MIMEt email.ErrorsR!t email.CharsetR+RlRRAR4RCR8R.ROR{tVERBOSEt IGNORECASERRRRkR#RR,R'RYR^(RCR,R+R!RARkRlROR.RRzR^RR8RRYRRR'R#R4((R"t?s.            9 Fc@sVdZdkZdklZdZedZdddZddedZ dS( s1Various types of useful iterators and generators.N(sStringIOccsK|V|io6x3|iD]!}x|iD] }|Vq1WqWndS(sWalk over the message tree, yielding each subpart. The walk is performed in depth-first order. This method is a generator. N(tselft is_multipartt get_payloadtsubparttwalkt subsubpart(RRR((t%/usr/lib/python2.4/email/Iterators.pyR s   ccs\xU|iD]G}|id|}t|toxt|D] }|VqBWq q WdS(sIterate over the parts, returning string payloads line-by-line. Optional decode (default False) is passed through to .get_payload(). tdecodeN( tmsgRRRRtpayloadt isinstancet basestringtStringIOtline(RRRR R ((Rtbody_line_iterators  ttextccsZxS|iD]E}|i|jo,|djp|i|jo|VqRq q WdS(sIterate over the subparts with a given MIME type. Use `maintype' as the main MIME type to match against; this defaults to "text". Optional `subtype' is the MIME subtype to match against; if omitted, only the main type is matched. N(RRRtget_content_maintypetmaintypetsubtypetNonetget_content_subtype(RRRR((Rttyped_subpart_iterator)s   ic Cs|djo ti}nd|d}|||iI|o|d|i IJn|J|i o2x/|i D]}t |||d|qyWndS(sA handy debugging aidt is[%s]iN(tfpRtsyststdouttlevelttabRtget_content_typetinclude_defaulttget_default_typeRRRt _structure(RRRRRR((RR7s    ( t__doc__Rt cStringIOR RtFalseRRRR(RRR RRR((Rt?s     c@sdZdkZdkZdkZdkZdklZdklZdkl Z dkl Z dZ ei dZ ei dZded Zd Zd Zd fd YZdS(s8Basic message object for the email package object model.N(sStringIO(sUtils(sErrors(sCharsets; s\s*;\s*s[ \(\)<>@,;:\\"/\[\]\?=]cCs|dj ot|djot|to/|d7}ti|d|d|d}n|pt i |od|ti|fSqd||fSn|SdS(s~Convenience function to format and return a key=value pair. This will quote the value if needed or if quote is true. it*iis%s="%s"s%s=%sN( tvaluetNonetlent isinstancettupletparamtUtilstencode_rfc2231tquotet tspecialstsearch(RRR ((t#/usr/lib/python2.4/email/Message.pyt _formatparam s  %cCsg}x|d djo|d}|id}xB|djo4|idd|do|id|d}q6W|djot|}n|| }d|jo?|id}|| i i d||di }n|i |i ||}q W|S(Nit;it"it=( tplisttstfindtendtcountRtftindextitstriptlowertappend(RRRRR((R t _parseparam6s" '   0cCsGt|to&|d|dti|dfSnti|SdS(Niii(RRRRtunquote(R((R t _unquotevalueHs&tMessagecBstZdZdZdZedZdZdZdZ dZ e edZ e d Z d Zd Zd Zd ZdZdZdZdZdZdZdZe dZe dZdZdZe dZe dZe dZdZ dZ!dZ"dZ#d Z$d!Z%e d"e&d#Z'e d"e&d$Z(d%e&e d&d'Z)d"e&d(Z*d%e&d)Z+e d*Z,e d+Z-d,Z.e d-Z/e d.Z0d/k1l2Z2RS(0sBasic message object. A message object is defined as something that has a bunch of RFC 2822 headers and a payload. It may optionally have an envelope header (a.k.a. Unix-From or From_ header). If the message is a container (i.e. a multipart or a message/rfc822), then the payload is a list of Message objects, otherwise it is a string. Message objects implement part of the `mapping' interface, which assumes there is exactly one occurrance of the header per message. Some headers do in fact appear multiple times (e.g. Received) and for those headers, you must use the explicit API to set or get all the headers. Not all of the mapping methods are implemented. cCsJg|_d|_d|_d|_d|_|_g|_d|_ dS(Ns text/plain( tselft_headersRt _unixfromt_payloadt_charsettpreambletepiloguetdefectst _default_type(R ((R t__init__cs     cCs|idtS(swReturn the entire formatted message as a string. This includes the headers, body, and envelope header. tunixfromN(R t as_stringtTrue(R ((R t__str__nscCs?dkl}t}||}|i|d||iS(sReturn the entire formatted message as a string. Optional `unixfrom' when True, means include the Unix From_ envelope header. This is a convenience method and may not generate the message exactly as you intend because by default it mangles lines that begin with "From ". For more flexibility, use the flatten() method of a Generator instance. (s GeneratorR*N( temail.Generatort GeneratortStringIOtfptgtflattenR R*tgetvalue(R R*R1R/R2((R R+ts    cCst|itS(s6Return True if the message consists of multiple parts.N(RR R#tlist(R ((R t is_multipartscCs ||_dS(N(R*R R"(R R*((R t set_unixfromscCs|iS(N(R R"(R ((R t get_unixfromscCs4|idjo|g|_n|ii|dS(sAdd the given payload to the current payload. The current payload will always be a list of objects after this method is called. If you want to set the payload to a scalar object, use set_payload() instead. N(R R#RtpayloadR(R R9((R tattachscCsW|d jo |i}n>t|itptdt|in|i|}|o|i od Sn|i ddi }|djoti|SqS|djo2yti|SWqOtij o |SqOXqS|d joZt}y0ti t|d |d t|i}WqOtij o |SqOXqSn|S(sZReturn a reference to the payload. The payload will either be a list object or a string. If you mutate the list object, you modify the message's payload in place. Optional i returns that index into the payload. Optional decode is a flag indicating whether the payload should be decoded or not, according to the Content-Transfer-Encoding header (default is False). When True and the message is not a multipart, the payload will be decoded if this header's value is `quoted-printable' or `base64'. If some other encoding is used, or the header is missing, or if the payload has bogus data (i.e. bogus base64 or uuencoded data), the payload is returned as-is. If the message is a multipart and the decode flag is True, then None is returned. sExpected list, got %sscontent-transfer-encodingtsquoted-printabletbase64s x-uuencodetuuencodetuuesx-uues tquietN(s x-uuencodesuuencodesuuesx-uue(RRR R#R9RR5t TypeErrorttypetdecodeR6tgetRtcteRt_qdecodet_bdecodetbinasciitErrorR0tsfptuuR,R4(R RRBRIRDR9((R t get_payloads2          cCs+||_|dj o|i|ndS(sSet the payload to the given value. Optional charset sets the message's default character set. See set_charset() for details. N(R9R R#tcharsetRt set_charset(R R9RL((R t set_payloads  cCs|djo|idd|_dSnt|toti|}nt|tipt|n||_|i dp|i ddn|i dp |i ddd|i n|i d|i t||i jo|i |i|_n|i dpY|i}y||Wqtj o,|i |i|_|i d|qXndS(sSet the charset of the payload to a given character set. charset can be a Charset instance, a string naming a character set, or None. If it is a string it will be converted to a Charset instance. If charset is None, the charset parameter will be removed from the Content-Type field. Anything else will generate a TypeError. The message will be assumed to be of type text/* encoded with charset.input_charset. It will be converted to charset.output_charset and encoded properly, if needed, when generating the plain text representation of the message. MIME headers (MIME-Version, Content-Type, Content-Transfer-Encoding) will be added as needed. RLNs MIME-Versions1.0s Content-Types text/plainsContent-Transfer-Encoding(RLRR t del_paramR$RtstrtCharsetR@thas_keyt add_headertget_output_charsett set_paramt body_encodeR#tget_body_encodingRD(R RLRD((R RMs2      cCs|iS(sKReturn the Charset instance associated with the message's payload. N(R R$(R ((R t get_charsetscCs t|iS(s9Return the total number of headers, including duplicates.N(RR R!(R ((R t__len__scCs |i|S(s-Get a header value. Return None if the header is missing instead of raising an exception. Note that if the header appeared multiple times, exactly which occurrance gets returned is undefined. Use get_all() to get all the values matching a header field name. N(R RCtname(R RZ((R t __getitem__scCs|ii||fdS(sSet the value of a header. Note: this does not overwrite an existing header with the same field name. Use __delitem__() first to delete any existing headers. N(R R!RRZtval(R RZR\((R t __setitem__scCsc|i}g}xA|iD]6\}}|i|jo|i||fqqW||_dS(swDelete all occurrences of a header, if present. Does not raise an exception if the header is missing. N(RZRt newheadersR R!tktvR(R RZR_R^R`((R t __delitem__&s  cCs:|ig}|iD]\}}||iq~jS(N(RZRt_[1]R R!R_R`(R RZRbR_R`((R t __contains__2scCst}|i|||j S(s/Return true if the message contains the header.N(tobjecttmissingR RCRZ(R RZRe((R RR5s cCs(g}|iD]\}}||q~S(s.Return a list of all the message's header field names. These will be sorted in the order they appeared in the original message, or were added to the message, and may contain duplicates. Any fields deleted and re-inserted are always appended to the header list. N(RbR R!R_R`(R RbR_R`((R tkeys:scCs(g}|iD]\}}||q~S(s)Return a list of all the message's header values. These will be sorted in the order they appeared in the original message, or were added to the message, and may contain duplicates. Any fields deleted and re-inserted are always appended to the header list. N(RbR R!R_R`(R RbR_R`((R tvaluesDscCs|iS(s'Get all the message's header fields and values. These will be sorted in the order they appeared in the original message, or were added to the message, and may contain duplicates. Any fields deleted and re-inserted are always appended to the header list. N(R R!(R ((R titemsNscCsE|i}x2|iD]'\}}|i|jo|SqqW|S(s~Get a header value. Like __getitem__() but return failobj instead of None when the field is missing. N(RZRR R!R_R`tfailobj(R RZRiR_R`((R RCXs   cCscg}|i}x;|iD]0\}}|i|jo|i|qqW|p|Sn|S(sQReturn a list of all the values for the named field. These will be sorted in the order they appeared in the original message, and may contain duplicates. Any fields deleted and re-inserted are always appended to the header list. If no such fields exist, failobj is returned (defaults to None). N( RgRZRR R!R_R`RRi(R RZRiRgR`R_((R tget_allhs  cKsg}xf|iD]X\}}|djo|i|iddq|it|idd|qW|dj o|i d|n|i i|ti|fdS(sExtended header setting. name is the header field to add. keyword arguments can be used to set additional parameters for the header field, with underscores converted to dashes. Normally the parameter will be added as key="value" unless value is None, in which case only the key will be added. Example: msg.add_header('content-disposition', 'attachment', filename='bud.gif') t_t-iN(tpartst_paramsRhR_R`RRtreplaceR t_valuetinsertR R!t_namet SEMISPACEtjoin(R RrRpRnRmR`R_((R RSzs   & cCs|i}xlttt|i|iD]=\}\}}|i|jo||f|i|Remove the given parameter completely from the Content-Type header. The header will be re-written in place without the parameter or its value. All values will be quoted as necessary unless requote is False. Optional header specifies an alternative to the Content-Type header. NR;RR(R RRRt new_ctypeRRRR`RRR RsRtRC(R RRRRRR`((R ROs )cCs|iddjp tn|idjo|d=d|d@,:;".]s [][\\()"]cCs|S(N(ts(R((t!/usr/lib/python2.4/email/Utils.pyt _identity)scCsO|p|Snti|}|id o|ido |d Sn|S(Ns i(Rtbase64t decodestringtvaluetendswith(RR((Rt_bdecode-s ! cCs.tidt|}tidt|}|S(s+Replace all line-ending characters with .s (?s %s%s%s <%s>N(tpairtnametaddresstquotest specialsretsearcht escapesreR (RRRR((Rt formataddrCs  cCs"ti|}t|}|iS(s7Return a list of (REALNAME, EMAIL) for each fieldvalue.N(t COMMASPACEtjoint fieldvaluestallt _AddressListtat addresslist(RRR((Rt getaddressesVs s_ =\? # literal =? (?P[^?]*?) # non-greedy up to the next ? is the charset \? # literal ? (?P[qb]) # either a "q" or a "b", case insensitive \? # literal ? (?P.*?) # non-greedy up to the next ?= is the atom \?= # literal ?= c CsX|d$joti}n|oti|}tio|do ti}n ti}t t |d\}}|djo d}nd}d|||df}n'ti|}|o d}nd }d d d d ddddg|d|dddddddddddddg |d d |d|d!|d"|d#|fS(%sReturns a date string as specified by RFC 2822, e.g.: Fri, 09 Nov 2001 01:08:47 -0000 Optional timeval if given is a floating point time value as accepted by gmtime() and localtime(), otherwise the current time is used. Optional localtime is a flag that when True, interprets timeval, and returns a date relative to the local timezone instead of UTC, properly taking daylight savings time into account. Optional argument usegmt means that the timezone is written out as an ascii string, not numeric one (so "GMT" instead of "+0000"). This is needed for HTTP, and is only used when localtime==False. iiit-t+s %s%02d%02di<tGMTs-0000s"%s, %02d %s %04d %02d:%02d:%02d %stMontTuetWedtThutFritSattSuniitJantFebtMartAprtMaytJuntJultAugtSeptOcttNovtDeciiiiN(ttimevaltNonettimet localtimetnowtdaylighttaltzonetoffsetttimezonetdivmodtabsthourstminutestsigntzonetgmtimetusegmt( R4R7RDRBR;RAR?R8R@((Rt formatdatejs$      cCsti}tidti|}ti}ti d}|djo d}n d|}t i}d|||||f}|S(sReturns a string suitable for RFC 2822 compliant Message-ID, e.g: <20020201195627.33539.96671@nightshade.la.mastaler.com> Optional idstring if given is a string used to strengthen the uniqueness of the message id. s %Y%m%d%H%M%SiRt.s<%s.%s.%s%s@%s>N(R6R4tstrftimeRCtutcdatetostgetpidtpidtrandomt randrangetrandinttidstringR5tsockettgetfqdntidhosttmsgid(RORHRNRSRKR4RR((Rt make_msgids      cCs|pdSnt|S(N(tdataR5t _parsedate(RU((Rt parsedatescCs|pdSnt|S(N(RUR5t _parsedate_tz(RU((Rt parsedate_tzscCs&t|i}|pdSn|dS(NRi(RR(RtaddrRtaddrs(RZR[((Rt parseaddrscCst|djoz|ido7|ido'|dd!iddiddSn|ido|ido|dd!Sqn|S( sRemove quotes from a string.iR is\\s\s\"tN(tlentstrt startswithRtreplace(R`((Rtunquotes ' cCsmdk}|idd}t|djodd|i|fSn|\}}}|||i|fS(s#Decode string according to RFC 2231Nt'ii( turllibRtsplittpartsR_R5Rctcharsettlanguage(RRiRhRgRe((Rtdecode_rfc2231s cCshdk}|i|dd}|djo|djo|Sn|djo d}nd|||fS(sEncode string according to RFC 2231. If neither charset nor language is given, then s is returned as-is. If charset is given but not language, the string is encoded using the empty string for language. NtsafeRs%s'%s'%s(RetquoteRRhR5Ri(RRhRiRe((Rtencode_rfc2231s   s&^(?P\w+)\*((?P[0-9]+)\*?)?$c Csg}h} |d\}}|i||fx|dD]\}}t|}ti|}|o^|i dd\}}|dj ot |}n| i|g} | i||fq:|i|dt|fq:W| ox| iD]\}}g}|ix!|D]\}} |i| qWtti|\}}}|i|||dt|ffqWn|S(sDecode parameters list according to RFC 2231. params is a sequence of 2-tuples containing (content type, string value). iiRtnums"%s"N(t new_paramstrfc2231_paramstparamsRRtappendRctrfc2231_continuationtmatchtmotgroupRnR5tintt setdefaulttrfc2231_param1Rltitemst continuationstsortt continuationRjt EMPTYSTRINGRRhRi( RqRRiRoRuRhRR{RnRyRpR}((Rt decode_paramss6   !   .Rbsus-asciicCs}t|to_t|d}|dpd}yt|||SWqytj ot|||SqyXn t|SdS(Niisus-ascii( t isinstanceRttupleRctrawvalRhtunicodeterrorst LookupErrortfallback_charset(RRRRRh((Rtcollapse_rfc2231_values(3t__doc__RIR R6RRLRPtwarningst cStringIOtStringIOtemail._parseaddrRlt AddressListRt mktime_tzRWRVRYRXtquopriRt_qdecodetemail.Encoderst_bencodet_qencodeRR~t UEMPTYSTRINGR tcompileRRRRR RRtVERBOSEt IGNORECASEtecreR5tFalseRERTR\RcRjRmRsRR('RWRcRRRLRRRRRRRTR RYRERRRsRjRRRRlRmR RRR\RRPRRIR R~R6RVRXRR((Rt?sL                  5      $c@s_dZdkZdZdZdZddddd d d d d dddddddd dddddddgZddddd d!d"gZhd#d$<d%d$<d&d$<d'd$<d(d)<d*d+<d,d-<d.d)<d/d0<d1d-<d2d3<d4d0<d5d6<d7d3e fd?YZ dS(@scEmail address parsing code. Lifted directly from rfc822.py. This should eventually be rewritten. Nt ts, tjantfebtmartaprtmaytjuntjultaugtseptocttnovtdectjanuarytfebruarytmarchtapriltjunetjulytaugustt septembertoctobertnovembertdecembertmonttuetwedtthutfritsattsuntUTitUTCtGMTtZtASTiptADTitESTi tEDTtCSTitCDTtMSTiDtMDTtPSTitPDTc Cs|i}|didp|ditjo |d=n;|did}|djo|d|d|d@,:;."[]is s t.RN( tselftspecialstpostLWStCRtatomendsR^t phraseendstfieldt commentlist(RbRi((RRt__init__s     cCsx|it|ijog|i|i|idjo|id7_q|i|idjo|ii|iqPqWdS(s*Parse up to the start of the next address.s it(N(RbRdR:RiReRjR>t getcomment(Rb((RRtgotonextscCsYg}xL|it|ijo2|i}|o||7}q |idq W|S(sVParse all addresses. Returns a list containing all of the addresses. RN(RR(tresultRbRdR:Rit getaddresstadR>(RbRoRq((RRt getaddrlists cCsg|_|i|i}|i}|i}|ig}|it |i jo.|o#t i |i|dfg}qen|i |idjo=||_||_|i }t i |i|fg}n|i |idjog}t |i }|id7_xK|it |i joY|i|i|jo+|i |idjo|id7_Pn||i}qWn|i |idjof|i}|io4t i |ddi |id |fg}qet i ||fg}nX|o#t i |i|dfg}n.|i |i|ijo|id7_n|i|it |i jo*|i |id jo|id7_n|S( sParse the next address.is.@R1it;tt@R1( RbRiRdtFalset expectrouteRntadlistR:t getdomaintTrueR}(RbRR((RRRs2     cCsTg}|ix|it|ijo|i|idjo |id|id7_ne|i|idjo|id|in3|i|i|ijoPn|i|i |iqW|it|ijp|i|idjot i |Sn|id|id7_|it i ||i S(sParse an RFC 2822 addr-spec.RaiR\s"%s"RN( taslistRbRnRdR:RiR>tgetquoteRgtgetatomt EMPTYSTRINGR|R(RbR((RRR}#s(  0  cCs)g}x|it|ijo|i|i|ijo|id7_q |i|idjo|ii|iq |i|idjo|i|i q |i|idjo |id7_|idq |i|i|i joPq |i|i q Wt i |S(s-Get the complete domain name from an address.iRlt[RaN(tsdlistRbRdR:RiReRjR>RmtgetdomainliteralRgRRR|(RbR((RRR<s"cCs:|i|i|jodSndg}t}|id7_x|it|ijo|o!|i|i|it}n|i|i|jo|id7_Pnn|o.|i|idjo|i|i n9|i|idjo t }n|i|i|i|id7_q@Wt i|S(sParse a header fragment delimited by special characters. `beginchar' is the start character for the fragment. If self is not looking at an instance of `beginchar' then getdelimited returns the empty string. `endchars' is a sequence of allowable end-delimiting characters. Parsing stops when one of these is encountered. If `allowcomments' is non-zero, embedded RFC 2822 comments are allowed within the parsed fragment. RiRls\N(RbRiRdt beginchartslistRR_R:R>tendcharst allowcommentsRmRRR|(RbRRRRR_((RRt getdelimitedOs*    cCs|iddtS(s1Get a quote-delimited fragment from self's field.R\s" N(RbRR(Rb((RRRsscCs|iddtS(s7Get a parenthesis-delimited fragment from self's field.Rls) N(RbRR(Rb((RRRmwscCsd|iddtS(s!Parse an RFC 2822 domain-literal.s[%s]Rs] N(RbRR(Rb((RRR{scCsdg}|djo |i}nx`|it|ijoF|i|i|joPn|i|i|i|id7_q&Wti |S(sParse an RFC 2822 atom. Optional atomends specifies a different set of end token delimiters (the default is to use self.atomends). This is used e.g. in getphraselist() since phrase endings must not include the `.' (which is legal in phrases).RiN( tatomlistRgR?RbRdR:RiR>RR|(RbRgR((RRRs   cCsg}x|it|ijo|i|i|ijo|id7_q |i|idjo|i|iq |i|idjo|ii|i q |i|i|i joPq |i|i |i q W|S(sParse a sequence of RFC 2822 phrases. A phrase is a sequence of words, which are in turn either RFC 2822 atoms or quoted-strings. Phrases are canonicalized by squeezing all runs of continuous whitespace into one space. iR\RlN( RyRbRdR:RiReR>RRjRmRhR(RbRy((RRRxs(t__name__t __module__t__doc__RkRnRrRpRR}RRRRRmRR?RRx(((RRR`s    ;   $    t AddressListcBsMtZdZdZdZdZdZdZdZdZ RS(s@An AddressList encapsulates a list of parsed RFC 2822 addresses.cCs7ti|||o|i|_n g|_dS(N(R`RkRbRiRrt addresslist(RbRi((RRRkscCs t|iS(N(R:RbR(Rb((RRt__len__scCsUtd}|i|_x5|iD]*}||ijo|ii|q#q#W|S(N(RR?tnewaddrRbRtothertxR>(RbRRR((RRt__add__s   cCs<x5|iD]*}||ijo|ii|q q W|S(N(RRRRbR>(RbRR((RRt__iadd__s  cCsHtd}x5|iD]*}||ijo|ii|qqW|S(N(RR?RRbRRRR>(RbRRR((RRt__sub__s   cCs<x5|iD]*}||ijo|ii|q q W|S(N(RRRRbtremove(RbRR((RRt__isub__s  cCs |i|S(N(RbRRF(RbRF((RRt __getitem__s( RRRRkRRRRRR(((RRRs      (RRXR{Rt COMMASPACERER7RORSRWR[R_R`R( RWRR`R{R_R7RRORERXR[RSR((RRt?s N V c@sdZdkZdklZlZdklZdZdZdZ dZ dZ d e d ed Z ed ed ZeZeZdd ZeZeZdS(sBase64 content transfer encoding per RFCs 2045-2047. This module handles the content transfer encoding method defined in RFC 2045 to encode arbitrary 8-bit data using the three 8-bit bytes in four 7-bit characters encoding known as Base64. It is used in the MIME standards for email to attach images, audio, and text using some 8-bit character sets to messages. This module provides an interface to encode and decode both headers and bodies with Base64 encoding. RFC 2045 defines a method for including character set information in an `encoded-word' in a header. This method is commonly used for 8-bit real names in To:, From:, Cc:, etc. fields, as well as Subject: lines. This module does not do the line wrapping or end-of-line character conversion necessary for proper internationalized headers; it only does dumb encoding and decoding. To deal with the various line wrapping issues, use the email.Header module. N(s b2a_base64s a2b_base64(sfix_eolss s ticCs>tt|d\}}|d}|o|d7}n|S(s6Return the length of s when it is encoded with base64.iiN(tdivmodtlentst groups_of_3tleftovertn(RRRR((t&/usr/lib/python2.4/email/base64MIME.pyt base64_len)s  s iso-8859-1iLc Cs|p|Sn|pt|}ng}|t|t}|dd} x>t dt|| D]$}|i t |||| !qgWg}xC|D];} | ito| d } n|i d|| fqW|d} | i|S(s0Encode a single header line with Base64 encoding in a given charset. Defined in RFC 2045, this Base64 encoding is identical to normal Base64 encoding, except that each line must be intelligently wrapped (respecting the Base64 encoding), and subsequent lines must start with a space. charset names the character set to use to encode the header. It defaults to iso-8859-1. End-of-line characters (\r, \n, \r\n) will be automatically converted to the canonical email line separator \r\n unless the keep_eols parameter is True (the default is False). Each line of the header will be terminated in the value of eol, which defaults to "\n". Set this to "\r\n" if you are using the result of this function directly in email. The resulting string will be in the form: "=?charset?b?WW/5ciBtYXp66XLrIHf8eiBhIGhhbXBzdGHuciBBIFlv+XIgbWF6euly?=\n =?charset?b?6yB3/HogYSBoYW1wc3Rh7nIgQkMgWW/5ciBtYXp66XLrIHf8eiBhIGhh?=" with each line wrapped at, at most, maxlinelen characters (defaults to 76 characters). iiiis =?%s?b?%s?=t N(theadert keep_eolstfix_eolstbase64edt maxlinelenRtcharsettMISC_LENt max_encodedt max_unencodedtrangetitappendt b2a_base64tlinestlinetendswithtNLteoltjoinertjoin( R RR RRRRR RRRR((Rt header_encode5s&" cCs|p|Sn|pt|}ng}|dd}xstdt||D]Y}t ||||!}|i t o|t jo|d |}n|i|qSWti|S(sEncode a string with base64. Each line will be wrapped at, at most, maxlinelen characters (defaults to 76 characters). If binary is False, end-of-line characters will be converted to the canonical email end-of-line sequence \r\n. Otherwise they will be left verbatim (this is the default). Each line of encoded text will end with eol, which defaults to "\n". Set this to " " if you will be using the result of this function directly in an email. iiiiN(RtbinaryR tencvecRRRRRRtencRRRRt EMPTYSTRINGR(RRRRRR R!R((Rtencodeos cCs:|p|Snt|}|o|it|Sn|S(sDecode a raw base64 string. If convert_eols is set to a string value, all canonical email linefeeds, e.g. "\r\n", in the decoded text will be converted to the value of convert_eols. os.linesep is a good choice for convert_eols if you are decoding a text attachment. This function does not parse a full MIME header value encoded with base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high level email.Header class for that functionality. N(Rt a2b_base64tdect convert_eolstreplacetCRLF(RR&R%((Rtdecodes  (t__doc__tretbinasciiRR$t email.UtilsR R(RR"RRtFalseRtTrueR#t body_encodet encodestringtNoneR)t body_decodet decodestring(R$RR4RR RR"R)R+R3R(R#R0RR1R((Rt?s   :! c@sdZdkZdklZdklZdZdZdZei dZ ei dZ d Z d Z d Zd Zd dZdZdZdededZededZeZeZedZeZeZdZdZdS(sFQuoted-printable content transfer encoding per RFCs 2045-2047. This module handles the content transfer encoding method defined in RFC 2045 to encode US ASCII-like 8-bit data called `quoted-printable'. It is used to safely encode text that is in a character set similar to the 7-bit US ASCII character set, but that includes some 8-bit characters that are normally not allowed in email bodies or headers. Quoted-printable is very space-inefficient for encoding binary files; use the email.base64MIME module for that instead. This module provides an interface to encode and decode both headers and bodies with quoted-printable encoding. RFC 2045 defines a method for including character set information in an `encoded-word' in a header. This method is commonly used for 8-bit real names in To:/From:/Cc: etc. fields, as well as Subject: lines. This module does not do the line wrapping or end-of-line character conversion necessary for proper internationalized headers; it only does dumb encoding and decoding. To deal with the various line wrapping issues, use the email.Header module. N(s hexdigits(sfix_eolss s is[^-a-zA-Z0-9!*+/ ]s [^ !-<>-~\t]cCstti|S(sBReturn True if the character should be escaped with header quopri.N(tboolthqretmatchtc(R((t&/usr/lib/python2.4/email/quopriMIME.pytheader_quopri_check-scCstti|S(s@Return True if the character should be escaped with body quopri.N(RtbqreRR(R((Rtbody_quopri_check2scCsCd}x6|D].}ti|o|d7}q |d7}q W|S(s?Return the length of str when it is encoded with header quopri.iiiN(tcounttsRRR(R RR((Rtheader_quopri_len7scCsCd}x6|D].}ti|o|d7}q |d7}q W|S(s=Return the length of str when it is encoded with body quopri.iiiN(RtstrRRR(R RR((Rtbody_quopri_lenBstcCsn|p|i|inMt|dt||jo|dc||7||dt jo)|t |||d!7}|d7}n||7}|d7}||jo||7}qaqaWq"W|i | o|i |o|d }n|S( s_Decode a quoted-printable string. Lines are separated with eol, which defaults to \n. R iR+iiiiN( tencodedtdecodedR0R)trstripR%tiRtnRt hexdigitsRR2(R:R%R;RR=R>R)((Rtdecodes>         ;   !cCs|id}t|S(sCTurn a match in the form =AB to the ASCII character with value 0xabiN(RtgroupR R(RR ((Rt_unquote_match/scCs%|idd}tidt|S(sDecode a string encoded with RFC 2045 MIME header `Q' encoding. This function does not parse a full MIME header value encoded with quoted-printable (like =?iso-8895-1?q?Hello_World?=) -- please use the high level email.Header class for that functionality. RRs=\w{2}N(R treplacetretsubRB(R ((Rt header_decode6s(t__doc__RDtstringR?t email.UtilsRR3tNLR$tcompileRRRRR R RRRtFalseR*R9t body_encodet encodestringR@t body_decodet decodestringRBRF(RRBRR RRFRRJRR$R@RDROR*R9RPRR?R3RMRNRRR ((Rt?s0       @S 0 c@sdZdkZdkZdkZdkZhZdZdgZdZeiZ dei ei fdYZ dZ dZeiedS( s Standard "encodings" Package Standard Python encoding modules are stored in this package directory. Codec modules must have names corresponding to normalized encoding names as defined in the normalize_encoding() function below, e.g. 'utf-8' must be implemented by the module 'utf_8.py'. Each codec module must export the following interface: * getregentry() -> (encoder, decoder, stream_reader, stream_writer) The getregentry() API must return callable objects which adhere to the Python Codec Interface Standard. In addition, a module may optionally also define the following APIs which are then used by the package's codec search function: * getaliases() -> sequence of encoding name strings to use as aliases Alias names returned by getaliases() must be normalized encoding names as defined by normalize_encoding(). Written by Marc-Andre Lemburg (mal@lemburg.com). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. Ns --unknown--t*s . 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz tCodecRegistryErrorcBstZRS(N(t__name__t __module__(((t(/usr/lib/python2.4/encodings/__init__.pyR+scCsEt|tijo|id}ndi|itiS(s Normalize an encoding name. Normalization works as follows: all non-alphanumeric characters except the dot used for Python package names are collapsed and replaced with a single underscore, e.g. ' -;#' becomes '_'. Leading and trailing underscores are removed. Note that encoding names should be ASCII only; if they do use non-ASCII characters, these must be Latin-1 compatible. slatin-1t_N( ttypetencodingttypest UnicodeTypetencodetjoint translatet_norm_encoding_maptsplit(R((Rtnormalize_encoding/s c Csti|t} | tj o| Snt|}ti|pti|idd}|dj o||g}n |g}xX|D]J}|pqnyt |ttt}Wntj oqXPqWd}y |i}Wntj o d}nX|djodt|d?<d@d?<dAdB<dCdB<dDdE<dFdE<dGdE<dHdE<dIdJ<dKdJ<dLdJ<dMdN<dOdN<dPdN<dQdN<dRdN<dSdT<dUdT<dVdT<dWdX<dYdX<dZdX<d[d\<d]d\<d^d\<d_d`<dad`<dbd`<dcdd<dedd<dfdd<dgdh<didh<djdh<dkdl<dmdl<dndl<dodl<dpdq<drdq<dsdq<dtdu<dvdu<dwdu<dxdy<dzdy<d{dy<d|d}<d~d}<dd}<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d d<d d<d d<d d <dd <dd <dd <dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd<dd<dd<d d<d!d<d"d#<d$d#<d%d#<d&d'<d(d'<d)d'<d*d'<d+d'<d,d-<d.d-<d/d0<d1d2<d3d2<d4d2<d5d2<d6d2<d7d2<d8d2<d9d2<d:d2<d;d2<d<d2<d=d><d?d@<dAdB<dCdD<dEdD<dFdG<dHdI<dJdK<dLdM<dNdM<dOdM<dPdM<dQdR<dSdR<dTdR<dUdV<dWdX<dYdX<dZdX<d[dX<d\d]<d^d]<d_d]<d`da<dbda<dcda<ddde<dfdg<dhdg<didg<djdg<dkdg<dldm<dndm<dodp<dqdp<drds<dtds<dudv<dwdv<dxdy<dzdy<d{dy<d|dy<d}dy<d~d<dd<dd<d?d@<dAdBdJZ?dKfdLYZ@e#o&dMe@eiiAiBfdNYZCndOe iDfdPYZEdQe@eEfdRYZFdSeEfdTYZGdUZHdVeEfdWYZIdXZJdYeiKeiLeiMfdZYZNd[ZOgZPd\ZQd]d^d_d`dadbdcdddedfdgdhdid!gZRgZSeRD]aZTeSeTiUdbdjiUdkdliUdmdniUdodpiUdqdriUdidsdtdudvq[SZV[TgZSeVD]ZWeSe i2eWiXq`[SZY[WdwZZeQeZdxZ[dyZ\dzZ]d{Z^d|Z_e i2d}e[e\e]fZ`e i2d~e^e_fZadZbeQebdZceQece i2dZddZeeQeehdd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd s4.1sCopyright (c) 2002-2006, Mark Pilgrim, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.s'Mark Pilgrim s%Jason Diamond s'John Beimler s1Fazal Majid s"Aaron Swartz s(Kevin Marks is.UniversalFeedParser/%s +http://feedparser.org/sapplication/atom+xml,application/rdf+xml,application/rss+xml,application/x-netcdf,application/xml;q=0.9,text/xml;q=0.2,*/*;q=0.1t drv_libxml2tuTidytmxTidyN(sStringIO(sescapeicCs:|idd}|idd}|idd}|S(Nt&s&t>s>td?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf}dk}|iditttdditt|an|i tSdS(Niiiiii iiiiii i i iiiiiiiiiiiiiiiiiiiiiiii iiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiiiiii[i.i<i(i+i!i&iiiiiiiiii]i$i*i)i;i^i-i/iiiiiiiii|i,i%i_i>i?iiiiiiiiii`i:i#i@i'i=i"iiaibicidieifigihiiiiiiiiiijikiliminioipiqiriiiiiiii~isitiuiviwixiyiziiiiiiiiiiiiiiiiiiiiiii{iAiBiCiDiEiFiGiHiIiiiiiii}iJiKiLiMiNiOiPiQiRiiiiiii\iiSiTiUiViWiXiYiZiiiiiii0i1i2i3i4i5i6i7i8i9iiiiiiRi( t_ebcdic_to_ascii_maptemaptstringt maketranstjointmaptchrtrangetst translate(RtRmRn((Rt_ebcdic_to_asciis  @s&^([A-Za-z][A-Za-z0-9+-.]*://)(/*)(.*?)cCs"tid|}ti||S(Ns\1\3(t _urifixertsubturiturlparseturljointbase(R|Ry((Rt_urljoinst_FeedParserMixinc BsEtZhdd<dd<dd<dd<dd<dd<dd<dd<d d<d d<d d<d d<d d<dd<dd<dd<dd<dd<dd<dd<dd<dd<d d!<d"d#<d$d%<d&d'<d(d)<d*d+<d,d-<d.d/<d0d1<d2d3<d4d5<d6d7<d8d7<d9d:<d;d<<d=d><d?d@<dAdB<dCdD<dEdF<dGdH<dIdJ<dKdL<dMdN<dOdP<dQdR<dSdT<dUdV<dWdX<dYdZ<d[d\<d]d^<d_d`<dadb<dcdd<dedf<dgdhe>Z?dZ@e@ZAdZBdZCdZDdZEdZFeFZGeFZHdZIeIZJeIZKdZLeLZMdZNeNZOdZPddZQdZRddZSdZTeTZUeTZVdZWeWZXeWZYdZZeZZ[eZZ\dZ]e]Z^e]Z_dZ`e`Zae`ZbdZcecZddZeeeZfdZgegZhdZieiZjdZkekZldZmemZnemZodZpepZqepZrdZsesZtesZuesZvesZwdZxexZyexZzexZ{exZ|dZ}e}Z~dZeZdZdZdZdZdZdZdZeZeZdZdZdZeZeZeZdZdZeZdZeZdZdZdZeZeZdZeZeZdZdZdZeZdZeZdZeZdZdZdZdZdZeZdZeZdZdZdZdZdZdZeZdZeZdZeZeZeZeZeZdZeZdZdZRS(NRshttp://backend.userland.com/rsss%http://blogs.law.harvard.edu/tech/rssshttp://purl.org/rss/1.0/s&http://my.netscape.com/rdf/simple/0.9/shttp://example.com/newformat#shttp://example.com/nechoshttp://purl.org/echo/suri/of/echo/namespace#shttp://purl.org/pie/shttp://purl.org/atom/ns#shttp://www.w3.org/2005/Atoms'http://purl.org/rss/1.0/modules/rss091#shttp://webns.net/mvcb/tadmins,http://purl.org/rss/1.0/modules/aggregation/tags)http://purl.org/rss/1.0/modules/annotate/tannotates!http://media.tangent.org/rss/1.0/taudios-http://backend.userland.com/blogChannelModulet blogChannelshttp://web.resource.org/cc/tccs4http://backend.userland.com/creativeCommonsRssModuletcreativeCommonss'http://purl.org/rss/1.0/modules/companytcos(http://purl.org/rss/1.0/modules/content/tcontents&http://my.theinfo.org/changed/1.0/rss/tcps http://purl.org/dc/elements/1.1/tdcshttp://purl.org/dc/terms/tdctermss&http://purl.org/rss/1.0/modules/email/temails&http://purl.org/rss/1.0/modules/event/tevs*http://rssnamespace.org/feedburner/ext/1.0t feedburnershttp://freshmeat.net/rss/fm/tfmshttp://xmlns.com/foaf/0.1/tfoafs(http://www.w3.org/2003/01/geo/wgs84_pos#tgeoshttp://postneo.com/icbm/ticbms&http://purl.org/rss/1.0/modules/image/timages*http://www.itunes.com/DTDs/PodCast-1.0.dtdtituness'http://example.com/DTDs/PodCast-1.0.dtds%http://purl.org/rss/1.0/modules/link/tlshttp://search.yahoo.com/mrsstmedias4http://madskills.com/public/xml/rss/module/pingback/tpingbacks.http://prismstandard.org/namespaces/1.2/basic/tprisms+http://www.w3.org/1999/02/22-rdf-syntax-ns#trdfs%http://www.w3.org/2000/01/rdf-schema#trdfss*http://purl.org/rss/1.0/modules/reference/trefs*http://purl.org/rss/1.0/modules/richequiv/treqvs'http://purl.org/rss/1.0/modules/search/tsearchs&http://purl.org/rss/1.0/modules/slash/tslashs)http://schemas.xmlsoap.org/soap/envelope/tsoaps.http://purl.org/rss/1.0/modules/servicestatus/tsss-http://hacks.benhammersley.com/rss/streaming/tstrs-http://purl.org/rss/1.0/modules/subscription/Rxs,http://purl.org/rss/1.0/modules/syndication/tsys)http://purl.org/rss/1.0/modules/taxonomy/ttaxos*http://purl.org/rss/1.0/modules/threading/tthrs*http://purl.org/rss/1.0/modules/textinput/ttis5http://madskills.com/public/xml/rss/module/trackback/t trackbacks$http://wellformedweb.org/commentAPI/twfws%http://purl.org/rss/1.0/modules/wiki/twikishttp://www.w3.org/1999/xhtmltxhtmls$http://www.w3.org/XML/1998/namespacetxmls/http://schemas.pocketsoap.com/rss/myDescModule/tszftlinkR/t wfw_commenttwfw_commentrsstdocsR7R8tcommentstlicenseticontlogottitleR6tinfoRCR5R?R@R4s text/htmlsapplication/xhtml+xmlsutf-8cCs^totiidn|ip7x4|iiD]\}}||i|i                        c Cstotiid||fng} |D]\} }| | i |fq0~ }g} |D]3\} }| | | d#jo |i p|fqc~ }t |} | i d| i dp|i}t|i||_| i d| i d}|djo d}n|djo |i}n|o"|d$jo||id s %s="%s"tescapeiiR`RRR4tnameR7R8twidththeightt_start_(Rstype(sfeedRsrdf:RDF(stitleslinks descriptionsname(stitleslinks descriptionsurlshrefswidthsheight(,RRRRRPtattrsROR&R'RR(tattrsDRRRNRR}RRhRRtappendRtprefixRyRcttrackNamespaceRRRWtendswithtsplitt handle_dataRptttfindtsuffixRRRt methodnametgetattrtmethodR^tpush(RNRPRRRRRRRR&RyRORRR'((Rtunknown_starttagsZ3G %        =# I   cCstotiid|n|iddjo|idd\}}nd|}}|i i ||}|o|d}nd||}yt ||}|Wn$tj o|i||nX|ioD|iido1|ii dd id  od |idRi(RRRRRPRRRRRNRRRRRRR^tpopRRRWRRRRRR(RNRPRRRR((Rtunknown_endtags6  =#     c Cs|ipdSn|i}|djod |}nJ|d d jot|dd}n t|}t|id}|iddi |dS(Nt34t38t39t60t62tx22tx26tx27tx3ctx3es&#%s;itxiisutf-8ii( RRRRRRRRRR( RNRRRttexttinttctunichrtencodeR(RNRRR((Rthandle_charrefs    cCs|ipdSntotiid|n|d jod|}nSd}y||Wnt j od|}nXt ||i d }|id d i |dS( Ns"entering handle_entityref with %s tlttgttquottamptaposs&%s;cCstdk}t|do|i|Sn|i|}|ido%|idot|dd!Snt|S(Ntname2codepoints&#t;ii( thtmlentitydefsR]RR&t entitydefsRcRRtord(R&R((Rtname2cps   sutf-8ii(sltsgtsquotsampsapos( RNRRRRRRRR RbRRR(RNRR R((Rthandle_entityrefs   icCs^|ipdSn|o)|iiddjot|}n|iddi|dS(NRTsapplication/xhtml+xmlii(RNRRRRRR RR(RNRR((RRs   cCsdS(N((RNR((Rthandle_commentscCsdS(N((RNR((Rt handle_pi!scCsdS(N((RNR((Rt handle_decl%scCstotiidn|i||d!djoe|iid|}|djot |i}n|i t |i|d|!d|dSn|iid|}|d SdS( Nsentering parse_declaration i s iiiRi( RRRRRNtrawdatatiRR&tlenRR (RNRR&((Rtparse_declaration(s $ cCsU|i}|djo d}n/|djo d}n|djo d}n|S(NRs text/plainthtmls text/htmlRsapplication/xhtml+xml(t contentTypeR(RNR((RtmapContentType4s       cCs|i}||fd jo|i o d|_n|djo|i o d|_n|djo|i o d|_n|iddjod }|}n|ii |o,|i||i |<||i |i|s     cCst|ipd|S(NR(R}RNRRy(RNRy((Rt resolveURIPscCs|S(N(R(RNtelementR((RtdecodeEntitiesSscCs|ii||ggdS(N(RNRRRt expectingText(RNRR((RRVscCsa|ipdSn|idd|jodSn|ii\}}}di|}|o|i }n|p|Snt o[|i i ddoEyt i |}Wqtij oqtij oqXn||ijo|o|i|}n|i i ddp|i||}ny|i d=Wntj onXy|i d=Wntj onX|i|i i dd|ijo0||ijot||i|i}qn|i|i i dd|ijo*||ijot||i}q)n|io=t|tdjo$yt||i}WqpqpXn|d jo|Sn|io|i o |d joO|i!di"|gt#i$|i }||d <|i!d|i%|q]|d jo9||i!d|<|o||i!dd ddRR=((Rt _start_rsss*   cCs d|_dS(NR#(RNR(RNR((Rt_start_dlhottitlesscCsd|_|i|dS(Ni(RNRt _cdf_commonR(RNR((Rt_start_channels cCs|ido0|ih|d|idd<|in|ido0|ih|d|idd<|indS(NtlastmodiR8(RRWRNt_start_modifiedRt _end_modifiedt _start_linkt _end_link(RNR((RRAs  cCswd|_hdd<dd<dd<}|ip?|id}|i|}|o ||_qsd |_ndS( Nis0.1Rs0.2Rs0.3RRR (RNRR=RRRRR>(RNRR>RR=((Rt _start_feed s !  cCs d|_dS(Ni(RNR(RN((Rt _end_channelscCs<d|_|idd|i}|idtdS(NiRi(RNRRR1R2R\R)(RNRR2((Rt _start_images  cCs|idd|_dS(NRi(RNRR(RN((Rt _end_image"s cCs<d|_|idd|i}|idtdS(Nit textinputi(RNRRR1R2R\R)(RNRR2((Rt_start_textinput&s  cCs|idd|_dS(NRLi(RNRR(RN((Rt_end_textinput-s cCsd|_|idddS(Nitauthor(RNRR(RNR((Rt _start_author2s cCs$|idd|_|idS(NROi(RNRRt_sync_author_detail(RN((Rt _end_author:s  cCsd|_|idddS(Nit publisheri(RNRR(RNR((Rt_start_itunes_ownerCs cCs'|idd|_|iddS(NRSi(RNRRRQ(RN((Rt_end_itunes_ownerGs  cCsMd|_|i}|idg|dit|idddS(Nit contributorst contributori(RNRR1R2R\RR)R(RNRR2((Rt_start_contributorLs   cCs|idd|_dS(NRWi(RNRR(RN((Rt_end_contributorSs cCsMd|_|i}|idg|dit|idddS(NiRVRi(RNRR1R2R\RR)R(RNRR2((Rt_start_dc_contributorWs   cCs|id|_dS(Ni(RNt _end_nameR(RN((Rt_end_dc_contributor^s cCs|idddS(NRi(RNR(RNR((Rt _start_namebscCs|id}|io|id|dne|io|id|nG|io|id|n)|io|i }||dd(RNRRZR<t _parse_date(RNRZ((Rt_end_publishedscCs|idddS(NR1i(RNR(RNR((Rt_start_updated$scCs/|id}t|}|id|dS(NR1R3(RNRRZR{t parsed_valueR<(RNR~RZ((Rt _end_updated+s cCs|idddS(Ntcreatedi(RNR(RNR((Rt_start_created4scCs)|id}|idt|dS(NRtcreated_parsed(RNRRZR<R{(RNRZ((Rt _end_created8scCs|idddS(Ntexpiredi(RNR(RNR((Rt_start_expirationdate=scCs#|idt|iddS(Ntexpired_parsedR(RNR<R{R(RN((Rt_end_expirationdate@scCsV|idd|i|d}|o|iddi|n|iddS(NRis rdf:resourceii(RNRR:RRZRRR(RNRRZ((Rt_start_cc_licenseCs cCs|idddS(NRi(RNR(RNR((Rt_start_creativecommons_licenseJscCs|iddS(NR(RNR(RN((Rt_end_creativecommons_licenseMscCs|i}|idg}| o| o| odSnthd|<d|<d|<}||jo2|i thd|<d|<d|<ndS(NRGRHRJtlabel( RNR1R2R\RGRHRJRR)RZR(RNRHRJRRGRZR2((Rt_addTagPs ' cCstotiidt|n|id}|id|id}|id}|i ||||i dddS(Ns!entering _start_category with %s RHRJtdomainRRFi( RRRRtreprRRRRHRJRRNRR(RNRRHRRJ((Rt_start_categoryXscCs7x0|idiD]}|i|ddqWdS(Ntitunes_keywordsshttp://www.itunes.com/(RNRRRHRRh(RNRH((Rt_end_itunes_keywordsbscCs0|i|iddd|idddS(NRshttp://www.itunes.com/RFi(RNRRRRRhR(RNR((Rt_start_itunes_categoryfscCs|id}|pdSn|i}|d}|o/t|o"|dd o||dd|i|}|ido|i|d|ds  cCs|i||dS(N(RNRRRy(RNRRy((RtstartPrefixMappingEsc Cs"|\}} t|pdi}|iddjod}|}n|o-|iddjo|idd} nd} |i i || }| oL|djp|djo|djo%|ii|  otd| n|o|d| } nt| i} to0tiid||| ||i| fnh}xz|iiD]i\\}} }|pdi}|i i |d}|o|d| } n||t| is>s't's"t"u(Rktcompilet IGNORECASERxRRNR-RRRTRR(R)R+(RNR((RR+s!#cCs~g}|D]\}}||i|fq ~}g}|D]3\}}|||djo |ip|fq>~}|S(NRRT(srelstype(RORR&R'R(RNRROR&R'((Rtnormalize_attrss3GcCstotiid|ng}xb|D]Z\}}t |t djot ||i }n|i t ||i |fq,Wdig}|D]\}}|d||fq~i|i }||ijo|ii dtn|ii dtdS(Ns-_BaseHTMLProcessor, unknown_starttag, tag=%s uu %s="%s"s<%(tag)s%(strattrs)s />s<%(tag)s%(strattrs)s>(RRRRRPtuattrsRRKRZRTR.RNRRRpRORtstrattrsR,R tlocals(RNRPRROR4R3RZRK((RRs #FcCs/||ijo|iidtndS(Ns (RPRNR,R RR5(RNRP((RRscCs|iidtdS(Ns &#%(ref)s;(RNR RR5(RNR((RRscCs|iidtdS(Ns &%(ref)s;(RNR RR5(RNR((RR scCs3totiid|n|ii|dS(Ns)_BaseHTMLProcessor, handle_text, text=%s (RRRRRRNR R(RNR((RRscCs|iidtdS(Ns(RNR RR5(RNR((RR scCs|iidtdS(Ns (RNR RR5(RNR((RRscCs|iidtdS(Ns (RNR RR5(RNR((RRss-zA-Z][-_.a-zA-Z0-9:]*\s*cCs|i}t|}||jodSn|i||}|oQ|i}|i }|t||jodSn|i |i fSn|i|dSdS(Ni(Ni(Ni(Ni(RNRRtnRRht_new_declname_matchtmRmRtR#RRtendR(RNRt declstartposRR8R6RtR((Rt _scan_names      cCs1dig}|iD]}|t|q~S(s(Return processed HTML as a single stringRN(RpRORNR tpR(RNROR<((RR!s(R R R,RR*R-R+R2RRRR RR RRRkR0R+R7R;R!(((RRs"-             t_LooseFeedParsercBstZdZdZRS(NcCs*tii|ti||||dS(N(R(R)RRNR~RRR(RNRRR((RRscCsI|idd}|idd}|idd}|idd}|idd}|id d}|id d }|id d }|id d}|idd}|iido~|iiddid o^|idd}|idd}|idd}|id d}|idd}n|S(Ns<s<s<s>s>s>s&s&s&s"s"s"s's's'RTRRRRR/R.(RRRNRRWRRR(RNRR((RRs"3(R R RR(((RR=s t_RelativeURIResolvercBsttZd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8gZdZdZdZRS(9NtaR8tapplettcodebaseRt blockquotetcitetbodyt backgroundtdeltformtactionR!tlongdescRtiframetheadtprofileR#tusemapR$tinsRtobjecttclassidRtqtscriptcCsti||||_dS(N(RRRNRR(RNRR((RR+scCst|i|S(N(R}RNRRy(RNRy((RR/scCsy|i|}g}|D]?\}}||||f|ijo|i|p|fq~}t i |||dS(N( RNR2RRORKRZRPt relative_urisRRR(RNRPRRZRORK((RR2sS(R?shref(R@RA(sareashref(s blockquoteRC(sbodyRE(sdelRC(RGsaction(sframeRI(sframessrc(RJRI(RJssrc(sheadRL(simgRI(simgssrc(simgRM(sinputssrc(sinputRM(RNRC(slinkshref(sobjectRP(sobjectRA(sobjectsdata(sobjectRM(RQRC(sscriptssrc(R R RSRRR(((RR>sQ  cCsAtotiidnt||}|i||i S(Nsentering _resolveRelativeURIs ( RRRRR>tbaseURIRR<R+t htmlSourceR!(RURTRR<((RR+7s  t_HTMLSanitizercGBstZddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGgGZddHdIdJdKdLdMdNdOdPdQdRdSdTdUd dVdWdXdYdZd[d\d]dd^d_d`dadbdcdddedfdgdhd(didjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d7d~dddddddddddgGZddgZdZdZdZdZdZ dZ RS(NR?tabbrtacronymtaddressRtbtbigRBRtbuttontcaptiontcenterRCtcodeR tcolgrouptddRFtdfntdirtdivtdltdttemtfieldsettfontRGth1th2th3th4th5th6R"RR#R$RNtkbdRtlegendtliRqtmenutoltoptgrouptoptionR<tpreRQRttsamptselecttsmalltspantstriketstrongRxtsupttablettbodyttdttextareattfoottthttheadttrttttutultvartacceptsaccept-charsett accesskeyRHtaligntalttaxistbordert cellpaddingt cellspacingtchartcharofftcharsettcheckedtclassR6tcolstcolspantcolortcompacttcoordstdatetimetdisabledtenctypetforR!theadersRR8threflangthspaceR/tismapRRIt maxlengthRRtmultipleRtnohreftnoshadetnowraptprompttreadonlyRtrevtrowstrowspantrulestscopetselectedtshapetsizeRtstartR6ttabindexttargetRRTRMtvalignRZtvspaceRRRR@cCsti|d|_dS(Ni(RR*RNtunacceptablestack(RN((RR*Ts cCs||ijo+||ijo|id7_ndSn|i|}g}|D]-\}}||i jo|||fqUqU~}t i |||dS(Ni( RPRNtacceptable_elementst"unacceptable_elements_with_end_tagRR2RRORKRZtacceptable_attributesRR(RNRPRRZRORK((RRXsAcCsO||ijo+||ijo|id8_ndSnti||dS(Ni(RPRNRRRRR(RNRP((RRas cCsdS(N((RNR((RRhscCsdS(N((RNR((RRkscCs"|ipti||ndS(N(RNRRRR(RNR((RRns ( R R RRRR*RRRRR(((RRV=s     c st|}|i||i}toxd}xrt D]j}yZ|djodk l d}Pn,|djodkld}PnWq9q9Xq9W|ot|tdj}|o|id}n||d d d d d d dd}|ot|d}n|idoD|idd d }|ido|idd d }qrn|ido|idd d }qqn|iidd}|S(NR(s parseStringc st||S(N(Rt_utidyRtkwargs(RR(R(Rt_tidy~sR(sTidyc s"i||\}}}}|S(N(t_mxtidyttidyRRtnerrorst nwarningst errordata(RRRRR(R(RRsusutf-8t output_xhtmlitnumeric_entitiestwrapit char_encodingtutf8stZdZdZdZeZeZeZdZRS(NcCsc|ddjo*|djo|i|||||Snti|||i }||_ |S(Nidii0( R_RNthttp_error_302treqtfptmsgRturllibt addinfourlt get_full_urltinfourltstatus(RNRRR_RRR((Rthttp_error_defaults  cCst|iido%tii||||||}nt i |||i}t|dp ||_n|S(NtlocationR(RR(RWturllib2tHTTPRedirectHandlerRRNRRR_RRRRRR]R(RNRRR_RRR((RRs % cCst|iido%tii||||||}nt i |||i}t|dp ||_n|S(NRR(RR(RWRRthttp_error_301RNRRR_RRRRRR]R(RNRRR_RRR((RRs % c Csti|id}ytiiddjpttdjptti |i diddid\} } tid|dd}|i||| | |id |||}|i|SWn |i|||||SnXdS( Niis2.3.3t Authorizationt Rsrealm="([^"]*)"sWWW-Authenticateswww-authenticate(RzRRthostRRRRdRRhR$RtusertpasswRktfindalltrealmRNt add_passwordthttp_error_auth_reqedtretrytreset_retry_countRRR_R( RNRRR_RRRRRRR((Rthttp_error_401s !2 ( R R RRRthttp_error_300thttp_error_303thttp_error_307R(((RRs  c Cst|do|Sn|djo tiSnti|dd1jo|p t}nd0}t ot i |\}} t i| \} } | oLt i| \}} |o,d|| | f}t i|i}qqnti|} | id||o| id |n|od d d d dddg}ddddddddddddg } | idd||d|d | |d!d!|d|d"|d#|d$fn|o| id%|ntoto| id&d'nGto| id&d(n,to| id&d)n| id&d*|o| id+d,|nto| id-tn| id.d/t ti!t"t#g|} g| _&z| i'| SWd0| i(Xnyt'|SWnnXt)t*|S(2s8URL, filename, or string --> stream This function lets you define parsers that take any input source (URL, pathname to local or network file, or actual data as a string) and deal with it in a uniform manner. Returned object is guaranteed to have all the basic stdio read methods (read, readline, readlines). Just .close() the object when you're done with it. If the etag argument is supplied, it will be used as the value of an If-None-Match request header. If the modified argument is supplied, it must be a tuple of 9 integers as returned by gmtime() in the standard Python time module. This MUST be in GMT (Greenwich Mean Time). The formatted date/time will be used as the value of an If-Modified-Since request header. If the agent argument is supplied, it will be used as the value of a User-Agent request header. If the referrer argument is supplied, it will be used as the value of a Referer[sic] request header. If handlers is supplied, it is a list of handlers used to build a urllib2 opener. treadt-ithttpthttpstftps %s://%s%ss User-Agents If-None-MatchtMontTuetWedtThutFritSattSuntJantFebtMartAprtMaytJuntJultAugtSeptOcttNovtDecsIf-Modified-Sinces#%s, %02d %s %04d %02d:%02d:%02d GMTiiiiiitReferersAccept-encodings gzip, deflatetgziptdeflateRRsBasic %stAcceptsA-IMR+N(shttpshttpssftp(+R]turl_file_stream_or_stringRtstdinRztagentt USER_AGENTRhtauthRRt splittypeturltypetrestt splithosttrealhostt splitusert user_passwdt encodestringR#RtRequesttrequestt add_headertetagR9tshort_weekdaystmonthstreferrerRtzlibt ACCEPT_HEADERtapplyt build_openerttupleRthandlerstopenert addheaderstopentcloset _StringIOR(R RR9R RR$RRRRR%RRRR((Rt_open_resourcesd   !*U" cCstid|dS(sLRegister a date handler function (takes string, returns 9-tuple date in GMT)iN(t_date_handlerstinserttfunc(R-((RtregisterDateHandler*ss YYYY-?MM-?DDsYYYY-MMs YYYY-?OOOs YY-?MM-?DDsYY-?OOOtYYYYs-YY-?MMs-OOOs-YYs--MM-?DDs--MMs---DDtCCs(?P\d{4})tYYs(?P\d\d)tMMs(?P[01]\d)tDDs(?P[0123]\d)tOOOs(?P[0123]\d\d)s(?P\d\d$)s$(T?(?P\d{2}):(?P\d{2})s(:(?P\d{2}))?s6(?P[+-](?P\d{2})(:(?P\d{2}))?|Z)?)?c Csd}x&tD]}||}|oPq q W|pdSn|idjodSn|i} | idd}|ot |}nd}| idd} | p | djot i d} nLt| djo,dt t i ddt | } n t | } | idd } | p | d jo%|o d } qft i d } nt | } | id d}|ph|o |}q| id dp&| iddp| iddo d }qt i d}n t |}d | ijo t | d d dd } nx>d ddddgD]'}| i|dpd| |(\d{4})-(\d{2})-(\d{2})\s+(%s|%s)\s+(\d{,2}):(\d{,2}):(\d{,2})cCsti|}|pdSndhd|id<d|id<d|id<d |id <d |id <d |id<dd<}totii d|nt |S(s8Parse a string according to the OnBlog 8-bit date formatNsE%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)sR6iR7iR8iR:iR;iR<itzonediffs+09:00sOnBlog date parsed as: %s ( t_korean_onblog_date_reR+RDR8Rmt w3dtfdateRRRRt_parse_date_w3dtf(RDRRR8((Rt_parse_date_onblogscCs)ti|}|pdSnt|id}|id}|tjo|d7}nt |}t |djod|}ndhd|id<d |id <d |id <d |<d|id<d|id<dd<}t ot iid|nt|S(s6Parse a string according to the Nate 8-bit date formatNiii it0sE%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)sR6R7iR8iR:R;iR<iRPs+09:00sNate date parsed as: %s (t_korean_nate_date_reR+RDR8RRmR:tampmt _korean_pmRRRRRRRRRS(RDRRR:RWR8((Rt_parse_date_nates  vs9(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})(\.\d+)?cCsti|}|pdSndhd|id<d|id<d|id<d |id <d |id <d |id<dd<}totii d|nt |S(s2Parse a string according to the MS SQL date formatNsE%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)sR6iR7iR8iR:iR;iR<iRPs+09:00sMS SQL date parsed as: %s ( t_mssql_date_reR+RDR8RmRRRRRRRS(RDRRR8((Rt_parse_date_mssqlsuΙανuJanuΦεβuFebuΜάώuMaruΜαώuΑπρuApruΜάιuMayuΜαϊuΜαιuΙούνuJunuΙονuΙούλuJuluΙολuΑύγuAuguΑυγuΣεπuSepuΟκτuOctuΝοέuNovuΝοεuΔεκuDecuΚυρuSunuΔευuMonuΤριuTueuΤετuWeduΠεμuThuuΠαρuFriuΣαβuSatuL([^,]+),\s+(\d{2})\s+([^\s]+)\s+(\d{4})\s+(\d{2}):(\d{2}):(\d{2})\s+([^\s]+)cCsti|}|pdSny*t|id}t|id}Wn dSnXdhd|<d|id<d|<d |id <d |id <d |id<d|id<d|id<}t ot i i d|nt|S(s6Parse a string according to a Greek 8-bit date format.NiisP%(wday)s, %(day)s %(month)s %(year)s %(hour)s:%(minute)s:%(second)s %(zonediff)stwdayR8iR7R6iR:iR;iR<iRPisGreek date parsed as: %s (t_greek_date_format_reR+RDR8t _greek_wdaysRmR\t _greek_monthsR7t rfc822dateRRRRt_parse_date_rfc822(RDR8R7R`R\((Rt_parse_date_greeksujanuáru01u februáriu02umárciusu03uáprilisu04umáujusu05ujúniusu06ujúliusu07u augusztusu08u szeptemberu09uoktóberu10unovemberu11udecemberu12u?(\d{4})-([^-]+)-(\d{,2})T(\d{,2}):(\d{2})((\+|-)(\d{,2}:\d{2}))cCs'ti|}|pdSnywt|id}|id}t|djod|}n|id}t|djod|}nWn dSnXdhd|id<d |<d |<d |<d |id <d|id<}t ot i id|nt|S(s:Parse a string according to a Hungarian 8-bit date format.NiiiRUis:%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s%(zonediff)sR6R7R8R:R;iRPisHungarian date parsed as: %s (t_hungarian_date_format_reR+RDR8t_hungarian_monthsRmR7R8RR:RRRRRRRS(RDR:RRR8R7R8((Rt_parse_date_hungarian!s$[c Csd}d}d} d}d}ti|} d|}d||f}ti|}|i |}|djp|i|jodSn||||d } | ddjodSntiti| | |tiS( Nc Cst|id}|djo,dttiddt|}n|djod Sn|id}|ot|}|dd}|dd}d}x||joti |||ddddddf }ti|d}t ||}||jo/||jo||}qz|d}d }q||jo-||d jo||}qz|d}qqW|||fSn|id }d}|djo d}n9t|}|id }|ot|}nd}|||fS(NR6idiitjulianiiiiiR7R8(iii(RR8RmR6RGRHRfR7R8RhtjdayRNRtabstdiff(R8RfR6R7RgRRiR8((Rt__extract_date<sH ,   *        cCs|pdSn|id}|pdSnt|}t|id}|id}|ot|}nd}|||fS(Nithourstminutestseconds(iii(iii(R8RmRkRRlRm(R8RkRlRm((Rt__extract_timees cCs|pdSn|id}|pdSn|djodSnt|id}|id}|ot|}nd}|d|d}|ddjo | Sn|S( sAReturn the Time Zone Designator as an offset in seconds from UTC.ittzdR@ttzdhourst tzdminutesi<RAN(R8RmRoRRkRltoffset(R8RkRoRrRl((Rt __extract_tzdts"  sd(?P\d\d\d\d)(?:(?P-|)(?:(?P\d\d\d)|(?P\d\d)(?:(?P=dsep)(?P\d\d))?))?s;(?P[-+](?P\d\d)(?::?(?P\d\d))|Z)sW(?P\d\d)(?P:|)(?P\d\d)(?:(?P=tsep)(?P\d\d(?:[.,]\d+)?))?s %s(?:T%s)?i(iii(RjRnRst __date_ret__tzd_reRkR0t__tzd_rxt __time_ret __datetime_ret __datetime_rxR+RDR8RhRmtgmtRGRHRNttimezone( RDRuRnRxR8RtRjRyRwRzRvRs((RRS;s  )    cCs|i}|dddjp|ditijo |d=nt|djof|d}|id}|djo || ||dg|d)n|i d d i |}nt|d jo|d 7}nti |}|otiti|Snd S(s8Parse an RFC822, RFC1123, RFC2822, or asctime-style dateiit,t.iiRAiRRis 00:00:00 GMTN(R|R}(RDRRRtrfc822t _daynamesRRtRRRRpt parsedate_tzRLRGRHt mktime_tz(RDRRtRLR((RRas  /     tATiptETi tCTitMTiDtPTicCsxtD]}yg||}|pwnt|djo%totiidnt nt t ||SWqt j o7}to'tiid|it|fqqXqWdS(s6Parses a variety of date formats into a 9-tuple in GMTi s*date handler function must return 9-tuple s %s raised %s N(R+RRDt date9tupleRRRRRt ValueErrorRqRt ExceptionteR RRh(RDRRR((RR{s$   ' c Csd}d}d}d}||id\} }yj|d djot |}n.|d djo"d}t |di d}nt |djoK|d d jo:|d d!d jo&d}t |d di d}n|d d jo"d }t |d i d}njt |djoK|d djo:|d d!d jo&d }t |d d i d}n |d djo"d}t |di d}n|d djo"d}t |di d}n|d djo&d}t |ddi d}no|d djo&d}t |ddi d}n8|d djo&d}t |ddi d}nt idi|} Wn d0} nX| o8| idi}|o|d1jo |}qnd} d2}d3}| |jp | id*o.| id+od,} |p |pd}n| |jp | id-o'| id+od,} |pd.}nX| id-o|pd.}n7|o"|id o|pd/}n|pd}||||| fS(4s Get the character encoding of the XML document http_headers is a dictionary xml_data is a raw string (not Unicode) This is so much trickier than it sounds, it's not even funny. According to RFC 3023 ('XML Media Types'), if the HTTP Content-Type is application/xml, application/*+xml, application/xml-external-parsed-entity, or application/xml-dtd, the encoding given in the charset parameter of the HTTP Content-Type takes precedence over the encoding given in the XML prefix within the document, and defaults to 'utf-8' if neither are specified. But, if the HTTP Content-Type is text/xml, text/*+xml, or text/xml-external-parsed-entity, the encoding given in the XML prefix within the document is ALWAYS IGNORED and only the encoding given in the charset parameter of the HTTP Content-Type header should be respected, and it defaults to 'us-ascii' if not specified. Furthermore, discussion on the atom-syntax mailing list with the author of RFC 3023 leads me to the conclusion that any document served with a Content-Type of text/* and no charset parameter must be treated as us-ascii. (We now do this.) And also that it must always be flagged as non-well-formed. (We now do this too.) If Content-Type is unspecified (input was local file or non-HTTP source) or unrecognized (server just got it totally wrong), then go by the encoding given in the XML prefix of the document and default to 'iso-8859-1' as per the HTTP specification (RFC 2616). Then, assuming we didn't find a character encoding in the HTTP headers (and the HTTP Content-type allowed us to look in the body), we need to sniff the first few bytes of the XML data and try to determine whether the encoding is ASCII-compatible. Section F of the XML specification shows the way here: http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info If the sniffed encoding is not ASCII-compatible, we need to make it ASCII compatible so that we can sniff further into the XML declaration to find the encoding attribute, which will tell us the true encoding. Of course, none of this guarantees that we will be able to parse the feed in the declared character encoding (assuming it was declared correctly, which many are not). CJKCodecs and iconv_codec help a lot; you should definitely install them if you can. http://cjkpython.i18n.org/ cCsD|pd}ti|\}}||iddiddfS(s takes HTTP Content-Type header and returns (content type, charset) If no charset is specified, returns (content type, '') If no content type is specified, returns ('', '') Both return parameters are guaranteed to be lowercase strings RRR.N(t content_typetcgit parse_headerRFRRR(RRF((Rt_parseHTTPContentTypes Rs content-typeisLot<?sutf-16besutf-8ists<?sutf-16lestisiso-10646-ucs-2sucs-2t csunicodesiso-10646-ucs-4sucs-4tcsucs4sutf-16sutf-32tutf_16tutf_32tutf16tu16sapplication/xmlsapplication/xml-dtds&application/xml-external-parsed-entitystext/xmlstext/xml-external-parsed-entitys application/s+xmlistext/sus-asciis iso-8859-1N( siso-10646-ucs-2sucs-2Rsiso-10646-ucs-4sucs-4Rsutf-16sutf-32sutf_16Rsutf16su16(sapplication/xmlsapplication/xml-dtds&application/xml-external-parsed-entity(stext/xmlstext/xml-external-parsed-entity(Rtsniffed_xml_encodingt xml_encodingt true_encodingt http_headersRRthttp_content_typet http_encodingtxml_dataRvR.RRRkR0R+txml_encoding_matchRhtgroupsRtacceptable_content_typetapplication_content_typesttext_content_typesRcRRW( RRRRRRRRRRRR((Rt_getCharacterEncodingsv. 8 8     -- cCstotiid|nt|djou|d djod|dd!djoPto5tiid|djotiidqnd}|d}nt|djou|d d jod|dd!djoPto5tiid|d jotiid qnd }|d}n$|d d joPto5tiid|djotiidq|nd}|d }n|d djoPto5tiid|djotiidqnd}|d}nb|d djoPto5tiid|djotiidq>nd}|d}nt||}totiid|nt i d}d}|i |o|i||}n|d|}|idS(sChanges an XML data stream on the fly to specify a new encoding data is a raw sequence of bytes (not Unicode) that is presumed to be in %encoding already encoding is a string recognized by encodings.aliases s%entering _toUTF8, trying encoding %s iisRsstripping BOM sutf-16bestrying utf-16be instead ssutf-16lestrying utf-16le instead issutf-8strying utf-8 instead Rsutf-32bestrying utf-32be instead ssutf-32lestrying utf-32le instead s*successfully converted %s data to unicode s^<\?xml[^>]*?>s&u N(RRRRRRRR.tnewdataRkR0t declmatchtnewdeclRRxR(RRRRR((Rt_toUTF8J s^8 8    cCstidti}|id|}tidti}|i|}|o |dpd}|i i do d}nd}|id|}||fS(sStrips DOCTYPE from XML document, returns (rss_version, stripped_data) rss_version may be 'rss091n' or None stripped_data is the same XML document, minus the DOCTYPE s]*?)>Rs]*?)>itnetscapeRN(RkR0t MULTILINEtentity_patternRxRtdoctype_patternRtdoctype_resultstdoctypeRRRRh(RRRRRR((Rt _stripDoctype s cCst} t| dy0d"} | i4| t5|| }d}}WqqXn| oKd#| jo>y0d#} | i4| t5|| }d}}WqiqiXn|p:d| dt?}|iAt<i=iBiCd|iD||iE|t<i=iFiG} | iIt|t|d'o|iJi4hd(d)<ny|iK| Wq;tj oe}tLo1d*kM}|iN|iOtPiQiRd+nd| d<|iSp|| dR+RVR-tHTTPDigestAuthHandlerRtHTTPDefaultErrorHandlerRR*R+R.t _iso8601_tmplROttmplRt _iso8601_retregexR+RBROt _korean_yeart _korean_montht _korean_dayt _korean_amRXRQRVRTRYRZR[R_R^R]RbRdRcReRSRat_additional_timezonest _timezonesRjR{RRRRR targvtexitturlstpprintR7R(]RaRRR^R RRR(RRR RRRSRRR.ReRkRR{RR(RdR+RRRRRkRVRLRRR RRRORRRZRRRR[RRTRXRRRBRR%R+RcRR_R R~RR/R>RvRRRR)RR=RRORR]R-RRRVR~RR}RRRQRUR7RRbRzRYRRGR*Rw((Rt? s   c               K    &Hs' 5 '%6 Z 0u - N     E   r   ]  3   5      c@sOdZdkZddddgZhZdZdZdZd ZdS( sFilename matching with shell patterns. fnmatch(FILENAME, PATTERN) matches according to the local convention. fnmatchcase(FILENAME, PATTERN) always takes case in account. The functions operate by translating the pattern into a regular expression. They cache the compiled regular expressions for speed. The function translate(PATTERN) returns a regular expression corresponding to PATTERN. (It does not compile it.) Ntfiltertfnmatcht fnmatchcaset translatecCs:dk}|ii|}|ii|}t||S(sTest whether FILENAME matches PATTERN. Patterns are Unix shell style: * matches everything ? matches any single character [seq] matches any character in seq [!seq] matches any char not in seq An initial period in FILENAME is not special. Both FILENAME and PATTERN are first case-normalized if the operating system requires it. If you don't want this, use fnmatchcase(FILENAME, PATTERN). N(tostpathtnormcasetnametpatR(RRR((t/usr/lib/python2.4/fnmatch.pyRs  cCsdk}dk}g}|ii|}|tjo#t|}t i |t|        (t__doc__Rt__all__R RRRR(R&RRRRR R((R R s    c@sdZdkZdZdfdYZdfdYZdfdYZdefd YZd efd YZdd Z e d jo e ndS(sGeneric output formatting. Formatter objects transform an abstract flow of formatting events into specific output events on writer objects. Formatters manage several stack structures to allow various properties of a writer object to be changed and restored; writers need not be able to handle relative changes nor any sort of ``change back'' operation. Specific writer properties which may be controlled via formatter objects are horizontal alignment, font, and left margin indentations. A mechanism is provided which supports providing arbitrary, non-exclusive style settings to a writer as well. Additional interfaces facilitate formatting events which are not reversible, such as paragraph separation. Writer objects encapsulate device interfaces. Abstract devices, such as file formats, are supported as well as physical devices. The provided implementations all work with abstract devices. The interface makes available mechanisms for setting the properties which formatter objects manage and inserting data into the output. Nt NullFormattercBstZdZedZdZdZdZedZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZddZddZRS(s=A formatter which does nothing. If the writer parameter is omitted, a NullWriter instance is created. No methods of the writer are called by NullFormatter instances. Implementations should inherit from this class if implementing a writer interface but don't need to inherit any implementation. cCs'|djo t}n||_dS(N(twritertNonet NullWritertself(RR((t/usr/lib/python2.4/formatter.pyt__init__&s  cCsdS(N((Rt blankline((Rt end_paragraph*scCsdS(N((R((Rtadd_line_break+scOsdS(N((Rtargstkw((Rt add_hor_rule,scCsdS(N((RtformattcounterR((Rtadd_label_data-scCsdS(N((Rtdata((Rtadd_flowing_data.scCsdS(N((RR((Rtadd_literal_data/scCsdS(N((R((Rtflush_softspace0scCsdS(N((Rtalign((Rtpush_alignment1scCsdS(N((R((Rt pop_alignment2scCsdS(N((Rtx((Rt push_font3scCsdS(N((R((Rtpop_font4scCsdS(N((Rtmargin((Rt push_margin5scCsdS(N((R((Rt pop_margin6scCsdS(N((Rtspacing((Rt set_spacing7scGsdS(N((Rtstyles((Rt push_style8sicCsdS(N((Rtn((Rt pop_style9scCsdS(N((Rtflag((Rtassert_line_data:s(t__name__t __module__t__doc__RRRR R RRRRRRRRRRRR R"R$(((RRs&                  tAbstractFormattercBstZdZdZdZdZdZedZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZddZddZRS(sThe standard formatter. This implementation has demonstrated wide applicability to many writers, and may be used directly in most circumstances. It has been used to implement a full-featured World Wide Web browser. cCsy||_d|_g|_g|_g|_d|_g|_d|_ d|_ d|_ d|_ d|_ d|_dS(Nii(RRRRt align_stackt font_stackt margin_stackRt style_stacktnospacet softspacetpara_endtparskipt hard_breakt have_label(RR((RRKs            cCs|ip|iid|_n|i|jo8|i o-|ii||i||_d|_nd|_|_|_ d|_ dS(Nii( RR1Rtsend_line_breakR2R0Rtsend_paragraphR-R/R.(RR((RRZs     cCsR|ip|ip!|iid|_|_nd|_|_d|_dS(Nii( RR1R/RR3R2R0R-R.(R((RR es  cOs`|ip|iin|ii||d|_|_d|_|_ |_ |_ dS(Nii( RR1RR3t send_hor_ruleR R R-R2R/R.R0(RR R ((RR ls  cCs|ip |i o|iin|ip"|ii|odpdnt|t o |ii |i ||n|ii |d|_|_|_|_d|_|_dS(Nii(RR2R1RR3R/R4Rt isinstanceR tstrtsend_label_datatformat_counterRR-R.R0(RR RR((RRss " cCsd}x|D]}|djo|d|}q |djo+|djo||i||}qq |djo+|djo||i||}qq ||}q W|S(Ntt1s%dtaAitiI(tlabelR tcRRt format_lettert format_roman(RR RR?R>((RR9s     cCsXd}xK|djo=t|dd\}}tt||}||}q W|S(NR:iii(R>RtdivmodRtchrtordtcasets(RRERR>RFR((RR@s c Csddddg}dddg}d\}}x|d jot|d \}}|d jo||||d |}no|d jo|||||}nH|djo||}|d}nd}||||}||}|d }q0W|djo|i Sn|S(NtiRR?tmtvtltdR:ii i iiitI(R:i( tonestfivesR>tindexRRBRRFREtupper( RRERRORNR>RFRMR((RRAs(        cCs|pdSn|d i}|di}di|i}|io| odSn]|p |ioK|p(|ipd|_d|_ ndSn|ipd|}qnd|_ |_|_ |_ |_ ||_|i i|dS(Niit i(Rtisspacetprespacet postspacetjointsplitRR-R.R0R1R/R2Rtsend_flowing_data(RRRSRT((RRs$    % cCsy|pdSn|io|iidn|ddj|_d|_|_|_|_|_ |ii |dS(NRQis i( RRR.RRWR1R-R/R0R2tsend_literal_data(RR((RRs %cCsP|ioBd|_|_|_|_|_d|_|iidndS(NiiRQ( RR.R1R/R0R2R-RRW(R((RRs % cCs[|o=||ijo-|ii|||_|ii|n|ii|idS(N(RRRt new_alignmentR)tappend(RR((RRs  cCsg|io|id=n|io(|id|_}|ii|nd|_|iiddS(Ni(RR)RRRYR(RR((RRs   c Cs |\}}}}|io4d|_|_|_d|_|i i dn|i oy|i d\} }}}|tjo | }n|tjo |}n|tjo |}n|tjo |}qn||||f} |i i| |i i| dS(NiiRQi(tsizeRGtbtttRR.R1R/R-RRWR*tcsizetcitcbtctttAS_IStfontRZtnew_font( Rt.2R[RGR\R]RaR_R`R^Rc((RRs"       cCsM|io|id=n|io|id}nd}|ii|dS(Ni(RR*RcRRRd(RRc((RRs   cCs\|ii|td|i}| o|o|d}n|ii|t |dS(Ni( RR+RZRtfilterRtfstackRt new_margintlen(RRRg((RRs cCsb|io|id=ntd|i}|o|d}nd}|ii|t|dS(Ni( RR+RfRRgRRRhRi(RRgR((RRs cCs||_|ii|dS(N(RRRt new_spacing(RR((RRs cGs||io4d|_|_|_d|_|iidnx|D]}|i i |qEW|ii t |i dS(NiiRQ( RR.R1R/R-RRWRtstyleR,RZt new_stylesttuple(RRRk((RR s  icCs(|i| 3|iit|idS(N(RR,R!RRlRm(RR!((RR"s cCs,| |_|_d|_|_|_dS(Ni(R#RR-R1R/R0R2(RR#((RR$#s(R%R&R'RRR R RRR9R@RARRRRRRRRRRR R"R$(((RR(=s,             RcBstZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZRS(sMinimal writer interface to use in testing & inheritance. A writer which only provides the interface definition; no actions are taken on any methods. This should be the base class for all writers which do not need to inherit any implementation methods. cCsdS(N((R((RR0scCsdS(N((R((Rtflush1scCsdS(N((RR((RRY2scCsdS(N((RRc((RRd3scCsdS(N((RRtlevel((RRh4scCsdS(N((RR((RRj5scCsdS(N((RR((RRl6scCsdS(N((RR((RR47scCsdS(N((R((RR38scOsdS(N((RR R ((RR59scCsdS(N((RR((RR8:scCsdS(N((RR((RRW;scCsdS(N((RR((RRX<s(R%R&R'RRnRYRdRhRjRlR4R3R5R8RWRX(((RR(s             tAbstractWritercBsqtZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z RS( sA writer which can be used in debugging formatters, but not much else. Each method simply announces itself by printing its name and arguments on standard output. cCsd|fGHdS(Nsnew_alignment(%r)(R(RR((RRYGscCsd|fGHdS(Ns new_font(%r)(Rc(RRc((RRdJscCsd||fGHdS(Nsnew_margin(%r, %d)(RRo(RRRo((RRhMscCsd|fGHdS(Nsnew_spacing(%r)(R(RR((RRjPscCsd|fGHdS(Nsnew_styles(%r)(R(RR((RRlSscCsd|fGHdS(Nssend_paragraph(%r)(R(RR((RR4VscCs dGHdS(Nssend_line_break()((R((RR3YscOs dGHdS(Nssend_hor_rule()((RR R ((RR5\scCsd|fGHdS(Nssend_label_data(%r)(R(RR((RR8_scCsd|fGHdS(Nssend_flowing_data(%r)(R(RR((RRWbscCsd|fGHdS(Nssend_literal_data(%r)(R(RR((RRXes(R%R&R'RYRdRhRjRlR4R3R5R8RWRX(((RRp?s           t DumbWritercBsStZdZeddZdZdZdZdZdZ dZ RS( s;Simple writer class which writes output on the file object passed in as the file parameter or, if file is omitted, on standard output. The output is simply word-wrapped to the number of columns specified by the maxcol parameter. This class is suitable for reflowing a sequence of paragraphs. iHcCs7|pti|_||_ti||idS(N(tfiletsyststdoutRtmaxcolRRtreset(RRrRu((RRrs  cCsd|_d|_dS(Ni(Rtcoltatbreak(R((RRvxs cCs*|iid|d|_d|_dS(Ns i(RRrtwriteRRwRx(RR((RR4|s cCs&|iidd|_d|_dS(Ns i(RRrRyRwRx(R((RR3s cOsM|iid|iid|i|iidd|_d|_dS(Ns t-i(RRrRyRuRwRx(RR R ((RR5s  cCsv|ii||id}|djod|_||d}n|i}|it||_d|_ dS(Ns ii( RRrRyRtrfindRGRwt expandtabsRiRx(RRRG((RRXs   cCs|pdSn|ip|di}|i}|i}|ii}x~|iD]p}|oC|t ||jo|dd}q|d|d}n|||t |}d}qTW||_|di|_dS(Nis RQii( RRRxRRRwRuRrRyRVtwordRi(RRRuR}RyRwRx((RRWs&          ( R%R&R'RRRvR4R3R5RXRW(((RRqis      cCst}t|}|dj ot|}n/ti dotti d}n ti }xH|i }|pPn|djo|i dqc|i|qcW|i ddS(Nis i(RqtwR(tfRrRtopentfpRstargvtstdintreadlinetlineRR(RrRRR~R((Rttests       t__main__( R'RsRRbRR(RRpRqRR%(RRRpRsR(RqRRb((Rt?s "*C  c@sdZdkZdkZy/dkZeZ[dklZee_[Wnej odkZnXddgZdZdZ de fdYZ d e fd YZ d e fd YZ d e fdYZde fdYZe eieefZdZdfdYZeadZeadZdZdZdZdddZdfdYZdZ e!djo e ndS(sSAn FTP client class and some helper functions. Based on RFC 959: File Transfer Protocol (FTP), by J. Postel and J. Reynolds Example: >>> from ftplib import FTP >>> ftp = FTP('ftp.python.org') # connect to host, default port >>> ftp.login() # default, i.e.: user anonymous, passwd anonymous@ '230 Guest login ok, access restrictions apply.' >>> ftp.retrlines('LIST') # list directory contents total 9 drwxr-xr-x 8 root wheel 1024 Jan 3 1994 . drwxr-xr-x 8 root wheel 1024 Jan 3 1994 .. drwxr-xr-x 2 root wheel 1024 Jan 3 1994 bin drwxr-xr-x 2 root wheel 1024 Jan 3 1994 etc d-wxrwxr-x 2 ftp wheel 1024 Sep 5 13:43 incoming drwxr-xr-x 2 root wheel 1024 Nov 17 1993 lib drwxr-xr-x 6 1094 wheel 1024 Sep 13 19:07 pub drwxr-xr-x 3 root wheel 1024 Jan 3 1994 usr -rw-r--r-- 1 root root 312 Aug 1 1994 welcome.msg '226 Transfer complete.' >>> ftp.quit() '221 Goodbye.' >>> A nice test that reveals some of the network dialogue would be: python ftplib.py -d localhost -l -p -l N(sgetfqdntFTPtNetrciitErrorcBstZRS(N(t__name__t __module__(((t/usr/lib/python2.4/ftplib.pyR:st error_replycBstZRS(N(RR(((RR;st error_tempcBstZRS(N(RR(((RR<st error_permcBstZRS(N(RR(((RR=st error_protocBstZRS(N(RR(((RR >ss cBstZdZdZdZeZeZeZ eZ dZ dddddZ dddZ dZdZeZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZedZ edZ!ddddZ"dedZ#edZ$ddZ%dZ&dZ'd Z(d!Z)d"Z*d#Z+d$Z,d%Z-d&Z.d'Z/d(Z0d)Z1d*Z2RS(+scAn FTP client class. To create a connection, call the class using these argument: host, user, passwd, acct These are all strings, and have default value ''. Then use self.connect() with optional host and port argument. To download a file, use ftp.retrlines('RETR ' + filename), or ftp.retrbinary() with slightly different arguments. To upload a file, use ftp.storlines() or ftp.storbinary(), which have an open file as argument (see their definitions below for details). The download/upload functions first issue appropriate TYPE and PORT or PASV commands. iticCs:|o/|i||o|i|||q6ndS(N(thosttselftconnecttusertlogintpasswdtacct(R R RRR((Rt__init__is c Cs,|o ||_n|o ||_nd}xti|i|idtiD]}|\}}}}} y,ti||||_ |i i| Wn?tij o0}|i o|i ind|_ qPnXPqPW|i pti|n||_|i id|_|i|_|iS(sConnect to host. Arguments are: - host: hostname to connect to (string, default previous host) - port: port to connect to (integer, default previous port)s!getaddrinfo returns an empty listitrbN(R R tporttmsgtsockett getaddrinfot SOCK_STREAMtrestaftsocktypetprotot canonnametsatsockR terrortclosetNonetmakefiletfiletgetresptwelcome( R R RRRRRRRR((RR ns0  "    cCs*|iodG|i|iGHn|iS(s`Get the welcome message from the server. (this is read and squirreled away by connect())s *welcome*N(R t debuggingtsanitizeR&(R ((Rt getwelcomes cCs ||_dS(sSet the debugging level. The required argument level means: 0: no debugging output (default) 1: print commands and responses but not body text etc. 2: also print raw lines read and sent before stripping CR/LFN(tlevelR R'(R R*((Rtset_debuglevelscCs ||_dS(sUse passive or active mode for data transfers. With a false argument, use the normal PORT mode, With a true argument, use the PASV command.N(tvalR t passiveserver(R R,((Rtset_pasvscCs|d djp|d djobt|}x1|djo#||ddjo|d}q1W|d d|d||}nt|S(Nispass sPASS is t*(tstlentitrepr(R R0R2((RR(s" ""cCsD|t}|idjodG|i|GHn|ii|dS(Nis*put*(tlinetCRLFR R'R(Rtsendall(R R4((Rtputlines cCs1|iodG|i|GHn|i|dS(Ns*cmd*(R R'R(R4R7(R R4((Rtputcmds cCs|ii}|idjodG|i|GHn|p tn|dtjo|d }n |dtjo|d }n|S(Nis*get*ii(R R$treadlineR4R'R(tEOFErrorR5(R R4((Rtgetlines cCs~|i}|dd!djoZ|d }xM|i}|d|}|d |jo|dd!djoPq-q-Wn|S(Niit-is (R R;R4tcodetnextline(R R>R=R4((Rt getmultilines   %cCs|i}|iodG|i|GHn|d |_|d }|d jo|Sn|djo t|n|djo t|nt |dS( Ns*resp*iit1t2t3t4t5(R@RARB( R R?trespR'R(tlastresptcRRR (R RGRE((RR%s         cCs.|i}|ddjo t|n|S(s%Expect a response beginning with '2'.iRAN(R R%RER(R RE((Rtvoidresps   cCsqdt}|idjodG|i|GHn|ii|t|i}|d djo t |ndS( sAbort a file transfer. Uses out-of-band data. This does not follow the procedure from the RFC to send Telnet IP and Synch; that doesn't seem to work with the servers I've tried. Instead, just send the ABOR command as OOB data.tABORis *put urgent*it426t226N(RJRK( R5R4R R'R(RR6tMSG_OOBR?RER (R R4RE((Rtaborts  cCs|i||iS(s'Send a command and return the response.N(R R8tcmdR%(R RN((Rtsendcmds cCs|i||iS(s8Send a command and expect a response beginning with '2'.N(R R8RNRH(R RN((Rtvoidcmds cCsY|id}t|dt|dg}||}ddi|}|i |S(sUSend a PORT command with the current host and the given port number. t.isPORT t,N( R tsplitthbytesR3RtpbytestbytestjoinRNR RP(R R RRNRVRTRU((Rtsendports   cCsd}|itijo d}n|itijo d}n|djo tdndt||t|dg}ddi |}|i |S( sDSend a EPRT command with the current host and the given port number.iiisunsupported address familyR sEPRT t|N( RR RtAF_INETtAF_INET6R R3R RtfieldsRWRNRP(R R RRR\RN((Rtsendeprts    !c Cs9d} d}xtidd|itidtiD]{}|\}}}}} y&ti|||}|i| Wn6tij o'} |o|ind}q4nXPq4W|pti| n|id|id} |iid}|itijo|i|| }n|i|| }|S(s3Create a new socket and send a PORT command for it.s!getaddrinfo returns an empty listiiN(RR"RRRR RRt AI_PASSIVERRRRRtbindR R!tlistent getsocknameRR RZRXRER]( R RRRRRERR RRRR((Rtmakeports0( cCsc|itijot|id\}}n(t|id|i i \}}||fS(NtPASVtEPSV( R RRRZtparse227ROR Rtparse229Rt getpeername(R R R((Rtmakepasv)s'cCs]d}|io|i\} } ti| | dti d\}} }}} ti|| |} | i| |dj o|id|n|i|}|ddjo t|q2nn|i}|dj o|id|n|i|}|ddjo t|n|i\} }|d djot|}n| |fS(sInitiate a transfer over the data connection. If the transfer is active, send a port command and the transfer command, and accept the connection. If the server is passive, send a pasv command, connect to it, and start the transfer command. Either way, return the socket for the connection and the expected size of the transfer. The expected size may be None if it could not be determined. Optional `rest' argument can be a string that is sent as the argument to a RESTART command. This is essentially a server marker used to tell the server to skip over any data up to the given marker. isREST %sR@it150N(R"tsizeR R-RhR RRRRRRRtcanonRtconnR trestRORNRERRbRtaccepttsockaddrtparse150(R RNRmRoRRRRkRER RRRRlRj((Rt ntransfercmd0s, .     cCs|i||dS(s0Like ntransfercmd() but returns only the socket.iN(R RqRNRm(R RNRm((Rt transfercmdWscCs|p d}n|p d}n|p d}n|djo|d jo|d}n|id|}|ddjo|id|}n|ddjo|id |}n|dd jo t|n|S( sLogin, default anonymous.t anonymousR R<s anonymous@sUSER iRBsPASS sACCT RAN(R R<(RRRR RORER(R RRRRE((RR[s"    i cCs`|id|i||}x*|i|}|pPn||q"W|i |i S(sURetrieve data in binary mode. `cmd' is a RETR command. `callback' is a callback function is called for each block. No more than `blocksize' number of bytes will be read from the socket. Optional `rest' is passed to transfercmd(). A new port is created for you. Return the response code. sTYPE IiN( R RPRrRNRmRltrecvt blocksizetdatatcallbackR!RH(R RNRwRuRmRvRl((Rt retrbinaryps   cCs|d jo t}n|id}|i|}|i d}x|i }|i djodGt|GHn|pPn|dtjo|d }n |ddjo|d }n||qGW|i|i|iS( sRetrieve data in line mode. The argument is a RETR or LIST command. The callback function (2nd argument) is called for each line, with trailing CRLF stripped. This creates a new port for you. print_line() is the default callback.sTYPE ARiis*retr*iis N(RwR"t print_lineR RORERrRNRlR#tfpR9R4R'R3R5R!RH(R RNRwRzR4RERl((Rt retrliness*    cCs`|id|i|}x-|i|}|pPn|i |qW|i |i S(sStore a file in binary mode.sTYPE IiN( R RPRrRNRlRztreadRutbufR6R!RH(R RNRzRuR}Rl((Rt storbinarys  cCs|id|i|}xh|i}|pPn|dtjo-|dtjo|d }n|t}n|i |qW|i |i S(sStore a file in line mode.sTYPE AiiiN( R RPRrRNRlRzR9R}R5R6R!RH(R RNRzR}Rl((Rt storliness   cCsd|}|i|S(sSend new account name.sACCT N(tpasswordRNR RP(R RRN((RRs cGsBd}x|D]}|d|}q Wg}|i||i|S(sBReturn a list of files in a given directory (default the current).tNLSTt N(RNtargstargtfilesR R{tappend(R RRNRR((RtnlstscGsd}d}|do6t|dtdjo|d |d}}nx'|D]}|o|d|}qTqTW|i||dS(sList a directory in long form. By default list current directory to stdout. Optional last argument is callback function; all non-empty arguments before it are concatenated to the LIST command. (This *should* only be used for a pathname.)tLISTiR RN(RNR"tfuncRttypeRR R{(R RRNRR((Rtdirs(cCsB|id|}|ddjo t|n|id|S(sRename a file.sRNFR iRBsRNTO N(R ROtfromnameRERRPttoname(R RRRE((Rtrenames  cCsW|id|}|d djo|Sn(|d djo t|n t|dS( sDelete a file.sDELE it250t200iRDN(RR(R ROtfilenameRERR(R RRE((Rtdeletes cCs|djoLy|idSWqptj o(}|idd djoqUqpXn|djo d}nd|}|i|S( sChange to a directory.s..tCDUPiit500R RQsCWD N(tdirnameR RPRRRRN(R RRRN((Rtcwds    cCsp|id|}|d djoH|di}yt|SWqlttfj ot |SqlXndS(sRetrieve the size of a file.sSIZE it213N( R RORREtstripR0tintt OverflowErrort ValueErrortlong(R RRER0((RRjscCs|id|}t|S(s+Make a directory, return its full pathname.sMKD N(R RORREtparse257(R RRE((RtmkdscCs|id|S(sRemove a directory.sRMD N(R RPR(R R((RtrmdscCs|id}t|S(s!Return current working directory.tPWDN(R RORER(R RE((RtpwdscCs|id}|i|S(sQuit, and close the connection.tQUITN(R RPRER!(R RE((Rtquit s cCs<|io.|ii|iid|_|_ndS(s8Close the connection without assuming anything about it.N(R R$R!RR"(R ((RR!s    (3RRt__doc__R'R tFTP_PORTRR"RR$R&R-RR R)R+tdebugR.R(R7R8R;R?R%RHRMRORPRXR]RbRhRqRrRRxR{R~RRRRRRRRjRRRRR!(((RRKs^             '          cCs|d djo t|ntdjo"dk}|id|ianti|}|pdSn|i d}yt |SWn#t t fj ot|SnXdS(sParse the '150' response for a RETR request. Returns the expected transfer size or None; size is not guaranteed to be present in the 150 message. iRiNs150 .* \((\d+) bytes\)i(RERt_150_reR"tretcompilet IGNORECASEtmatchtmtgroupR0RRRR(RERR0R((RRps   cCs|d djo t|ntdjodk}|idanti|}|p t|n|i }di |d }t |dd>t |d}||fS( sParse the '227' response for a PASV request. Raises error_proto if it does not contain '(h1,h2,h3,h4,p1,p2)' Return ('host.addr.as.numbers', port#) tuple.it227Ns#(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)RQiii(RERt_227_reR"RRtsearchRR tgroupstnumbersRWR RR(RERRR RR((RRe0s     "cCs|d djo t|n|id}|djo t|n|id|d}|djo t|n||d||djo t|n||d|!i||d}t|djo t|n|d}t |d}||fS( sParse the '229' response for a EPSV request. Raises error_proto if it does not contain '(|||port|)' Return ('host.addr.as.numbers', port#) tuple.it229t(it)iiN( RERtfindtleftR trightRStpartsR1tpeerR RR(RERRR RRR((RRfDs"     "  cCs|d djo t|n|dd!djodSnd}d}t|}xn||jo`||}|d}|djo1||jp||djoPn|d}n||}qUW|S( sParse the '257' response for a MKD or PWD request. This is a response to a MKD or PWD request: a directory name. Returns the directoryname in the 257 reply.it257is "R it"N(RERRR2R1tnRG(RERGR2RR((RRZs$      cCs |GHdS(s+Default retrlines callback to print a line.N(R4(R4((RRyqsR tIc Cs|p |}nd|}|i||i|t|id\}}|i |||id|}|d d jo t n|id|}|d d jo t n|i|idS( s+Copy file from one FTP-instance to another.sTYPE RcsSTOR it125RisRETR N(Rs150(Rs150(t targetnamet sourcenameRtsourceRPttargetReROt sourcehostt sourceportRXttreplyR tsreplyRH( RRRRRRRRR((Rtftpcpvs        cBsPtZdZeZeZeZedZdZdZ dZ dZ RS(sClass to parse & provide access to 'netrc' format files. See the netrc(4) man page for information on the file format. WARNING: This class is obsolete -- use module netrc instead. cCs|djo=dtijo tiitidd}qJtdnh|_h|_ t |d} d}x| i }|pPn|o!|io|i|qtn%|ot||i | Wtidd djotidd} tid=ntid}t |}|i |d}}} yt| }Wn4tj o(| dj otiidq_nDXy|i|\}}} Wn#tj otiidnX|i||| xtidD]}|d d jo|i|dq|d djo:d }|do|d |d}n|i|}q|d jo|i|i q|id |ti idqW|i!dS(sTest program. Usage: ftp [-d] [-r[file]] host [-l[dir]] [-d[dir]] [-p] [file] ... -d dir -l list -p password iiis-ds-rR s5Could not open account file -- using anonymous login.s$No account -- using anonymous login.s-ltCWDRs-psRETR iN("R1tsystargvttestRtexitR'R"trcfileR RtftpR+tuseridRRRtnetrcRtstderrtwriteRtKeyErrorRR$RRNRORER.R-RxtstdoutR( R'RRRNRRR RER$RR((RRsR        t__main__("RRRtSOCKSRtgetfqdnt ImportErrort__all__RLRt ExceptionRRRRR R RR:t all_errorsR5RR"RRpRReRfRRyRRRR(RRRRRpRRRRReRRRRRfRR5RRyRLRR RR((Rt?s>        k 7 c@sdZddddgZdkZdefdYZeZgdZgdZd Zd Z d Z d Z e d jo+dk Z ee iddddgGHndS(sParser for command line options. This module helps scripts to parse the command line arguments in sys.argv. It supports the same conventions as the Unix getopt() function (including the special meanings of arguments of the form `-' and `--'). Long options similar to those supported by GNU software may be used as well via an optional third argument. This module provides two functions and an exception: getopt() -- Parse command line options gnu_getopt() -- Like getopt(), but allow option and non-option arguments to be intermixed. GetoptError -- exception (class) raised with 'opt' attribute, which is the option involved with the exception. t GetoptErrorterrortgetoptt gnu_getoptNcBs)tZdZdZddZdZRS(NtcCs)||_||_ti|||dS(N(tmsgtselftoptt Exceptiont__init__(RRR((t/usr/lib/python2.4/getopt.pyR *s  cCs|iS(N(RR(R((R t__str__/s(t__name__t __module__RRR R (((R R's cCsg}t|tdjo |g}n t|}x|o|dido|ddjo|ddjo|d}Pn|dido+t||dd||d\}}q;t||dd||d\}}q;W||fS(s@getopt(args, options[, long_options]) -> opts, args Parses command line options and parameter list. args is the argument list to be parsed, without the leading reference to the running program. Typically, this means "sys.argv[1:]". shortopts is the string of option letters that the script wants to recognize, with options that require an argument followed by a colon (i.e., the same format that Unix getopt() uses). If specified, longopts is a list of strings with the names of the long options which should be supported. The leading '--' characters should not be included in the option name. Options which require an argument should be followed by an equal sign ('='). The return value consists of two elements: the first is a list of (option, value) pairs; the second is the list of program arguments left after the option list was stripped (this is a trailing slice of the first argument). Each option-and-value pair returned has the option as its first element, prefixed with a hyphen (e.g., '-x'), and the option argument as its second element, or an empty string if the option has no argument. The options occur in the list in the same order in which they were found, thus allowing multiple occurrences. Long and short options may be mixed. Rit-s--iiN( toptsttypetlongoptstlisttargst startswithtdo_longst do_shortst shortopts(RRRR((R R4s  , +,cCsjg}g}t|to |g}n t|}|ido|d}t}n$t i i do t}nt }x|o|ddjo||d7}Pn|dd djo+t||dd||d\}}q|dd djo+t||dd||d\}}q|o||7}Pq|i|d|d}qW||fS( sgetopt(args, options[, long_options]) -> opts, args This function works like getopt(), except that GNU style scanning mode is used by default. This means that option and non-option arguments may be intermixed. The getopt() function stops processing options as soon as a non-option argument is encountered. If the first character of the option string is `+', or if the environment variable POSIXLY_CORRECT is set, then option processing stops as soon as a non-option argument is encountered. t+itPOSIXLY_CORRECTis--iRN(Rt prog_argst isinstanceRtstrRRRtTruetall_options_firsttostenvirontgettFalseRRRtappend(RRRRRR((R R_s6      ++ cCsy|id}Wntj o d}nX|| ||d}}t||\}}|oH|djo7|pt d||n|d|d}}qn|ot d||n|i d||pdf||fS(Nt=isoption --%s requires argumentis%option --%s must not have an arguments--R( Rtindextit ValueErrortNonetoptargt long_has_argsRthas_argRRRR#(RRRRR&R+R)((R Rs  cCs g}|D]!}|i|o ||q q ~}|ptd||n||jot|fSn |d|jot|fSnt |djotd||nt |djpt |d}|i d}|o|d }n||fS(Nsoption --%s not recognizedR$isoption --%s not a unique prefixii(t_[1]RtoRRt possibilitiesRR"RtlentAssertionErrort unique_matchtendswithR+(RRR,R-R.R+R1((R R*s5  cCsx|djo|d|d}}t||oU|djo7|ptd||n|d|d}}n|d}}nd}|id||fqW||fS(NRiisoption -%s requires argumentR( t optstringRt short_has_argRRRR)RR#(RR3RRRR)((R Rs    cCsnxTtt|D]@}|||jo djno|id|dSqqWtd||dS(Nt:isoption -%s not recognized(trangeR/RR&RRR(RRR&((R R4s "t__main__isa:bsalpha=tbeta(t__doc__t__all__RRRRRRRR*RR4R tsystargv( R4R:RRR*R;RRRRR((R t?s   + 2      c@sdZdkZddgZddZddZddZdd Zd ZydkZei ei fWnue e fj ocy dk Z WnFe j o:yd klZWne j o eZqXeZqXeZnXeZdS( s)Utilities to get a password and/or the current user name. getpass(prompt) - prompt for a password, with echo turned off getuser() - get the user name from the environment or password database On Windows, the msvcrt module will be used. On the Mac EasyDialogs.AskPassword is used, if available. Ntgetpasstgetusers Password: cCsytii}Wnt|SnXti|}|}|dti @|d1s( RRR tlistdirtnamesterrortpatterntfiltertfnmatch(RRR((RR *s  s[*?[]cCsti|dj S(N(t magic_checktsearchtstNone(R((RR7s( t__doc__RRtret__all__RR tcompileRR(R"RRRR!RRR ((Rt?s     ! c@s`dZddgZdZdZdZdZdZdZd Zd Z d Z d Z d Z dZ dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZeZha dZ!dZ"d Z#d!d"Z$d!d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-e.d,jo e-nd-S(.s!Gopher protocol client interface.t send_selectort send_querys1/sgopher.micro.umn.eduiFt0t1t2t3t4t5t6t7t8t9t+tstetcthtTtMtItwtqtgt:t;tx;tD]/}|d djo|dtt|((R t get_directory`s<     cCsg}t||i|S(s@Get a text file as a list of lines, with trailing CRLF stripped.N(tlinestget_alt_textfileR<RC(R<RF((R t get_textfilescCsx|i}|p dGHPn|dtjo|d }n |dtjo|d }n|djoPn|d djo|d}n||qWdS( sNGet a text file and pass each line to a function, with trailing CRLF stripped.is(Unexpected EOF from server)iiR9is..N(R<R=R>R1tfunc(R<RIR>((R RGs   cCs|i}|S(s*Get a binary file as one solid data block.N(R<treadtdata(R<RK((R t get_binarys cCs1x*|i|}|pPn||qWdS(s4Get a binary file and pass each block to a function.iN(R<RJt blocksizeRKRI(R<RIRMRK((R tget_alt_binarysc Csdk}dk}|i|idd\} }t}|d}t}|o|d}|d}n|o|d}|d}t |djo|d|}}n&d}|o|d}|d}nd}|o|d}|d}qn|t jot |||} nt||} |tjo&t| } x| D] } | GHqIWnk|tt fjo&t| }xH|D] } | GHqWn2t| }dGt |GdGt|d d GHdS( sTrivial test program.NiR"is binary data:sbytes:idi((tsystgetopttargvtoptstargst DEF_SELECTORR0R+tDEF_HOSTR&RBR4tA_INDEXRR<RtA_TEXTRHRFtitemtA_MENURER;RLRKtrepr( R;R4RPR+RSR0ROR&RKR<RFRXRR((R ttestsL               t__main__N(/t__doc__t__all__RTRUR*RWRYtA_CSOtA_ERRORt A_MACBINHEXt A_PCBINHEXt A_UUENCODEDRVtA_TELNETtA_BINARYt A_DUPLICATEtA_SOUNDtA_EVENTt A_CALENDARtA_HTMLtA_TN3270tA_MIMEtA_IMAGEtA_WHOIStA_QUERYtA_GIFtA_WWWt A_PLUS_IMAGEt A_PLUS_MOVIEt A_PLUS_SOUNDtdirRRR!R1R@RRR7R8RERHRGRLRNR[t__name__(+R`R_RrRpRRnRURcRsR^RNRRkRjRaRER!R@R[RmRHRhRoRqRGRRtR1RWR*RgRbR8RlRTRiR7RVRdRLReRfRY((R t?s^           ( c@sdZdkZdkZdkZdkZdkZddgZdddddf\ZZZ Z Z ddf\Z Z d Zd Zd Zd Zd ZdddZdfdYZdZedjo endS(sFunctions that read and write gzipped files. The user of the file doesn't have to worry about the compression, but random access is not allowed.NtGzipFiletopeniiiiicCs#|djo|dd>7}n|S(sReturn i as an unsigned integer, assuming it fits in 32 bits. If it's >= 2GB when viewed as a 32-bit unsigned int, return a long. ili N(ti(R((t/usr/lib/python2.4/gzip.pytU32s cCs|d@S(s>Return the low-order 32 bits of an int, as a non-negative int.lN(R(R((RtLOWU32scCs|itid|dS(Ns(treprRRtsthextid(RR5((Rt__repr__scCsY|ddjo|d}n||_tid|_d|_g|_d|_dS(Nis.gzRi(RRR(tcrc32tcrctsizetwritebuftbufsize(RR((RR's   cCs|iid|iid|id }d}|o t}n|iit|t|it t i |iid|iid|o|ii|dndS(Nssiisst( RRRRtfnametflagstFNAMEtchrR tlongttime(RR?R@((RR0s  cCstid|_d|_dS(NRi(R(R9RR:R;(R((Rt _init_readscCs|iid}|djo tdnt|iid}|djo tdnt|iid}|iid|t@oLt|iid}|dt|iid}|ii|n|t @o?x<t o0|iid}| p |d joPqqWn|t @o?x<t o0|iid}| p |d joPq5q5Wn|t@o|iidndS( NissNot a gzipped fileiisUnknown compression methodiiR>(RRRtmagicR.tordtmethodtflagtFEXTRAtxlenRAR"R5tFCOMMENTtFHCRC(RRFR5RKRIRH((Rt_read_gzip_headers4         cCs|itjodk}t|idn|idjo tdnt |djoc|i t ||_ t i ||i|_|ii|ii||it |7_ndS(Ns$write() on read-only GzipFile objects!write() on closed GzipFile objecti(RRR&terrnoR.tEBADFRRt ValueErrortlentdataR;R(R9R:RR-R/(RRSRO((RRs  icCsu|itjodk}t|idn|idjo|idjodSnd}|djoYy6x/t o'|i |t |i|d}qpWWq5tj o|i}q5Xnsy?x8||ijo'|i |t |i|d}qWWn0tj o$||ijo |i}q5nX|i| }|i||_|i||_|i|7_|S(Ns$read() on write-only GzipFile objectiRii(RRR!ROR.RPR%RRtreadsizeR;R"t_readtmintmax_read_chunktEOFErrorR$tchunkR/(RR;RORTRY((RRs6      cCs?||i|_t||i|_|it|8_dS(N(tbufRR$RRR%R/(RRZ((Rt_unreadscCsv|idjo tdn|io|ii}|iidd||iijo tdn|ii||i|i t i t i |_ t|_n|ii|}|djo3|i i}|i|i|tdn|i i |}|i||i idjo;|iit|i i dd|it|_ndS(Ns Reached EOFiiRii(RRRRXR#ttelltpostseekRERNR(t decompressobjR+t decompresstFalseRR;RZtflusht uncompresst _read_eoft_add_read_datat unused_dataRRR"(RR;RcR]RZ((RRUs0           $ cCsXti||i|_|i||_|it||_|it||_dS(N( R(R9RSRR:R$R%RRR;(RRS((RRe%scCs|iiddt|i}tt|i}t|t|ijo tdn$|t |i jo tdndS(NiisCRC check faileds!Incorrect length of data produced( RRR^RR9RtisizeR:R.RR;(RR9Rg((RRd+s cCs|itjoR|ii|iit|i|it |it |i d|_n|it jo d|_n|io|iid|_ndS(N(RRR&RRR-RbR R:R RR;RR!Rtclose(R((RRh9s    cCsTy,|idjo|idjodSnWntj o dSnX|idS(N(RRRRtAttributeErrorRh(R((Rt__del__Fs    cCs|iidS(N(RRRb(R((RRbOscCs |iiS(sInvoke the underlying file object's fileno() method. This will raise AttributeError if the underlying file object doesn't support fileno(). N(RRtfileno(R((RRkRscCstS(N(Ra(R((RtisattyZscCs|iS(N(RR/(R((RR\]scCsX|itjotdn|iidt|_d|_d|_ d|_ dS(s[Return the uncompressed stream file position indicator to the beginning of the filesCan't rewind in write modeiRN( RRR!R.RR^R"R#R$R%R/(R((Rtrewind`s   cCs|itjor||ijotdn||i}x)t|dD]}|iddqNW|i|ddny|it joh||ijo|i n||i}x%t|dD]}|i dqW|i |dndS(NsNegative seek in write modeiR>( RRR&R/R.tcounttrangeRRR!RmR(RR/RnR((RR^ks   cCs]|djo ti}ng}td|}x'to|djodi|Sn|i |}|i d}|dj oM|djo!t||jo|d}q||jo|d}qn|djp |djo;|i||d |i||ddi|Sn|i||t|}t||d}q2WdS(NiidRs iii(R;tsystmaxinttbufsRVRTR"tjoinRRtctfindRRRRtappendR[(RR;RtRRTRr((Rtreadline|s,      icCst|djo ti}ng}xM|djo?|i}|djoPn|i||t|}q#W|S(NiR( tsizehintRpRqtLRRwtlineRvRR(RRxRyRz((Rt readliness      cCs"x|D]}|i|qWdS(N(RyRzRR(RRyRz((Rt writelinesscCs|S(N(R(R((Rt__iter__scCs%|i}|o|SntdS(N(RRwRzt StopIteration(RRz((Rtnexts (t__name__t __module__t__doc__RRRWR1R8R'R0RERNRRR[RUReRdRhRjRbRkRlR\RmR^RwR{R|R}R(((RR3s8 D    "  2           cCstid}|o|ddj}|o|d}n|p dg}nxm|D]e}|o|djo+tddddd ti}ti}qF|d d jod Gt |GHqTnt |d}t i |d d }n^|djo+ti}tdddd d ti}n&t i |d}t |d d }x4t o,|id}|pPn|i|qIW|tij o|in|tij o|iqTqTWdS(Niis-dt-RRRRRis.gzsfilename doesn't end in .gz:twbi(RptargvtargsR`targRtstdintftstdouttgR4RRR"RRYRRh(RRRYRR`R((Rt_tests@      "t__main__(RRRpRDR(Rt__all__tFTEXTRMRJRARLR!R&RRR R RRRRR(RAR!RRRRRMRR RRR RR&RJRLRpR(RRDR((Rt?s"   $      & c@sT dZhdd<dd<dd<dd<d d <d d <d d<dd<dd<dd<dd<dd<dd<dd<dd<dd <d!d"<d#d$<d%d&<d'd(<d)d*<d+d,<d-d.<d/d0<d1d2<d3d4<d5d6<d7d8<d9d:<d;d<<d=d><d?d@<dAdB<dCdD<dEdF<dGdH<dIdJ<dKdL<dMdN<dOdP<dQdR<dSdT<dUdV<dWdX<dYdZ<d[d\<d]d^<d_d`<dadb<dcdd<dedf<dgdh<didj<dkdl<dmdn<dodp<dqdr<dsdt<dudv<dwdx<dydz<d{d|<d}d~<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d d <d d <d d<dd<dd<dd<dd<dd<dd<dd<dd<dd <d!d"<d#d$<d%d&<d'd(<d)d*<d+d,<d-d.<d/d0<d1d2<d3d4<d5d6<d7d8<d9d:<d;d<<d=d><d?d@<dAdB<dCdD<dEdF<dGdH<dIdJ<dKdL<dMdN<dOdP<dQdR<dSdT<dUdV<dWdX<dYdZ<d[d\<d]d^<d_d`<dadb<dcdd<dedf<dgdh<didj<dkdl<dmdn<dodp<dqdr<dsdt<dudv<dwdx<dydz<d{d|<d}d~<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<ddthArri!tharri!theartsie&thellipi& tiacuteiticircitiexclitigraveitimagei!tinfini"tinti+"tiotaitiquestitisini"tiumlitkappaitlArri!tlambdaitlangi)#tlaquoitlarri!tlceili#tldquoi tleid"tlfloori #tlowasti"tlozi%tlrmi tlsaquoi9 tlsquoi tlti<tmacritmdashi tmicroitmiddotitminusi"tmuitnablai"tnbspitndashi tnei`"tnii "tnotitnotini "tnsubi"tntildeitnuitoacuteitocircitoeligiStograveitolinei> tomegaitomicronitoplusi"tori("tordfitordmitoslashitotildeitotimesi"toumlitparaitparti"tpermili0 tperpi"tphiitpiitpivitplusmnitpounditprimei2 tprodi"tpropi"tpsiitquoti"trArri!tradici"trangi*#traquoitrarri!trceili #trdquoi treali!tregitrfloori #trhoitrlmi trsaquoi: trsquoi tsbquoi tscaroniatsdoti"tsectitshyitsigmaitsigmafitsimi<"tspadesi`&tsubi"tsubei"tsumi"tsupi"tsup1itsup2itsup3itsupei"tszligittauitthere4i4"tthetaitthetasymitthinspi tthornittildeittimesittradei"!tuArri!tuacuteituarri!tucircitugraveitumlitupsihitupsilonituumlitweierpi!txiityacuteityenityumlitzetaitzwji tzwnji s&#%d;N(t__doc__tname2codepointtcodepoint2namet entitydefst iteritemstnamet codepointtchr(RRRRR((t$/usr/lib/python2.4/htmlentitydefs.pyt?s&   c@sdZdkZdklZddgZdeifdYZdeifdYZe dZ e djo e ndS( svHTML 2.0 parser. See the HTML 2.0 specification: http://www.w3.org/hypertext/WWW/MarkUp/html-spec/html-spec_toc.html N(sAS_ISt HTMLParsertHTMLParseErrorcBstZdZRS(s3Error raised when an HTML document can't be parsed.(t__name__t __module__t__doc__(((t/usr/lib/python2.4/htmllib.pyRs cBs0tZdZdklZddZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>dd=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[RS(ZsThis is the basic HTML parser class. It supports all entity names required by the XHTML 1.0 Recommendation. It also defines handlers for all HTML 2.0 and many HTML 3.0 and 3.2 elements. (s entitydefsicCs tii||||_dS(sCreates an instance of the HTMLParser class. The formatter parameter is the formatter instance associated with the parser. N(tsgmllibt SGMLParsert__init__tselftverboset formatter(R R R ((RRscCst|dS(N(Rtmessage(R R ((Rterror'scCs\tii|d|_d|_d|_d|_d|_ g|_ d|_ g|_ dS(Ni( RRtresetR tNonetsavedatatisindexttitletbasetanchort anchorlisttnofillt list_stack(R ((RR*s       cCsV|idj o|i||_n/|io|ii|n|ii|dS(N(R RRtdataRR tadd_literal_datatadd_flowing_data(R R((Rt handle_data:s  cCs d|_dS(sBegins saving character data in a buffer instead of sending it to the formatter object. Retrieve the stored data via the save_end() method. Use of the save_bgn() / save_end() pair may not be nested. tN(R R(R ((Rtsave_bgnEscCs9|i}d|_|ipdi|i}n|S(sHEnds buffering character data and returns all data saved since the preceding call to the save_bgn() method. If the nofill flag is false, whitespace is collapsed to single spaces. A call to this method without a preceding call to the save_bgn() method will raise a TypeError exception. t N(R RRRRtjointsplit(R R((Rtsave_endOs    cCs+||_|io|ii|ndS(s}This method is called at the start of an anchor region. The arguments correspond to the attributes of the tag with the same names. The default implementation maintains a list of hyperlinks (defined by the HREF attribute for tags) within the document. The list of hyperlinks is available as the data attribute anchorlist. N(threfR RRtappend(R R"tnamettype((Rt anchor_bgn`s   cCs5|io'|idt|id|_ndS(sThis method is called at the end of an anchor region. The default implementation adds a textual footnote marker using an index into the list of hyperlinks created by the anchor_bgn()method. s[%d]N(R RRtlenRR(R ((Rt anchor_endns cGs|i|dS(sThis method is called to handle images. The default implementation simply passes the alt value to the handle_data() method. N(R Rtalt(R tsrcR)targs((Rt handle_image{scCsdS(N((R tattrs((Rt start_htmlscCsdS(N((R ((Rtend_htmlscCsdS(N((R R-((Rt start_headscCsdS(N((R ((Rtend_headscCsdS(N((R R-((Rt start_bodyscCsdS(N((R ((Rtend_bodyscCs|idS(N(R R(R R-((Rt start_titlescCs|i|_dS(N(R R!R(R ((Rt end_titlescCs5x.|D]&\}}|djo ||_qqWdS(NR"(R-tatvR R(R R-R6R7((Rtdo_bases  cCs d|_dS(Ni(R R(R R-((Rt do_isindexscCsdS(N((R R-((Rtdo_linkscCsdS(N((R R-((Rtdo_metascCsdS(N((R R-((Rt do_nextidscCs$|iid|iiddS(Nith1i(R=iii(R R t end_paragrapht push_font(R R-((Rtstart_h1scCs!|iid|iidS(Ni(R R R>tpop_font(R ((Rtend_h1scCs$|iid|iiddS(Nith2i(RCiii(R R R>R?(R R-((Rtstart_h2scCs!|iid|iidS(Ni(R R R>RA(R ((Rtend_h2scCs$|iid|iiddS(Nith3i(RFiii(R R R>R?(R R-((Rtstart_h3scCs!|iid|iidS(Ni(R R R>RA(R ((Rtend_h3scCs$|iid|iiddS(Nith4i(RIiii(R R R>R?(R R-((Rtstart_h4scCs!|iid|iidS(Ni(R R R>RA(R ((Rtend_h4scCs$|iid|iiddS(Nith5i(RLiii(R R R>R?(R R-((Rtstart_h5scCs!|iid|iidS(Ni(R R R>RA(R ((Rtend_h5scCs$|iid|iiddS(Nith6i(ROiii(R R R>R?(R R-((Rtstart_h6scCs!|iid|iidS(Ni(R R R>RA(R ((Rtend_h6scCs|iiddS(Ni(R R R>(R R-((Rtdo_pscCs@|iid|iitttdf|id|_dS(Ni(R R R>R?tAS_ISR(R R-((Rt start_prescCs:|iid|iitd|id|_dS(Nii(R R R>RAtmaxR(R ((Rtend_pres cCs|i||iddS(Ntxmp(R RTR-t setliteral(R R-((Rt start_xmps cCs|idS(N(R RV(R ((Rtend_xmpscCs|i||iddS(Ntlisting(R RTR-RX(R R-((Rt start_listings cCs|idS(N(R RV(R ((Rt end_listingscCs0|iid|iitdttfdS(Nii(R R R>R?RS(R R-((Rt start_addressscCs!|iid|iidS(Ni(R R R>RA(R ((Rt end_addressscCs$|iid|iiddS(Nit blockquote(R R R>t push_margin(R R-((Rtstart_blockquotescCs!|iid|iidS(Ni(R R R>t pop_margin(R ((Rtend_blockquotescCsA|ii|i |iid|iidddgdS(Ntult*i(R R R>RRaR#(R R-((Rtstart_ul scCs=|io|id=n|ii|i |iidS(Ni(R RR R>Rc(R ((Rtend_uls cCsm|iid|io0|id\}}}}|d|d<}n d\}}|ii||dS(NiiiiRf(Rfi( R R R>Rtdummytlabeltcounterttoptadd_label_data(R R-RiRlRkRj((Rtdo_lis   cCs|ii|i |iidd}xL|D]D\}}|djo+t |djo|d}n|}q1q1W|ii d|dgdS(Ntols1.R%it.i( R R R>RRaRjR-R6R7R'R#(R R-R6RjR7((Rtstart_ols  cCs=|io|id=n|ii|i |iidS(Ni(R RR R>Rc(R ((Rtend_ol(s cCs|i|dS(N(R RgR-(R R-((Rt start_menu-scCs|idS(N(R Rh(R ((Rtend_menu0scCs|i|dS(N(R RgR-(R R-((Rt start_dir3scCs|idS(N(R Rh(R ((Rtend_dir6scCs-|iid|iidddgdS(NitdlRi(R R R>RR#(R R-((Rtstart_dl9scCs)|id|io|id=ndS(Nii(R tddpopR(R ((Rtend_dl=s  cCs|idS(N(R Ry(R R-((Rtdo_dtAscCs7|i|iid|iidddgdS(NtddRi(R RyR RaRR#(R R-((Rtdo_ddDs cCsU|ii||io7|idddjo|id=|iiqQndS(NiiR|(R R R>tblRRc(R R~((RRyIs   cCs|i|dS(N(R tstart_iR-(R R-((Rt start_citeTscCs|idS(N(R tend_i(R ((Rtend_citeUscCs|i|dS(N(R tstart_ttR-(R R-((Rt start_codeWscCs|idS(N(R tend_tt(R ((Rtend_codeXscCs|i|dS(N(R RR-(R R-((Rtstart_emZscCs|idS(N(R R(R ((Rtend_em[scCs|i|dS(N(R RR-(R R-((Rt start_kbd]scCs|idS(N(R R(R ((Rtend_kbd^scCs|i|dS(N(R RR-(R R-((Rt start_samp`scCs|idS(N(R R(R ((Rtend_sampascCs|i|dS(N(R tstart_bR-(R R-((Rt start_strongcscCs|idS(N(R tend_b(R ((Rt end_strongdscCs|i|dS(N(R RR-(R R-((Rt start_varfscCs|idS(N(R R(R ((Rtend_vargscCs |iitdttfdS(Ni(R R R?RS(R R-((RRkscCs|iidS(N(R R RA(R ((RRmscCs |iittdtfdS(Ni(R R R?RS(R R-((RRpscCs|iidS(N(R R RA(R ((RRrscCs |iitttdfdS(Ni(R R R?RS(R R-((RRuscCs|iidS(N(R R RA(R ((RRwscCsd}d}d}xk|D]c\}}|i}|djo |}n|djo |}n|djo|i}qqW|i |||dS(NRR"R$R%( R"R$R%R-tattrnametvaluetstriptlowerR R&(R R-R$RRR"R%((Rtstart_azs       cCs|idS(N(R R((R ((Rtend_ascCs|iidS(N(R R tadd_line_break(R R-((Rtdo_brscCs|iidS(N(R R t add_hor_rule(R R-((Rtdo_hrsc Cs%d}d}d}d}d}d} x|D]\}}|djo |}n|djo |}n|djo |}n|djo |}n|djo*yt |}Wqt j oqXn|d jo*yt |} Wqt j oqXq+q+W|i |||||| dS( NRs(image)italignR)tismapR*twidththeight( RR)RR*RRR-RRtintt ValueErrorR R,( R R-R*RRRRRR)R((Rtdo_imgs6             cCs|i||idS(N(R RTR-t setnomoretags(R R-((Rt do_plaintexts cCsdS(N((R ttagR-((Rtunknown_starttagscCsdS(N((R R((Rtunknown_endtags(\RRRthtmlentitydefst entitydefsRR RRRR!R&R(R,R.R/R0R1R2R3R4R5R8R9R:R;R<R@RBRDRERGRHRJRKRMRNRPRQRRRTRVRYRZR\R]R^R_RbRdRgRhRnRqRrRsRtRuRvRxRzR{R}RyRRRRRRRRRRRRRRRRRRRRRRRRRRRR(((RRs                                                                                c CsJdk}dk}|p|id}n|o|ddj}|o |d=n|o|d}nd}|djo |i}nFyt|d}Wn/t j o#}|GdG|GH|i dnX|i }||ij o|in|o|i}n|i|i}t|}|i||idS(Niis-ss test.htmlt-trt:(tsysR R+targvtsilenttfiletstdintftopentIOErrortmsgtexittreadRtcloset NullFormattertAbstractFormattert DumbWriterRtptfeed( R+RRRRRRRR ((Rttests2       t__main__( RRR RSt__all__tSGMLParseErrorRRRRRR(RRRRRRS((Rt?s    ' c@sdZdkZdkZdkZdklZydklZWn ej odklZnXdddddd d d d d dddddddgZ dZ dZ dZ dZ dZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(Zd)Zd*Zd+Z d,Z!d-Z"d.Z#d/Z$d0Z%d1Z&d2Z'd3Z(d4Z)d5Z*d6Z+d7Z,d8Z-d9Z.d:Z/d;Z0d<Z1d=Z2d>Z3d?Z4d@Z5dAZ6dBZ7dCZ8dDZ9dEZ:dFZ;dGZ<dHZ=dIZ>dJZ?dKZ@dLZAdMeiBfdNYZCdfdOYZDdfdPYZEdQfdRYZFdSfdTYZGdUeGfdVYZHdWeGfdXYZIdeEfdYYZJdfdZYZKeLed[od\eKfd]YZMndeNfd^YZOd eOfd_YZPdeOfd`YZQd eOfdaYZRd eOfdbYZSd eOfdcYZTd eOfddYZUdeOfdeYZVdeVfdfYZWdeVfdgYZXdeVfdhYZYdeOfdiYZZeOZ[djfdkYZ\dlZ]e^dmjo e]ndS(ns HTTP/1.1 client library HTTPConnection go through a number of "states", which defines when a client may legally make another request or fetch the response for a particular request. This diagram details these state transitions: (null) | | HTTPConnection() v Idle | | putrequest() v Request-started | | ( putheader() )* endheaders() v Request-sent | | response = getresponse() v Unread-response [Response-headers-read] |\____________________ | | | response.read() | putrequest() v v Idle Req-started-unread-response ______/| / | response.read() | | ( putheader() )* endheaders() v v Request-started Req-sent-unread-response | | response.read() v Request-sent This diagram presents the following rules: -- a second request may not be started until {response-headers-read} -- a response [object] cannot be retrieved until {request-sent} -- there is no differentiation between an unread response body and a partially read response body Note: this enforcement is applied by the HTTPConnection class. The HTTPResponse class does not enforce this state machine, which implies sophisticated clients may accelerate the request/response pipeline. Caution should be taken, though: accelerating the states beyond the above pattern may imply knowledge of the server's connection-close behavior for certain requests. For example, it is impossible to tell whether the server will close the connection UNTIL the response headers have been read; this means that further requests cannot be placed into the pipeline until it is known that the server will NOT be closing the connection. Logical State __state __response ------------- ------- ---------- Idle _CS_IDLE None Request-started _CS_REQ_STARTED None Request-sent _CS_REQ_SENT None Unread-response _CS_IDLE Req-started-unread-response _CS_REQ_STARTED Req-sent-unread-response _CS_REQ_SENT N(surlsplit(sStringIOtHTTPt HTTPResponsetHTTPConnectiontHTTPSConnectiont HTTPExceptiont NotConnectedtUnknownProtocoltUnknownTransferEncodingtUnimplementedFileModetIncompleteReadt InvalidURLtImproperConnectionStatetCannotSendRequesttCannotSendHeadertResponseNotReadyt BadStatusLineterroriPitUNKNOWNtIdlesRequest-starteds Request-sentidieifiiiiiiiiii,i-i.i/i0i1i3iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiit HTTPMessagecBs#tZdZdZdZRS(NcCsV|ii|}|djo||i|R@RARB((Rt__init__s          cCsv|ii}|idjodGt|GHn|pt|ny|idd\}}}WnQt j oEy"|idd\}}d}Wqt j o d}qXnX|i dpA|io|it|q t||i|_d Sny:t|}|d jp |d jot|nWnt j ot|nX|||fS( Nisreply:iiR!sHTTP/sHTTP/0.9iidi(sHTTP/0.9iR!(RR,R0R1R@treprRtsplitRRFR&RGt ValueErrorR2RAtclosetLineAndFileWrappertint(RR&RGRFR1((Rt _read_status$s4    cCs|idj odSnxtox|i\}}}|tjoPnxJtoB|i i i }|pPn|i djo dG|GHqLqLWqW||_|i |_|djo d|_nD|ido d|_n'|djo d|_n t||idjo5d|_d|_d |_tt|_dSnt|i d|_|i djo#x |iiD]}dG|GqWnd|i_ |iid }|o)|id jod |_d|_n d|_|i|_|iid }|oA|i o6yt||_Wqftj od|_qfXn d|_|tjp;|tjp.d |jo djnp|i djo d|_n|i o(|i o|idjo d |_ndS(Nisheader:sHTTP/1.0i sHTTP/1.i sHTTP/0.9i istransfer-encodingRHscontent-lengthiditHEAD(!RRDRR.RSRFR&RGtCONTINUER,R0R4tskipR@R2RRJRHRKRtStringIOR$thdrt getheaderttr_enctlowerRIt _check_closeRRROt NO_CONTENTt NOT_MODIFIEDRC(RR&RXRVRJRGRFRZ((RtbeginIsh                 H &cCs|iid}|idjo<|iid}|od|ijotSntSn|iidotSn|od|ijotSn|iid}|od|ijotSntS(Nt connectioni RPs keep-alivesproxy-connection( RRDRYtconnRFR[R.tFalsetpconn(RRaRc((RR\scCs(|io|iid|_ndS(N(RR,RPR(R((RRPs  cCs |idjS(N(RR,R(R((RtisclosedscCs|idjodSn|io|i|Sn|djoP|idjo|ii}n|i |i}d|_|i |Sn|idj o!||ijo |i}qn|ii|}|idj o|it |8_n|S(NR!i( RR,RRHt _read_chunkedtamtRJtreadtst _safe_readRPR8(RRfRh((RRgs$    cCs|itjpt|i}d}x>to6|djo^|ii }|i d}|djo|| }nt |d}|djoPqn|djo||i|7}n||jo(||i|7}|||_|Sn\||jo1||i|7}|idd|_|Sn||i|7}||8}|idd}q)Wx-to%|ii }|djoPqjqjW|i|S(NR!t;iiis (RRHREtAssertionErrorRIRR.RR,R0R1tfindtiRRRfRiRP(RRfRmRIRR1((RResF                 cCswg}xa|djoS|iit|t}|pt|n|i ||t |8}q Wdi |S(sVRead the number of bytes requested, compensating for partial reads. Normally, we have a blocking socket, but a read() can be interrupted by a signal (resulting in a partial read). Note that we cannot distinguish between EOF and an interrupt when zero bytes have been read. IncompleteRead() will be raised in this situation. This function should be used when bytes "should" be present for reading. If the bytes are truly not available (due to EOF), then the IncompleteRead exception can be used to detect the problem. iR!N( RhRfRR,Rgtmint MAXAMOUNTtchunkR R3R8R(RRfRpRh((RRis   cCs0|idjo tn|ii||S(N(RRDRRRYtnametdefault(RRqRr((RRY,s cCs*|idjo tn|iiS(s&Return list of (header, value) tuples.N(RRDRRtitems(R((Rt getheaders1s (R;R<RRLRSR_R\RPRdRgReRiRYRt(((RRs  % P    /  cBstZdZdZeZeZdZdZ dZ dddZ dZ dZdZd Zd Zd Zd Zddd ZdZdZdhdZdZdZRS(Ni sHTTP/1.1iicCs[d|_g|_d|_t|_d|_|i|||dj o ||_ ndS(N( RRR>t_buffert_HTTPConnection__responset_CS_IDLEt_HTTPConnection__stateRCt _set_hostportthosttportRA(RRzR{RA((RRLCs      cCs|djo|id}|id}||joTyt||d}Wn+tj otd||dnX|| }n |i }|o3|ddjo"|ddjo|dd!}qn||_||_dS(Nt:t]isnonnumeric port: '%s'it[i( R{RRztrfindRmtjRRROR Rt default_port(RRzR{RmR((RRyNs   ) cCs ||_dS(N(tlevelRR@(RR((Rtset_debuglevel_scCs&d}xti|i|idtiD]}|\}}}}}yUti||||_ |idjod|i|ifGHn|i i|Wnhtij oY}|idjodG|i|ifGHn|i o|i ind|_ q(nXPq(W|i pti|ndS(s3Connect to the host and port specified in __init__.s!getaddrinfo returns an empty listisconnect: (%s, %s)s connect fail:N(RDtsockett getaddrinfoRRzR{t SOCK_STREAMtrestaftsocktypetprotot canonnametsaR>R@tconnectRRPR(RRRRRRRDR((RRbs*    cCsU|io|iid|_n|io|iid|_nt|_dS(s(Close the connection to the HTTP server.N(RR>RPRRvRwRx(R((RRPxs      cCs|idjo%|io|iq5tn|idjodGt|GHny|ii |Wn:t i j o+}|ddjo|i nnXdS(sSend `str' to the server.issend:i N(RR>Rt auto_openRRR@RMtstrtsendallRRtvRP(RRR((Rtsends  cCs|ii|dS(suAdd a line of output to the current request buffer. Assumes that the line does *not* end with \r\n. N(RRuR3Rh(RRh((Rt_outputscCs:|iiddi|i}|i2|i|dS(spSend the currently buffered request and clear the buffer. Appends an extra \r\n to the buffer. R!s N(R!R!(RRutextendRRDR(RRD((Rt _send_outputs cCsz|io|iio d |_n|itjo t|_n t||_ |p d}nd|||i f}|i ||idjo|pd}|idot|\}}}}}n|o|id|idqW|itjo |id|iidqW|idd|iid|ifn|p|id d qvnd S( s`Send a request to the server. `method' specifies an HTTP request method, e.g. 'GET'. `url' specifies the object being requested, e.g. '/index.html'. `skip_host' if True does not add automatically a 'Host:' header `skip_accept_encoding' if True does not add automatically an 'Accept-Encoding:' header t/s%s %s %si R!thttptHosttidnas%s:%ssAccept-EncodingtidentityN(RRvRdRRxRwt_CS_REQ_STARTEDR RBRCturlt _http_vsn_strRRt _http_vsnt skip_hosttnetlocR2turlsplittnilt putheadertencodeR{t HTTP_PORTRztskip_accept_encoding(RRBRRRRRR((Rt putrequests.       - cCs>|itjo tnd||f}|i|dS(skSend a request header line to the server. For example: h.putheader('Accept', 'text/html') s%s: %sN(RRxRR theaderRRR(RRRR((RR s  cCs4|itjo t|_n t|idS(s?Indicate that the last header line has been sent to the server.N(RRxRt _CS_REQ_SENTR R(R((Rt endheaderss   cCsry|i||||WnQtij oB}|ddjp |i on|i||||nXdS(s&Send a complete request to the server.ii N( Rt _send_requestRBRtbodyR$RRRR(RRBRRR$R((Rtrequest sc Cstig}|D]} || iq~}h}d|jod|dRARCtresponseR_RKRERkRwRP(RR((Rt getresponse@s$       (R;R<RRRRRRRR@RARRLRyRRRPRRRRRRRRR(((RR8s*      b  t SharedSocketcBs,tZdZdZdZdZRS(NcCs||_d|_dS(Ni(R>Rt_refcnt(RR>((RRLs cCs|id7_dS(Ni(RR(R((RtincrefscCsK|id8_|idjpt|idjo|iindS(Nii(RRRkR>RP(R((RtdecrefscCs|iidS(N(RR>RP(R((Rt__del__s(R;R<RLRRR(((RR}s   tSharedSocketClientcBstZdZdZRS(NcCs/d|_||_|ii|i|_dS(Ni(Rt_closedtsharedt_sharedRR>t_sock(RR((RRLs   cCs1|ip#|iid|_d|_ndS(Ni(RRRRR(R((RRPs   (R;R<RLRP(((RRs tSSLFilecBsetZdZdZedZdZedZdZddZ dZ d Z d Z RS( s(File-like object wrapping an SSL socket.i cCs<ti||||_d|_|p |ii |_ dS(NR!( RRLRR>tsslt_sslt_buftbufsizet __class__tBUFSIZEt_bufsize(RR>RR((RRLs  cCsd}xtoy|ii|i}Wntij oh}|dti jp|dti joq n|dti jp|dti joPnq ti j o@}|dtijoq n|dtijoPnq XPq W|S(NR!i(tbufR.RRRgRRtsslerrorterrtSSL_ERROR_WANT_READtSSL_ERROR_WANT_WRITEtSSL_ERROR_ZERO_RETURNt SSL_ERROR_EOFRterrnotEINTRtEBADF(RRR((Rt_reads&((cCs|ig}t|i}xZ|djp ||jo?|i}|djoPn|i ||t|7}qWdi |}|djod|_|Sn|||_|| SdS(NR!( RRtLR8tavailtsizeRRRhR3Rtall(RRRRRRh((RRgs       cCs|ig}d|_xU|did}|djoPn|i}|djoPn|i|qW|djodi|Sn>di|}|idd}|| }|||_|SdS(NR!iis i( RRRRlRmRRhR3RRR1(RRRmRRhR1((RR0s$        icCsmd}g}xZtoR|i}|pPn|i||t|7}|o||joPqqW|S(Ni( ttotaltlistR.RR0R1R3R8tsizehint(RRRR1R((Rt readliness   cCs |iiS(N(RRtfileno(R((RRscCs|S(N(R(R((Rt__iter__scCs!|i}|p tn|S(N(RR0R1t StopIteration(RR1((Rtnexts  ( R;R<t__doc__RRRLRRgR0RRRR(((RRs       t FakeSocketcBsctZdfdYZdZdZddZddZeZddd Z d Z RS( Nt _closedsocketcBstZdZRS(NcCstdddS(Ni sBad file descriptor(R(RRq((Rt __getattr__s(R;R<R(((RRscCs)t|}ti||||_dS(N(RR>RRLRRR(RR>R((RRLs cCs#ti||ii|_dS(N(RRPRRRR(R((RRP s cCs=|djo|djo tnt|i|i|S(NtrR=(tmodeRRRRRR(RRR((RR?s icCs|ii|S(N(RRtwritetstuff(RRtflags((RRsicCs|ii|S(N(RRRgR8(RR8R((RtrecvscCst|i|S(N(tgetattrRRtattr(RR((RRs( R;R<RRLRPRR?RRRR(((RRs    cBs2tZdZeZeeeedZdZRS(s(This class allows communication via SSL.cCs,ti||||||_||_dS(N(RRLRRzR{RAtkey_filet cert_file(RRzR{RRRA((RRL&s cCsbtititi}|i|i|ifti||i |i }t |||_dS(s(Connect to a host on a given (SSL) port.N( RtAF_INETRR>RRRzR{RRRR(RRR>((RR,s (R;R<Rt HTTPS_PORTRRRLR(((RR!s cBsttZdZdZdZdZeZdeedZ dZ eedZ dZ d Z d Zd ZRS( s-Compatibility class with httplib.py from 1.5.i sHTTP/1.0iR!cCs7|djo d}n|i|i|||dS(s:Provide a default host, since the superclass requires one.iN(R{RRt_setupt_connection_classRzRA(RRzR{RA((RRL?s  cCs^||_|i|_|i|_|i|_|i|_|i|_|i|_d|_ dS(N( RaRt_connRRRRRRRtfile(RRa((RRKs       cCs5|dj o|ii||n|iidS(sDAccept arguments to set the host/port, since the superclass doesn't.N(RzRRRRyR{R(RRzR{((RRYs cCs|iS(sCProvide a getfile, since the superclass' does not use this concept.N(RR(R((Rtgetfile`scGs |ii|di|dS(s.The superclass allows only one value argument.s N(RRRRRtvalues(RRR((RRdscCsy|ii}WnStj oG}|iiidd|_|i d|_ d|i dfSnX|i |_ |i|_|i|i|i fS(sCompat definition since superclass does not define it. Returns a tuple consisting of: - server status code (e.g. '200' if all goes well) - server "reason" corresponding to status code - any RFC822 headers in the response from the server R=iiN(RRRRRteR>R?RRPRR$R1RDR,R&RG(RRR((Rtgetreplyhs    cCs|iid|_dS(N(RRRPRR(R((RRPs (R;R<RRRR@RRRRLRRRRRRP(((RR5s     RtHTTPScBs,tZdZeZdeeeedZRS(sCompatibility with 1.5 httplib interface Python 1.5.2 did not have an HTTPS class, but it defined an interface for sending http requests that is also useful for https. R!cCsO|djo d}n|i|i|||||||_||_dS(Ni( R{RRRRRzRRRA(RRzR{RRRA((RRLs     (R;R<RRRRRL(((RRs cBstZRS(N(R;R<(((RRscBstZRS(N(R;R<(((RRscBstZRS(N(R;R<(((RR scBstZdZRS(NcCs|f|_||_dS(N(RFRtargs(RRF((RRLs (R;R<RL(((RRscBstZRS(N(R;R<(((RRscBstZRS(N(R;R<(((RRscBstZdZRS(NcCs|f|_||_dS(N(tpartialRR(RR((RRLs (R;R<RL(((RR scBstZRS(N(R;R<(((RR scBstZRS(N(R;R<(((RR scBstZRS(N(R;R<(((RR scBstZRS(N(R;R<(((RRscBstZdZRS(NcCs|f|_||_dS(N(R1RR(RR1((RRLs (R;R<RL(((RRsRQcBsJtZdZdZdZdZedZdZedZ RS(s2A limited file-like object for HTTP/0.9 responses.cCs7||_||_d|_d|_t||_dS(Ni( R1Rt_lineRt_filet_line_consumedt _line_offsetR8t _line_left(RR1R((RRLs     cCst|i|S(N(RRRR(RR((RRscCs:d|_|ii|_|ii|_|ii|_dS(Ni(RRRRgR0R(R((Rt_dones cCs"|io|ii|Sn|ipt|djp||ijo^|i|i }|i |djo||iiSq||ii|t |Snu||ijpt|i }||}|i||!}||_ |i|8_|idjo|i n|SdS(Ni(RRRRgRfRRkRRRRhRR8RmR(RRfRmRRh((RRgs$   "   cCsJ|io|iiSn|ipt|i|i}|i |S(N( RRRR0RRkRRRhR(RRh((RR0 s   cCs|io|ii|Sn|ipt|i|ig}|i |djo||iiSn||ii|SdS(N( RRRRRRRkRRRRR(RRR((RRs   ( R;R<RRLRRRRgR0R(((RRQs     cCsdk} dk}|i| idd\}}d}x/|D]'\}}|djo|d}q>q>Wd} d}|do|d} n|do|d}nt }|i ||i | |id||i|i\}}} d G|GHd G|GHd Gt|iiGHH| o#x | iD]}|iGHq8WnHd t fd Y} | d}|idd|i|i|ittdoxdD]\} }d| |fGHt} | i || i | | id|| i| i\}}} d G|GHd G|GHd Gt| iiGHH| o#x | iD]}|iGHqeWnHqWndS(sTest this module. A hodge podge of tests collected here, because they have too many external dependencies for the regular test suite. Nitdis-dswww.python.orgRtGETsstatus =sreason =RgtHTTP11cBstZdZdZRS(Ni sHTTP/1.1(R;R<RR(((RR<sshttp://www.python.org/~jeremy/Rssourceforge.nets/projects/pythons https://%s%s(ssourceforge.nets/projects/python((ssourceforge.nets/projects/python(tsystgetopttargvtoptsRtdltotaRztselectorRthRRRRRR&RGR$R8RRgRR4RRPR+RRths(R R&RRR RRGR R RR$RzRR RR((Rttestsn                         t__main__(_RRt mimetoolsRturlparseRt cStringIORWt ImportErrort__all__RRRERwRRRUtSWITCHING_PROTOCOLSt PROCESSINGtOKtCREATEDtACCEPTEDtNON_AUTHORITATIVE_INFORMATIONR]t RESET_CONTENTtPARTIAL_CONTENTt MULTI_STATUStIM_USEDtMULTIPLE_CHOICEStMOVED_PERMANENTLYtFOUNDt SEE_OTHERR^t USE_PROXYtTEMPORARY_REDIRECTt BAD_REQUESTt UNAUTHORIZEDtPAYMENT_REQUIREDt FORBIDDENt NOT_FOUNDtMETHOD_NOT_ALLOWEDtNOT_ACCEPTABLEtPROXY_AUTHENTICATION_REQUIREDtREQUEST_TIMEOUTtCONFLICTtGONEtLENGTH_REQUIREDtPRECONDITION_FAILEDtREQUEST_ENTITY_TOO_LARGEtREQUEST_URI_TOO_LONGtUNSUPPORTED_MEDIA_TYPEtREQUESTED_RANGE_NOT_SATISFIABLEtEXPECTATION_FAILEDtUNPROCESSABLE_ENTITYtLOCKEDtFAILED_DEPENDENCYtUPGRADE_REQUIREDtINTERNAL_SERVER_ERRORtNOT_IMPLEMENTEDt BAD_GATEWAYtSERVICE_UNAVAILABLEtGATEWAY_TIMEOUTtHTTP_VERSION_NOT_SUPPORTEDtINSUFFICIENT_STORAGEt NOT_EXTENDEDRotMessageRRRRRRRRRR+Rt ExceptionRRR RRRR R R R RRRRQRR;(WRRRERRR R>RRRR1RR+RRRRRRR<R RR=R0RRR6R#RR(RR%RRwRoR^R'RR4R3R8RRWR*R]RURRR2R/RRQR-RR@RRRRR RR:RR R5RRRARR R7R?R9RR.RR$R;RR RR!R)RBR&R"R,((Rt?Cs    9i1Fd YD = c @sdZdZdZdkZdkZdkZdkZdkZdkZdk Z dk Z dk Z dZ dZ dZdZdZd Zd Zd Zd Zd ZdZddZdZdZdZdZdZdZdZdZ dZ!dZ"hZ#dZ$dZ%dZ&de'fdYZ(dfd YZ)d!Z*d"Z+d#Z,d$Z-d%d&Z.d>\Z/Z0Z1Z2d+Z3d,Z4d-Z5d.Z6e6d/Z7ddde8d0d1d2e6d3Z9e8d4d5d6e6d7Z:d'd8Z;d9Z<d'd:Z=d'd;Z>ei?Z@d'd<ZAd'd=ZBdS(?suGet useful information from live Python objects. This module encapsulates the interface provided by the internal special attributes (func_*, co_*, im_*, tb_*, etc.) in a friendlier fashion. It also provides some help for examining source code and class layout. Here are some of the useful functions provided by this module: ismodule(), isclass(), ismethod(), isfunction(), istraceback(), isframe(), iscode(), isbuiltin(), isroutine() - check object types getmembers() - get members of an object that satisfy a given condition getfile(), getsourcefile(), getsource() - find an object's source code getdoc(), getcomments() - get documentation on an object getmodule() - determine the module that an object came from getclasstree() - arrange classes so as to represent their hierarchy getargspec(), getargvalues() - get info about function arguments formatargspec(), formatargvalues() - format an argument spec getouterframes(), getinnerframes() - get info about frames currentframe() - get the current stack frame stack(), trace() - get info about frames on the stack or in a traceback sKa-Ping Yee s 1 Jan 2001NcCst|tiS(sReturn true if the object is a module. Module objects provide these attributes: __doc__ documentation string __file__ filename (missing for built-in modules)N(t isinstancetobjectttypest ModuleType(R((t/usr/lib/python2.4/inspect.pytismodule"scCs t|tip t|dS(sReturn true if the object is a class. Class objects provide these attributes: __doc__ documentation string __module__ name of module in which this class was definedt __bases__N(RRRt ClassTypethasattr(R((Rtisclass*scCst|tiS(sReturn true if the object is an instance method. Instance method objects provide these attributes: __doc__ documentation string __name__ name with which this method was defined im_class class object in which this method belongs im_func function object containing implementation of method im_self instance to which this method is bound, or NoneN(RRRt MethodType(R((Rtismethod2scCsHt|do8t|d o't| ot| o t| S(sReturn true if the object is a method descriptor. But not if ismethod() or isclass() or isfunction() are true. This is new in Python 2.2, and, for example, is true of int.__add__. An object passing this test has a __get__ attribute but not a __set__ attribute, but beyond that the set of attributes varies. __name__ is usually sensible, and __doc__ often is. Methods implemented via descriptors that also pass one of the other tests return false from the ismethoddescriptor() test, simply because the other tests promise more -- you can, e.g., count on having the im_func attribute (etc) when an object passes ismethod().t__get__t__set__N(RRR t isfunctionR (R((Rtismethoddescriptor=s cCst|do t|dS(sReturn true if the object is a data descriptor. Data descriptors have both a __get__ and a __set__ attribute. Examples are properties (defined in Python) and getsets and members (defined in C). Typically, data descriptors will also have __name__ and __doc__ attributes (properties, getsets, and members have both of these attributes), but this is not guaranteed.R R N(RR(R((RtisdatadescriptorQscCst|tiS(sReturn true if the object is a user-defined function. Function objects provide these attributes: __doc__ documentation string __name__ name with which this function was defined func_code code object containing compiled function bytecode func_defaults tuple of any default values for arguments func_doc (same as __doc__) func_globals global namespace in which this function was defined func_name (same as __name__)N(RRRt FunctionType(R((RR[s cCst|tiS(sbReturn true if the object is a traceback. Traceback objects provide these attributes: tb_frame frame object at this level tb_lasti index of last attempted instruction in bytecode tb_lineno current line number in Python source code tb_next next inner traceback object (called by this level)N(RRRt TracebackType(R((Rt istracebackhscCst|tiS(s|Return true if the object is a frame object. Frame objects provide these attributes: f_back next outer frame object (this frame's caller) f_builtins built-in namespace seen by this frame f_code code object being executed in this frame f_exc_traceback traceback if raised in this frame, or None f_exc_type exception type if raised in this frame, or None f_exc_value exception value if raised in this frame, or None f_globals global namespace seen by this frame f_lasti index of last attempted instruction in bytecode f_lineno current line number in Python source code f_locals local namespace seen by this frame f_restricted 0 or 1 if frame is in restricted execution mode f_trace tracing function for this frame, or NoneN(RRRt FrameType(R((RtisframerscCst|tiS(suReturn true if the object is a code object. Code objects provide these attributes: co_argcount number of arguments (not including * or ** args) co_code string of raw compiled bytecode co_consts tuple of constants used in the bytecode co_filename name of file in which this code object was created co_firstlineno number of first line in Python source code co_flags bitmap: 1=optimized | 2=newlocals | 4=*arg | 8=**arg co_lnotab encoded mapping of line numbers to bytecode indices co_name name with which this code object was defined co_names tuple of names of local variables co_nlocals number of local variables co_stacksize virtual machine stack space required co_varnames tuple of names of arguments and local variablesN(RRRtCodeType(R((RtiscodescCst|tiS(s,Return true if the object is a built-in function or method. Built-in functions and methods provide these attributes: __doc__ documentation string __name__ original name of this function or method __self__ instance to which a method is bound, or NoneN(RRRtBuiltinFunctionType(R((Rt isbuiltinscCs1t|p$t|pt|p t|S(s<Return true if the object is any kind of function or method.N(RRRR R(R((Rt isroutinescCsfg}xOt|D]A}t||}| p ||o|i||fqqW|i|S(sReturn all members of an object as (name, value) pairs sorted by name. Optionally, only return members that satisfy a given predicate.N( tresultstdirRtkeytgetattrtvaluet predicatetappendtsort(RR RRR((Rt getmemberss  c Cst|}t|} g}x[| D]S}||ijo|i|}nt ||}t |dd}|djo0x-|D]!}||ijo |}PqqWn|dj o!||ijo|i|}nt ||}t|to d}n_t|to d}nEt|to d}n+t|p t|o d}nd}|i||||fq%W|S(sReturn list of attribute-descriptor tuples. For each name in dir(cls), the return list contains a 4-tuple with these elements: 0. The name (a string). 1. The kind of attribute this is, one of these strings: 'class method' created via classmethod() 'static method' created via staticmethod() 'property' created via property() 'method' any other flavor of method 'data' not a method 2. The class which defined this attribute (a class). 3. The object as obtained directly from the defining class's __dict__, not via getattr. This is especially important for data attributes: C.data is just a data object, but C.__dict__['data'] may be a data descriptor with additional info, like a __doc__ string. t __objclass__s static methods class methodtpropertytmethodtdataN(tgetmrotclstmroRtnamestresulttnamet__dict__tobjRtNonethomeclstbasetobj_via_getattrRt staticmethodtkindt classmethodR%R RR!( R)R/R-R5R*R,R2R3R1R+((Rtclassify_class_attrss<        cCsG||jodSn|i|x|iD]}t||q,WdS(N(R)taccumR!RR2t _searchbases(R)R8R2((RR9s    cCs<t|do |iSng}t||t|SdS(sHReturn tuple of base classes (including cls) in method resolution order.t__mro__N(RR)R:R,R9ttuple(R)R,((RR(s   cCs,ti|}t|tti|S(sBReturn the indent size, in spaces, at the start of a line of text.N(tstringt expandtabstlinetexplinetlentlstrip(R>R?((Rt indentsize scCsy |i}Wntj o dSnXt|tipdSnyti ti |d}Wnt j o dSn!Xt i}xQ|dD]E}tti|}|o#t||}t||}qqW|o|di|dR@RAtcontenttindenttmintrangetitpoptjoin(RRMRNRQRDRHRLR>((Rtgetdocs>     cCst|o+t|do |iSntdnt|o@tii|i }t|do |iSntdnt |o |i }nt |o |i }nt|o |i}nt|o |i}nt|o |iSntddS(s@Work out which source or compiled file an object was defined in.t__file__sarg is a built-in modulesarg is a built-in classsNarg is not a module, class, method, function, traceback, frame, or code objectN(RRRRUt TypeErrorR RJtmodulestgett __module__R tim_funcRt func_codeRttb_frameRtf_codeRt co_filename(R((Rtgetfile3s*              cCs~tii|}tdti}|ixC|D];\}}}}|||jo|| |||fSq;q;WdS(sDGet the module name, suffix, mode, and module type for a given file.cCs&|\}}}t| |||fS(N(tsuffixtmodetmtypeR@(t.0R`RaRb((RtNsN( tostpathtbasenametfilenametmaptimpt get_suffixestsuffixesR"tneglenR`RaRb(RfR`RmRhRbRaRl((Rt getmoduleinfoKs  cCs#t|}|o |dSndS(s1Return the module name for a given file, or None.iN(RnRftinfo(RfRo((Rt getmodulenameUs cCst|}ti|dddgjo|d d}nxStiD]E\}}}d|jo)ti|t | |jodSqKqKWt i i|o|SndS(sEReturn the Python source file an object was defined in, if it exists.is.pycs.pyos.pytbN(R_RRhR<tlowerRjRkR`RaR5R@R0ReRftexists(RR5R`RhRa((Rt getsourcefileZs   . cCs/tiitiit|p t|S(sReturn an absolute path to the source or compiled file for an object. The idea is for each object to have a unique origin, so this routine normalizes the result as much as possible.N(ReRftnormcasetabspathRtRR_(R((Rt getabsfilefscCst|o|Snt|dotii|iSnyt|}Wnt j o dSnX|t jotiit |SnxJtii D]9}t|do#|it tiit|RRRR((Rt tokeneaters,           )(RyRYRCRR(((RRs  cCsPt}y tit|i|iWnttfj onX||i S(s@Extract the block of code at the top of the given list of lines.N( Rt blockfinderRtiterRHtnextRRtIndentationErrorR(RHR((Rtgetblocks  cCsIt|\}}t|o|dfSnt|||dfSdS(sReturn a list of source lines and starting line number for an object. The argument may be a module, class, method, function, traceback, frame, or code object. The source code is returned as a list of the lines corresponding to the object and the line number indicates where in the original source file the first line of code was found. An IOError is raised if the source code cannot be retrieved.iiN(RRRHRRR(RRRH((Rtgetsourceliness  cCs"t|\}}ti|dS(sReturn the text of the source code for an object. The argument may be a module, class, method, function, traceback, frame, or code object. The source code is returned as a single string. An IOError is raised if the source code cannot be retrieved.RN(RRRHRR<RS(RRRH((Rt getsource&scCsrg}|iddxR|D]J}|i||if||jo!|it||||q q W|S(s-Recursive helper function for getclasstree().RcCs|i|ifS(N(tcRYRy(R((RRd3sN(RtclassesR"RR!Rtchildrentwalktree(RRtparentRR((RR0s %icCsh}g}x|D]}|io]xx|iD]K}||jog||RRRRR RBRpRR_RRRRwRRnRRRRRRRRjRRRRRRRRRRR<R R R#RRRJRR9RR(RRRRTRRR7RRRR|RRRRtR ReR((Rt?sfQ       G   $    * -'  ;   *! !   c@sadZdkZdkZdddgZdZhadZdZddZ d Z dS( sCache lines from files. This is intended to read lines from modules imported -- hence if a filename is not found, it will look down the module search path for a file by that name. Ntgetlinet clearcachet checkcachecCsHt|}d|jot|jno||dSndSdS(Nit(tgetlinestfilenametlinestlinenotlen(RRR((t/usr/lib/python2.4/linecache.pyR s $cCs hadS(sClear the cache entirely.N(tcache(((R RscCs+|tjot|dSn t|SdS(ssGet the lines for a file from the cache. Update the cache if it doesn't contain an entry for this file already.iN(RR t updatecache(R((R R!s cCs|djoti}n|tjo |g}ndSx|D]}}t|\}}}}yt i |}Wn t i j ot|=qBnX||i jp||i jo t|=qBqBWdS(sUDiscard cache entries that are out of date. (This is not checked upon each call!)N(RtNoneR tkeyst filenamestsizetmtimeRtfullnametoststatterrortst_sizetst_mtime(RRRRRRR((R R+s     c Csw|tjo t|=n| p|d|ddjogSn|}yti|}Wntij o}tii|d}x|t iD]h}ytii ||}Wnt tfj oqXyti|}PWqtij oqXqWgSnXy)t|d}|i}|iWntj o }gSnX|i|i} }| |||ft|<|S(sUpdate a cache entry and return its list of lines. If something's wrong, print a message, discard the cache entry, and return an empty list.iis<>itrUN(RR RRRRtmsgtpathtsplittbasenametsystdirnametjoint TypeErrortAttributeErrortopentfpt readlinesRtclosetIOErrorRRRR( RR"RRRRRRRR((R R Bs>  !     ( t__doc__RRt__all__RR RRR RR (R RR'RRRRR((R t?s     c@s#dZdkZdddddddd d d d d ddddgZy dkTWnpej oddZdZdZdZdZ dZ dZ dZ e ZdZedZdZdZnXdZdd Zd!Zed"Zd#Zd$ZeZd%Zd&Zd'Zdd d(d)fd*Zed+Z ed,Zed-Z!ei"d.d/d0fjoe#d1Z$n7ye%Wne&j oe#d2Z$nXe#d3Z$hd4d5<d6d5<d7d8<d9d8<d:d8<d;d8<d<d8<d=d8<d>d8<d?d@<dAd@<dBd@<dCdD<dEdD<dFdD<dGdH<dIdJ<dKdL<dMdN<dOdP<dQdR<dSdR<dTdR<dUdV<dWdX<dYdZ<d[dZ<d\dZ<d]d^<d_d^<d`d^d=<d?d=<d@dA<d<dm<dBdm<dCdD<dEdD<dFdG<dHdI<dJdK<dLdK<dMdN<dOdN<dPdQ<dRdQ<dSdQ<dTdU<dVdW<dXdW<dYdZ<d[dZ<d\d]<d^d]<d_d`<dad]<dbdc<ddde<dfde<dgdh<didh<djdk<dldk<dmdQ<dndm<dodm<dpdq<drdm<dsdq<dtdq<dudv<dwdv<dxdv<dydz<d{d|<d}d|<d~dQ<ddQ<dd<dd<ddQ<ddQ<ddm<dd5<ddm<ddm<ddm<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd;<dd<dd<dd;<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d d<d d<d d <d d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d d<d!d<d"d#<d$d<d%d<d&d<d'd(<d)d(<d*d+<d,d(<d-d.<d/d.<d0d.<d1d2<d3d2<d4d5<d6d2<d7d<d8d<d9d<d:d<d;d<d<d<d=d<d>d?<d@d?<dAd?<dBdC<dDdE<dFdE<dGdH<dIdE<dJdK<dLdK<dMdN<dOdN<dPdN<dQdR<dSdT<dUd<dVd<dWd<dXd<dYd<dZd<d[dK<d\dK<d]dK<d^d_<d`d_<dadb<dcd_<ddd=<ded=<dfdg<dhdg<didg<djdk<dldm<dndo<dpdo<dqdr<dsdo<dtdr<dudv<dwdv<dxdy<dzdy<d{dy<d|d<d}d<d~d<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<ddm<ddq<ddm<ddq<ddm<ddq<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<ddo<ddo<ddo<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd <d d <d d <d d <dd <dd <dd<dd<dd<dd<dd<dd3<dd5<dd5<dd5<dd<dd<dd<dd<d d3<d!d3<d"d3<d#d$<d%d$<d&d'<d(d$<d)d*<d+d*<d,d*<d-d*<d.d/<d0d1<d2d3<d4d1<d5d1<d6d1<d7d8<d9d1<d:d1<d;d<<d=d<<d>d<<d?d@<dAd@<dBd@<dCd3<dDd3<dEd3<dFd3<dGdH<dId*<dJdK<dLdK<dMdK<dNdO<dPdO<dQdR<dSdT<dUdT<dVdW<dXdR<dYdR<dZd[<d\d]<d^d]<d_d]<d`da<dbda<dcda<ddda<dedf<dgdf<dhdi<djdi<dkd5<dld5<dmdn<dodn<dpdn<dqdf<drdi<dsdi<dtdi<dudv<dwdf<dxdf<dydf<dzd{<d|d{<d}d~<dd{<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd <d d <d d <d d <dd <dd<dd <dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d d!<d"d#<d$d#<d%d#<d&d#<d'd(<d)d(<d*d+<d,d(<d-d(<d.d/<d0d/<d1d2<d3d2<d4d2<d5d2<d6d7<d8d7<d9d:<d;d:<d<d:<d=d><d?d><d@d><dAdB<dCdB<dDdB<dEdF<dGdF<dHdF<dIdF<dJd<dKdL<dMdN<dOd<dPdQ<dRdL<dSdT<dUdV<dWdX<dYdV<dZdN<d[dN<d\d<d]d<d^d_<d`d_<dad_d?<d@dA<dBdC<dDdE<dFdG<dHdI<dJdK<dLdM<dNdO<dPdQ<dRdS<dTdU<dVdW<dXdY<dZd[<d\d]<d^d_<d`da<dbdc<ddde<dfdg<dhdi<djdk<dldm<dndo<dpdm<dqdo<drds<dtdu<dvdw<dxdy<dzd{<d|d}<d~d{<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd dict. Returns numeric and monetary locale-specific parameters. tgroupingitcurrency_symboltt n_sign_posnt p_cs_precedest n_cs_precedest mon_groupingtn_sep_by_spacet decimal_pointt.t negative_signt positive_signtp_sep_by_spacetint_curr_symbolt p_sign_posnt thousands_septmon_thousands_sept frac_digitstmon_decimal_pointtint_frac_digitsN((((t/usr/lib/python2.4/locale.pyR,scCs|djo tdndS(sd setlocale(integer,string=None) -> string. Activates/queries locale processing. RtCs*_locale emulation only supports "C" localeN(NRR&(tvaluetNoneR(tcategoryR'((R%RDs  cCs t||S(sb strcoll(string,string) -> int. Compares two strings according to the locale. N(tcmptatb(R+R,((R%RLscCs|S(sd strxfrm(string) -> string. Returns a string that behaves for cmp locale-aware. N(ts(R-((R%RRscCst}|d}|p|dfSnd}d}d}|ddjo'|id}||}|| }nx|o|o|dt joPn*|ddjo|d}|d}n|o%|| |d|}|d7}n || }|| }|o'|ddjo||||fSququW|p|||fSn|o ||d|}|d7}n|||fS( NRiRit iR t 0123456789( RtconvRR-tresulttsepstspacestfindtspRtgroup(R-R6R0R5R3R1R2R((R%t_group]s>      cCs||}|id}d}|ot|d\|d<}nt|djo!|dt d|d}n+t|djo|d}n t dxM|oE|i d}|djoPn|| ||d}|d8}qW|S( sFormats a value in the same way that the % formatting would use, but takes the current locale into account. Grouping is applied if the third parameter is true.RiiRis(Too many decimal points in result stringR.iN( tftvalR1tsplittfieldsR2RR7tlenRRR4R5(R8R9RR;R5R1R2((R%Rs& !  cCs td|S(s9Convert float to integer, taking the locale into account.s%.12gN(RR9(R9((R%RscCs^td}|o|i|d}ntd}|o|i|d}n||S(s<Parses a string as a float according to the locale settings.R RRRN(Rttststringtreplacetddtfunc(R>RAR@R=((R%Rs  cCs t|tS(sAConverts a string to an integer according to the locale settings.N(RRtint(R((R%RscCsUttdtddd}|GdGt|GHtd}|GdGt|GHdS(NRs%di[itisf3.1400000000000001(RRRts1RRR(RD((R%t_tests   cCs5|i}d|jo|idd}nd|jo+|idd \}}|d|}n |}d}ti|d}|dj o|Snti|d}|dj otd|jo|id\}}n |}d}|ot i||}n|}|o|d|Sq1|Sn|SdS(s Returns a normalized locale code for the given locale name. The returned locale code is formatted for use with setlocale(). If normalization fails, the original name is returned unchanged. If the given encoding is not known, the function defaults to the default encoding for the locale code just like setlocale() does. t:RiRN( t localenametlowertfullnameR?R:tlangnametencodingt locale_aliastgetR(tcodetdefenctencoding_alias(RGRNRJRKRORI((R%t normalizes2      cCst|}d|joA|id\}}|djod|jo|dfSqZnd|jot|idd Sn|djod Sntd|dS( s Parses the locale code for localename and returns the result as tuple (language code, encoding). The localename is normalized and passed through the locale alias engine. A ValueError is raised in case the locale name cannot be parsed. The language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined or are unknown to this implementation. t@teuroRs iso-8859-15iR&sunknown locale: %sN(NN(RQRGRNR:tmodifierttupleR(t ValueError(RGRNRT((R%t_parse_localenames     cCsH|\}}|djo d}n|djo|Sn |d|SdS(s Builds a locale code from the given tuple (language code, encoding). No aliasing or normalizing takes place. R&RN(t localetupletlanguageRKR((RXRKRY((R%t_build_localenames    tLANGtLANGUAGEcCsydk}|i\}}Wnttfj onPXtidjo4|o-|d djoti t |d}n||fSdk }|i i }xS|D]E}||d}|o)|djo|idd}nPqqWd}t|S( s Tries to determine the default locale settings and returns them as tuple (language code, encoding). According to POSIX, a program which has not called setlocale(LC_ALL, "") runs using the portable 'C' locale. Calling setlocale(LC_ALL, "") lets it use the default locale as defined by the LANG variable. Since we don't want to interfere with the current locale setting we thus emulate the behavior in the way described above. To maintain compatibility with other platforms, not only the LANG variable is tested, but a list of variables given as envvars parameter. The first found to be defined will be used. envvars defaults to the search path used in GNU gettext; it must always contain the variable name 'LANG'. Except for the code 'C', the language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined. Ntwin32it0xiR\RFR&(t_localet_getdefaultlocaleRNRKt ImportErrortAttributeErrortsystplatformtwindows_localeRMRBtostenvirontlookuptenvvarstvariableR(RGR:RW(RiR_RNRKRfRhRjRG((R%tgetdefaultlocale(s( (     cCs=t|}|tjod|jo tdnt|S(sp Returns the current setting for the given locale category as tuple (language code, encoding). category may be one of the LC_* value except LC_ALL. It defaults to LC_CTYPE. Except for the code 'C', the language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined. t;s category LC_ALL is not supportedN(t _setlocaleR)RGRt TypeErrorRW(R)RG((R%t getlocale]s   cCsC|o/t|tdj ott|}nt||S(sE Set the locale for the given category. The locale can be a string, a locale tuple (language code, encoding), or None. Locale tuples are converted to strings the locale aliasing engine. Locale strings are passed directly to the C lib. category may be given as one of the LC_* values. RN(tlocalettypeRQRZRmR)(R)Rp((R%Ros  cCst|ttdS(s Sets the locale for category to the default setting. The default setting is determined by calling getdefaultlocale(). category defaults to LC_ALL. N(RmR)RZRk(R)((R%t resetlocalesR]tdarwintmaccCsdk}|idS(s1Return the charset that the user is likely using.Ni(R_R`(t do_setlocaleR_((R%tgetpreferredencodings cCs tdS(sbReturn the charset that the user is likely using, by looking at environment variables.iN(Rk(Ru((R%RvscCsO|o:tt}ttdtt}tt||Sn ttSdS(sdReturn the charset that the user is likely using, according to the system configuration.RN(RuRR toldloct nl_langinfotCODESETR1(RuRwR1((R%Rvs    t437R&tctiso8859s ISO8859-1t8859t88591tasciitentiso88591s iso_8859-1t885915s ISO8859-15t iso885915s iso_8859-15s iso8859-2s ISO8859-2tiso88592s iso_8859-2tiso88595s ISO8859-5tiso88596s ISO8859-6tiso88597s ISO8859-7tiso88598s ISO8859-8tiso88599s ISO8859-9s iso-2022-jptJIS7tjistjis7tsjistSJISttis620tTACTIStajecteucJPteucjptujistutfsutf-8tutf8s utf8@ucs4ta3s a3_AZ.KOI8-Cta3_azs a3_az.koi8ctafsaf_ZA.ISO8859-1taf_zasaf_za.iso88591tams am_ET.UTF-8tam_ettamericansen_US.ISO8859-1samerican.iso88591tarsar_AA.ISO8859-6tar_aasar_aa.iso88596tar_aesar_AE.ISO8859-6sar_ae.iso88596tar_bhsar_BH.ISO8859-6sar_bh.iso88596tar_dzsar_DZ.ISO8859-6sar_dz.iso88596tar_egsar_EG.ISO8859-6sar_eg.iso88596tar_iqsar_IQ.ISO8859-6sar_iq.iso88596tar_josar_JO.ISO8859-6sar_jo.iso88596tar_kwsar_KW.ISO8859-6sar_kw.iso88596tar_lbsar_LB.ISO8859-6sar_lb.iso88596tar_lysar_LY.ISO8859-6sar_ly.iso88596tar_masar_MA.ISO8859-6sar_ma.iso88596tar_omsar_OM.ISO8859-6sar_om.iso88596tar_qasar_QA.ISO8859-6sar_qa.iso88596tar_sasar_SA.ISO8859-6sar_sa.iso88596tar_sdsar_SD.ISO8859-6sar_sd.iso88596tar_sysar_SY.ISO8859-6sar_sy.iso88596tar_tnsar_TN.ISO8859-6sar_tn.iso88596tar_yesar_YE.ISO8859-6sar_ye.iso88596tarabicsarabic.iso88596tazsaz_AZ.ISO8859-9Etaz_azsaz_az.iso88599etbes be_BY.CP1251tbe_bys be_by.cp1251sbe_by.microsoftcp1251tbgs bg_BG.CP1251tbg_bgs bg_bg.cp1251sbg_bg.iso88595sbg_BG.ISO8859-5s bg_bg.koi8rs bg_BG.KOI8-Rsbg_bg.microsoftcp1251tbokmalsnb_NO.ISO8859-1sbokmltbrsbr_FR.ISO8859-1tbr_frsbr_fr.iso88591sbr_fr.iso885914sbr_FR.ISO8859-14sbr_fr.iso885915sbr_FR.ISO8859-15sbr_fr.iso885915@eurosbr_fr.utf8@euros br_FR.UTF-8s br_fr@eurotbssbs_BA.ISO8859-2tbs_basbs_ba.iso88592t bulgariansc-frenchsfr_CA.ISO8859-1sc-french.iso88591sc.ens c.iso88591tc_csc_c.ctcasca_ES.ISO8859-1tca_essca_es.iso88591sca_es.iso885915sca_ES.ISO8859-15sca_es.iso885915@eurosca_es.utf8@euros ca_ES.UTF-8s ca_es@eurotcatalantcextends cextend.ens chinese-ss zh_CN.eucCNs chinese-ts zh_TW.eucTWtcroatianshr_HR.ISO8859-2tcsscs_CZ.ISO8859-2tcs_csscs_cs.iso88592tcs_czscs_cz.iso88592tcyscy_GB.ISO8859-1tcy_gbscy_gb.iso88591scy_gb.iso885914scy_GB.ISO8859-14scy_gb.iso885915scy_GB.ISO8859-15tcztcz_cztczechtdasda_DK.ISO8859-1tda_dks da_dk.88591s da_dk.885915sda_DK.ISO8859-15sda_dk.iso88591sda_dk.iso885915tdanishsdanish.iso88591tdansktdesde_DE.ISO8859-1tde_atsde_AT.ISO8859-1sde_at.iso88591sde_at.iso885915sde_AT.ISO8859-15sde_at.iso885915@eurosde_at.utf8@euros de_AT.UTF-8s de_at@eurotde_besde_BE.ISO8859-1sde_be.iso88591sde_be.iso885915sde_BE.ISO8859-15sde_be.iso885915@eurosde_be.utf8@euros de_BE.UTF-8s de_be@eurotde_chsde_CH.ISO8859-1sde_ch.iso88591sde_ch.iso885915sde_CH.ISO8859-15tde_des de_de.88591s de_de.885915sde_DE.ISO8859-15sde_de.885915@eurosde_de.iso88591sde_de.iso885915sde_de.iso885915@eurosde_de.utf8@euros de_DE.UTF-8s de_de@eurotde_lusde_LU.ISO8859-1sde_lu.iso88591sde_lu.iso885915sde_LU.ISO8859-15sde_lu.iso885915@eurosde_lu.utf8@euros de_LU.UTF-8s de_lu@eurotdeutschtdutchsnl_NL.ISO8859-1sdutch.iso88591snl_BE.ISO8859-1teesee_EE.ISO8859-4tee_eesee_ee.iso88594teestiset_EE.ISO8859-1telsel_GR.ISO8859-7tel_grsel_gr.iso88597s el_gr@eurosel_GR.ISO8859-15s en.iso88591ten_ausen_AU.ISO8859-1sen_au.iso88591ten_besen_BE.ISO8859-1s en_be@eurosen_BE.ISO8859-15ten_bwsen_BW.ISO8859-1sen_bw.iso88591ten_casen_CA.ISO8859-1sen_ca.iso88591ten_gbsen_GB.ISO8859-1s en_gb.88591sen_gb.iso88591sen_gb.iso885915sen_GB.ISO8859-15ten_hksen_HK.ISO8859-1sen_hk.iso88591ten_iesen_IE.ISO8859-1sen_ie.iso88591sen_ie.iso885915sen_IE.ISO8859-15sen_ie.iso885915@eurosen_ie.utf8@euros en_IE.UTF-8s en_ie@euroten_insen_IN.ISO8859-1ten_nzsen_NZ.ISO8859-1sen_nz.iso88591ten_phsen_PH.ISO8859-1sen_ph.iso88591ten_sgsen_SG.ISO8859-1sen_sg.iso88591ten_ukten_uss en_us.88591s en_us.885915sen_US.ISO8859-15sen_us.iso88591sen_us.iso885915sen_us.iso885915@euroten_zasen_ZA.ISO8859-1s en_za.88591sen_za.iso88591sen_za.iso885915sen_ZA.ISO8859-15ten_zwsen_ZW.ISO8859-1sen_zw.iso88591teng_gbs eng_gb.8859tenglishsen_EN.ISO8859-1senglish.iso88591t english_uksenglish_uk.8859senglish_united-statessenglish_united-states.437t english_ussenglish_us.8859senglish_us.asciiteoseo_XX.ISO8859-3teo_eoseo_EO.ISO8859-3seo_eo.iso88593teo_xxseo_xx.iso88593tesses_ES.ISO8859-1tes_arses_AR.ISO8859-1ses_ar.iso88591tes_boses_BO.ISO8859-1ses_bo.iso88591tes_clses_CL.ISO8859-1ses_cl.iso88591tes_coses_CO.ISO8859-1ses_co.iso88591tes_crses_CR.ISO8859-1ses_cr.iso88591tes_doses_DO.ISO8859-1ses_do.iso88591tes_ecses_EC.ISO8859-1ses_ec.iso88591tes_ess es_es.88591ses_es.iso88591ses_es.iso885915ses_ES.ISO8859-15ses_es.iso885915@euroses_es.utf8@euros es_ES.UTF-8s es_es@eurotes_gtses_GT.ISO8859-1ses_gt.iso88591tes_hnses_HN.ISO8859-1ses_hn.iso88591tes_mxses_MX.ISO8859-1ses_mx.iso88591tes_nises_NI.ISO8859-1ses_ni.iso88591tes_pases_PA.ISO8859-1ses_pa.iso88591ses_pa.iso885915ses_PA.ISO8859-15tes_peses_PE.ISO8859-1ses_pe.iso88591ses_pe.iso885915ses_PE.ISO8859-15tes_prses_PR.ISO8859-1ses_pr.iso88591tes_pyses_PY.ISO8859-1ses_py.iso88591ses_py.iso885915ses_PY.ISO8859-15tes_svses_SV.ISO8859-1ses_sv.iso88591ses_sv.iso885915ses_SV.ISO8859-15tes_usses_US.ISO8859-1ses_us.iso88591tes_uyses_UY.ISO8859-1ses_uy.iso88591ses_uy.iso885915ses_UY.ISO8859-15tes_veses_VE.ISO8859-1ses_ve.iso88591ses_ve.iso885915ses_VE.ISO8859-15testoniantetset_EE.ISO8859-15tet_eeset_ee.iso88591set_ee.iso885913set_EE.ISO8859-13set_ee.iso885915set_ee.iso88594set_EE.ISO8859-4teuseu_ES.ISO8859-1teu_esseu_es.iso88591seu_es.iso885915seu_ES.ISO8859-15seu_es.iso885915@euroseu_es.utf8@euros eu_ES.UTF-8s eu_es@eurotfas fa_IR.UTF-8tfa_irsfa_ir.isiri3342sfa_IR.ISIRI-3342tfisfi_FI.ISO8859-15tfi_fis fi_fi.88591sfi_FI.ISO8859-1sfi_fi.iso88591sfi_fi.iso885915sfi_fi.iso885915@eurosfi_fi.utf8@euros fi_FI.UTF-8s fi_fi@eurotfinnishsfinnish.iso88591tfosfo_FO.ISO8859-1tfo_fosfo_fo.iso88591sfo_fo.iso885915sfo_FO.ISO8859-15tfrsfr_FR.ISO8859-1tfr_besfr_BE.ISO8859-1s fr_be.88591sfr_be.iso88591sfr_be.iso885915sfr_BE.ISO8859-15sfr_be.iso885915@eurosfr_be.utf8@euros fr_BE.UTF-8s fr_be@eurotfr_cas fr_ca.88591sfr_ca.iso88591sfr_ca.iso885915sfr_CA.ISO8859-15tfr_chsfr_CH.ISO8859-1s fr_ch.88591sfr_ch.iso88591sfr_ch.iso885915sfr_CH.ISO8859-15tfr_frs fr_fr.88591sfr_fr.iso88591sfr_fr.iso885915sfr_FR.ISO8859-15sfr_fr.iso885915@eurosfr_fr.utf8@euros fr_FR.UTF-8s fr_fr@eurotfr_lusfr_LU.ISO8859-1s fr_lu.88591sfr_lu.iso88591sfr_lu.iso885915sfr_LU.ISO8859-15sfr_lu.iso885915@eurosfr_lu.utf8@euros fr_LU.UTF-8s fr_lu@eurosfranaistfre_frs fre_fr.8859tfrenchsfrench.iso88591t french_francesfrench_france.8859tgasga_IE.ISO8859-1tga_iesga_ie.iso88591sga_ie.iso885914sga_IE.ISO8859-14sga_ie.iso885915sga_IE.ISO8859-15sga_ie.iso885915@eurosga_ie.utf8@euros ga_IE.UTF-8s ga_ie@eurotgalegosgl_ES.ISO8859-1tgaliciantgdsgd_GB.ISO8859-1tgd_gbsgd_gb.iso88591sgd_gb.iso885914sgd_GB.ISO8859-14sgd_gb.iso885915sgd_GB.ISO8859-15tger_des ger_de.8859tgermansgerman.iso88591tgerman_germanysgerman_germany.8859tgltgl_essgl_es.iso88591sgl_es.iso885915sgl_ES.ISO8859-15sgl_es.iso885915@eurosgl_es.utf8@euros gl_ES.UTF-8s gl_es@eurotgreeksgreek.iso88597tgvsgv_GB.ISO8859-1tgv_gbsgv_gb.iso88591sgv_gb.iso885914sgv_GB.ISO8859-14sgv_gb.iso885915sgv_GB.ISO8859-15theshe_IL.ISO8859-8the_ils he_il.cp1255s he_IL.CP1255she_il.iso88598she_il.microsoftcp1255thebrewsiw_IL.ISO8859-8shebrew.iso88598thishi_IN.ISCII-DEVthi_inshi_in.isciidevthrthr_hrshr_hr.iso88592thrvatskithushu_HU.ISO8859-2thu_hushu_hu.iso88592t hungariant icelandicsis_IS.ISO8859-1sicelandic.iso88591tidsid_ID.ISO8859-1tid_idtintin_idRCtis_issis_is.iso88591sis_is.iso885915sis_IS.ISO8859-15s iso-8859-1s iso-8859-15s iso8859-1s iso8859-15t iso_8859_1t iso_8859_15titsit_IT.ISO8859-1tit_chsit_CH.ISO8859-1sit_ch.iso88591sit_ch.iso885915sit_CH.ISO8859-15tit_its it_it.88591sit_it.iso88591sit_it.iso885915sit_IT.ISO8859-15sit_it.iso885915@eurosit_it.utf8@euros it_IT.UTF-8s it_it@eurotitaliansitalian.iso88591tiusiu_CA.NUNACOM-8tiu_casiu_ca.nunacom8tiwtiw_ilsiw_il.iso88598tjas ja_JP.eucJPsja.jiss ja_JP.JIS7sja.sjiss ja_JP.SJIStja_jps ja_jp.ajecs ja_jp.eucs ja_jp.eucjpsja_jp.iso-2022-jpsja_jp.iso2022jps ja_jp.jiss ja_jp.jis7s ja_jp.mscodes ja_jp.sjiss ja_jp.ujistjapantjapaneses japanese-eucs japanese.eucs japanese.sjistjp_jptkaska_GE.GEORGIAN-ACADEMYtka_geska_ge.georgianacademyska_ge.georgianpsska_GE.GEORGIAN-PSska_ge.georgianrstklskl_GL.ISO8859-1tkl_glskl_gl.iso88591skl_gl.iso885915skl_GL.ISO8859-15tkos ko_KR.eucKRtko_krs ko_kr.eucs ko_kr.euckrtkoreans korean.euctkwskw_GB.ISO8859-1tkw_gbskw_gb.iso88591skw_gb.iso885914skw_GB.ISO8859-14skw_gb.iso885915skw_GB.ISO8859-15tkys ky_KG.UTF-8tky_kgt lithuanianslt_LT.ISO8859-13tloslo_LA.MULELAO-1tlo_las lo_la.cp1133slo_LA.IBM-CP1133slo_la.ibmcp1133slo_la.mulelao1tlttlt_ltslt_lt.iso885913slt_lt.iso88594slt_LT.ISO8859-4tlvslv_LV.ISO8859-13tlv_lvslv_lv.iso885913slv_lv.iso88594slv_LV.ISO8859-4tmismi_NZ.ISO8859-1tmi_nzsmi_nz.iso88591tmksmk_MK.ISO8859-5tmk_mks mk_mk.cp1251s mk_MK.CP1251smk_mk.iso88595smk_mk.microsoftcp1251tmr_ins mr_IN.UTF-8tmssms_MY.ISO8859-1tms_mysms_my.iso88591tmtsmt_MT.ISO8859-3tmt_mtsmt_mt.iso88593tnbtnb_nos nb_no.88591snb_no.iso88591snb_no.iso885915snb_NO.ISO8859-15tnltnl_bes nl_be.88591snl_be.iso88591snl_be.iso885915snl_BE.ISO8859-15snl_be.iso885915@eurosnl_be.utf8@euros nl_BE.UTF-8s nl_be@eurotnl_nls nl_nl.88591snl_nl.iso88591snl_nl.iso885915snl_NL.ISO8859-15snl_nl.iso885915@eurosnl_nl.utf8@euros nl_NL.UTF-8s nl_nl@eurotnnsnn_NO.ISO8859-1tnn_nos nn_no.88591snn_no.iso88591snn_no.iso885915snn_NO.ISO8859-15tnosno_NO.ISO8859-1s no@nynorsksny_NO.ISO8859-1tno_nos no_no.88591sno_no.iso88591sno_no.iso885915sno_NO.ISO8859-15t norwegiansnorwegian.iso88591tnrsnr_ZA.ISO8859-1tnr_zasnr_za.iso88591tnsosnso_ZA.ISO8859-15tnso_zasnso_za.iso885915tnytny_nos ny_no.88591sny_no.iso88591sny_no.iso885915sny_NO.ISO8859-15tnynorsktocsoc_FR.ISO8859-1toc_frsoc_fr.iso88591soc_fr.iso885915soc_FR.ISO8859-15s oc_fr@eurotpdspd_US.ISO8859-1tpd_despd_DE.ISO8859-1spd_de.iso88591spd_de.iso885915spd_DE.ISO8859-15tpd_usspd_us.iso88591spd_us.iso885915spd_US.ISO8859-15tphsph_PH.ISO8859-1tph_phsph_ph.iso88591tplspl_PL.ISO8859-2tpl_plspl_pl.iso88592tpolisht portuguesespt_PT.ISO8859-1sportuguese.iso88591tportuguese_brazilspt_BR.ISO8859-1sportuguese_brazil.8859tposixs posix-utf2tppspp_AN.ISO8859-1tpp_anspp_an.iso88591tpttpt_brs pt_br.88591spt_br.iso88591spt_br.iso885915spt_BR.ISO8859-15tpt_pts pt_pt.88591spt_pt.iso88591spt_pt.iso885915spt_PT.ISO8859-15spt_pt.iso885915@eurospt_pt.utf8@euros pt_PT.UTF-8s pt_pt@eurotrosro_RO.ISO8859-2tro_rosro_ro.iso88592tromaniantrusru_RU.ISO8859-5tru_rus ru_ru.cp1251s ru_RU.CP1251sru_ru.iso88595s ru_ru.koi8rs ru_RU.KOI8-Rsru_ru.microsoftcp1251tru_uas ru_UA.KOI8-Us ru_ua.cp1251s ru_UA.CP1251s ru_ua.koi8usru_ua.microsoftcp1251trumaniantrussiantrwsrw_RW.ISO8859-1trw_rwsrw_rw.iso88591tse_nos se_NO.UTF-8t serbocroatianssh_YU.ISO8859-2tshtsh_hrssh_HR.ISO8859-2ssh_hr.iso88592tsh_sptsh_yutsis si_LK.UTF-8tsi_lktsinhalatskssk_SK.ISO8859-2tsk_skssk_sk.iso88592tslssl_SI.ISO8859-2tsl_csssl_CS.ISO8859-2tsl_sissl_si.iso88592tslovaktslovenet slovenianR5ssp_YU.ISO8859-5tsp_yutspanishsspanish.iso88591t spanish_spainsspanish_spain.8859tsqssq_AL.ISO8859-2tsq_alssq_al.iso88592tsrssr_YU.ISO8859-5s sr@cyrillictsr_spssr_SP.ISO8859-2tsr_yussr_yu.cp1251@cyrillics sr_YU.CP1251ssr_yu.iso88592ssr_YU.ISO8859-2ssr_yu.iso88595ssr_yu.iso88595@cyrillicssr_yu.microsoftcp1251@cyrillicssr_yu.utf8@cyrillics sr_YU.UTF-8ssr_yu@cyrillictsssss_ZA.ISO8859-1tss_zasss_za.iso88591tstsst_ZA.ISO8859-1tst_zasst_za.iso88591tsvssv_SE.ISO8859-1tsv_fissv_FI.ISO8859-1ssv_fi.iso88591ssv_fi.iso885915ssv_FI.ISO8859-15ssv_fi.iso885915@eurossv_fi.utf8@euros sv_FI.UTF-8s sv_fi@eurotsv_ses sv_se.88591ssv_se.iso88591ssv_se.iso885915ssv_SE.ISO8859-15s sv_se@eurotswedishsswedish.iso88591ttas ta_IN.TSCII-0tta_ins ta_in.tsciis ta_in.tscii0ttgs tg_TJ.KOI8-Cttg_tjs tg_tj.koi8ctthsth_TH.ISO8859-11tth_thsth_th.iso885911s th_th.tactiss th_TH.TIS620s th_th.tis620tthaittlstl_PH.ISO8859-1ttl_phstl_ph.iso88591ttnstn_ZA.ISO8859-15ttn_zastn_za.iso885915ttrstr_TR.ISO8859-9ttr_trstr_tr.iso88599R=sts_ZA.ISO8859-1tts_zasts_za.iso88591tttstt_RU.TATAR-CYRttt_rus tt_ru.koi8cs tt_RU.KOI8-Cstt_ru.tatarcyrtturkishsturkish.iso88599tuks uk_UA.KOI8-Utuk_uas uk_ua.cp1251s uk_UA.CP1251suk_ua.iso88595suk_UA.ISO8859-5s uk_ua.koi8usuk_ua.microsoftcp1251tunivs en_US.utf-8t universalsuniversal.utf8@ucs4s en_US.UTF-8turs ur_PK.CP1256tur_pks ur_pk.cp1256sur_pk.microsoftcp1256tuzs uz_UZ.UTF-8tuz_uzsuz_uz.iso88591suz_UZ.ISO8859-1suz_uz.utf8@cyrillicsuz_uz@cyrillictves ve_ZA.UTF-8tve_zatvis vi_VN.TCVNtvi_vns vi_vn.tcvnsvi_vn.tcvn5712s vi_vn.visciis vi_VN.VISCIIsvi_vn.viscii111twaswa_BE.ISO8859-1twa_beswa_be.iso88591swa_be.iso885915swa_BE.ISO8859-15swa_be.iso885915@euros wa_be@eurotxhsxh_ZA.ISO8859-1txh_zasxh_za.iso88591tyis yi_US.CP1255tyi_uss yi_us.cp1255syi_us.microsoftcp1255tzhtzh_cns zh_CN.gb2312s zh_cn.big5s zh_TW.big5s zh_cn.eucs zh_cn.gb18030s zh_CN.gb18030s zh_cn.gb2312s zh_cn.gbks zh_CN.gbktzh_hkszh_HK.big5hkscss zh_hk.big5s zh_HK.big5szh_hk.big5hkscstzh_tws zh_tw.big5s zh_tw.eucs zh_tw.euctwtzuszu_ZA.ISO8859-1tzu_zaszu_za.iso88591i6taf_ZAitsq_ALitar_SAitar_IQi tar_EGitar_LYitar_DZitar_MAitar_TNi tar_OMi$tar_YEi(tar_SYi,tar_JOi0tar_LBi4tar_KWi8tar_AEi<tar_BHi@tar_QAi+thy_AMi,taz_AZi,i-teu_ESi#tbe_BYiEtbn_INi tbs_BAii~tbr_FRitbg_BGitca_EStzh_CHSitzh_TWitzh_CNi tzh_HKitzh_SGitzh_MOi|tzh_CHTithr_HRithr_BAitcs_CZitda_DKitgbz_AFietdiv_MVitnl_NLitnl_BEi ten_USi ten_GBi ten_AUi ten_CAi ten_NZi ten_IEi ten_ZAi ten_JAi $ten_CBi (ten_BZi ,ten_TTi 0ten_ZWi 4ten_PHi%tet_EEi8tfo_FOidtfil_PHi tfi_FIi tfr_FRi tfr_BEi tfr_CAi tfr_CHi tfr_LUi tfr_MCibtfy_NLiVtgl_ESi7tka_GEitde_DEitde_CHi tde_ATitde_LUitde_LIitel_GRiGtgu_INi the_ILi9thi_INithu_HUitis_ISi!tid_IDi]tiu_CAi]i<tga_IEi4txh_ZAi5tzu_ZAitit_ITitit_CHitja_JPiKtkn_INi?tkk_KZiWtkok_INitko_KRi@tky_KGi&tlv_LVi'tlt_LTintlb_LUi/tmk_MKi>tms_MYi>tms_BNiLtml_INi:tmt_MTitmi_NZiztarn_CLiNtmr_INi|tmoh_CAiPtmn_MNiatne_NPitnb_NOitnn_NOitoc_FRiHtor_INictps_AFi)tfa_IRitpl_PLitpt_BRitpt_PTiFtpa_INiktquz_BOiktquz_ECik tquz_PEitro_ROitrm_CHitru_RUi;$tsmn_FIi;tsmj_NOi;tsmj_SEi;tse_NOi;tse_SEi; tse_FIi; tsms_FIi;tsma_NOi;tsma_SEiOtsa_INi tsr_SPitsr_BAiiiltns_ZAi2ttn_ZAitsk_SKi$tsl_SIi tes_ESi tes_MXi i tes_GTi tes_CRi tes_PAi tes_DOi tes_VEi $tes_COi (tes_PEi ,tes_ARi 0tes_ECi 4tes_CLi 8tes_URi <tes_PYi @tes_BOi Dtes_SVi Htes_HNi Ltes_NIi Ptes_PRiAtsw_KEitsv_SEitsv_FIiZtsyr_SYiItta_INiDttt_RUiJtte_INitth_THittr_TRi"tuk_UAi tur_PKi tur_INiCtuz_UZiCi*tvi_VNiRtcy_GBcCsh}|d}||d=dGHddGHt\}}dG|pdGHdG|pdGHHd GHddGHxV|iD]H\}}|Gd GHt|\}}d G|pdGHd G|pdGHHqyWHd GHddGHt xV|iD]H\}}|Gd GHt|\}}d G|pdGHd G|pdGHHqWyt t dWndGHdGHdGHniXHdGHddGHxV|iD]H\}}|Gd GHt|\}}d G|pdGHd G|pdGHHqzWdS(s Test function. cCsCx<tiD]+\}}|d djo|||d;Z?d<Z@dd=ZAd>ZBeBZCd?ZDd@ZEdAZFeFZGdBZHdCZIdDZJdEZKdFZLydkMZMeMiNeLWn+e j oeiOdGZPePe_OnXdS(Hsj Logging package for Python. Based on PEP 282 and comments thereto in comp.lang.python, and influenced by Apache's log4j system. Should work under Python versions >= 1.5.2, except that source line information is not available unless 'sys._getframe()' is. Copyright (C) 2001-2004 Vinay Sajip. All Rights Reserved. To use, simply 'import logging' and log away! Ns&Vinay Sajip tbetas0.4.9.7s07 October 2005tfrozenslogging%s__init__%sis.pycs.pyos.pycCs%y tWntiiiSnXdS(s5Return the frame object for the caller's stack frame.N(t Exceptiontsyst exc_tracebackttb_frametf_back(((t&/usr/lib/python2.4/logging/__init__.pyt currentframe@s  t _getframeii2i(iii itCRITICALtERRORtWARNINGtINFOtDEBUGtNOTSETtWARNcCsti|d|S(s Return the textual representation of logging level 'level'. If the level is one of the predefined levels (CRITICAL, ERROR, WARNING, INFO, DEBUG) then you get the corresponding string. If you have associated levels with names using addLevelName then the name you have associated with 'level' is returned. If a numeric value corresponding to one of the defined levels is passed in, the corresponding string representation is returned. Otherwise, the string "Level %s" % level is returned. sLevel %sN(t _levelNamestgettlevel(R((Rt getLevelNames cCs.tz|t|<|t|(R$R#R,R-R7R%(R$((Rt__str__scCsttdpt|i}n_|i}t|titifjo6yt|i}Wqtj o|i}qXn|i o||i }n|S(s Return the message for this LogRecord. Return the message for this LogRecord after merging any user-supplied arguments with the message. t UnicodeTypeN( RAR)tstrR$R%R(REt StringTypet UnicodeErrorR&(R$R%((Rt getMessages  (t__name__t __module__t__doc__RCRDRI(((RRs  1 cCs2tdddddfd}|ii||S(s Make a LogRecord whose attributes are defined by the specified dictionary, This function is useful for converting a logging event received over a socket connection (which is sent as a dictionary) into a LogRecord instance. tiN(RR5trvt__dict__tupdatetdict(RQRN((Rt makeLogRecordst FormattercBsDtZdZeiZeedZedZdZ dZ RS(s Formatter instances are used to convert a LogRecord to text. Formatters need to know how a LogRecord is constructed. They are responsible for converting a LogRecord to (usually) a string which can be interpreted by either a human or an external system. The base Formatter allows a formatting string to be specified. If none is supplied, the default value of "%s(message)\n" is used. The Formatter can be initialized with a format string which makes use of knowledge of the LogRecord attributes - e.g. the default value mentioned above makes use of the fact that the user's message and arguments are pre- formatted into a LogRecord's message attribute. Currently, the useful attributes in a LogRecord are described by: %(name)s Name of the logger (logging channel) %(levelno)s Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL) %(levelname)s Text logging level for the message ("DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL") %(pathname)s Full pathname of the source file where the logging call was issued (if available) %(filename)s Filename portion of pathname %(module)s Module (name portion of filename) %(lineno)d Source line number where the logging call was issued (if available) %(created)f Time when the LogRecord was created (time.time() return value) %(asctime)s Textual time when the LogRecord was created %(msecs)d Millisecond portion of the creation time %(relativeCreated)d Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded (typically at application startup time) %(thread)d Thread ID (if available) %(threadName)s Thread name (if available) %(process)d Process ID (if available) %(message)s The result of record.getMessage(), computed just as the record is emitted cCs*|o ||_n d|_||_dS(s8 Initialize the formatter with specified format strings. Initialize the formatter either with the specified format string, or a default as described above. Allow for specialized date formatting with the optional datefmt argument (if omitted, you get the ISO8601 format). s %(message)sN(tfmtR$t_fmttdatefmt(R$RTRV((RRCQs   cCsX|i|i}|oti||}n&tid|}d||i f}|S(s Return the creation time of the specified LogRecord as formatted text. This method should be called from format() by a formatter which wants to make use of a formatted time. This method can be overridden in formatters to provide for any specific requirement, but the basic behaviour is as follows: if datefmt (a string) is specified, it is used with time.strftime() to format the creation time of the record. Otherwise, the ISO8601 format is used. The resulting string is returned. This function uses a user-configurable function to convert the creation time to a tuple. By default, time.localtime() is used; to change this for a particular formatter instance, set the 'converter' attribute to a function with the same signature as time.localtime() or time.gmtime(). To change it for all formatters, for example if you want all logging times to be shown in GMT, set the 'converter' attribute in the Formatter class. s%Y-%m-%d %H:%M:%Ss%s,%03dN( R$t convertertrecordR8R"RVR!tstrftimetsttR:(R$RXRVRZR[R"((Rt formatTime_scCsjti}ti|d|d|dd||i}|i |ddjo|d }n|S(s Format and return the specified exception information as a string. This default implementation just uses traceback.print_exception() iiiis N( t cStringIOtStringIOtsiot tracebacktprint_exceptionteiR5tgetvalueRZtclose(R$RbRZR_((RtformatExceptionys %  cCs|i|_ti|iddjo|i||i|_ n|i|i }|i o'|i p|i|i |_ qn|i o0|ddjo|d}n||i }n|S(s[ Format the specified record as text. The record's attribute dictionary is used as the operand to a string formatting operation which yields the returned string. Before formatting the dictionary, a couple of preparatory steps are carried out. The message attribute of the record is computed using LogRecord.getMessage(). If the formatting string contains "%(asctime)", formatTime() is called to format the event time. If there is exception information, it is formatted using formatException() and appended to the message. s %(asctime)iis N(RXRItmessagetstringtfindR$RUR\RVtasctimeRORZR4R6Re(R$RXRZ((Rtformats    ( RJRKRLR!t localtimeRWR5RCR\ReRj(((RRS&s '   tBufferingFormattercBs5tZdZedZdZdZdZRS(sB A formatter suitable for formatting a number of records. cCs!|o ||_n t|_dS(sm Optionally specify a formatter which will be used to format each individual record. N(tlinefmtR$t_defaultFormatter(R$Rm((RRCs cCsdS(sE Return the header string for the specified records. RMN((R$trecords((Rt formatHeaderscCsdS(sE Return the footer string for the specified records. RMN((R$Ro((Rt formatFooterscCsnd}t|djoQ||i|}x$|D]}||ii|}q3W||i|}n|S(sQ Format the specified records and return the result as a string. RMiN( RNR'RoR$RpRXRmRjRq(R$RoRNRX((RRjs(RJRKRLR5RCRpRqRj(((RRls   tFiltercBs#tZdZddZdZRS(s Filter instances are used to perform arbitrary filtering of LogRecords. Loggers and Handlers can optionally use Filter instances to filter records as desired. The base filter class only allows events which are below a certain point in the logger hierarchy. For example, a filter initialized with "A.B" will allow events logged by loggers "A.B", "A.B.C", "A.B.C.D", "A.B.D" etc. but not "A.BB", "B.A.B" etc. If initialized with the empty string, all events are passed. RMcCs||_t||_dS(s Initialize a filter. Initialize with the name of the logger which, together with its children, will have its events allowed through the filter. If no name is specified, allow every event. N(R#R$R'tnlen(R$R#((RRCs cCsw|idjodSnL|i|ijodSn1ti|i|id|idjodSn|i|idjS(s Determine if the specified record is to be logged. Is the specified record to be logged? Returns 0 for no, nonzero for yes. If deemed appropriate, the record may be modified in-place. iit.N(R$RsR#RXRgRh(R$RX((Rtfilters((RJRKRLRCRu(((RRrs  tFilterercBs2tZdZdZdZdZdZRS(s[ A base class for loggers and handlers which allows them to share common code. cCs g|_dS(sE Initialize the list of filters to be an empty list. N(R$tfilters(R$((RRCscCs(||ijo|ii|ndS(s; Add the specified filter to this handler. N(RuR$Rwtappend(R$Ru((Rt addFilterscCs(||ijo|ii|ndS(s@ Remove the specified filter from this handler. N(RuR$Rwtremove(R$Ru((Rt removeFilter scCs9d}x,|iD]!}|i|p d}PqqW|S(s Determine if a record is loggable by consulting all the filters. The default is to allow the record to be logged; any filter can veto this and the record is then dropped. Returns a zero value if a record is to be dropped, else non-zero. iiN(RNR$RwtfRuRX(R$RXRNR|((RRus  (RJRKRLRCRyR{Ru(((RRvs    tHandlercBs}tZdZedZdZdZdZdZdZ dZ dZ d Z d Z d Zd ZRS( sq Handler instances dispatch logging events to specific destinations. The base handler class. Acts as a placeholder which defines the Handler interface. Handlers can optionally use Formatter instances to format records as desired. By default, no formatter is specified; in this case, the 'raw' message as determined by record.message is logged. cCs]ti|||_d|_tzdt|s    cCsd}tz|ii|oj|i|}t|toI|}t |}||_ ||i|<|i |||i |qn0t |}||_ ||i|<|i |WdtX|S(s Get a logger with the specified name (channel name), creating it if it doesn't yet exist. This name is a dot-separated hierarchical name, such as "a", "a.b", "a.b.c" or similar. If a PlaceHolder existed for the specified name [i.e. the logger didn't exist but a child of it did], replace it with the created logger and fix up the parent/child references which pointed to the placeholder to now point to the logger. N(R5RNRR$RRR#t isinstanceRtphRtmanagert_fixupChildrent _fixupParentsR(R$R#RNR((Rt getLoggerGs(        cCs|i}ti|d}d}x|djo| o|| }|i i |pt ||i |qXqWdS(s Perform any cleanup actions in the logging system (e.g. flushing buffers). Should be called at application exit. N(RthRRdR(R((Rtshutdown)s cCsz tWd||XdS(N(Rtold_exittstatus(RR((Rtexithook@s (QRLRR.R)R!RgR]R`Rt ImportErrorR5RRt __author__t __status__t __version__t__date__RAtsept__file__RtlowerR/RRR R;RR tFATALR R RR RRRRRRRRRRRRSRnRlRrRvRRR}RRRRRRRRRRRRRRRRRRRRRRRRRtatexittregistertexitR(BR]RRR RRvRRR}RRRRSRRRrR RRRRRRR R)RRRRRR RgRnR;RRRRRRRRRRRRRRlRRRRRRR`RRRRRRRR!RR.RR((Rt?s?          {   U  *%,2  U    6           c!@sdZdkZdkTddddddd d d d d ddddddddddddddddddd d!d"d#g!Zd$Zd%Zd&Zd$Zd'Zd$Z dZ d(Z d)Z d*Zd+Zd,Zd-Zd.Zd/Zd0Zd1Zd2Zd3Zd4Zd5Zd6Zd7Zd8Zd9Zd:Zd;Zd<Z d=Z!d>e"fd?YZ#d@Z$dAZ%dBZ&dCZ'e(Z)dS(Ds7Pathname and path-related operations for the Macintosh.N(t*tnormcasetisabstjoint splitdrivetsplittsplitexttbasenametdirnamet commonprefixtgetsizetgetmtimetgetatimetgetctimetislinktexiststlexiststisdirtisfiletwalkt expandusert expandvarstnormpathtabspathtcurdirtpardirtseptpathseptdefpathtaltseptextseptdevnulltrealpathtsupports_unicode_filenamest:s::t.s sDev:NullcCs |iS(N(tpathtlower(R$((t/usr/lib/python2.4/macpath.pyRscCsd|jo|ddjS(sReturn true if a path is absolute. On the Mac, relative paths begin with a colon, but as a special case, paths with no colons at all are also relative. Anything else is absolute (the string up to the first colon is the volume name).R"iN(ts(R'((R&RscGs|}x|D]}| p t|o |}q n|d djo|d}nd|jod|}n|ddjo|d}n||}q W|S(NiR"i(R'R$tpttR(R'R(R)R$((R&R's cCsd|jod|fSnd}x9tt|D]%}||djo|d}q4q4W||d ||}}|od|jo|d}n||fS(sSplit a pathname into two parts: the directory leading up to the final bit, and the basename (the filename, without colons, in that directory). The result (s, t) is such that join(s, t) yields the original argument.R"tiiN(R'tcolontrangetlentiR$tfile(R'R.R+R/R$((R&R7s cCsI|id}||idjo|dfSn|| ||fSdS(sSplit a path into root and extension. The extension is everything starting at the last dot in the last pathname component; the root is everything before that. It is always true that root + ext == p.R#R"R*N(R(trfindR.(R(R.((R&RFs cCs d|fS(s@Split a pathname into a drive specification and the rest of the path. Useful on DOS/Windows/NT; on the Mac, the drive is always empty (don't use the volume name -- it doesn't have the same syntactic and semantic oddities as DOS drive letters, such as there being a separate current directory per drive).R*N(R((R(((R&RSscCst|dS(Ni(RR'(R'((R&R_scCst|dS(Ni(RR'(R'((R&R`scCsBt|ptSnt|}t|djo|ddjS(NiiR*(RR'tFalseRt componentsR-(R'R2((R&tismountbs  cCs=yti|}Wntij o dSnXt|iS(s<Return true if the pathname refers to an existing directory.iN(toststatR'tstterrortS_ISDIRtst_mode(R'R6((R&Rhs  cCsti|iS(s1Return the size of a file, reported by os.stat().N(R4R5tfilenametst_size(R:((R&R tscCsti|iS(sCReturn the last modification time of a file, reported by os.stat().N(R4R5R:tst_mtime(R:((R&R xscCsti|iS(s=Return the last access time of a file, reported by os.stat().N(R4R5R:tst_atime(R:((R&R |scCs6y$dk}|ii|ddSWn tSnXdS(s6Return true if the pathname refers to a symbolic link.Nii(t Carbon.FiletCarbontFiletResolveAliasFileR'R1(R'R?((R&Rs  cCs=yti|}Wntij o tSnXt|iS(s?Return true if the pathname refers to an existing regular file.N(R4R5R'R6R7R1tS_ISREGR9(R'R6((R&Rs  cCsti|iS(s:Return the creation time of a file, reported by os.stat().N(R4R5R:tst_ctime(R:((R&R scCs4yti|}Wntij o tSnXtS(sDTest whether a path exists. Returns False for broken symbolic linksN(R4R5R'R6R7R1tTrue(R'R6((R&Rs  cCs4yti|}Wntij o tSnXtS(sCTest whether a path exists. Returns True for broken symbolic linksN(R4tlstatR$R6R7R1RD(R$R6((R&Rs  cCs|pdSn|d}xl|D]d}x[tt|D]G}||d ||d jo$|| }|djodSnPq9q9Wq W|S(sGGiven a list of pathnames, returns the longest common leading componentR*iiN(tmtprefixtitemR,R-R.(RFR.RHRG((R&R s    cCs|S(sEDummy to retain interface-compatibility with other operating systems.N(R$(R$((R&RscCs|S(sEDummy to retain interface-compatibility with other operating systems.N(R$(R$((R&Rst norm_errorcBstZdZRS(sPath cannot be normalized(t__name__t __module__t__doc__(((R&RIs cCsd|jo d|Sn|id}d}x|t|djon||djoO||ddjo:|djo ||d|d5|d}qtdq1|d}q1Wdi|}|ddjo8t|djo%|dt|jo|d }n|S(sLNormalize a pathname. Will return the same result for equivalent paths.R"iR*s+Cannot use :: immediately after volume nameiiN(R'RtcompsR.R-RIR(R'R.RM((R&Rs"  &  ;cCsyti|}Wntij o dSnX||||xL|D]D}t||}t |o"t | ot |||qGqGWdS(sIDirectory tree walk with callback function. For each directory in the directory tree rooted at top (including top itself, but excluding '.' and '..'), call func(arg, dirname, fnames). dirname is the name of the directory, and fnames a list of the names of the files and subdirectories in dirname (excluding '.' and '..'). func may modify the fnames list in-place (e.g. via del or slice assignment), and walk will only recurse into the subdirectories whose names remain in fnames; this can be used to implement a filter, or to impose a specific order of visiting. No semantics are defined for, or required of, arg, beyond that arg is always passed to func. It can be used, e.g., to pass a filename pattern, or a mutable object designed to accumulate statistics. Passing None for arg is common.N( R4tlistdirttoptnamesR7tfunctargtnameRRRR(RORQRRRSRP((R&Rs  cCs0t|ptti|}nt|S(sReturn an absolute path.N(RR$RR4tgetcwdR(R$((R&Rs cCst|}y dk}Wntj o |SnX|p|Sn|id}|dd}x@|dD]4}t||}|i i |ddi }qjW|S(NR"ii( RR$R>R?t ImportErrorRR2tcRR@tFSResolveAliasFilet as_pathname(R$RVR2R?((R&R s    #(*RLR4R5t__all__RRRRRRtNoneRRRRRRRRRRR3RR R R RRR RRR RRt ExceptionRIRRRR R1R!(%RRRRRRRRRR RRRRIRYRR!R RRRRR R RRR RRRR RRR3RRR4((R&t?sL i                c@sddZdkZdkZddgZdZdZdZdZedjo endS( sqMacintosh-specific module for conversion between pathnames and URLs. Do not import directly; use urllib instead.Nt url2pathnamet pathname2urlcCsti|d}|o|djo tdn|d djo|d}n|d djo tdn|id}d}x|t|jo||d jo ||=q||d joB|djo5||d djo ||d |d 5|d }q||d jo-|djo ||d d jo ||=q|d }qW|dpd i |d }nZd}x=|t|jo)||d jod ||<|d }qWd d i |}ti |S(s{OS-specific conversion from a relative URL of the 'file' scheme to a file system path; not recommended for general use.itfiles(Cannot convert non-local URL to pathnameis///is//t/t.s..itt:N(Rs..( turllibt splittypetpathnamettpt RuntimeErrortsplitt componentstitlentjointrvtunquote(R RRR R ((t!/usr/lib/python2.4/macurl2path.pyR s:   33  $ cCsd|jo tdn|id}|ddjo |d=n|ddjo |d=nx9tt|D]%}||djod|| %rsdrive:s drive:dir:sdrive:dir:files drive:fileRs:files:dir:s :dir:file(turlRRR(RR((RttestOs t__main__( t__doc__RRt__all__RRRRt__name__(R!RRRRRR((Rt?s    *    c@szdZdkZeidiZeidiZeidZeidZeidZ[dfdYZ dS( sShared support for scanning document type declarations in HTML and XHTML. This module is used as a foundation for the HTMLParser and sgmllib modules (indirectly, for htmllib as well). It has no documented public API and should not be used directly. Ns[a-zA-Z][-_.a-zA-Z0-9]*\s*s(\'[^\']*\'|"[^"]*")\s*s--\s*>s ]\s*]\s*>s]\s*>t ParserBasecBstZdZdZdZdZdZdZdZdZ dd Z dd Z d Z d Z d ZdZdZdZdZRS(siParser base class which provides some common support methods used by the SGML/HTML and XHTML parsers.cCs$|itjotdndS(Ns(markupbase.ParserBase must be subclassed(tselft __class__Rt RuntimeError(R((t /usr/lib/python2.4/markupbase.pyt__init__scCstddS(Ns.subclasses of ParserBase must override error()(tNotImplementedError(Rtmessage((Rterror!scCsd|_d|_dS(Nii(Rtlinenotoffset(R((Rtreset%s cCs|i|ifS(s&Return current line number and offset.N(RR R (R((Rtgetpos)scCs||jo|Sn|i}|id||}|o:|i||_|id||}||d|_ n|i |||_ |S(Ns i( titjRtrawdatatcounttnlinesR trindextposR (RR RRRR((Rt updatepos1s  tc Csz|i}|d}|||!djp td|||d!djodSnt|}|||d!djo|i|Sn;||d jo|i|Sn|i ||\}}|d jo|Sn|d jo d|_ nx||jov||}|d joH||d|!} |d jo|i| n|i| |dSn|d jo.t||}|pdSn|i}n|djo|i ||\}}n||i jo|d}n}|d joZ|d jo|i|d|}q\|djo|id|q\|idn|id|||d jo|SqqWdS(Niss"'t4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZtattlisttlinktypetlinktelements&unsupported '[' char in %s declarations"unexpected '[' char in declarations!unexpected %r char in declaration(RR(RRslinkR(RRR RtAssertionErrortlentnt parse_commenttparse_marked_sectiont _scan_nametdecltypet_decl_othercharstctdatat handle_declt unknown_declt_declstringlit_matchtmtendtnamet_parse_doctype_subsetR( RR R'R%R.RR,R!RR(((Rtparse_declarationAsV                   icCs|i}|||d!djp td|i|d|\}}|djo|Sn|djoti||d}nD|djot i||d}n|i d ||d|!|pdSn|o+|i d}|i||d|!n|idS(NisR9RRR<((RR#s  "   cCs|i}|||d!djo|idnti||d}|pdSn|o+|id}|i ||d|!n|i dS(Nis