MZ@ !L!This program cannot be run in DOS mode. $h'!,FO,FO,FO񹜫-FO񹂫:FO1-FO񹁫FO,FN]FO1#FO񹀫kFO񹅫-FO񹆫-FO񹃫-FORich,FOPELb.R"!  > x/P   @? L 8>` $e`8V@ .texta=> `.dataTP@B@.idata @@.rsrc @@.reloc`(` *" @B`_` `@`K`W`c`C]*b.R @W@Kb.R `W`K4ƻ4`ESP&`@UuoChildEBP RetAddr Caller, Callee ESP/REG Object Name eaxebxecxedxesiediebpד 4`ChildFP RetAddr Caller, Callee SP/REG Object Name r0r1r2r3r4r5r6r7r8r9r10r11r12lrsp{36PrM_.         ! I)"#))))"!a11))i92311999991q9y2rqqyyyyr qyy99yq     ) 9   ) y 9       - 3 33              #         !    "       %sCommand cancelled at the user's request. ...%02X | %04X EAXECXEDXEBXEBPESIEDI  method size = %04X prolog size = %2u epilog size = %2u epilog count = %2u yesno epilog end = %s callee-saved regs = EDI ESI EBX EBP ebp frame = %s fully interruptible= %s double align = %s arguments size = %2u DWORDs stack frame size = %2u DWORDs untracked count = %2u var ptr tab count = %2u security check obj = yes exception handlers = yes localloc = yes edit & continue = yes profiler callbacks = yes varargs = yes EBP-ESP+ GuardStack cookie = [%s%u] Sync region = [%u,%u] epilog #%2u at %04X epilog at %04X argTabOffset = %x [E%cP-%02XH] [E%cP+%02XH] byrefpinned an untracked %s%s local ..BP-SP+ [E%s%02XH] a thisbyref %s%s pointer livedead reg %s becoming %s 'this' (iptr) pop %2d args (%d)ptrs push ptr %2d (%d) push non-ptr (%d) kill args %2d Unexpected special code %04X thisptr in EDI ESI EBX call [ EDI%cESI%cEBX%c] ptrArgs=[i%u%s ]] argMask=%02X (iargs=%02X) push push %d pop %d call %d [ EBP%c argOffs(%d) = %4X argMask=%02X iptrMask = %02X thisptr in %s %s %4d >>> %s:%d retjmpqword ptr [dword ptr [qword ptr ds:[dword ptr ds:[0xoffset ...EHHandler %d: %s HANDLER END EHHandler %d: %s CLAUSE END EHHandler %d: %s HANDLER BEGIN catch(%S) EHHandler %d: %s CLAUSE BEGINEHHandler %d: %s FILTER BEGIN %p %s (MethodDesc %s +%#x %S)%s)+%#x [%s:%d] (stub for %S)%s (MethodDesc %s %S) (JitHelp: %s)Current frame: , calling ====> Exception Code %x cxr@%p exr@%pMethod info block: Pointer table: ntdllPEBLdr Unable to read PEB_LDR_DATA address at %p PEB_LDR_DATAInMemoryOrderModuleList Unable to read InMemoryOrderModuleList address at %p LDR_DATA_TABLE_ENTRYInMemoryOrderLinksFullDllNameDllBaseSizeOfImage Unable to read FullDllName address at %p exception during reading PEB Statistics: String ValueTotalSizeCount%8s %12s %s Class NameMT%8s %8s %12s %s %8d %12u "%S" %s %8d %12u Free%9s UNKNOWN%S Total %d objects generation %d starts at 0x%p ephemeral segment allocation context: (0x%p, 0x%p) none Error requesting heap segment %p %p %p %p 0x%I32x(%I32d) segment begin allocated size Large object heap starts at 0x%p Skipping allocation context: [%#p-%#p) bad object: %#p - bad MT %#p generation %d has %d finalizable objects (%p->%p) Finalizable but not rooted: Ready for finalization %d objects curr_object: %p > heap_segment_allocated (seg: %p) Last good object: %p curr_object: %p > end_youngest: %p Last good object: %s curr_object: %s ---------------- Error requesting gc heap details Error requesting GC Heap data Failed to get GCHeaps: integer overflow error Failed to get GCHeaps Error requesting details Traversing a gc heap failed Failed to retrieve segments for gc heap More than %d heap segments, there must be an error strike: Failed to store segment Object %p has no generation %p(%x:%x) Size: 0x%I32x (%I32lu) bytes total, 0x%I32x (%I32lu) bytes wasted. Unable to get JIT info Unable to get array of JIT Managers Error getting EEJitManager code heaps Unable to get code heap info LoaderCodeHeap: HostCodeHeap: %p Unknown Jit encountered, ignored Total size: IndcellHeap: LookupHeap: ResolveHeap: DispatchHeap: CacheEntryHeap: Unable to get information for %s. -------------------------------------- %s:LowFrequencyHeap: HighFrequencyHeap: StubHeap: Virtual Call Stub Heap: Unable to read module %p Module %s: Total size: vector too long" P`P@`Pclr<unknown>%s(Unhandled CorElementType: 0x%x)structclass%svoidboolcharsigned bytebyteshortunsigned shortintunsigned intlongunsigned longfloatdoubleobjectstringIntPtrUIntPtr<unknown>[,]&<>%dSystem.EnumSystem.ObjectSystem.ValueTypethisparam_%dlocal_%d GetFrameContext failed: %lx #g6DK~LBOE>:Las/^z閏F :ĠI&(΄E~gi1:HogPrp:ݯDOV?,kO, OC'ĄMDʠN(g99V'GOdhQ^nA$$RRRRRRRRRRRRRRR@ @0`np"0 @SOS does not support the current target architecture. SOS failure! SOS failure---------------------------------------------------------------------------- The user dump currently examined is a minidump. Consequently, only a subset of sos.dll functionality will be available. If needed, attaching to the live process or debugging a full dump will allow access to sos.dll's full feature set. To create a full user dump use the command: .dump /ma ---------------------------------------------------------------------------- SOS: Failed to register callback events Failed to find runtime DLL (clr.dll), 0x%08x Extension commands need clr.dll in order to have something to do. Failed to load data access DLL, 0x%08x Verify that 1) you have a recent build of the debugger (6.2.14 or newer) 2) the file mscordacwks.dll that matches your version of clr.dll is in the version directory or on the symbol path 3) or, if you are debugging a dump file, verify that the file mscordacwks___.dll is on your symbol path. 4) you are debugging on supported cross platform architecture as the dump file. For example, an ARM dump file must be debugged on an X86 or an ARM machine; an AMD64 dump file must be debugged on an AMD64 machine. You can also run the debugger command .cordll to control the debugger's load of mscordacwks.dll. .cordll -ve -u -l will do a verbose reload. If that succeeds, the SOS command should work on retry. If you are debugging a minidump, you need to make sure that your executable path is pointing to clr.dll as well. { =========== BEGINGC %d, (requested generation = %lu, collect_classes = %lu) ========== GC Root %p RELOCATED %p -> %p MT = %pT GCHeap::Promote: Promote GC Root *%p = %p MT = %pT GC_HEAP RELOCATING Objects in heap within range [%p %p) by -0x%x bytes RelocsPromotesGCCount%8s %8s %8s ----------------------------------- %8d %8d %8d Root %p promoted multiple times in gc %d Root %p relocated multiple times in gc %d No duplicate promote or relocate messages found in the log. !Root NotesPromoted?Value%8s %8s %8s %9s %20s --------------------------------------------------------- %8d %p %p %9s promote/reloc records in error Duplicate promote/relocsError: There is a promote record for root %p, but no relocation record ... !ObjSearch MessageObject%8s %8s %40s %8d %p Promotion for root %p (MT = %p) NEWVALUEPREVVALUERelocation %s for root %p !object Roots%p, differing reloc values for this object! Unable to find stress log via DAC Attempting to read Stress log SUCCESS: GCHist structures initialized No Stress log in the image, GCHist commands unavailable FAILURE: Stress log unreadable Completed successfully. <error>0lUser interrupt.weak shortweak longstrongpinnedref counteddependentasync pinnedsized refunknownFailed to walk dependent handles. GCRoot may miss paths. Error walking dependent handles. GCRoot may miss paths. %p %S (dependent handle) -> %p %S%s unknown typeHandle (%s): %p -> %p: %d (0x%x) bytes (%S) Thread %x (%S): %S: %d (0x%x) bytes (%S) HandleTable: %p (%s handle) -> %p %S%s Thread %x: %p %p %S %p %S %S -> %p %S%s Finalizer Queue: %p Older Generation: Error requesting gc heap analyze data Failed to gather needed data, possibly due to memory contraints in the debuggee. To try again re-issue the !FindRoots -gen command. internal_root_array = %#p internal_root_array_index = %#p Failed to get GCHeaps: integer overflow Error requesting gc heap analyze data for heap %p Error requesting heap data. Error requesting heap data for heap %d. Failed to walk thread %x Failed to walk the HandleTable! Failed to request more handles.Failed to request number of entries.Failed to read GCDesc for MethodTable %p. Failed to enumerate GC handles. HRESULT=%x. Buffer overflow while enumerating handles. %s Error getting card table lowest address Error getting next card table Error reading card bits Failed to read card table entry. object %s: bad member %p at %p object %s contains free object %p at %p object %s:%s missing card_table entry for %p object %s: size %d too small Error requesting heap segment %p. Error during heap traverse tracing roots... Walking heap... &amp;&quot;"&apos;'&lt;&gt; t %d 0 %S n %d 1 %d %d ! 1 0x%p %d o 0x%p %d %d dependentHandle="1" 0x%p r 0x%p Failed to enumerate threads in the process. stack.handle Last good object: %p. Object %s has a bad GCDesc.Object %s: Failed to read members.object %s: bad member %p at %pobject %s contains free object %p at %pObject %s: %s missing card_table entry for %pObject %s: Bad member %p at %p. Object %s contains free object %p at %p.Object %s:%s missing card_table entry for %pObject %s: Size %d is too small.Object %s is too large. End of segment at %p.string too longinvalid string positionlist too longOEndVoidBooleanCharI1UI1I2UI2I4UI4I8UI8R4R8StringPtrByRefValueClassClassCopyCtorMDArrayGENArrayTypedByRefVALUEARRAYIURFNPTRObjectSZArrayGENERICArrayCMOD_REQDCMOD_OPTINTERNAL[DEFAULT][C][STDCALL][THISCALL][FASTCALL][VARARG][FIELD][LOCALSIG][PROPERTY][UNMANAGED].Unsupported token type Dynamic Module in Unknown Module mdToken: %08x (%ws)Unable to get IMetaDataImport for module %p ERROR IN SIGNATURE: Signature should be larger. ERROR IN SIGNATURE: Not all of signature blob was consumed. %d byte(s) remain ERROR!! Bad signature blob value! [hasThis] [explicit] ()NoName[InvalidReference]<ELEMENT_TYPE_SENTINEL> PINNED __Canon[explicit] [hasThis] MT tNxN|NNNNNNNNNNNNNNNNNNMOTRTDFDMDPAIIMRCAPESGEVPRMORTSASARFLETMARnopbreakldarg.0ldarg.1ldarg.2ldarg.3ldloc.0ldloc.1ldloc.2ldloc.3stloc.0stloc.1stloc.2stloc.3ldarg.sldarga.sstarg.sldloc.sldloca.sstloc.sldnullldc.i4.m1ldc.i4.0ldc.i4.1ldc.i4.2ldc.i4.3ldc.i4.4ldc.i4.5ldc.i4.6ldc.i4.7ldc.i4.8ldc.i4.sldc.i4ldc.i8ldc.r4ldc.r8unusedduppopcallcallibr.sbrfalse.sbrtrue.sbeq.sbge.sbgt.sble.sblt.sbne.un.sbge.un.sbgt.un.sble.un.sblt.un.sbrbrfalsebrtruebeqbgebgtblebltbne.unbge.unbgt.unble.unblt.unswitchldind.i1ldind.u1ldind.i2ldind.u2ldind.i4ldind.u4ldind.i8ldind.ildind.r4ldind.r8ldind.refstind.refstind.i1stind.i2stind.i4stind.i8stind.r4stind.r8addsubmuldivdiv.unremrem.unandorxorshlshrshr.unnegnotconv.i1conv.i2conv.i4conv.i8conv.r4conv.r8conv.u4conv.u8callvirtcpobjldobjldstrnewobjcastclassisinstconv.r.ununboxthrowldfldldfldastfldldsfldldsfldastsfldstobjconv.ovf.i1.unconv.ovf.i2.unconv.ovf.i4.unconv.ovf.i8.unconv.ovf.u1.unconv.ovf.u2.unconv.ovf.u4.unconv.ovf.u8.unconv.ovf.i.unconv.ovf.u.unboxnewarrldlenldelemaldelem.i1ldelem.u1ldelem.i2ldelem.u2ldelem.i4ldelem.u4ldelem.i8ldelem.ildelem.r4ldelem.r8ldelem.refstelem.istelem.i1stelem.i2stelem.i4stelem.i8stelem.r4stelem.r8stelem.refldelemstelemunbox.anyconv.ovf.i1conv.ovf.u1conv.ovf.i2conv.ovf.u2conv.ovf.i4conv.ovf.u4conv.ovf.i8conv.ovf.u8refanyvalckfinitemkrefanyldtokenconv.u2conv.u1conv.iconv.ovf.iconv.ovf.uadd.ovfadd.ovf.unmul.ovfmul.ovf.unsub.ovfsub.ovf.unendfinallyleaveleave.sstind.iconv.uprefix7prefix6prefix5prefix4prefix3prefix2prefix1prefixrefarglistceqcgtcgt.uncltclt.unldftnldvirtftnldargldargastargldlocldlocastloclocallocendfilterunaligned.volatile.tail.initobjconstrained.cpblkinitblkrethrowsizeofrefanytypereadonly.illegalendmaccodelabel%S<unknown type def><unknown type ref><unknown field def>%S::%S<unknown method def><unknown member ref><Invalid record><unknown type spec><unknown type token>%S::%S error decoding IL ilAddr = %p Failed to read memory %*s.try %*s{ %*s} // end .try %*s.finally %*s{ %*s.catch %*s{ %*s} // end .finally %*s} // end .catch %*sIL_%04x: VAR OR ARG %d%d%fIL_%04x%ldTOKEN %x"%S"STRING %x(, )Error, unexpected opcode type m_handle%x "%S"%x (%p)m_value%x %S%x ""voidboolcharint8uint8int16uint16int32uint32int64uint64float32float64native uintnative intobjectstringtypedrefvaluetype class [ERROR! NIL TOKEN][][BAD: RANK == 0!]method METHOD<[> pinned*&/* UNKNOWN TYPE (0x%X)*/[*] [ERROR: INVALID TOKEN 0x%8.8X] [ERROR: Invalid TypeRef record 0x%8.8X] [ERROR: Invalid TypeDef record 0x%8.8X] $%s$%X%s..module [ERROR: Invalid token 0x%8.8X] [ERROR: INVALID TOKEN TYPE 0x%8.8X] token_0x%8.8X 0lCould not read address %p.Object %p is misaligned.Failed to get header for object %p.Object %s has an invalid method table.Failed to request object data for %s.Could not request method table data for object %p (MethodTable: %p).<Unloaded Type>Attempt to move past the end of the iterator.Failed to get size of object.Failed to request GCDesc.Could not request segment data at %p.Failed to request segment data at %p.Failed to request GC heap data.Failed to get GCHeaps: Integer overflow.Failed to get GCHeaps.Failed to get GC heap details at %p.Failed to request GC details data.Failed to request SyncBlk at index %d.%s[]%s: "%s"<invalid object: '%s'>StressLog TaskSwitch Marker BAD TIMEHH:mm:ssLF_GCLF_GCINFOLF_STUBSLF_JITLF_LOADERLF_METADATALF_SYNCLF_EEMEMLF_GCALLOCLF_CORDBLF_CLASSLOADERLF_CORPROFLF_REMOTINGLF_DBGALLOCLF_EHLF_ENCLF_ASSERTLF_VERIFIERLF_THREADPOOLLF_GCROOTSLF_INTEROPLF_MARSHALERLF_IJWLF_ZAPLF_STARTUPLF_APPDOMAINLF_CODESHARINGLF_STORELF_SECURITYLF_LOCKSLF_BCLLF_ALWAYS`ALL``%4x %13.9f : %-20s (MethodDesc: %p) (BAD Method)UNKNOWN METHODDESC (%S)(MethodTable: %p) Low Bit(s) Set (BAD MethodTable) (%s) (Unknown VTable) (%s (Unknown function)(#Could not read address of string#)(#Could not read address of string#)----- No thread logs in the image: The stress log was probably not initialized correctly. ----- Writing to file: %s Stress log in module 0x%p Stress log address = 0x%p ReadVirtual failed with code hr = %x. Invalid stress log chunk: %pwSTRESS LOG: facilitiesToLog = 0x%x levelToLog = %d MaxLogSizePerThread = 0x%x (%d) MaxTotalLogSize = 0x%x (%d) CurrentTotalLogChunk = %d ThreadsWithLogs = %d Clock frequency = %5.3f GHz Start time %S Last message time %S Total elapsed time %5.3f sec THREAD TIMESTAMP FACILITY MESSAGE ID (sec from start) -------------------------------------------------------------------------------------- ----- Interrupted by user ----- Could not read address of format stringTask was switched from %x ------------ Last message from thread %x ----------- ---------------------------- %d total entries ------------------------------------ eAcXb4~$E{d`h h4hLhdh xh@hhhhhhh h@i(iDiTihitii i@iiiiiij $j@0j@jLjjjjjk k8k`k|kklHl7@@AThread Abort RequestedGC Suspend PendingUser Suspend PendingDebug Suspend PendingGC On TransitionsLegal to JoinYield RequestedHijacked by the GCBlocking GC for Stack OverflowBackgroundUnstartedDeadCLR OwnsCoInitializedIn Single Threaded ApartmentIn Multi Threaded ApartmentReported DeadFully initializedTask ResetSync SuspendedDebug Will SyncStack Crawl NeededSuspend UnstartedAbortedThread Pool Worker ThreadInterruptibleInterruptedCompletion Port ThreadAbort InitiatedFinalizedFailed to StartDetachedThere was no managed OOM due to allocations on the GC heapThis is likely to be a bug in GCDidn't have enough memory to commitDidn't have enough memory to allocate an LOH segmentLow on memory during GCCould not do a full GCThere was no failure to allocate memoryFailed to reserve memoryDidn't have enough memory to commit beginning of the segmentDidn't have enough memory to commit the new ephemeral segmentDidn't have enough memory to grow the internal GC datastructuresDidn't have enough memory to commit the internal GC datastructures5DG q%-*.*s%*.*s%-*.*S%*.*Sdisabledenabled10Current mode: %s - unsafe minidump commands are %s. Mode must be 0 or 1 Unsafe minidump commands are %s. This command is not supported in a minidump without full memory To try the command anyway, run !MinidumpMode 0 /d%s is not IP Failed to request MethodData, not in JIT code range MethodDesc: %s Source file: %s @ %d TEB information is not available so a stack size of 0xFFFF is assumed Wrong option: stack selection wrong Some functionality may be impaired -EE-nOS Thread Id: 0x%x (%d) -shortFailed to request ThreadStore Failed to request Thread at %p --------------------------------------------- Thread %3d wrong option: %s Unable to determine bounds of gc heap -verifym_resolverm_codem_scopem_tokens_items/iMust pass a valid expression Unable to build snapshot of the garbage collector state %p is not a MethodDesc Unable to print IL for DynamicMethodDesc %p Unable to get module bad import error in import FindIL failed Error gathering dynamic info from object at %s. Not enough memory to read IL This is dynamic IL. Exception info is not reported at this time. If a token is unresolved, run "!do " on the addr given in parenthesis. You can also look at the token table yourself, by running "!DumpArray %p". Invalid signature Out of memory !DumpSig Invalid parameters %s %s !DumpSigElem Missing EEClass address Invalid EEClass address EEClass has an invalid MethodTable address Class Name: %S mdToken: %p File: %S Parent Class: %s Module: %s Method Table: %s Vtable Slots: %x Total Method Slots: %x Class Attributes: %x Interface, Abstract, ComImport, Transparency: %s NumInstanceFields: %x NumStaticFields: %x NumThreadStaticFields: %x ContextStaticOffset: %x ContextStaticsSize: %x -MDMissing MethodTable address is not a MethodTable Free MethodTable EEClass:Module:Name:mdToken:File:BaseSize:ComponentSize:Slots in VTable:Number of IFaces in IFaceMap:MethodDesc Table NameJITMethodDescEntry Invalid object Free Object Size: %I32d(0x%I32x) bytes RCW: %s CCW: %s System.RuntimeTypeSystem.RuntimeType+RuntimeTypeCachem_runtimeTypeError when reading RuntimeType field Array: Rank %d, Number of elements %I32d, Type %s (Print Array)dwdbContent: Content: String: Object None ThinLock owner %x (%p), Recursive %x [%d]-start-length-details-nofieldsInvalid parameter %s Not an array, please use !DumpObj instead For multi-dimension array, length and start index are supported Start index out of range -nofields has no effect unless -details is specified Name: %S[,] Array: Rank %d, Number of elements %I32d, Type %s Element Methodtable: %s Integer overflow on array rank Failed to read lower bounds info from the array Failed to read bounds info from the array interrupted by user Failed to read element at %s null -refsGC Refs: offsetSystem.Security.SecurityException SP IP Function _xcode_HResult %S %S [%s @ %d] Not a valid exception object Exception object: %s Exception type: %S Exception type: _messageMessage: _innerExceptionInnerException: %S, Use !PrintException %p to see more. Use !PrintException %p to see more. _stackTraceStackTrace (generated): Unable to decipher generated stack trace _stackTraceStringStackTraceString: HResult: %lx m_debugStringSecurityException Message: -nested-lines-lIn order for the option -lines to enable display of source information the debugger must be configured to load the line number information from the symbol files. Use the ".lines; .reload" command to achieve this. The current thread is unmanaged There is no current managed exception on this thread Invalid exception object %s There are nested exceptions on this thread. Run with -nested for details Error retrieving nested exception info %p Nested exception ------------------------------------------------------------- Usage: !DumpVC Not a managed object Missing RCW address Invalid RCW %s Error requesting RCW data Managed object: %s Creating thread: %p IUnknown pointer: %p COM Context: %p Managed ref count: %d IUnknown V-table pointer : %p (captured at RCW creation time) IsDCOMProxy IsUnique IsFreeThreaded IsJupiterObject IsContained IsAggregated SupportsIInspectable IsDisconnected Flags: %s%s%s%s%s%s%s%s IJupiterObject: %p COM interface pointers: Error requesting COM interface pointers ContextIP%8s %8s %8s Type %p %p %s %S Missing CCW address Invalid CCW %s Error requesting CCW data CCW: %p Managed object: %s Outer IUnknown: %p (NEUTERED)Ref count: %d%s IsExtendsCOMObject Flags: %s%s CLR Jupiter , Pegged byJupiter ref count: %d%s%s%s%s (STRONG) (WEAK)RefCounted Handle: %p%s Type%8s %8s Type IDispatch/IUnknown%p %s %S The garbage collector data structures are not in a valid state for traversal. It is either in the "plan phase," where objects are being moved around, or we are at the initialization or shutdown of the gc heap. Commands related to displaying, finding or traversing objects as well as gc heap segments may not work properly. !dumpheap and !verifyheap may incorrectly complain of heap consistency errors. -gc-loaderUnable to get AppDomain information Loader Heap: System DomainShared DomainUnable to get the array of all AppDomains. Domain %dJit code heap: Failed to request module list. Module Thunk heaps: Module Lookup Table heaps: Total LoaderHeap size: ======================================= Number of GC Heaps: %d Total Size: Failed to get GCHeaps: integer overflow ------------------------------ Heap %d (%p) Heap Size: GC Heap Size: printsortException occurred while trying to %s the GC stats. -xmlusage: HeapTraverse [-xml] filename Unable to open file Assuming a uncorrupted GC heap. If this is a crash dump consider -verify option XmlCLRProfilerWriting %s format to file %s Gathering types... Error initializing heap traversal Unable to write heap report file %s saved Error getting System.RuntimeType.m_handle offset Shared %8sSystem %s? %s %S DomainAddress%8s %8s %8s Type Name ------------------------------------------------------------------------------ -mt-type-stat-strings-thinlock-min-max-live-deadFailed to parse command line arguments.Cannot specify both -mt and -typeCannot specify both -live and -dead.wrong argumentIn a minidump without full memory, most gc heap structures will not be valid. If you need this functionality, get a full memory dump with ".dump /ma mydump.dmp" SyncBlock %d corrupted, points to invalid object %p Failed to get object header for object %p while inspecting syncblock at index %d. Object header for %p should have a SyncBlock index of %d. Size Free %s %s %8d%s %s %s %8d ThinLock owner %x (%p) Recursive %x Found %d objects. Fragmented blocks larger than 0.5 MB: Followed byAddr%8s %8s %16s %p %6.1fMB %p %S No heap corruption detected. Managed OOM occured after GC #%d (Requested to allocate %d bytes) %s, please contact PSS Reason: %s LOHSOHDetail: %s: %s (%d bytes) - on GC entry available commit space was %d MBGC Heap not initialized yet. Error requesting OOM data Heap %d: Error requesting OOM data ---------Heap %#-2d--------- object %#p does not have valid method table object %#p is a valid object %S %s %12d (0x%x) %S Usage: !ListNearObj Address %p does not lie in the managed heap Failed to find the segment of the managed heap where the object %p resides Before: Before: couldn't find any object between %#p and %#p Current:After: After: couldn't find any object between %#p and %#p Heap local consistency confirmed. Heap local consistency not confirmed. -inclUnrooted-iuGen2Gen1Gen0Heap%-8s %12s %12s %12s %12s Heap%-4d %12I32u %12I32u %12I32u %12I32u Free space: Percentage Heap%-4d %12I32u %12I32u %12I32u %12I32uSOH:%3d%% LOH:%3d%% Unrooted objects: Percentage Total %12I32u %12I32u %12I32u %12I32u -allError requesting SyncBlk data Index SyncBlock MonitorHeld Recursion Owning Thread Info SyncBlock Owner , continuing...SyncBlock %d is invalid%s %5d %p %11d %9d orphaned XXX none %8d %s %S----------------------------- Total %d CCW %d RCW %d ComClassFactory %d Free %d RuntimeCallableWrappers (RCW) to be cleaned: THREADCONTEXTRCW%8s %8s %8s Apartment (FreeThreaded)(MTA)(STA)%8p %8p %8p %9s Free-Threaded Interfaces to be released: %d MTA Interfaces to be released: %d STA Interfaces to be released: %d An error occurred while traversing the cleanup list. -detail-allReadySyncBlocks to be cleaned by the finalizer thread: ComClassFactoryCCWSyncBlock%8s %8s %8s %8s %8p %8p %8p %8p SyncBlocks to be cleaned up: %d ---------------------------------- Heap %d Statistics for all finalizable objects that are no longer rooted: Statistics for all finalizable objects (including all objects ready for finalization): %s 0x%08x %S Usage: DumpModule [-mt] Fail to fill Module %p Name: %S Attributes: PEFile Reflection SupportsUpdateableMethodsAssembly: %s LoaderHeap: %p TypeDefToMethodTableMap: %p TypeRefToMethodTableMap: %p MethodDefToDescMap: %p FieldDefToDescMap: %p MemberRefToDescMap: %p FileReferencesMap: %p AssemblyReferencesMap: %p MetaData start address: %p (%d bytes) Types defined in this module TypeDef%8s %8s %s Types referenced in this module TypeRef%8s %8s %s Fail to fill AppDomain Shared Domain: %s System Domain: %s Domain %d:%s %s Unable to get system domain info. Unable to get shared domain info Unable to get array of AppDomains Failed to get appdomain %p, error %lx Invalid Assembly %s Fail to fill Assembly Parent Domain: %s Name: %S Name: Unknown MemoryTaskSyncThreadpoolIOCompletionAssemblyGCSecurityThreadCount:UnstartedThread:BackgroundThread:PendingThread:DeadThread: (Hosted Runtime:LockAptGC Alloc ContextGC ModeStateThreadOBJOSIDIDFiberExceptionFailed to request Thread at <<<< XXXX CooperativePreemptive%p:%pSTAMTANTAUkn(Finalizer) (GC) (Threadpool Worker) (Threadpool Completion Port) <Invalid Object> ( (nested exceptions)Failed to retrieve Tls Data index Failed to require current Thread ID Failed to require total thread number Special thread typeFailed to get thread ID for thread Failed to switch to thread Failed to get Teb for Thread Failed to get Tls expansion slots for thread Failed to get CLR Tls data for thread Failed to get thread type info not found for thread GC Timer Gate DbgHelper Shutdown SuspendEE Finalizer ADUnloadHelper ShutdownHelper IOCompletion ThreadpoolWorker Wait ProfilingAPIAttach ProfilingAPIDetach Failed to switch to original thread %s No thread states for '%s'.-specialSpecial thread information is not available in mini dumps. Not supported on mini dumps. Can't get Watson Buckets Watson Bucket parameters: b1: %S b2: %S b3: %S b4: %S b5: %S b6: %S b7: %S b8: %S b9: %S bp %pSetting breakpoint: %s [%S] !bpmd pending breakpoint list Breakpoint index - Location, ModuleID, Method Token %d - %ws!%ws+%d, 0x%p, 0x%08x %d - %ws:%d, 0x%p, 0x%08x %d - %ws, %ws, %p Cleared Invalid pending breakpoint index. All pending breakpoints cleared. SOS error: IXCLRDataModule->GetFileName failed hr=0x%x SOS error: GetClrModuleImages failed hr=0x%x SOS warning: No symbols for module %S, source line breakpoints in this module will not bind hr=0x%x Failed to set code notification (P`1PXJITTED %S!%S Failed to request module address. SOS: warning, optimizations for this module could not be suppressed because this CLR version doesn't support the functionality SOS: warning, optimizations for this module could not be surpressed because an optimized prejitted image was loaded SOS: warning, optimizations for this module could not be surpressed hr=0x%x CLR notification: GC - Performing a gen %d collection. Determined surviving objects... bp /1 %pExpecting first chance CLRN exception Error processing exception notification g!bpmd is not supported on a dump file. -md-nofuturemodule-list-clear-clearallUnable to parse line number Line number must be positive Usage: !bpmd -md Usage: !bpmd [-nofuturemodule] [] Usage: !bpmd : Usage: !bpmd -list Usage: !bpmd -clear Usage: !bpmd -clearall See "!help bpmd" for more details. Error getting MethodDescs for module %p Found %d methods in module %p... MethodDesc = %p %p is not a valid MethodDesc This DynamicMethodDesc is not yet JITTED. Placing memory breakpoint at %p ba w4 /1 %p "bp poi(%p); g"Unable to set breakpoint with IDebugControl::Execute: %x Attempted to run: %s Unable to get method name for MethodDesc %p Adding pending breakpoints... sxe -c "!HandleCLRN" clrn-tiCPU utilization: %d%% Worker Thread: Total: %d Running: %d Idle: %d MaxLimit: %d MinLimit: %d Failed to examine a WorkRequest Work Request in Queue: %d AsyncTimerCallbackCompletion TimerInfo@%p Unknown Function: %p Context: %p Thread Injection History xĪЪWarmupInitializingRandomMoveClimbingMoveChangePointStabilizingStarvationThreadTimedOutUndefined Time Transition New #Threads #Samples Throughput Failed to examine a HillClimbing log entry %8.2lf %-14s %12d %12d %11.2lf Number of Timers: %d Completion Port Thread:Total: %d Free: %d MaxFree: %d CurrentLimit: %dFailed to request ThreadpoolMgr information %p is not a valid object Error getting AppDomain information AppDomain: %s Name: Shared Domain ID: (shared domain) Name: System Domain ID: (system domain) Error getting AppDomain %p. NoneName: %S ID: %d The type is declared in the shared domain and other methods of finding the AppDomain failed. Try running !gcroot %p, and if you find a root on a !gcroot %p, and if you find a root on a stack, check the AppDomain of that stack with !threads. Note that the Thread could have transitioned between multiple AppDomains. Error! integer overflow on numThread 0x%08x ID TEB APT APTId CallerTID Context %3d %4x %p STA MTA NTA Ukn %8x %8x %pEHHandler %d: %s catch(%S) (duplicate)Clause: [%p, %p] [%x, %x] Handler: [%p, %p] [%x, %x] Filter: [%p] [%x] No EH info available Unable to get codeHeader information Failed to perform EHInfo traverse No GC info available entry point %p unknown Jit Normal JIT generated code preJIT generated code GC info %p Could not allocate memory to read the gc info. Could not read memory %p Untracked:-gcinfo-ehinfoUnmanaged code Failed to get method desc for %p. Not jitted yet not a valid MethodDesc Begin %p, size %x. Cold region begin %p, size %x Begin %p, size %x Failed to gather EHInfo data Hot region: Cold region: StressLog.txt-addrclr!StressLog::theLogPlease provide the -addr argument for the address of the stress log, since no recognized runtime is loaded. Attempting to dump Stress log to file '%s' SUCCESS: Stress log dumped No Stress log in the image, no file written FAILURE: Stress log not dumped CLR not loaded %u.%u.%u.%u Checked or debug build retail freeGC Heap not initialized, so GC mode is not determined yet. Server mode with %d gc heaps Workstation mode In plan phase of garbage collection SOS Version: %u.%u.%u.%u retail build!ProcInfo is not supported on a dump file. -env-time-mem--------------------------------------- Environment ProcessParameters_RTL_USER_PROCESS_PARAMETERSEnvironment%dSKernel32.dllGetProcessTimesProcess Times JanFebMarAprMayJunJulAugSepOctNovDecProcess Started at: %4d %s %2d %d:%d:%d.%02d Kernel CPU time : %d days %02d:%02d:%02d.%02d User CPU time : %d days %02d:%02d:%02d.%02d Total CPU time : %d days %02d:%02d:%02d.%02d ntdll.dllNtQueryInformationProcessProcess Memory WorkingSetSize: %8d KB PeakWorkingSetSize: %8d KB VirtualSize: %8d KB PeakVirtualSize: %8d KB PagefileUsage: %8d KB PeakPagefileUsage: %8d KB %ld percent of memory is in use. Memory Availability (Numbers in MB) AvailTotal %8s %8s Physical Memory %8d %8d Page File %8d %8d Virtual Memory %8d %8d Usage: !Token2EE module_name mdToken You can pass * for module_name to search all modules. Module: %s Assembly: %S Usage: !Name2EE module_name item_name or !Name2EE module_name!item_name use * for module_name to search all loaded modules Examples: !Name2EE mscorlib.dll System.String.ToString !Name2EE *!System.String Invalid argument %s Did not find a path from %p to %p. -nostacksInterrupted, data may be incomplete. Found %d roots. Found %d unique roots (run '!GCRoot -all' to see all roots). -brick-cardCouldn't get size for object %#p: possible heap corruption. Address Gen Heap segment begin allocated size %p %d %2d %p %p %p 0x%x(%d) Address Gen Heap segment begin allocated size Address %#p not found in the managed heap. !FindRoots is not supported on a dump file. -genanyIncorrect options. Usage: !FindRoots -gen where N is 0, 1, 2, or "any". OR !FindRoots Your version of the runtime/DAC do not support this command. The command !FindRoots can only be used after the debugger stopped on a CLRN GC notification. At this time !GCRoot should be used instead. Address %#p is not in the managed heap. Object %s will survive this collection: gen(%#p) = %d > %d = condemned generation. -perdomainPinnedRefCountedWeakShortWeakLongStrongVariableAsyncPinnedSizedRefDependentWeakWinRTUnknown handle type '%s'.Error getting per-appdomain handle informationDataHandleGC Handle Statistics for AppDomain (Shared Domain) (System Domain) Unable to display GC handles. A minidump without full memory may not have this information.Failed to walk the handle table.Error %x while walking the handle table. <free>UnknownHandles: Strong Handles:Pinned Handles:Async Pinned Handles:Ref Count Handles:Weak Long Handles:Weak Short Handles:Weak WinRT Handles:Variable Handles:SizedRef Handles:Dependent Handles:Other Handles:Pseudo-register number must be between 0 and 19 r$t%d=0Error initialized register $t%d to zero -derived-create-create2Live debugging session required usage: StopOnException [-derived] [-create | -create2] [] ex: StopOnException -create System.OutOfMemoryException 1 -c-c2sxe %s "!soe %s %s %d;.if(@$t%d==0) {g} .else {.echo '%s hit'}" %xError setting breakpoint: %s Breakpoint set r$t%d=1Failed to execute the following command: %s %p is not a valid object. sizeof(%p) = %d (0x%x) bytes (%S) ------------------------------------------------------------------------------- GCHandleLeaks will report any GCHandles that couldn't be found in memory. Strong and Pinned GCHandles are reported at this time. You can safely abort the memory scan with Control-C or Control-Break. Found %d handles: %p Searching memory Reference found in stress log will be ignored Failed to read whole or part of stress log, some references may come from stress log Quitting at %p due to user abort Searching %p... Found %p in stress log at location %p, reference not counted Found %p at location %p only read %x bytes at %p Some handles were not found. If the number of not-found handles grows over the lifetime of your application, you may have a GCHandle leak. This will cause the GC Heap to grow larger as objects are being kept alive, referenced only by the orphaned handle. If the number doesn't grow over time, note that there may be some noise in this output, as an unmanaged application may be storing the handle in a non-standard way, perhaps with some bits flipped. The memory scan wouldn't be able to find those. Didn't find %d handles: All handles found even though you aborted. A leak may still exist because in a general scan of process memory SOS can't differentiate between garbage and valid structures, so you may have false positives. If you still suspect a leak, use this function over time to identify a possible trend. []]&**(...)typedbyref = %S | %S = "%S" (empty) (1 element) (%d elements) %s.[%d] |- %s = %S |- %s = null (Unhandled CorElementType: 0x%x) = = @ 0x%I64x falsetrue = %s = '%C' = %d = %hd = %hu = %u = %I64d = %I64u = %f = object PARAMETERS: + (Error 0x%x retrieving parameter '%S') + %S %s + (Error 0x%x printing parameter %d) PARAMETERS: (none) LOCALS: + (Error 0x%x retrieving local variable '%S') + (Error 0x%x printing local variable %d) LOCALS: (none) .[basetype] |- %S %s |- %S %s |- < unknown type > %S Dumping managed stack and managed variables using ICorDebug. ============================================================================= Call SiteChild SP%-8s %-8s %s Stack walk complete. %p %s [NativeStackFrame] [RuntimeUnwindableFrame] TODO: Implement GetFrameName[%S: p] [IL Stub or LCG] -a (%S) <unknown register>+-: -> (pinned) (interior) - Failed to start stack walk: %lx Failed to enumerate GC references.Unable to walk the managed stack. The current thread is likely not a managed thread. You can run !threads to get a list of managed threads in the process PARAMETERS: %S () (0x%p) = 0x%s 0x%p LOCALS: -a-p-i%S!VMMap requires a full memory dump (.dump /ma) or a live process. !VMStat requires a full memory dump (.dump /ma) or a live process. Usage: SaveModule
Invalid arg Module does not have base address %p is not a Module or base address Failed to retrieve information about segment %p%u sections in file section %d - VA=%x, VASize=%x, FileAddr=%x, FileSize=%x Fail to read PE section info File not specified Fail to create file %s Fail to read memory %p %p !+%#x * Ctx[BSI]: %08x %08x %08x (TransitionMU) (TransitionUM) at %p %p %S_remoteStackTraceString-ManagedExcepStackError! _EFN_GetManagedExcepStack(%P, szStr, sizeof(szStr)) returned: _EFN_GetManagedExcepStack(NULL, szStr, sizeof(szStr)) returned: Error: %lx Number of characters requested: %d Context information: EipEspEbpRipRspRbpPCSPFPUnsupported platform%p %p %p Simple Context information: SOS: warning, prejitted code optimizations could not be changed. Failed to load ICorDebug HR = 0x%x SOS: warning, prejitted code optimizations could not be changed. This CLR version doesn't support the functionality SOS: warning, prejitted code optimizations could not be changed. This CLR version doesn't support NGEN SOS: warning, prejitted code optimizations could not be changed. GetDesiredNGENCompilerFlags failed hr=0x%x SOS: warning, prejitted code optimizations could not be changed at this time. This setting is fixed once CLR starts SOS: warning, prejitted code optimizations could not be changed at this time. SetDesiredNGENCompilerFlags hr = 0x%x TEXTDOCUMENTATIONError loading documentation resource COMMAND: %s.Documentation for %s not found. Expected newline in documentation resource. \\%.*scontents%p0x%x%xNot calculatedCriticalSafe criticalTransparent%-*.*p%*.*p0x%-*.*x0x%*.*x%-*.*x%*.*x%-*.*d%*.*dmap/set too longP?Y@@@A08@HPX`hpx< Dh(TtHpVoidBooleanCharSByteByteInt16UInt16Int32UInt32Int64UInt64SingleDoubleStringTypedReferenceIntPtrUIntPtr*U\ L6"ǘoC*K =j0FzX TOP2Xcʀ?u*C(Q4̾/P6Ou/y0xSI%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%S`"`"@lll`l<CLSID>Failed to instantiate {%ls} from installed .NET framework locations. Failed to instantiate {%ls} from DAC location. Unable to query IDebugSymbol3 HRESULT=0x%x. ;\Failed to instantiate {%ls} from debugger's image path. mscoree.dllCLRCreateInstanceDllGetClassObject%d.%d.%d%d.%d__::SOS Error: Out of memory The version of SOS does not match the version of CLR you are debugging. Please load the matching version of SOS for the version of CLR you are debugging. CLR Version: %u.%u.%u.%u SOS Version: %u.%u.%u.%u /f clr.dllPDB symbol for clr.dll not loaded %8hd%8d%I64d%8hu%u%8u%I64u%8p%8hx%8sdynamic statics NYIdynamic thread statics NYI >> Domain:Value Unable to get AppDomain %lx %s:NotInit %s:FailInit %s: << >> Thread:Value error getting thread %p, aborting this field %x: Display of context static variables is not implemented yet PTRBYREFVALUETYPECLASSVARARRAYFNPTRSZARRAYMVARAttrVTOffsetField%8s %8s %8s %20s %2s %8s %8s %s Invalid parent MethodTable Invalid parent EEClass Unable to display fields %s %8x %8x %20.20S %20.20s %2s TLstaticCLstaticshared%8s %8s%8s %S staticinstanceUnable to get appdomain store Failed to get appdomain list Unable to get AppDomain %p Unable to get array of Assemblies ClassLoader: %p SecurityDescriptor: %p Module Name %s Dynamic ModuleCREATINGREADYFORMANAGEDCODEACTIVEOPENUNLOAD_REQUESTEDEXITINGEXITEDFINALIZINGFINALIZEDHANDLETABLE_NOACCESSCLEAREDCOLLECTEDCLOSEDUNKNOWNLowFrequencyHeap: %p HighFrequencyHeap: %p StubHeap: %p Stage: %s Name: Error getting AppDomain friendly name Assembly: %s (Dynamic) [Free%-8s %s (%S[])Integer overflow error. Unable to get array of Assemblies for the given AppDomain.. Failed to request assembly. Failed to get the modules for the given assembly. Failed to request Module data from assembly. ----------------------- Member (mdToken token) of Field (mdToken token) of This token type is not supported Token: %p Field name: %S MethodDesc: %s MethodDesc: JITTED Code Address: %s Not JITTED yet. Use !bpmd -md %p to break on run. Not JITTED yet. Use !bpmd -md %p to break on run. Not JITTED yet. EEClass: MethodTable: EEClass: FAULTFINALLYFILTERTYPED ReJITID %p: CodeAddr = %s (READY to jit on next call) (CURRENT) (reverted)ReJITed versions: (... possibly more reverted versions ...) Method Name: %S Class: %s MethodTable: %s mdToken: %p Module: %s IsJitted: %s CodeAddr: %s Transparency: %s Unknown MethodDesc (Module %s, mdToken %08x)Failed to request threads from the thread store.mscoree.dll/f mscoree.dll\Error getting string data Missing quote in %s Incorrect argument: %s Wrong option: %s Invalid option %s Invalid option: option specified multiple times: %s Missing value for option %s Unknown option: %s Unable to load '%S'. HRESULT = 0x%x. Failed to read module information for '%S'. HRESULT = 0x%x. Found '%S', but it does not match the CLR being debugged. Size: Expected '0x%x', Actual '0x%x' Time stamp: Expected '0x%x', Actual '0x%x' Loaded %S "Failed to get the dac module handle. hr=0x%x. GetModuleFileName(dacModuleHandle) failed. Last error = 0x%x mscordacIDebugSystemObjects::GetCurrentProcessHandle HRESULT=0x%x. Unable to get symbol path length. IDebugSymbols3::GetSymbolPathWide HRESULT=0x%x. Unable to get symbol path. IDebugSymbols3::GetSymbolPathWide HRESULT=0x%x. SymFindFileInPath failed for %S. HRESULT=0x%x. Please ensure that %S is on your symbol path.p"`p`1 [%d]SOS Warning: Loading symbols for dynamic assemblies is not yet supported diasymreader.dllSOS Error: Unable to CoCreateInstance class=CLSID_CorSymBinder_SxS, interface=IID_ISymUnmanagedBinder3, hr=0x%x This usually means the installation of .Net Framework on your machine is missing or needs repair SOS Error: Unable to query IDebugSymbols3 HRESULT=0x%x. SOS Error: Unable to get symbol path length. IDebugSymbols3::GetSymbolPathWide HRESULT=0x%x. SOS Error: Unable to get symbol path. IDebugSymbols3::GetSymbolPathWide HRESULT=0x%x. Frame] <unknown method> [ @ Failed to enumerate GC references. Failed to enumerate GC reference errors. Unknown internal frame.Managed to Unmanaged transitionUnmanaged to Managed transitionAppDomain transitionLightweight functionFunction evaluationInternal callClass initializationJIT Compilation[%s: %p] @NANCGRdRdWrWrCpExExRdExRdWrExWrCpTOTALBLK COUNTAVERAGEMAXIMUMMINIMUMTYPE%-7s %*s %*s %*s %*s %*s ~~~~~~~~~~~~~~~~~~~~~~~~~%-7s %*sK %*sK %*sK %*s %*sK %s: SmallMediumLargeSummary|%08lxCommitReservePrivateMappedImageProtectAllocProtectLengthStopStart%-*s %-*s %-*s %-13s %-13s %-8s %-8s %p-%p %p %-13s %-13s %-8s %-8s alahblbhclchdldhaxbxcxdxsidibpespjmp (%S, mdToken: %p) (MT: %S) ("") (Object: %S) (MD: %S) %s @ %d: >>> hltclisti%08x (gcstress)mov call lea push ntdll!KiUserExceptionDispatcher???r%u not%08x%s interruptible %08x is a safepoint: (pinned)(interior)(untracked)%08x %c%scaller.sp %c%s%c%xProlog size: %d Security object: caller.sp%c%x GS cookie: GS cookie valid range: [%x;%x) PSPSym: Generics inst context: PSP slot: GenericInst slot: caller.sp%c%x (GENERIC_PARAM_CONTEXT_METHODDESC) (GENERIC_PARAM_CONTEXT_METHODHANDLE) (GENERIC_PARAM_CONTEXT_THIS) Varargs: %u Frame pointer: %s Wants Report Only Leaf: %u Size of parameter area: %x Code size: %x out of memory reported register in caller's frame reported frame register reported pointer relative to wrong base register reported invalid pointer decoder failed invalid GC info (code for MD: %S)de00 de01 de02 f7f0a001f7f0a002f7f0a003movw movt W'qbad allocationW (q@X (qX (qX'RR++,(Y'-,++,genericunknown errortY'-%-++,iostreamiostream stream errorY'-V-++,systemoR   7d  ,p@PT'@ p,{,!,n a T    ' @' A'0?'H5'h'E'M'F'7''Q'4''0&'<H'P('d8'xO'B'D'C'G':'I'6'=';',9'DL'X3'df|deq! h( 4j@gTktlm)&(pno* $0,H Xshtxuvw y'xz{@|$T@P`}p~ ip  4$L "lr$permission deniedfile existsno such devicefilename too longdevice or resource busyio errordirectory not emptyinvalid argumentno space on deviceno such file or directoryfunction not supportedno lock availablenot enough memoryresource unavailable try againcross device linkoperation canceledtoo many files openpermission_deniedaddress_in_useaddress_not_availableaddress_family_not_supportedconnection_already_in_progressbad_file_descriptorconnection_abortedconnection_refusedconnection_resetdestination_address_requiredbad_addresshost_unreachableoperation_in_progressinterruptedinvalid_argumentalready_connectedtoo_many_files_openmessage_sizefilename_too_longnetwork_downnetwork_resetnetwork_unreachableno_buffer_spaceno_protocol_optionnot_connectednot_a_socketoperation_not_supportedprotocol_not_supportedwrong_protocol_typetimed_outoperation_would_blockaddress family not supportedaddress in useaddress not availablealready connectedargument list too longargument out of domainbad addressbad file descriptorbad messagebroken pipeconnection abortedconnection already in progressconnection refusedconnection resetdestination address requiredexecutable format errorfile too largehost unreachableidentifier removedillegal byte sequenceinappropriate io control operationinvalid seekis a directorymessage sizenetwork downnetwork resetnetwork unreachableno buffer spaceno child processno linkno message availableno messageno protocol optionno stream resourcesno such device or addressno such processnot a directorynot a socketnot a streamnot connectednot supportedoperation in progressoperation not permittedoperation not supportedoperation would blockowner deadprotocol errorprotocol not supportedread only file systemresource deadlock would occurresult out of rangestate not recoverablestream timeouttext file busytimed outtoo many files open in systemtoo many linkstoo many symbolic link levelsvalue too largewrong protocol typemǒ0UwMAО-}f]LYBW蠍 6Sb8&UDo9wLϘ0T!~Js=(I6F l|.B?AqGO`_o=8u[K5N&%I^e2?^%\vLF.2 cR/Ia_o=8u[K5IZLMX-վ{LLd.솲>K b_o=8u[K5c_o=8u[K5Ձn BYu{h<4-BdaKԸ'ZjB݄|PYzԞEd'mBmD&ͺ㘸vD~) E* $<~EB:/Y d_o=8u[K55DG qd.Bmy^! f{h<4-{h<4-{h<4-{h<4-{h<4-J; {h<4-?mYD`{FfmiOB[2V+{K$NTN^F>+K f7F?>D}dUH8RqL{h<4-{h<4-,-E+b̝[~DyT[cvO`T]0lG).OPʶA&$cvO`T856UL!&^rC0 SJhF˄sآi@ƫ=_IA8;{h<4- I ÔMN)42{h<4- ei_/E6DM~#G>= @=-f{h<4-zC @8{h<4- fF2*{h<4-T ^&F োIPV>Oۃ+e{h<4-{h<4-{h<4-lM㷜C̲@<ʚt#FA Җn=ҷI IJN"{h<4-{h<4-߰`I薕k'F!s. {h<4-i_>Bqa${h<4-{h<4-{h<4-{h<4-{h<4-{h<4-{h<4- {h<4- {h<4-adUEEgzޙtC3!ɜLr] roɴ $cYCHWD*JKxbjJJ'yC/or̷EBA `L{d@6YoJ1EQ-/ԝ ,0B>V<4qG5)6JpYEgJ(;?b*U\ L6"ǘ*U\ L6"ǘF|pF"PM:<+X1C$ڑ1vLJ9kr T(Ibδk*7g}oLyU'q8C*"(]d 4NH]h;աIB^H[Abt/?M200۾`-|?X`JSkI Ĭ꺏rxH3BRnr mO&B@" <,KhѻS?~X#Le xE!s2 SW*LcO|5ԪCAΡ&)ULO{ t792BV')KU .SI%W4V?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(null)(null)EEE50P( 8PX700WP `h````xpxxxxLpZqbad exceptione+000EEE00P('8PW700PP (`h`hhhxppwppccsUTF-8UTF-16LEUNICODE p hh(T ` ! ""x #y@#z\#x##R6002 - floating point support not loaded R6008 - not enough space for arguments R6009 - not enough space for environment R6010 - abort() has been called R6016 - not enough space for thread data R6017 - unexpected multithread lock error R6018 - unexpected heap error R6019 - unable to open console device R6024 - not enough space for _onexit/atexit table R6025 - pure virtual function call R6026 - not enough space for stdio initialization R6027 - not enough space for lowio initialization R6028 - unable to initialize heap R6030 - CRT not initialized R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6032 - not enough space for locale information R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6034 - inconsistent onexit begin-end variables DOMAIN error SING error TLOSS error runtime error Runtime Error! Program: <program name unknown> Microsoft Visual C++ Runtime Library ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ukA:::::::: ; ; ; ; ;(;0;8;@;H;P;X;`;h;p;x;;;;;;; ;!;"h,#;$;%;&;';);*;+;,<-</<6<7 <8(<90<>8<?@<@H<AP<CX<D`<Fh<Gp<Ix<J<K<N<O<P<V<W<Z<e<U<<<(<<== T = (= 4=@=L=X=d=p=|========== =!>" >#>$$>%0>&<>'H>)T>*`>+l>,x>->/>2>4>5>6>7>8>9>:>;?>?? ?@,?A8?CD?D\?Eh?Ft?G?I?J?K?L?N?O?P?R?V?W?Z@e@k(@l8@D@P@\@ h@ t@ @@@@@@@,@;@>ACAk(A 8A DA PA \A hA tA A; Ak AAAA A A AA;BB$B0B xHp<7H ; HN0</Ht;HHZ(; HO;(Hj;Ha0;HP8;HHQ@;IR <-Ir@<1 Ix<:,IH;<?8IHISH<2TIy;%`Ig;$lIfxI<+ImI<=I<;I8<0IIwIuIUP;IITIX;Jh<6J~`; JVh;,JW8JDJTJdJp;tJXx;JY<<JJJvJ;J[;"JdJJJKK$K;4K\D@KXKpKK;KK]P<3Kz<@Kx<8K<9K;K^Kn;L_`<5L|h, Lb;(L`X<44LLL{;'dLipLo|LLLLLLLFLparbgcazh-CHScsdadeelenesfifrhehuisitjakonlnoplptroruhrsksqsvthtruridbesletlvltfavihyazeumkafkafohimskkkyswuzttpagutateknmrsamnglkoksyrdivar-SAbg-BGca-EScs-CZda-DKde-DEel-GRfi-FIfr-FRhe-ILhu-HUis-ISit-ITnl-NLnb-NOpl-PLpt-BRro-ROru-RUhr-HRsk-SKsq-ALsv-SEth-THtr-TRur-PKid-IDuk-UAbe-BYsl-SIet-EElv-LVlt-LTfa-IRvi-VNhy-AMaz-AZ-Latneu-ESmk-MKtn-ZAxh-ZAzu-ZAaf-ZAka-GEfo-FOhi-INmt-MTse-NOms-MYkk-KZky-KGsw-KEuz-UZ-Latntt-RUbn-INpa-INgu-INta-INte-INkn-INml-INmr-INsa-INmn-MNcy-GBgl-ESkok-INsyr-SYdiv-MVquz-BOns-ZAmi-NZar-IQde-CHen-GBes-MXfr-BEit-CHnl-BEnn-NOpt-PTsr-SP-Latnsv-FIaz-AZ-Cyrlse-SEms-BNuz-UZ-Cyrlquz-ECar-EGzh-HKde-ATen-AUes-ESfr-CAsr-SP-Cyrlse-FIquz-PEar-LYzh-SGde-LUen-CAes-GTfr-CHhr-BAsmj-NOar-DZzh-MOde-LIen-NZes-CRfr-LUbs-BA-Latnsmj-SEar-MAen-IEes-PAfr-MCsr-BA-Latnsma-NOar-TNen-ZAes-DOsr-BA-Cyrlsma-SEar-OMen-JMes-VEsms-FIar-YEen-CBes-COsmn-FIar-SYen-BZes-PEar-JOen-TTes-ARar-LBen-ZWes-ECar-KWen-PHes-CLar-AEes-UYar-BHes-PYar-QAes-BOes-SVes-HNes-NIes-PRzh-CHTsraf-zaar-aear-bhar-dzar-egar-iqar-joar-kwar-lbar-lyar-maar-omar-qaar-saar-syar-tnar-yeaz-az-cyrlaz-az-latnbe-bybg-bgbn-inbs-ba-latnca-escs-czcy-gbda-dkde-atde-chde-dede-lide-ludiv-mvel-gren-auen-bzen-caen-cben-gben-ieen-jmen-nzen-phen-tten-usen-zaen-zwes-ares-boes-cles-coes-cres-does-eces-eses-gtes-hnes-mxes-nies-paes-pees-pres-pyes-sves-uyes-veet-eeeu-esfa-irfi-fifo-fofr-befr-cafr-chfr-frfr-lufr-mcgl-esgu-inhe-ilhi-inhr-bahr-hrhu-huhy-amid-idis-isit-chit-itja-jpka-gekk-kzkn-inkok-inko-krky-kglt-ltlv-lvmi-nzmk-mkml-inmn-mnmr-inms-bnms-mymt-mtnb-nonl-benl-nlnn-nons-zapa-inpl-plpt-brpt-ptquz-boquz-ecquz-pero-roru-rusa-inse-fise-nose-sesk-sksl-sisma-nosma-sesmj-nosmj-sesmn-fisms-fisq-alsr-ba-cyrlsr-ba-latnsr-sp-cyrlsr-sp-latnsv-fisv-sesw-kesyr-syta-inte-inth-thtn-zatr-trtt-ruuk-uaur-pkuz-uz-cyrluz-uz-latnvi-vnxh-zazh-chszh-chtzh-cnzh-hkzh-mozh-sgzh-twzu-za`udt returning'`EH`RTTI`local vftable'`local vftable constructor closure' new[] delete[]`omni callsig'`placement delete closure'`placement delete[] closure'`managed vector constructor iterator'`managed vector destructor iterator'`eh vector copy constructor iterator'`eh vector vbase copy constructor iterator'`dynamic initializer for '`dynamic atexit destructor for '`vector copy constructor iterator'`vector vbase copy constructor iterator'`managed vector copy constructor iterator'`local static thread guard'PPPPQ Q,Q4Q@QLQXQdQtQQQQQQQQQQQQQQ [QQ\[QQQQ`[QRRH[RP[ R><<!==!=operator->++---+->*/%<=>=()~^&&||*=+=-=/=%=>>=<<=&=|=^=`vftable'`vbtable'`vcall'`typeof'`local static guard'`string'`vbase destructor'`vector deleting destructor'`default constructor closure'`scalar deleting destructor'`vector constructor iterator'`vector destructor iterator'`vector vbase constructor iterator'`virtual displacement map'`eh vector constructor iterator'`eh vector destructor iterator'`eh vector vbase constructor iterator'`copy constructor closure'USER32.DLLMessageBoxWGetActiveWindowGetLastActivePopupGetUserObjectInformationWGetProcessWindowStation1#SNAN1#IND1#INF1#QNANCreateFile2CONOUT$OpenVirtualProcessImplOpenVirtualProcess2CLRDEBUGINFOWINDOWSX86x86mscordbi%s_%s.dllCLRDEBUGINFOmscordacwks%s.dllmscordaccoreamd64arm.dbg.chk%s_%s_%s_%u.%u.%u.%02u%s.dllZ<4B GuRF~#1HH2M>~*Q1 MO8(Quฌ @(nZ<4B GuR(I6F lgH 89/jHFh}uLgI}Dr9&ךKўBW2ӳ%AH2H {Z.RSDSCԸGBDSOS.pdbh@WWtWLWWWtWL@WXX$XtW@XTXdXtX$XtW@TXčXXX$XtWč@XXY Y@Xu@M_^3[\]U {3ʼnEUE SVu 3WtxNff;u+2+M|MjPEPQR El3f;EjdP3MMEPQtdppjP3MMEPQtxp;uVdPEP3MMEPQtDx;pPu EP٦ t3Cf;lx9u@M_^3[]xh%UVWqhVV!txU-hhVV uhHVVu U}LS,Uu}duU}uVUUUBtB UuUJRPPQPRVSWhUhu,3W[_^]UQS]V3WuEPE+Pu3M EPQSRx}9ut;}r;}t +I_^[]3@UVWh8Vu 3uhxVu tuVPE0@_^] UEP( ]UVuWFP, uVY_^]VtP ^Uuj P ]VtPj P D$^Uuj P ]̃ ؏S\$VWt$ Vt$ jt$(VjRD$$T$(9PQWhD$ j V _^[t Sـ{tkUl$ VsW|$t>I~$~ uhEPhЃ hЃEONuNjhЋD$D$_^][D$D$ [0D$@S\$HD$D$ D$Vt$DWth$t$փD$ Б|$@D$DjPD$$PL$thh%փjt$HD$$t$P׍L$_^[0̃0SUl$GD$L$$T$|$\$Nj+PU~ l$4t ShЃh"Ћ\$t D$ $ Ph"Ѓt D$ $ Ph "Ѓt D$ $ Ph("ЃD$D@ut hЃ|$,h0"Ћ|$0L$(YЃy [EЄxL$(͋ƒL$(<"uQPh@"Ѓ v hH"ЃOuhL"Ћ|$l$4hЋT$t$$hP"ЋD$8t Ph`"ЃhЋT$j3D$0D$$G@ u@ǃ+PUΉT$~ tt$hЃhp"ЋT$릍T$4 %΋+PU~ tt$hЃt$4h"ЋT$[?uT$,$T$T$,T$8ÃӃ\$,D$DT$Nj+PU:~ tt$hЃt$Dh"ЋT$3D$DD$D$ D$HHt30ȉL$ L$(ًL$ à j}$}T$0#΋+PUrD$0PD$(h"ЋT$"Nj+PUE4h#ЋT$WD$$GD$ D$(G D$D$DYT$(σ(#T$ #L$ D$(L$D$ .GL$L$ L$(pT$Nj+PU~ tt$hЃt$ h"ЋL$,L$$D$0t $ Ph"ЋD$8t$ Ph "Ѓt D$0$ Ph("Ѓt D$0$ Ph"ЃhL"Ѓ|$DtT\$Sh"Ѓt(T$8!t$8h"ЃKuhЋT$D$t Ph"ЃD$$t Ph`"ЃhЋT$Nj+PU hЃ+|$<_^][0 ssssut}-uuuAvwvuu}zzz}x̃SUVT$(Wt$ Ή|$t$^ l$(Ս 00} ؉D$D$u T$(D$) ؋D$(\$E }u T$(D$ ؋D$(\$E}uT$(؋D$(\$E}u,T$(؍T$(D$(ˉE؋D$(\$Et$,6h EPh@EPh`EPhЃ EuPhЋhЃ Et hЃE t hЃE@t hЃEt hЃhЃEuPhЃEuPh$ЃEuPhDEPhduhu huhЃ(Et hЃEt hЃE t h4ЃE@t hTЃEt htЃEt hЃMtEuQPhЃ EtuPhЃ M$<w,tE+ȋQh$ Ѓx3҉T$,T$(vi syvGxT$,t$(߉T$,|$RVh EFT$8 t$(;r\$|$t>sнyvEЄxRhD \$Ѓ3+D$D$,t>\$+vV+PVhЋD$0;rЋ\$+\$ _^][ ̀y tt$hЃ́< {3ĉ$8T$S$DVWRPQ,t$h$TjSVjv h< {P(P";{ =,؏PQ `=,j hD$ jjPW>M T$Rt$P |$ jSt$GP ;u"|$th$jSt$j t h` $RT$RT$,RT$$Rt$WP T$$RP D$$PRjSPV2 t`h$|$t$h$jt$h$D$ tjPh$ h;{ h,$D_^[3и<̋L$9uy8t#AH ALtAA@ ADuhh0qHg00jKhh0qPq@03SUl$VWwNt:kXÃx(u$L$;H u;h$u0{PVh# NXuɋwNtAkX$Ãx(u$L$;Hu;hu01PVh#U NXu39_37~(D$;FD$;F6PSh# >u ~8t#@FH FLtFF@ FDuhh0vH/jKhh0vPv@0Ph#hCX;_Hl$39_3I7~(D$;FD$;F 6PSh#5 >u ~8t#@FH FLtFF@ FDuhh0vHN.jKhh0vPv@0Ph#hCX;_Hl$39wv>3ۋÃx(u)8u$L$;H0u;h4ujWPVh${ FX;wr_^][Sjjjjjht$  jS L$ u S 3[VjjjjjS uS ^3[WjjjjV V5 S֋_^[̋tyuQD$S\$UVD$3WD$+Pa|$D$?#uG?-uGjh|#W諭 tPijD$PW聴t$$ htHuFt$L$u*t/Pʬu,t \$uHL$>]u5L$\$t؉t jjS3FM?+_^][YL$jh#Wt$$ uwt$< t7 ,<+t2t)ux؏PQ tR ,u_FFt$< uπ>+uXD$Pt$>(uED$FPV#L$9)u.F+_^][Yh,_^]3[Y|$tjh#W$ uw<(t6 ,t'u¡؏PQ t ,uFF<(u>(uD$FPVt$>)u~]yjjSP=+_^][Y̡S jhjdjt$PQp%Vt$8[u @^ =t8 =dD#tP#j P6" u  ^ =t8 =d\#tl#jP6٪ u ^3^S\$tP&u,t t[[Vt$VtJ8]t98t2=, ؏PQ ty=,8]uNj8]u@SthP藩uX,tS tN9,؏PQ }=,h,^ItP'u ,t uC8t<=,u3؏PQ t =,uh(,[^QVjD$Pt$<T$ #h0hx$sVt~hh0V #jjjVD$DP DŽ$D$jjjSPƄ$h0PPh$Ƅ$L$讏FStPh$W@jjjSD$DP联DŽ$_P詨DŽ$L$4Rŋ$d Y_^][$p3WĀ́ {3ĉ$SW$%$;UV=,uU؏PQ =,u9NFuh #W+u4WhHG;r3^]$_[3萪Ą]+tn=,uˡ؏PQ tV=,uvVWD$hP芣sHD$D4Ph+uEhh,J3GОjhdPT {3ĉ$PSUVW {3P$hd$x3ɿ D$D$0D$4L$$L$(9$|u6I0 D$0Pjh1$`PD$,PÙRPQV(3Ʌ3D$t$L$p- T$RVV$`RPD$nf3ɺ QVP t$L=$Tjt$VRPl$ ,MD$,l$xld$؏PQ s ,|<NjT#ƒt,\$0SjjjRWPQD$0 D$4 ,My|$Ox='؏PQ  ,#DtKtOyÅ~D~uƋMd Y_^]FdƋMd Y_^]UjhdPQV {3PEduEFt%Pj P FF FEeMd Y^]UjhCdPQV {3PEduEFt%Pj P FF FEuE9E6j P Md Y^]UjhhdPQ {3PEdME1j P Md Y]UjhdPQV {3PEduEFt%Pj P FF FE&dMd Y^]Ujh؟dPQ {3PEdME^Md Y]UjhdPQV {3PEduEk8E6j P Md Y^]̋tPj P UjhdPSVW {3PEd}EEMEkEwtuE F t!Pj PFF FEbEwTuE Ft!Pj PFF FEcbEw4uEFt!Pj PFF FE"bEwuEFt!Pj PFF FEaEO aEOaMd Y_^[]UVuNxS]W}} Ny_[^]UjhfdPSVW {3PEdu~ jj PӉEEt$@@@ @3EFu OH>tVu΍Qffu+ʺy3ɋ Qj PӋ؉EtVWS茓u FF]]]]~$=,؏PQ =,>t9ff;uftfQf;Pufu3;y #;vGt$uyG t u_jj P ؉]Et$CCC C3E}E8t]MQIffu+ʺA3ɉE Qj P E,uuPE ECE Cy_ Md Y_^[]_Md Y_^[]GE GMd Y_^[]h,Md Y_^[]Ujh[dPQSVW {3PEdًC9Cxd3ɋǺX Qj P uEtGx@kXPjV 3Eu3Md Y_^[]kCXP3V辑Cd 3j P 3k{Xu;CMd Y_^[]UpSVWjX3MEWPF uL0HD0LMEuL0hD0lE3MEL\ M$=,!؏PQ =,S URuSPЅx)M;NHuM;NLu FEЋF EEЋEEԅG=\MEPIt1]ËM MXE@E)_^[]h*谥3_^[]hh*蓥3_^[]uSh'w 3_^[]h_,_^3[]UE]UE]UjhdPSVW {3PEd}GtPj P GG _ S SQt!h)觤3Md Y_^[]3uu93 trW3ɋE3 3ɋº QV PӋu S jVwQthH*3G3ɉE  Qj PӉEEtBMx=}Ih jS3 CHhPjj P OyՋ}E3EGu { 3Evg3S tG PEt4ROQRuuGP9tSE @E;GrEtVj P ENjMd Y_^[]h*Ȣ3h`*跢3VW7t,FtP3'F tP$'Vj P _^V~tg~u~tI  S W>~GFt7jPӋ  WjPӃ~  u_[F^UE W};S]+Vu E}I hEjjPWUU]3K~@I;8t F;|+ DRPRPh (yU| };s|E;xXu(x` 3ۉ]u ]};} [^[_]E ;tu ]EPEPSRWuPuPWhH(辠]륋]t;wukt^놋EMQMQ0,9ufu ^^UW}WSh'iu WMt8tt8ph'Ch'9u W_]UjhdP|SVW {3PEdjXxjPX} GE S xRj\8HSQ]Ѕx/x;OHu|;OLu GEG EEEEtjSh'p 3Eu=,؏PQ =,EU;uENЃ;E;r66]]WjS5S x #[p;u E;EPV+]]u@M 3Q~ ;1t @;| M 1t ;;wXu w` EPEPjSV}]tjSuVWuuSVUuu S xRj\8hSQ]Ѕx/x;OHu|;OLu GEG EEEE33E u=,؏PQ =,E;rl]]S xRjSPЅx/x;OHu|;OLu GEG EEEEUEPVgEMQMQjPVE}]ttujSuVWztduuSVUu ]Md Y_^[]jSjVh)uE jPh4)Z jj jVEPfEtxuQh)zEMMaE tPhp){zh)_h,h)>jPjVh)轛EC(jPjVhL)蟛E jjjPEPeEtxuQhp)yEM`jj jVEPweEtxuQh)yEMB`EjjjPEP'eEtxuQhp)DyEM_h)h衚,h(芚3Md Y_^[]UjhdP<SVW {3PEdj0ju EEEEPhjXEjP{ ÿu|0HEjeE;~H=,,؏PQ =, S URjWPU؅x&M;NHuM;NLu FEȋF EUȉE̅u] $E+EЋ};~HTVjW5S MRu1vƋM+PPjVuQjWh'+uЃ$3_^[]jWh'Ѝ _^[]h躍,_^[]UjhdPSVW {3PEd]}E=,K؏PQ !=,+N+F FPQuhh(v vv6h(E$蟲9Ev}t>u h(ySu +jD4ωEE_uP+PQh(bh(@ }t+uƋ4DEE;=,؏PQ =, hEjjPVEExyEPuxi}tctIjjjuEPUEtxuQh$#iEMPju.M PuB;%Md Y_^[]h,Md Y_^[]UVu uV@uu Vh +辊 3^]HP;r;pv;ppr ;v^]UQSVWEEPu uN^؋ t=~3Ʌtv9u9PtA ;r_^3[]_^[]~uރ}t؋F_^[]US]3Vq~BUW93ɐ9T9(w9T9@w@X;|_^33[] kXL88T8<_^[] ^33[] UQ hEVujjPFEPy 3^]VEt@^]UHXVW} Ww>uDjHEjPnS U RjWPt _3^]EEFEFE}N~tA hE S]jjPCE Py3S7M tAF[}t_^]_^]UjhdP,SVW {3PEdS URjEjPQly!h+3Md Y_^[]Ëu3ɋƺ Qj P ؉]]EtNxA@PjSm 3ۉ]E]E5 u n3S jSuPQlth+X33}}Љ}9},]ԍ$=,؏PQ =,CkUES Rjjs3PuL3ɋƺ Qj P ЉUUEtNxF@PjRkU 3҉UEUES jRus3P39]uhutFu"h ,EPv6}Bu=h4,v6hH,݅~+>WWhL+̅h+… }}C;]rEuj 5 P֋]Et hL,}E؃@]ԉE;E4Qh,XEM:62EM:#h+*h,]hp,WWhL+EЃtPPhl+ h+Մ5 EtSj PENjMd Y_^[]SVqAtV AF qu39YtGWyG AwtV AF quGG t_yu_^YA[UU3V3 P‰5T E t#S h0u RP  P5TQQhL+à tVVhl+调 h+裃M^tTP] UQMUSVW3;sl=,uU؏PQ t/=,u=jjEPVt+;rh,MU}u +T=PWRu Qh@+ւ_^[]UjhۢdPVW {3PEdut+;wHtH t ލxx j$j P EEt90@@ @@@ @@@3Eu3Md Y_^]Md Y_^]UjhdPSVW {3PEdًEu`&P脁;thp&h&h&h&c!h&h&h&h&h&@s3=,؏PQ =,F;t6vPh&jj j6EPKEtxuvvQh&'_EME6>t h&h&2h&hh0i hh06h0h'Gv Wh '.Md Y_^[]h ,Md Y_^[]Ujh8dPXSVW {3PEdjHEjPeS U] RSu PQyuh,Gh -muVh4-_ NFu++PjjSu EPrIEtxuQh$#]EM=Dh8-E~EPuuhL-~EPuuh`-~EPuuht-~EPuu@hp,t~SShL+h~utVVhl+R~ h+E~EtEt0NjMd Y_^[]UEPPhL+}E tPPhl+} h+}]UjhhdPSVW {3PEd33]9t h-339] Ehj@PbS @ RjSPQ4tjSh-<} hjjjSEPgGEtyuPh-[EM0B}uEЋMEȋM̍URQPF;u G]h-|WWhL+|tSShl+| h+|EtNjMd Y_^[]UVuPT@|S h0u uuPP5TPPhL+ | tVVhl+{ h+{M^tTP]UEVWVuu Px4U;JHuN;JLuBF@B FD_^]FF@F FD_^]UVuWt,FtPF tPVj P _^]VVFtJ FB VхuS39^tlWd$~G FWtJ FB VхuGG u(WÍI9Ps@@ u9Qsyy ~u_Ή^F3F[t P@ @tHȋ…uN^UM S] tiVuWVQSjh,Vu Sjh,Vu Sjh,Vu Sjh,Vu Sjh,p_^[] 3[] UjhdP SVW {3PEdej j P uuG}uuu EEPVME PFPM EƋMd Y_^[]uj P jjbUjhdP SVW {3PEdejj P uuG}uuu EEPVME PFPM EƋMd Y_^[]uj P jj6bUjhУdP SVW {3PEdejj P uu_F}uuu EEPVME PFPM EƋMd Y_^[]uj P jjvaUjhdPSVW {3PEde}E +7uuW_+;+?+;s h-E+?+;s3ЉU;sӉURM؉]E +EEuVPESu 7EEƍPwu EG+tQj P EGGuj P jj`+u j;΋uM6s_uMURQSPEOEP+E U+RQEEGO+ȋE ;t\0;uQM+EPSSWJMAM ;t+߃;M ;uU ;t1E ;u}M EMd Y_^[]UQVuEWu} jPuWVA_^] UE3Ʌt=?wPQ P ȅt]3CUE U RuE PAEP]Ujh+dPSVW {3PEdщUM@B;   1AuEEx}E IG;tI0PjPӋƋ ;7uuE7jPuj PӋE΋ u;0yMd Y_^[]USVW} h5ᆳ%PZ]iҧAi +ys#9Kw +ȋS3ɍ;uK ;t)H;s;HM u rE E _^[]E_0^[]UE-AA]33H3[3UE `3]UEV3p E t*h8.Pcu95hujyY ^](UM VW ;u!sMEQP_3^] 8V ;u s_@^] UVuWFP, u)t%N-tQPVj P _^]33 UjhfdPQ {3PEdMEh`hjQcMd Y]1UjhdPQV {3PEdu 2EE1tVj P ƋMd Y^]UEV1tVj P ^]UjhdPQV {3PEdu1EE1tVj P ƋMd Y^]̋ tQPUUM A8BBB A@BB]UUM BBB BB]UVu lWi}}_^] UVu Wi}}_^] 3UE]̸̡(P̡P̡,P̡PUE0PE ]UEPE ]UE@@]UE]Ujh8dP {3PEd u? E1E 2EhWEMd Y]UjhxdP {3PEdu?E1E1EhVEMd Y]̸̸LUE@8]UE]hP̡$PV5Џt#S W~Vj PӋu_[Џ^UQh2BlE2EhP2VUQ؏UVRP3E=Lu E=uuhL25k@^]É53^]UjhdPV {3PEdEE EPhl1=_EURh|1PFE0hP@#u^)t h2+kS5 jjP ȉMEtA3EЏAEj j ЏP EEtu3EM QE hVVPu Py*hh4djM QRƋMd Y^]E PQh@bEPQ3Md Y^]UE=EPhl1-<EURh0Pu+EUjjRh8PQTuEEPQEURh|1Pu=EhPu EURhPEPQEPQ] u] [U} uE4] UVW}h؏؏h0Whh0Wh܏܏h 1Whh1Wuthh,1WuZhh<1Wu@hhL1Wu&hh\1Wu =ԏ_^]u _^]̋ ؏ԏtQP؏ tQP ܏tQP܏ tQP tQP tQP tQP tQPUVWjj~ P Ѕt$E HJHJ@ B V:_^]3F8_^]UVWjj~ P Ѕt$E HJHJ@ B V:_^]3F8_^]USVWjj_  P t+U JNJNB F BFw _^[]3G _^[]UV5M:S:utX:Zuu3ua3Et VP}ENjMd Y_^]UjhdP VW {3PEdEu* , tWh4`h4` 腨t Wy5S uES UEERPthp=U`@Ch=D`5juuuh=uh=h> `Et VPEENjMd Y_^]Ujh(dP SVW {3PEdEuJ,tWh4[_h4Q_ t W5S uuEEEEE؍EPjEEPjju i}th=^uh4=h<h\:h<E^h;^E =u$]IjVsh<X^;ވE t?9w u4jwh<=4^ } t _2E ;_t hD=^?uh]E ]@E ];nu3EEtPW P Et VPEENjMd Y_^[]Ujh(dP SVW {3PEdEui$,LtWh4 ]h4] Ĥt W5S uuEEEEE؍EPjEEPjju fB}thp<~\*uh<h<h\:h<R\h;H\2EE =(M d$9qt:9_u)jSVh<E [jw jwh<[$?ůE M ytM9_ t9_u7jSVh<E [<9_ t<jwPh<[?uE M uhh<s[M E UBM U;/u3EEtPW P Et VPEE?NjMd Y_^[]UjhhdP(SVW {3PEdEunj_,tWh4{Zh4qZ (4t W(5S u܉uE4EEEEЍEPjEEPjju &d}thD;Ytuhd;hl;h&hx;h\:h;]Yh;Y2EU =(3Et9Xu tEuF23ۈMM9Hu tE؋utvE uPjsjs vh; Yt7G;CuG ;Ct h;X}uMt h<XhXU .tjwh <XU uhh<XU M]AM; u3EEtPW P Et VPEEeNjMd Y_^[]UjhdPSVW {3PEdEu,tWh4Wh4W Tt WHv5S uuEThH:hP:h\:hd:;Wht:1W3ۃ9vI$G3Ʌt Au3҅tBuRQwh:VC;r33҉U9 EX0t=$;t$C;GuVjPh:V?u܋uЋEUX 0t7;t$C;GuVjPh:TV?u܋uЋEUBUE;duu h;V3Et VP}E!NjMd Y_^[]UQVEMQju juPR x}u F^]2^]UV~ u;MQju EjuPR x}u F^] 2^] W};r +;Fv}t>jW$t0+A;Fvu W+_^] F _^ E ] URju EjWPQ x}u F_^] _2^] U {3ʼnEE Džd>PuhPWhLP?>UjhkdP {3ʼnEPEdE Džd>PuhP!WEDž\EhP=UjhdPQSVW {3PEdeu uuEuNQMEƋMd Y_^[] uj P jj1=UjhdPQSVW {3PEdeu u uEuNQMEƋMd Y_^[] uj P jj<UjhdPQSVW {3PEdeu uz_^]UjhdP V {3PEduhjFFF F$ P F$EEPEN4PM託EEF FFFFEƋMd Y^]UEVPjFFF  P F ^]V~r6j P F3Ff^UjhKdPQ {3PEdMEMd Y]d>UjhdPVW {3PEduE>t*woNw gNW= jP = EN4ME蔚EF$t PjP Md Y_^]USVWFFtPj P ExF@;FrPC6NF+SPHPn2 ~_^[]UjhdPVW {3PEd}EWPE;jjMEEEEE؍EjjȉEEEEEM܋EE܋EMMEMEEPEP0EMEMF Md Y_^] Md Y_^]UEVd>tVj P ^]US VW= FtPjP׋FtPjPEtVjP_^[]UW} tUREjPAEP*LJLJf_^[]S VW  G0;tvjPӋ6  ;wuGG@G;Wt2RjPӋ֋  ;wuG G @G;O t1Qj PӋ;w u_^[UWME t OG uhDFh$#QB  uhPFh$#wA St?VWh2sRshh03譛h0V'Wh2s R^ [uhxFh$#wA hDB uhXFh$#wtA  uhFw^A/9 uhw:A u0hFh$#wA  uh`Fh$#wA hDAGjWh.ܩ uhFh$#w@ G u&hlFh$#w@ G_]uhw@G_]3_]UEVWt 9BuBHt 9uN @@@ f@@E~ PwWйTUUF+ȃr@FWB_^]hHUSVW}9>ub~E ;N;v+ߋ E PF SE PjPQR M NtH_F^[]U F;vЍ^>SRv jWPQ t _^[]U ESVW8u~N4GPEPE;F4umGPNT1EP9ut?OuMt uW@>tOHuW%uN4u_^3[]P O_^J@ []UjhKdP {3ʼnESVWPEdE3DžuS RPyPhCp>] IRRj@PQxI3҅t';s$xt F] B0;r߃@th4C=PhC=EtQRDžƋMd Y_^[M3]UjhdP|SVW {3PEdEEEPEEPq1u&jhxjP"3 }9}S xRj4PQD|EEEEjjPEP|Ty|hPB<d39uv]3$EL Lt9K DuPhFhFs;uPh Dž(,(R0RjPQ(3@ F hj$jPvDž$J$P<؍QˋpP йTUUC+ȃr7HKPB(G0;chH8h?6E,tPQDž,Md Y_^[M3]UjhdPLSVW {3PEd}] { suuu.jEEPVx#EP6C C Cu3Md Y_^[]38Ou 8HPVyȉMEPE_tPE;uE܉uPEEPhu@ tK}IFPEPE;u!FˉE܍EPEEPEx 6u}M] C x"Qu荷jjj|M VEI Q IM Mu Ru舍E}u5MtjjMӐP+XM<}tEM׏EPE P} ;>t(G 0;tMjjvX6;w uEMP0%ƋMd Y_^[]UVP"ji}u<FT^]Ujh+dP`SVW {3PEd]EPqE]PΉuʿE;t@ Md Y_^[]5 jjP }Et1GGG fGGG3EEjHjPP S U RjSQtBG tPjPӋGtPjPWjP3Md Y_^[]EGEG}G hEjjPCP|yhB>2sEy GEG3@E QjP EGuۚjRFE jË1+RuRPQV yjShB1 j UG G uEPEPԽE;uE܉]PEEPTx NjMd Y_^[]UVW} wt?SE jPEE P}u3 M 90d uAG[Vv 袋_^]臋_^]UQVFPVhp#uhD03^]ÍF4Ph6Et!EPv?EFEEPv ?^]USVW} F;vU^SWv jRPQ t_2^[]_^[]UEwO$$,|>]>]>]>]>]>]>]>]>]++++,++,,Ujh[dPQSVW {3PEdt6G @pG PRjJ BA P Ojj P uEt*FFF fFF3EE_OPusSOиTUU+s hHAGSJMƉNM N MNMd Y_^[] UVWAP}WFFEPEPNtfE;FtuE}PEEPNt@ _^]VPF jH^ UVuVCqS]C tEPV5#Eu uPVu uV0C uhF uhs,Cu"hF-Cu h #-[^]UjhdPSVW {3PEdz{ExP| j$}t hjEEEE P EEMԋE }+PWu;} ] $=,k؏PQ A=,KjEEPGEPME<jEPWM%E@8EPEP8׷9uujjjut:EPEtxuQh$# EMfgEP[EtxuQh`C{ EM,EPuOx}tju輄t Pu;} h*,u h*EEtPj P E}Md Y_^[]UQVuF u uu uhhEv)^] uJuu vhEvh)vEuVhEpQ)uEu V@hEp7)8^] Uhh0uMh0u ] USVWPD} EjPWEj#EPPWEN4E PEPxU;V4uE}PEEPN4EuB w u<.~u j6-FNuT>QjwhX?(7t[I~`?u~ u<.u j7GGuT>SPjvht?C(6u_^[]_^2[]UjhتdP4SVW {3PEdًu XV( hEjjPFPEEy EE3@E Qj P ȉO uWMd Y_^[] EjPQ h+Vk2UG GEGusuGMVuPwVE}uqM!tW{tMjP7t=MK uhPhEs&uPhFs% M>}tEMفEuPE PK4趲} ;{4tMG 0;tDIC NuhEQhEs%uQhFs% 6;w uMd Y_^[] USVWPE uE jPVE #j#E PPV&EO4EPE PӱU ;W4uEuPEEPO4QE3}B u j_^[] UjhdPH {3ʼnESVWPEdى]ȋ5 hjEEEEP EEkEЍUЉEԉE؉E܉EEEES RPth@?$3}uh@E$h,A;$3|uuhdAAZuuhA1ZM؃EjhpBPQEP53>3ҋ3 thA#  S jRSPUthH*v#333URỦEЉEԉEtE4EEEES PtEt4hA# i}uh@#h,A#JuuhdAYuuhAYEU؅ PhpBQMȍERPVF;;5 EEt PjP ǍeMd Y_^[M3]UQS]Vu W3M;=,u~؏PQ tX=,ufME jPVE t#E tMP5tuPu UGE;r_^[]h!,_^[]Ujh8dPpSVW {3PEdEEEPEEPU}jh3EWP3 9u~v=,um؏PQ tC=,uUES EPS jRPQDxEt PF;u|h ,3EMtQj P ENjMd Y_^[]UjhkdPH {3ʼnESVWPEdىh jPhjP5 DžDžDžhjDžP E1guOS RPthB3jhCuЍuP93ҋ3 thA>3 S jRSPthB3y33tkS Rt4PtVh$B(PhCuЍuPDF;r5 Et PjP ǍMd Y_^[M3]UjhdP {3ʼnESVWPEdDžlE}t!C;tS lRWPS lRPyhlB3_3ƅXhdd$ldRpRjPQdDž\p=,؏PQ =,{>tNTj!Ntb!j`Dž`PwtA`t7StXPWhƅX~t SW,\0dA\;0#h, hBshEltQRDžlNjMd Y_^[M3]UjhdPSVW {3PEdEEE3]EVVPEuPSE3yShPB39]3=,؏PQ =,EL L{tOTOtEtnE܅t7U֋J( J,u B0 B4MtEuuuRuEEtEpPu'C8;]:h,uEMtQj P EƋMd Y_^[]UjhdP {3ʼnEVPEdF M QMEEhDh0P(hEhEEP(hEh$EEP(h(Eh 0EP(h4Eh$0EPx(}EsEPuh@Ev/E}ruj P 3EEfEuQuh\EvMd Y^M3]U}t h@-Vjuh@u tZSW~`?u~ u<.u j7QGGuT>SPjvh @6u_[h^] U}t h@Vjuh@zu tZSW~`?u~ u<.u j7GGuT>SPjvh @!6u_[h ^] U}t h?MVqPq qh @u t[SW~`?u~ u<.u j7GGuT>SPjvh @s6u_[h^^] UjhXdPSVW {3PEd}tuh0@} = u ~$Eju1v,v(PbEuv,v(v4v0h<@&v(P)Euv,v(hL@EEEEtPjPEjVEPEuhX@Lutd~`?u~ u<.u j7GGuT>SPjvhd@6u = hEEEEtPjPEMd Y_^[]US] EVWEjPS#EPt ~u j6Fvu T>?E PEPOt|E;GtuE]PEEPOt@ VPPEjSp ppPh?$_^[]UjhdP,SVW {3PEdM5 hjEEEP 3ɉEE@fME}  Q9O$uw,w(P`E w(P['EPMEEEEtPjPEjWEPEE }jPuE H#E Pt u j7Gu T>?EMQM QHt؟ME t;uEEEPEEPQ@ W}PPuWuh?5EEEEtPjPEEEEtWjPEMd Y_^[] USVuW@s@3ɋƺ Qj P ؋t(PVS 7j P w_^[]3fw_^[]UjhˬdP {3ʼnESVWPEdDžDžES QPRRj@PQx\39vIC uQhFhFsuQh葱r;g$Džv؏PQ tL;;rT;+;s؋ jSP9ƙRPQW +PW*PPjW{^H9t/PW` ztjV`y3;؏PQ v;H;;pjjjPExQh GjjjPSE txuVhQh HjjjPE txuVWQhG\jjjPEtxuVWQhG"USVCCsCyH]EuEyH]u]EAubs sUWRKE6RPAEPn;FCs9?t3ˋ6VFPEP訰;u_^[]USVCCsCyH]EuEyH]u]EAubs sUWRKE6RPAEP變;FCs9?t3ˋ6VFPEP踲;u_^[]UjhadPSVW {3PEdeuEv'^鸫;v+;؍<vEGPMRȉME7eEEE@PM -EEsZEu}M] t~rօtPRQ ~r6j P FF3fuu EEE~^r63f^Md Y_^[]u~r6j P FF3fPPRUjhdPQVW {3PEduVNMFBE袶Vj P OMd Y_^]UVuWVjVFB P O_^]UQE 9t@E]UyUQr 3f P]3fQ]UVW}F;svW:3;_^]} t[sVS^;s߃r*M tPQVnM Qj P 3^F;f^[_^]u~r63f3;_^]hH*UEVh5ᆳ%P<iʧAi +yV#9F^w +]UE3Ʌt=wPQ P ȅt]TUS]VWM {;E+;s;u39F~Fr3QWfsFF Md Y_^]UtU;tsII u3]U tA]UQVu EW}jjPEE@ hP5]y hC#E_^] UVW}V;MA;ES+;] s] +E};s}+E E+;ETE+] ljE;s jPM;FrUurօt'M]PE ÍAP;BPCM ]yr ~rօ?PEAPZPX~U ;FrMur΅t U?PEBPEAPU FrMurE u  MPUBP9M AME;wFr UU urE u t#PUBP9M AP M Frރrօw?PECPJ[<;}}Fr MMurEut&UPEPP9MAPM U Fr]urޅ?PE+ljEEUPPKr MMurEut UPEBPEHPM FrUurօt]PEXP9BP ]Frփr΋+E tPEǍBPYP ~MN[r3_fH^]3_^fH]hHhHUQVMWtPVr;r>r>FG;v)ru+QVu u_^]VE;S] +;sߋM++;+;sMFrU u rEut(U?M PAMPEAPVM u+NjMQt}M;sFFrU u rօt%?}P] CPBPM }~rօt PuzP u[_^]hH4hHUS] VWNffu}+Offu+f9u3ˍQffu+QMjSE tfMf9u3QffuE +QuMVPf;u3ˍQffu+E QMPSE u_^[] UVutW} WvFv u_^]UUS]VuW}zu^zuXM AHuOB ;AuB$;At?;B(uA;B,uB R$;Q,rw;A(r;Qw r;As_^[]UVut#S] W}WSvWv6Ӌv u_[^] ̍AUjhdPVW {3PEd}EPhjP S P 1PERPQV4uPP3t QP7uuhKGENjMd Y_^]UjhdPQV {3PEduEt QPMd Y^]UQWOuQVrffu+֋uFEffu+uEP ^x W BuJuPQ  3_]UU xE ɉ]$2E FuH3RfRRRRRhRRuPQx=3f3f=t-hh6Pixh\KhhZ PhhA P[tyh LQhXLy hLM3^ ]UjhdPS {3PEduME}uCEEuH3fMfEPu uy 39]KEEt PQEËMd Y[]UH {3ʼnEESVuWE3ẺuPV}EЃ?Ę@tAu hDMEuhxM"r @t sPEċuNQ$ffu+ʋUBEffu+U ΍EPCPuHuRQS uJq$ffu+MP .CPuHhMRQuȍẼ P>PEE˃uhMGEPE +P>P>}3EȊ 8x ɍFM$xEЋPE +PEPx};} v@EM3͉8_^[] UjhdPV {3PEduME}u=EEuHu 3fMfEPVuy ;uF3EEt PQEƋMd Y^]UjhdPV {3PEdhTjP S T 1PERPQV4uoTPuEt;u Vt+EVPEMd Y^]Et VPE3Md Y^]U`VhjP S ` 1PERPQV4^u`P]3]UjhdPV {3PEdEEEE S PEp0QR0xEURhVPxu3EMt QREƋMd Y^]UjhdPSVW {3PEde3}fM%=t'=t =t@Md Y_^[]E=uuWu Q*uE=U jjjjjjjjuVhhuVQRuE=t*}t$]SWu Puh\KSW ]E=s!3fhSW El菲=u+U jjjjjuVhhuVQRPxXh`K@uEE@EuƋMd Y_^[]U`VWhjP} 3f` S PE1RPQV4uu`uWu P_^]Ujh8dPH {3ʼnESVWPEdu3]Sf}EtuuVWu d("VSf>j@EjP"S U Rs,s(jjPQ(}thxKhV hKhVS  jh0hs,s(PQ,uh0hVr f>uKVu hKuu+Et WPEeMd Y_^[M3I]U {3ʼnES] MVuW}jQMQhWVSP0E$<MQVSuu̍FWPQMu VWSuruLύQffu+s+fOA3fO+M;vPuVW*3e_^[M3J]UES;Cw C3[]V5 PjEP Eu ^[] tsQP 3jP Ws_ECECE3^[]UUtV%=u/ tBjjjhhRQP0 Mx']=u U]M]U]U u U]jhhjuQP8 Mx]UW}$MW2+It9ft fJuu3f jjQj1(QVP0yS(PW2+t)1ft fJu3fEP(u3fEP(== tPh4WjjRj1(Dž R RQVP|Wx( %=ueRj2URjQVP88MxW2+ $d$1ffJu=uZjjRj1URQVP0MPW2+1ffJu=IDžPVDžDžDž ERR PyEM(X2+t1ftfJu3fJu3f[D1ϋwFPuO@[1fD[fD1l`VWS؋`lHw@TύFPtFuOH[1.uOL[xClPUl2tL$Nt%Gωd@PuGd,`hWSSذuwύFPTtuOP[juOL"YtUQhd[Ej@PбuNFuG+hP4uGVMQhPj tFPppuVpphu hNFuG+dPuGdVhPњ EptPj P DžpEÍ0Md Y_^[M3g]Ţ̢Ӣڢ^r>Q`=]7Jp UVuW~GPJE t 9_^]D>_^]UVuWuu NFu+}ϋGEPuGEVu P+ _^] U {3ʼnESVWu }EhxYjPuNFu_+ύ3PuGVMQPM 3_^[虏]UVuW~GP:uFW8%uF_^]UVu WNIFu}+ϋGEPȅuO΅uGuPQƦ uGVu P _^]US]C u[]VsW{tt43ƃt#st&tƃt<+} _^[]UU 3VuFFF FFFF $<u$fFBF fF^]u_BFBFBF J$<0r7u3BJȃNt$?<u NF^]UjhkdP {3ʼnEPEdE Džd>PuhPEDž\EhP试UjhdPQVW {3PEdщUuzd>E\E‹Md Y_^]UjhdP {3ʼnESVWPEd3wFFF S VPy hd^>0w 3ɋ։w3 t h^,VS jRVPUy h^`_3ɋú  Qj P EEt5Kx2h jVˏ FHhPjj P& KyՋE3E39w~43ۍd$S PE t4Rx-F ;w|ҋǍe؋Md Y_^[M3=]ËUt4h^}h j P uEt$h jV FHhPjj PW3E7GS VPZh^UUƒAAA AA;u]Rh\^TUE UAƒAA AA;u]Rh\ TUjh)dPQSVW {3PEdujXjVۍFX F\F`FdFhFlFpEEFxEFtF|džAEEE Qdž0Vj\8HS SPx{;GHuF;GLu GF@G FF@F FDNxF(;rPN\ ;u@FΉjEƋMd Y_^[]Sh^UEVE FEFEF F FFFFF F$F( ^]UE VEFfFF FFFFF F$F( ^]UHWjHjGGPG趋jHEjP詋S URjPxEGV7Gw S PVQ^x_]wh_UjhXdPQ {3PEdMEd>Md Y]VFtPj P F^VFtPj P F^tPj P Ujh)dPQSVW {3PEduE=  tPjPEFltPjP׋FptPjP׋Md Y_^[]̋A tPj P UVFtPj P FtPj P EFFFF^]USVW};CS PWR2x _^[]3h_̍A\UQA EjtURP$NujMQ hP E]uh\8̡؏VPR t  ^hl>NW GGu5;G rxOGWA+ȃ;r[JO$G(OG _;G r1WVwN+G#GDGGO^G G$G(9GrG _h]MUjhdPQV {3PEduEEd>tVj P ƋMd Y^]39AUjhdPp {3ʼnESVWPEdeuuEuMEM~9=(d ÍM t Mm}EEtM!Ph<_u V薗Pt0j EPMkEPMPhH_ju VCMPhP.ju V%EMEMEMd Y_^[M3^] jjjMPPjj$ Ӌ3ɺ Qj P uEWVjERPjjVh\_u u蘖EMUVWPX?u!.NI(F@,GF@@G~uFt6lGF_F ^U؏`VWPQ I~(VxF|;r;v);r;v!;r;v;r;v u_^]S9V\uYj`EjP S E 9PFxRPQy,v(N\FtF\;FxsIF\;Fxr[_^]hl>~JUjh˞dPQVW {3PEd~jHj P }EtjHjW$ 3EΉ~LS vj PRy(vj P vF6h@]Md Y_^]UjhHdPpSVW {3PEdGt;(d t3Md Y_^[]j`EjPV S ] 1SRPQy4jj j7EPgEtxuQh]Su EGEMd Y_^[]̋UjhвdPV {3PEd~ hEjjP69y4jj j6EP4gEtxuQh\Eu3jj P6EPfEtxuQh\GHFFMd Y^]V~u j6yFF^uT>̋A̋A+A$V~uF^US juu j1P3Ʌ]U VMjjQ hPx|Et 2^]u ?EW}FS WERPQH_t FEF>t~t ^]3^]6h\V~uPPtxFF^uT>V~uF ^UjhdPSVW {3PEdG$EjtURPEuuh\=jMQ hPuEP_(ESjVw$u h]}V hEjjPFEP>y hBuy GuG3F Qj P EEE E]SM+u uRE1PQV _(y h]4EG EEGEMNWw$WuJΉOG !GJΉOG G@GO;O uMd Y_^[]Ë;rG Md Y_^[]39AV50d T3;^U`EVj`jP} S E 1PERPQ^y2]} tutθ]ff;uftfQf;Pufu3EtVj P EËMd Y^[]USVWXw\t~uv~uv EGtNE t QjPӡ NtQjPӋEEFFFFX3ۅ~I;C;| ;D Xugj ɋD `EFt Pj PӋFt Pj PӋEFFFF;G|w;r_^[]j DEFtPj  P Ft Pj PӋEFFFFUjhPdPSVW {3PEdeu؏PR u hl>g@EEMd Y_^[]ËMVW;|_2^S^0uR8^Xt2G;u[_2^FXL \HFX/ \hS J=UjhdPQ {3PEduEu q1MEEEMd Y] VhjVv3 F`FdFhFlFpFtFxF|^US VW  wtIVvjPӋ  ;wuEtWjPӋ_^[]̋ыB$;B uzBuBVpFr$8Wu*I+΃ s8t_B^Ã8uF_B^UjhdP0 {3ʼnESVWPEd}3]udj PjHPƉ4RPSQ X 8 $$ Pt+.Wh cՏj$h$cÏu Vh@c赏 DžXX3,Dž@ΉL ȉD<$j0j P  jj0WLVSQ TGw|ȉ0‰ ؉\DžLDž8 $Ih@j P TEt#Fdž@dž @3E4jh@VS\QP TT@. @98u&O(9\u;uƉw(+Dž8G FNڋ00L\2L;; 8GFG0w O(G GԉO$QGG ;sW @9GuGH@ ;PjPMv Q MP,o3HFt jHÄu(jPjPM 蔦v  M 蠡Pn3HFt jvHÄu(jpPjFPM,-v 胧 M,9P^n3ۋHFE8EEPj^[]4UESVEE EE~EtjXHÄu(j~Pj~PM蒧v ئ M辡Pm3ۋFEEEPj~t jTHÄu(jN~Pj$~PM v a MPIiRuVUt$iC"+‹U}9}|ʋUi"}_^[]UM yxxxSVW}+Myxxx+ϋu‰E ȉEtd$˙څuE M;iiֈljUEEu ;u E"h} "] "huȋ}+˸yxxxʋU;} +i؈ߋEu ;uM-IEMf_^[]UyxxxS]VW} +Mƒ uQWSEPy@E ƙ+‰M+ȸyxxxM+M Myxxx+ˋ;ƋuVuV}uSX] Wu J}ϸyxxx+Mƒ Y~ jQWSG_^[] ~u+˸yxxxƒ~ jjVWSPVWS_^[]U {3ʼnEEMSVu +؉lyxxxhƒxpWh"t󥋵ltp"P󥍋xyxxxlPjSXpƉp+Íyxxxƒw_M^3[=] UQuEPuu uw] UME +V4VQu0U ^] UQuEjPuu u] USVuyxxx+M W}™+i؈xWP] Su E9] s&xSPEׄuuSׄu]9] r݋E;s(SPׄuMQSׄEuE;rEӉuUE;s`VSׄuGSVׄuMMM"u"}"u}ƈu;urUE ;v{xESPׄuAuSׄuUEh"""h}EU-EU9U rUE ;Ћu;uFE;t,"""u֍"EÁÈƈu"U"u}EU;ur;t)"X""XEH-"E""Hu}"8}U""8u}ƈuEM_^H[]UjhdPQSVW {3PEdeE}uE$;E tWPV?ƈuEx u݋Hy uy u!Hy u ;AuEEEƋMd Y_^[]jjAUjh dPQSVW {3PEdeE]u }$;tWSMÈ]Lj}EËMd Y_^[]jj@AUU3u A |]]UW}t Vu "^_]UjhQdPQVW {3PEd}}Et u "EMd Y_^]UjhdPQ {3PEdUUEtM ABABA B EMd Y]UM E;tU9t;uE]UEV;E t$FRPEPEE;E u^]UU yxxxSWu +uuu bEiψ_ []USVuFF `NA;NrQF+FuPFPDZ ^^[]Vj@jFF P F@^US]VWM sGG3ɋ Qj P M AGw;rPAOGu+PHP=E GG@;GrPsAOGu+PHP= __^[]USVuFF aNA;NrQANFu+PHP.= ^^[]3AAA AAAAA A$UjhdP( {3ʼnESVWPEdEN8~FF^FPPFF FF F$F(F,F0F4EXjjΉF EDžE,@G DžXDžDž DžDž\DžDž Dž$Dž(dDž0Dž4Dž8Džu\tt h̋,;t0t hO ;Ov h tLuFP@u+3ɺp QjP VPjG4jj$ EtQjP DžENjMd Y_^[M3r0]UjhdPQ {3PEdMAAEA AAAAA A$A(A,A0A4EMd Y]Ujh.dP\ {3ʼnEVPEdUFNF uFFFFF F$F(F,EF0F4F8F<EEEjjEEjE̍EjPREuEEEEdEEEE\EEEEmMEEE%Wu hWEthPY>uNF EMtQj P EEƋMd Y^M3-]hĽu=u F hнu=uF hܽu=u F chu=u F Chu=u F #hua=u F huA=u F hu!=u F h u=u F uh,Ujh8dPQV {3PEduFF EFtPj P hj P ȉɁNuF3fEƋMd Y^]VtPj P ^VFFtPj P ^Vt RP^UjhxdPV {3PEduEP0EP0 E6j P Md Y^]UjhdPQ {3PEdME1j P Md Y]UjhdPQSVW {3PEd}E @ G;t2RjPӋ֡ ;7uE7jPӋMd Y_^[]Ujh dPV {3PEduEP0EPE6j P Md Y^]Vt$Pj P FF^UjhqdPQV {3PEduEF4tPj P ENX}E8uEFt%Pj P FF FE/Md Y^]UjhdPQV {3PEduEۤEͤMd Y^]UjhȷdPQSVW {3PEdً{5 tV;t+}EeEW Wj#h0wwj8W`9 VjЋ5 P֋C t Pj P֋Md Y_^[]UjhdPQV {3PEduEN0ENMd Y^]難Ujh8dPQV {3PEduEtPj P Md Y^] UVtPj P E^]USVWFFtPj P ExF@;FrPF+FSPFP$J ~_^[]USVFFtPj P uQNA;NrQ1NFu+PHP. ^^[]UjhydPT {3ʼnESVWPEdu]]E螃tUFEtK<OGu+M.EjjupRPWVVjFt4t/3Ƀu 6Q%u 6QuxY6Q6hEj@P-DEj@P:EPCCNKA;KrQEPC+CPCPSH sEEÍeMd Y_^[M3f$]UjhɸdP$ {3ʼnEVWPEdEEPFEEPMEEE.EEEEtPj P E=$ jjjujj׋6,VPjuEjj׋u}WFF:ONAE;NrQ4/NF+WPHP_+E FEEEEEtPj P EƍeċMd Y_^M3"]UjhydPT {3ʼnESVWPEdu]]E螀tTFEtJ<OGu+M+Ejjupj0WVVkFt4t/3Ƀu 6Q%u 6QuxY6Q6hEj@P.AEj@P;EPCCKKA;KrQEPC+CPCPTE sEEÍeMd Y_^[M3g!]UjhɸdP$ {3ʼnEVWPEdEEPFEEPMEEE.EEEEtPj P E=$ jjjujj׋6)VPjuEjj׋u}WFF:LNAE;NrQ4,NF+WPHP_(E FEEEEEtPj P EƍeċMd Y_^M3]UjhydPT {3ʼnESVWPEdu]]E}tUF EtK<OGu+M(Ejjupp0WVVjFt4t/3Ƀu 6Q%u 6QuxY6Q6hEj@P->Ej@P:EPCCHKA;KrQEPC+CPCPSB sEEÍeMd Y_^[M3f]UjhɸdP$ {3ʼnEVWPEdEEP6EEPMEEEEEEEtPj P E=$ jjjujj׋6&VPjuEjj׋u}WFF*INAE;NrQ$)NF+WPHPO%E FEEEEEtPj P EƍeċMd Y_^M3]̋ыx uBHy ux uIȋx t Ë@x u ;Hu @x t̋ыx t@Ëy uAx u6ȋAx t ËHy ud$;u Iy tx u Ujh dPQ {3PEdE Ep0q1MEEEMd Y]UjhIdPQVW {3PEdu VE6GMPVw7'EEEMd Y_^]UM Eff;u(ftfPf;Qufu33]3]USVu!DNA;NrQF+FuPFPX> ^^[]UESVWxF@;FrP?&NF+SPHPj" ~_^[]USVuENA;NrQ%NFu+PHP" ^^[]Ujh{dPSVW {3PEd]Suu]h$P P uEt=3dždždždž fff3EuhVK!u hP7!EE 7Md Y_^[]UjhdPSVW {3PEd]Su u]h$P P uEt=3dždždždž fff3EuhV; u hP' E 7Md Y_^[]Ujh{dPSVW {3PEd]Suu[h$P P uEt=3dždždždž fff3EuhP5E EE 7Md Y_^[]UjhdPSVW {3PEd]Su u[h$P P uEt=3dždždždž fff3EuhP5E  7Md Y_^[] UEth{u P 5 ]UjhdP+ {3ʼnESVWPEdM} DžERQPDžDž]RRjPQutqVt 2h(Eh0VW'3fhPjDVPVW'RRjPQyuVh4EVWX'EtPQDžEtPQDž3Md Y_^[M31] UMA@A]UEVW<~ w_F F^]tPj P Wj P ȉ#_N^]UUVJd$ffu+ыuNSYd$ffu+ыN[B;vUPt3^]NuFjuQP%^]UVuW}tW;E sP} uu@PR _^]P9Eu 6uWP$_^]_3^]UESWj`jPS U] }RSWPt _@[]uu u _W[]Vj8PjP= S U ERhQxEPRSWPQ EPQ3ۅÅt xE/jhuuu W^jjMQ hPzEtMuj P TuVu 3tjVuu<Vj P tPPQ؋`]E=uW-Qjh}uu]u Wb]jjMQ hP̕EjjMQ hP誕}uE hjjPVE E Mt_juSjjQVl4 @PjEP t=juuuWuV;4jWuuh;WjP ^_3[]^_[]UH {3ʼnE}SVuPj@EuPuuCADu ^]3^]SًtUVWI3 t8;t u$ u  Pj P ׅu_^h$'[UVW7tE;t Buh'_^]PVRh'hv'V; _^]Ujh_dP {3ʼnESVWPEdEbhp'h'Dž<EDžDEDžHE0Dž0RPQDS iHRRhhPQ  RP $P1,V48DžlElHPQ1VAuTPj84PEfQP,$hHEMlpjj84PEPP,$h<$/EDždEdlRh Pxhdj$DžTETlRh Pxhh*$Dž\E \lRh8 P DžhE hlRPQyh#DžLE Dž`E LhRPQh`RPQ h(RPQ|`(RRjdPQVDžPE DžXEDž@EP`RhVPQ8PXRhVP@PX{`sL RPQVDžDžDž EPX(7u(jPWhPEJNPEB(Ph!ME utCtx:;u6W`\( XPQgu`EE@tPQDž@E XtPQDžXE PtPQDžPE `tPQDž`E LtPQDžLE htPQDžhE\tPQDž\ETtPQDžTEdtPQDždEltPQDžlHPQG$PQDžl,Ph0 h0h3Eph`hjPpEHtPQDžHEDtPQDžDEWP3EEt PQEEMt QREƋMd Y_^[] hPh hh@hh܆U VujjhP>v vP86Ɔl ^]UjhXdP {3ʼnESVWPEduDžDžDžE3ۉ9_uhh&h؊hd:"w<7P,E;athP<t5PEPsj..}PSWVtY&terMPV؃t+tVj P Dž$h\r~@hHrr4uPh'UhF,E ZPjӋ= PDžCU0VWCnURPQ0}uEG EjjPG1RPQV tZ$=,؏PQ =,w^jjGU RR1PQV u ulUEERPQjPPhVW x_tZ 0RPu V0 RPMQ =u F&F_3^] Ph0@_^] Ujh dPQSVW {3PEdEEuj@jFF P F@E2] EtAh\NA;NrQ~F+Fh\PFP ~t?hYhNA;NrQ0F+FhYPFP ~hd)NA;NrQF+FhdPFP^ ~t?hYNA;NrQ裐F+FhYPFP ~hlNA;NrQdF+FhlPFP ~t?hYNNA;NrQF+FhYPFP ~htNA;NrQ׏F+FhtPFPD ~t?hYNA;NrQ艏F+FhYPFP ~hNA;NrQJF+FhPFP ~ t?hY4NA;NrQF+FhYPFPi ~hNA;NrQ轎F+FhPFP* ~@t?hYNA;NrQoF+FhYPFP ~hhNA;NrQ0F+FhPFP ~t?hYNA;NrQF+FhYPFPP ~hNA;NrQ褍N+NhQNQ ~ƋMd Y_^[]̋AVtCt>u2f3f;FftFgffffu^ø^W3 tIG uu_^̋At6t1u& S3ۅÅtgfffCu[øËVW3 tIG uu_^̋At0t+u 3;AtAuøË3V3 tF uu^ËAVtGtBu6Q1Wu ux3 tjj RVG u_^ø^Ë3I tIF uu^UjhXdPSVW {3PEd]MQSP EH$qu} uh.h.VW EEMQSPEURPQEEUERPQ E*EEE EUERhVPQ8ȉMEU RhVPEEjhh0u PFxh0h.VWEE t PQE EEt PQEEEt PQEVWSEE@PQE.EE t PQE EEt PQEEEt PQEEEt PQEEMd Y_^[] h.uu  h.uu  h.uu  lh.uu | Th/uu d <h/uu L $h /uu 4 h@/uu  hL/uu  hh/uu  ht/uu  h/uu  h/uu  |h/uu  dh/uu t Lh/uu \ 4h/uu D EEMQSPu} x VWuh/VW EwyDr$0rVhhYMQSEP$Vh0VWE3HtVh0VWECH;rVhpVhxVhVWEEtMPQE>huu N )huu 9 PhX.uu #3Md Y_^[] no o8oPohooooooop@pppmmqpq{qqXpppqfq(pp9q1qppIqUjhdPV {3PEduMQVP EEEEMQhh Vx#EURPQ xuu uh/uu  3EEt PQEEEt PQEƋMd Y^] U {3ʼnE؏DjjjRh\DžL<RHDžPR@DžTRXRPxuwXun9Eti\CADu]S LR\RPth;THw7؏jhjP@M3]h\nM@3]UtSW}@]5V,jhEEUjPU MtS }WuRPQD}t3EM E MuCu^_W[]jjEEPu2SEEUh{SW1 tbŰ‹u tVEE EES }W}WVRP}ujSWu uU‹u ujSWuuԴ^_[]^_@[]_W[]UjhdP, {3ʼnESVWPEdE MЋu}EEEu}BE3ۉ]9],ut  P;t U]RPQDu@S URuPQu*EURjPQ,EPQt@E]3URjEEEjjhPQ$Eċ 0PjPPhuV  RP ؋1PV WSRPRPRPhvE E]9EuuDh<ME5EȅtQuMQ0uP]C]̋ RP S }WR1PQVT RP ؋1PVMЙQWSRPu uulh\M4]̋}ȅu[}uEh`ME}ȅt\tPuEP7us]]C]]̋}ȋMAM=sEPQ3 ]̾]̋}ȋMąt QPEu_9ut"UЅuUEAPRQu+MЅuMQ$ffu+AMt WEEЅtPj P EƋMd Y_^[M3]Ujh*h`BdPSVW {1E3PEdeE@EEu uuuuu uEEMd Y_^[]EE܉EËeEEMd Y_^[]UMQ}xF;|FSVWx/M]} ++4  9r t.@0Jy_^[];~hy3]_^3[]UjhdP SVW {3PEdEtHj8jG P EEt p3EG$Z3UԉEԉE؉E܉EEES RPQ/E3ɃG Qj P ؋uEMԉ E؉CE܉CEC C S jPuQR33ɉu8_ ]É] 3 PV P EEth0h uXj8S3E_t(EM膔Md Y_^[]EtVj P E3Md Y_^[]UMy4RCCuI03;gtr3]]UQVujh{ju ERCCjV- ~jjMQ hPDuDMRCCugjh{ju EjV ~EjjMQ hPODtRCC3;^]M3I;gt rM3RCC^]UQS]VW,t'O81EEPEPj9uu _^2[]0t-O81EEPEPi9uuӋ5Hd @;t_^[]Ujh8dP SV {3PEd~t#M?39FMd Y^[]~4tqMAPMEv4uVEEEtVj P EËMd Y^[]Md Y^[]UQEURhPEx!EVuuu PQMQR^]UjhdP {3ʼnEVPEdEDžEjQPy3DžEDžEDžERhh PxmRPQ xVRPQx?t5hQP3xj h00P F3EtPQDžEtPQDžEtPQDžEtQRDžƋMd Y^M3]UVt+MU u;u9u9t u3^] ^] USV1Wt^}];uFSVu8E ff;uftfQf;Pufu3t u_^3[] _^[] USV1Wt6}] ;uuPPu9t u_^3[] _^[] U؏URURP}u&؏URPEu u3]ø]UL {3ʼnE VuW} =u P 3u~94Pu 9jPtPVWh PWhġu Gu_^UjhdP  {3ʼnESVWPEd] DžES RjuPQ0GDžERhVPRDžRhPQxyPhHj\Ptxj\WuPjyVh9`jWxyt juulx)ut EURPQ xt juuohBEEt PQEMd Y^] UjhdP {3ʼnESVWPEd}] $t{u;t hy;3;O,rw;G(v hy!9Ku9Kt hy}hh0wh0h(ze9w$vhN,t! hX@@>N4t! hl@@>_^]UjhdPSVW {3PEdeut^EE9Eu 3E.}uPh誴Eu Md Y_^[]U {3ʼnE=S Vuu`hh54t tP54T tPX S S uh^M3^]VhhP~P5S gu Vh j PuhD蚳^M3]FI@htPtjjRQEPzEtxuQh0wƎEMwuMU t>jjRQEP\zEtxuQhDw|EM-udPPh wۯ MXwff;uftfHf;Nufu3u TPWo Mwbff;uftfHf;Nufu3jhwXTPW~gjjMQ hPIuMj`PPv S E 1SRPQt hw=Pu \tЭP|xh x虮jWhDxLh肮t tt  h_jEjPGEPut$}xxu|xuSPhx蓌 hxE=vuPSx}hޭ2h0)f=00uKPhtv読\uhx蓭jjWh u hxp}  S ]3E܉EEEEET1SRPQhvMރEȅ~!VjWP PXT诐 hxEEPMEEtujuuhx覬3 hr蕬EEċ=  tPjP׋EȅtPjP׋ƋMd Y_^[]UjhdPT0 {3ʼnESVWPEdE$]M} E(DžDžERQP<WRPQ:MiY}jjjjQjjjjWSDžPxh:39$hDžjPDži uu!h0hP MΨtNRQWSx.jjjjQhQjjSQ$ffu+uVh0hP\DžERRjPQyQPh  thDžjPG hPmjPPP1uEtxuQPhL EnDžERh Px9t/DžRPQth, _Ph.hPhPjS2tVPhX誨 EtPQDžEtPQDžF;>DžDžERQP4RPQM RF2DžEWxh軧39$hDžjP DžEtpPhPWeEPQDžhRRjPQQ$ffu+uWh0hP輜yPVh菦 uhDžjPы hPjPVPPqEtxuQPhL胄 E1kDžERh Px9t/DžRPQth,蔥_Ph.hP膛VhPj.tWPh3 EtPQDžEtPQDžG;GEtPQDžEt'PQDžuth蕤M }ut h{3EtPQDžEtQRDžƋMd Y_^[M3腅]$UjhdP0 {3ʼnESVWPEdE ujVPwvEF F=   F Phvjh\zOEQQ!iEpQ;rRq+PHP荌 EDžDžtPjPDžEDžDžtPjPDžPj,'EDžDžtPjPDžMd Y_^[M3蕃]UjhPdPV {3PEdE ujhYp0jVM QPxzE EEEM<Phv衡Ejjju PkEtxuQhvEMfEMMd Y^]UjhdPSVW {3PEdu]}>uhh0W:Xw0ff;uftfPf;Qufu3u6jhYPWPS>OF ht莠 S FPQR;>FF;jjMQ hPjjPSEP{jEtxuQ~EMKeju! t^;Fu ;V uhR;Fu ;VuhAjjRPEP jEPh1~EMdhĊh莟hh0ujjjuEPiEtxuh0QhȊ} EMmdMd Y_^[]UjhdPV {3PEdRhhtO}ȞS UԃERP yGhht}ƋMd Y^]tƋMd Y^]áUERPQy h뛡UERPQ$yhpEEEEEEEEEEPjME!EEPPjM!EE0PjM!39uIURUERjEVPQ,yY@DžDDžHhDht{@hquPQy;EEEE Dhhht A{M跜M뙡UEERPQ`E܍ME؍EPjEMOF;uuPQy hfEMkƋMd Y^]UjhdP0 {3ʼnEVPEdMEEŰRh QE̍URPQ$EEEE EMufUЅuUERURuȋPQ(xEЅuEPhz3EEЅtPj P EEM̅t QREƋMd Y^M3y]UjhmdPXŎ {3ʼnESVWPEdE }M]EE$DžERh Q=RPQ( t RPQ,uh'"uhPhSW>ˍQffu+39KExph視Nu3WShhSf藌DžEDžEDžERhh PRPQ RPQRPQ xn|c~uYhP辦jWSP8cEQPh t ECjWSPbEtxuQh$sEtZDžERWPQ@Eu @SP<EtPQDžEtPQDžEtPQDžEtPQDžG;3EtQRDžƋMd Y_^[M3xu] EtPQDžEtPQDžEtPQDžESPQDž>UjhdPSVW {3PEd}Eu URPQ ExEuEEEEuPVt}EEEEEE}t!EPEPEPEPVԪ3ɅI!MEEEEEEEEEEPjMEXEEPjMCEEPjM.=,v؏PQ L=,VEEPEEPuEE襛3URjEEEjjhPQ$xUʋE ȉUEu EUEU}ptDžxDž|t jM1MEHÄu.jM$PjMPpu̍M2pP 3EЋ}M`dDžhDžlt jMEHÄu.jM萡PjMeP`Yu̍M`Pv3HEЅM EuEQPrEMEEPjEEEEtPj P EM3t/U3E9P(uU9P,u MQPMUF8;r֋U3uE3ۋMЋ}]I9|}9| t jMJEHE ubjM?jM";}߾ltlhSWVtmMu]u'rhhtomPڎ3Ƀ8M IMЋUE}Fu]; u]ESWPwEMEEPj0EEEEtPj P EM3tDU3E9P(u+9X,u&]9X0]uM9H4MuMQPMUF8;rËU3uE3ۋMЋ}]I9|}9| t jMEHE ubjMjMS";}߾ltlhSWVtk]Mu_]u'hhtk(P3Ƀ8M IMЋUE}Fu]; } Eut PWuEPQ$h踌,h0行EM_EE5 tPj֋ PE EEtPjPEPhd=EEt PQEMd Y_^[]UjhudPSVW {3PEdj8jP5qS  RPQ ut-hoht j肋EEEEEEEEE hAAM hAAM[ hЛAAM3 hAAM  hAAMDhM4Ehu}EN;rQM&u}]+hP3P2uE uPvEHEMA;rPMu&u}]u+P3Pߎu uEEEEtPj P EhY8EH;rQM&u}]hY+3WPjuẺuePAACEhEMIEEEtSj P EuMjjjhj Pljjjjjj jj jjjEj P4MjjjjMjjMtjjMhEEPjMC hh&hЊh h4h<hDhPhXhMItEE\PuЍM EEdPuЍM jh$jP9m  lj]}$=,؏PQ =,S $RWSPQDu83ہ( É]fut;EEEPjM EEPjM UR(PQHu0EMPjDžDž 2} t]}d EEPjMu }$DžDžt jMEHÄu.jM PjMPƽu̍MθP3ɃIMЋuDžPDžT #(Lt jMxEHÄu.jMpPjMEPL)u̍M~L1PVM3HEЉDžDžt jMEHÄu.jMەPjM谕P褾u̍M̸P3ɃIMЋ,DžDž u jMTEHÄu.jMLPjM!Pźu̍MZݵP23ۿHEЃ0tt jMEHEuijMĔ؍Mj]蕔VFu+;~ltlWVuStb蘃Mu蚼u#WhtajP\@3<8E84HhEЍEjPu:L P ti}DžDžt jMEHÄu jM訓PjM}S pRHDžpDDžtPQ yEEPjM\M}ptDžDžt jMEHÄu.jMPjM赒P詻u̍MѵPƁ3ɃIMЋ\Dž Dž$t jMVEHÄu.jMNPjM#Pu̍M\P43H EЅlpVƉEdjPQtdVjl QPKMtnlyEEȜPj 0tEE̜Pj EPj tEМlEԜ[EEԜPj DEЃ t j MEH Eujj Mj MƐ;}޿ltlXhԜSVWtW^Muٸ<Muĸ'hԜht^P38EH EЀh} txx|EEt j MEH Äu.j MPj M͏Pxu̍MxP~3H E3EhWE} P ؾ@]3ufEE; EuP;uHh؜螋EH;rQMk}u]+h؜P{PgE }}M;uO;uGhCEH;rQM>k}u]+hP{Pbg }}싅,t2hEH;rQMj}u]h7tEh,越EH;rQMj}u]h,+{VPf }}싍| .jjEPQE jjMQPhh0uAEjXDžPDžuE܍H$h\uEEE$EU$ERh Px E$URPQ uuhlt EE$4PQE$"EURPQxuuh~t hotu$Eu @uuPu ju>tPhPhPhPhPhuPhj6ha6hXv6hs Lv6hs 8$hs !hsPh8s3EEt PQEEtVj P EEMt QRENjMd Y_^] g%%%%%%%%UjhdP`0Ui {3ʼnESVWPEdE}M$uEWP0 ߍKIffu+DžDžEPPV"Vy(EtQRDž ] DžEDžEDžEDžERhh PEtQRDžEtPQDžEtPQDžEtPQDžEPQDž E RPQ EtQRDžEtPQDžEtPQDžEtPQDžE:PQDž Pr5PQRPQEtQRDžEtPQDžEtPQDžEtPQDžEaPQDžRPQ EtQRDžEtPQDžEtPQDžEtPQDžEPQDžRPQEtQRDžEtPQDžEtPQDžEtPQDžEPQDž\DžEDžERhVPQ8EtQRDžEtPQDžEtPQDžEtPQDžEtPQDžEtPQDžEPQDž>RhVPEtQRDžEtPQDžEtPQDžEtPQDžEtPQDžEtPQDžEPQDž=hDžjPP DžERPQu E7hQP|j h00P_ j hH0P_ jhd0P_ h3VWf_mh$VWmu~htjNuujh$WP5EvPPh<H Eb/Wt,E PWFPFu RjDžRDžRPQP`SjjjjjRDžRhDžRjPh3VWf_alPVWSlDžE @nu~d$hhNuut!RPQ fDžE Rh PxRPQ E tPQDž3fhQP~jPWP3E ,PPhHjF E -E PWV@uPhTgu EtPQDžRjRRPQPPQ EtPQDžEtPQDžEtPQDžEtPQDžEtPQDžEtPQDžEtPQDžEtPQDž3Md Y_^[M3G] US]u W[] VW} HϾ ;usM QP_^3[] Ϻ ;usM QP_^3[] Ϻ ;usM QP_^3[] Ϻ $;usM QP_^3[] hWi?_^@[] UVW};~w ~3_^]SG Pj P ؅u [_^]t2vPS0O 6j P G [~F3_^]FFCfFfCG [~F3_^]UEHy@@]USًt\EVW ;uA3t6;t u$ u  Pj P Eׅu_^[]UU rJEVEqXEW>EEEEPwUWй F+ȃr@FWB_^]hH1USVuW@s@Vj P ؋t(PVSIh 7j P w_^[]w_^[]UjhdP$SVW {3PEd]MQ3VSuP*MQMЉuQSPd$EU3WRWu }PQ4E3ɺ QW P u}MVWuu QR4u,9}v'EEv65Gv;}ru}EtVj P Euu8} u2EUEERPQLuuu͈uMQMQSPuԋuSPMQSEPLt}tjSP@t#hRa3Md Y_^[]Md Y_^[]UjhdPVW {3PEdu U;t3Md Y_^]E E} S WjRPQ0xQtHEEUE RPQduEMtQRE3EE t PQE ƋMd Y_^]UjhAdP0 {3ʼnESVWPEd}E DžES ]RjSPQ0ύQffujj+ʍhPAPWjjx PP_ȉEuhU_@:39*d$9 RjVPQLRRPQPDžERRPQ  uS &PQEtPQDžRRPQPaPQTG;3EtPj P DžEtQRDžƋMd Y_^[M3?]EtPQDžtUVMu ^]EPEPu uExuuuu u&E^]UjhdPV {3PEdv(M EM英M裺u?hP\h\h\h@\h\h܆\+th(}\hxs\~,u~0t8EjX(N8;tP;E|~$E؋PtF~ t^M~tQHZB~t EP[ EM,!Md Y^]UjhdPSVW {3PEdwMEwjjjjj0jjjj jjV^jj`3_09Pnzu hHu%hhxhh<hh.39w4zI=,j؏PQ @=,J;t[C +΍ȃ? hht 9ZO<EEEDE̙hht8BZM7袙uhht8uhhZu"chht`8YjS认 u*3hht08YS~F;w4}_0hY,EMMd Y_^[]UjhdPQVW {3PEdEE舔y Vh(S URhlPy}hXE}WPQyy@uȁutMhXPu:EUERPQ yVhp9}th_X3VhXKXEEt PQEƋMd Y_^]UVW} t\utU֍Jffu+ыSYffu+[;wsf~u2~u,~ u&hԔNhh hhN} MUt F 0 u F@FHPQRuuu uhPAN ^] UjhdP|SVW {3PEd}} E]؏PQ G t;0t8(O43҅~GG8 +ʍ.M谰MEI t; uPMeP轡uEEЅtPj P EԅtPj P  $EGEĽGEG EнtuG pEܽteG`EtUGPEtEG$@Et5G(0Et%G, E tG0H G4E}\EEEEu MVu^K ă M@@ă u@@EAAOssuKS@  uaKS@ @ PċM u@@EAAOss\FMh ă u@@EAAOssEM襤E0@E;E 6Md Y_^[]hl>d{MdUjhdP 0@ {3ʼnEVPEdDžES QPyt hؾh4DžRRhPQx"PtPhXHEtPQDžMd Y^M3+*]U {3ʼnEVuEPu|hPK|x΍xPu aM3^)]Ujh dPSVW {3PEdehj P uuluEEPVM,EPFPMEPFPM EfF ƋMd Y_^[]uj P jjx1Ujh@dP SVW {3PEdejj P uu}uuu EEPVMVE PFPM FEƋMd Y_^[]uj P jj0Ujh`dP SVW {3PEdehj P uuEWVM蠑WFPM蓑WFPM膑EƋMd Y_^[]uj P jj/UjhdPSVW {3PEde}]CGCGC_@G;t 1Qj PӋ;7u]EEEPC +CPOP0YEMd Y_^[]MuIjj/USVW}ً u$v6Wj P ~ t_^[]UQyxxx+ʋ+;s3ʋE;r]UVW9w~ uPS]CNff;uftfQf;Pufu3uv6~ t[_^]UUVrBx uPBF;Pu pr^]B;u 0r^]pr^]UjhdPSVW {3PEde3u]t,?wPV P uuEVw77EG+EtQj P GEG7Md Y_^[]uj P jj,UQVq+W};s=+1S?+;r0+>+;[s3;s_^U]_^]h-UUV2FFx uPBF;PupVr^]B;PupVr^]0Vr^]UE3Ʌt"=w!iPQ P ȅt]@SVWX{ u$v6Sj P ~ t܋@@G_^[UHESVWjHjP&u U tv}S ]SRVPuShh0Vx0ϐff;uftfQf;Pufu3tuЋƋU u_^3[] _^[] UQE UVW7;u;u_^E] ;t]x uAPz ux u-IЋx tPz u;Bu‰E Rz tU QEPE ;EuM_^] UE SVىEWM M1~ tyAx tU z; quw9Hux 9u>~9u" t׀x u Ћx t9H t ։P{G׀x u ЋBx tP^V;Qu ruw>ABAP9HuPA9uPABEJ @ B EH Ȁy ;x ;upNy uA VF Ny }x u Ax thAx uQ@ A NF A F AV@ 2zy uA VF y uAx ux uA v;x=5x uAQ@ A F A F V@ vMG Qj P CM tHCE_^[]USVW} W;tu{] 3ɋÉ^X Qj P }EtCx@kXPjW3" 3E>u蚥3Md Y_^[]k}X>uMd Y_^[]UHEVWjHjP!u } t4S URWVPu;5@d u;=Dd tuЋƋ} u_33^]׋_^]UHEVWjHjPK!u } tmS URWVPuUhh0V0{ff;uftfQf;Pufu3tuЋƋ} u_33^]׋_^]UEm VW tut_2^] E8_^] UjhQdPQVW {3PEdF};s=;w7+;Fu jNMMEtE;Fu jNtFMd Y_^]U=,u&؏PQ uh;:,3]=,uVuW68PuhP: VbtPhd9~(t hp9h9vNv}ϋFPF QNσPQh|9v ϸN vF$PFQNσPQht9<>uN0v0F4σPQhR9hE9_^]UjhdPL {3ʼnESVWPEdEu,tWh48h48 qt We5S uEt}thPma8hm:wuhLD8'j83ۍESP uDS URPthl8@9]EPӄ R33ɉ} thA7!S jRWPUthH*7o39]vQS URUt4P9EtuXWhB7EP&G;}ruE4gh$#73Et VPEE"ǍeMd Y_^[M3=]Wh6@Ujh@dP8 {3ʼnESVWPEdEu',ytWh486h4.6 t}t W^5S uuEzthPm5hm5URURPQ(URPQU3ɋ3 tRh5ËRWujPUQ,hܮR53ۃ9]q)}u7PQURPQ7h5EjjPEPuEjjM̃ QPQĒyh!th$th,h44EjjPEPtujh<i4EjjPE4PҠtujhD=4EjjPE8P覠jtuhL4 jhL4 h43h3C;]uuPQ3Et VP}EǍeMd Y_^[M3]UjhdP {3ʼnESVWPEdE] EP_,BtWh43h42 wzt Wa5S (E躛DžLDž\DžXDž0Dž@Dž4Dž<DžDDž`Ehj P TELh\|XE0E@E4E̍ S  9PÙRPQthv+1thdy+3jtPP\gElEMtQj P EtVPDžpELNjMd Y_^[M3j ]UjhcdPSVW {3PEdEug ,蹡tWh4x*h4n* 1rt W%5S uE4nthPm!*hm*3f} EEEE܍EPjEEPjEEPWEmEEEE3u3uME]uWhܚ)j@xjP S  Íx9SRPjjQW(thD)jjuEuPiENUPh EMD S Ejh09hRPQW,uh0h$( h<(xP3EMEt VPEENjMd Y_^[]UjhdPSVW {3PEdEuV؅b؅S,9؅tSh4'h4' o؅t S5S uE贐EEEE} EEE؍EPjEDž|mPj|EPWEEEt1u3OuM>E}uh*'u؉]uWhȃ'jHEjP`  S U RjSQ0؅th؃&M]E;utPQh& jjuluPERPh Eluuh$Q& <}uPuhH0& }u}duQPhx& }~UEĿuMt `[ut tWRQPuh%}ԄuPuuh%h8x%E3ɃE Qj P } EtEHx@PjW  3E}Eu3EMQS jWujSP4؅thT$EMhh&hh $3ۃ9] Guhhh0  hh07}jjwl7PEh0tPPw whDElaC;]zEMX3EMJEEtPj P Et VPEEËMd Y_^[]UjhMdP {3ʼnESVWPEdE] EP,btWh4!#h4# ljtWѿY5S E{gt]hPm"hm"3EtVPDžEʺNjMd Y_^[M3]DžxPjDžPjtDžtmPSDž|DžDžDž,5uhr!E S P9RPQt!hr!EjH,jP S , 9SRPQt!h s=!E{hDžE葄Ph8s P4A!\hPs Phhs D33 HtQjHRP  S  Ǚ9SRPQth sl jjRPPEkLPhsE^jj84PBE'LPhslEjjPEKPhs(ERPhsPPhsr`hsb` thtK`yh$t4`t h0th 3S RPxPuPhEPuuhu|hāuuhyuhluuh(\8E h}uE Ǚ9tuEx9xtE}E䄂uE}u}u}u}Ȃu}uu uuSWRQPh$}tuuh  h8]3Ƀú Qj P } EtCx@PjW 3E} Eu b3EM [S jWujuP,؅thTEM h&hhhM3ۅ~ud$ Gtbhh07QjjwP7PEh0$Pwww whEPzMC;|EM s3EMeEEtPj P Et VPEE ËMd Y_^[]UjhdP@VW {3PEdEu誎f;W,ntWh4Lh4B ?t W 5S uE`;thPmhm3jjjEEE܍EjPu EmEEEu3muM葺Eh&hЊh؊hthj3EEEEĉEȉẺEЉEԍEjPh^3EMEt VPEE>NjMd Y_^]UjhdP VW {3PEdEuڌgkX,ltWh4|h4r !5=t W) 5S uE8^9thPm%hm3EEEEEE؍EEEPjEEPjju EtO}thlr:uutt jPWmuuhr{ 3EMGEMGEt VPEEmNjMd Y_^]UjhdP VW {3PEdEu g蛇X,jtWh4h4 !e;t WY 5S uEh\8thPmUhmK3EEEEEE؍EEEPjEEPjju EtO}thr:uutt jPWuuhr 3EMEEMEEt VPEE蝊NjMd Y_^]UjhKdP| {3ʼnESVWPEdE] EP2Å ,S itWh49tWh 5hn Z5S uE,6thPm~hmtgEEEEE̍EEEEEE|PjEEPjEEPSEEnEEEEnEEEEmEEEEE}Eu-URPQ ExE}u EuEuMcEUERPQDuhn<URPQuhnEPEMUEt VPEENjMd Y_^[M32]UjhdPTVW {3PEdEu誆;,ftWh4Lh4B V7t W@5S uEX3thPmhm3EEEEEEEEEE̍EEԍEPjEEPjEEPu EoEEEEmEEEEEgu3.uM4EuuuuEMaEM5AEM)AEt VPEENjMd Y_^]UjhdPjtgC;Vhh j|fEH>EtVPDžLE|Ǎ0Md Y_^[M3]UjhdP$ {3ʼnESVWPEdE] EP{x,b[tWh4!h4 +t W΀5S uELx(thPmhm35jEEEEjE̍EjEEjPSEEEEEnEEEEnEEEEmEEE;u3uMEURPQj8jPRS  RPQ tho(Ë lj}%jhP PS  RWSPQDEURPQHh@o5uhpo( 9}tE9Dw=u4|RPQ,tPxPEP|@9}t%uPQEEPElËp lj}uPQ3EMѦEt VPEEyNjMd Y_^[M3]uSh o2 UjhdPt {3ʼnEVWPEdEEPxt,WtWh4h4 a(t WU}p5S uEdIu hP$=tvEP tiUătaMPQPRh`Ethl4ŠS %thhhuh#'tPhг hu hEPtOUtGMPQPRh,MEthlhH3h&3Et VP}E4wNjMd Y_^M3S]Ujh#dPSVW {3PEdEuuWr,UtWh4hh4^ f$&tW{S5S uE*G"tPhPmhm 3Et VPEEvNjMd Y_^[]EEEȍEE؍EPjEEPjEEmPu EEEEj}`uM_E}W2!uE PEPEPu}KcǍRP5S VE}u(9u hȯ3EM-j8jP8 S ( 9SRPQWht h3EMڡ}jjthPm!hm3[EEEEEȍEPjEEPjEEmPu EEEEu3uM袘EEjP;3UЉEЉEԉE؉E܉EES RPQth@RERP jjWSEPdEIPhh莲EM?;]u!;}uhxh;]u!;}uhh̬jHXjPS X RWSPQuMS jh0hWSPQu0f900uPhMuh$@{WShjh4(hltEPPh胱 uhh h\h EjPh$ 3EMEt VPEEjNjMd Y_^[]UjhBdP {3ʼnESVWPEdE] EPOie,2ItWh4h4 t Wnx5S t1IwPetPF>u׋u>!uFVh3EMtQV P EYEƋMd Y^]UjhdPd {3ʼnESVWPEdE] EPC@u,#tWh4葬h4臬 >Jt W>I(5S EJthPm7hm-3DžPjDžPjDžmPSDžDžDžDžƵu3BoEuShmq؉S WRSPQTthm<jjPXuE=Phn肉E0pjS DžRPQ x t?hPPRPxPh$nm 3EoEtVPDžEeBNjMd Y_^[M3胋]̋ 3=LUjh#dP {3ʼnESVWPEdE] EP@`=, tWh4qh4g *t WF5S uE-thPmhm<EEhEԉEEPjEEPjdDždmPSDžlDžpDžtEò}uMlE`Xu h@pj3EMmu juԋع`]u"PShX( 3EMgmHMEQxEQ`EQMDžxQPSDž|\u"PSh輧 3EMlEEEEEEEEEEEEEMj tcE荋;wjjMQ hPQ {};}rpEPWxNEPEPuuut4EPMkE܋}ljEEPuEuPPE;Eu}};}sE;Et/MQPEoEPEPuuu)}EE9Eu:EPW_8x$EPEPuuWt ]Eߋ}E;Ev:;Es5MQPx$EPEPuuut ]܋}};]s>d$EPSxEPEPuuSnu ;]rE}}tuWuhԐjujuhy}}tuWuh }tuSuh4jujuhH/}t$}tMM;u E;t;uhh3EMw\EM+jh4Ϥ3Et VPEE<NjMd Y_^[M3]Ujh`dPVW {3PEdEuj;>7/,MtWh4 h4 t W@5S uE EEEEPjEEPjju 辭}u?=S tllPQhlq WllPQhlV 3ESEcE t Pj PEt P jPEtWPDžEe6ƋMd Y_^[M3]Ujh6dP SVW {3PEdEu41,tWh4蘝h4莝 Qt WE:5S uETthPmAhm73FEEEEEčEEԍEPjEEmPjEEPu EEEu3uM`EudEu njSujShv aS%n hjjEEPSxEEEEMPWWjShEM3EOEMCaEMEt VPEE3NjMd Y_^[]Ujh~dPVW {3PEdEu2(/s,ztWh49h4/ <t W7&5S uEthPmhm} EEȍEE؍EEEPjEEPjEEPWEEmEEEEE莤th}tT}tNEuupujujuh&3EbWh3Et VPEE2NjMd Y_^]UjhdP` {3ʼnESVWPEdE] EP00-,tWh4Ah47 Xt W5B5S tEEEEEEEEEEE̍EEEhpPjhE~PjEEPSEEE~EEEEȴ~EEEEmEEEDžlFu3}t;UERPQ ExEuh~EuM[Epuq轨jhڍjP}ǃ wS RSWPQD[PEEjPtEu/hV)uuSh9uP舔#jhڍjP|ǃ S RSWPQD@ËD ‰U}u hS }WxDžxWRDž|EESPuBu2hgux趓u:]ËU ‰Uu'huSh\* h3EMZ[EEtPj P EtVPDžtE-NjMd Y_^[M3w]UjhdP {3ʼnESVWPEdM EMEP|,4 )%,_ tWh4h4 t W15S dErthPmĔhm躔~-thX蟔c}hW]u]hW݅u]hWÅu]Mh-hȴ#hRPQdhURjjh %PQ8URh(%uuPQPx,hhhشuuuPQXy hURhuuPQPx,hhh uuuPQXy hhu h=hu hH EjjPh9™RPQW =EjjPhERPWS tjjRh8PEQTu9xtwt =sE]EW ju9hX RPQW x]X ]UjWڅ؃t;t[Wh'={X, r'X, +PhEjP踒EWP ;t=]g]EtLRPQtLE>0'hu2hp h,WP WhL hhQ\Q,tWh4Dh4: t W(5S uEthPmhmS3EEEEEu$ˍyd$Au+tShLy蚋WS }Wh jRP8x,uhdjuh]uhP hܕA3Et VP}EO#NjMd Y_^[M3ml]UjhdPQVW {3PEdEu!m,tWh4~h4t M:tW.':5S uE@S PQ 3Et VP}EF"NjMd Y_^]S܃Ukl$jhdPS {3ʼnEVWPEdK CHEP W,tWh4hh4^ w!t W&a5S E!thPmhm3Dž,E4,(PjDž4PjjHDž Dž跒y(th|^4uh`B ,RjjR<9PQWURPQHuuh(#Tyh,h4>y}tjh@)ys|(Ejju|P6CE(P PhHRW E>E(Q}؃}tEt?hxEtHtHt u EEEt hexC;] x}hPKxu hp>xuh1xuh$xuhxWh x,3EMK=Et VPEE NjMd Y_^[]uuh ow UjhdPSVW {3PEdEuQ B,itWh4(wh4w t W5S uEthPmvhmv3jX`jP\S ` RPQxaWWEEWPLjPu DžL(TX\r*`h,:vhD0vldhPhTvhh`vdhputh|uphuhux3|3ɉE؃8E܉EEEE ÉM t*S }WSRPQ|upM UA] ÉM uQhĩfux| thS }WSRPQ|u%M؋E;Mu$;Euuuhu huuPQhtU‹] u} h -th8t}htM]3IEEĉEȉẺEЉEԋES S<3}URWPt h42E3ۉE 9]E}ùS W43uURVPEЃE$uu4TE+E EE]E5@$hdsC ;]yuh -suhsh -shsuhsuhīzsuhЫmsuh`suh|SsuhFsDhh42su h#sEt VPEE/ NjMd Y_^[]UjhdPQSVW {3PEdEu \,tVh4mrh4cr Pu 3t-3ftfh3rGrمuu hr3E2 ƋMd Y_^[]UjhdPd {3ʼnESVWPEdeE} EPu=Tu2,t+Vh4iqh4_q E utVEY 5S uEEEEE<EEEEEEĔEEEEEEmEEEEEjjjjEPWzu'Et VPEE3؅t}t hH#uM(4EEuS}u9]ty}E)MPPh$#oE}uEM 5Et VPEENjMd Y_^[M3P]UjhrdPp {3ʼnESVWPEdE] EPO,2tVh4nh4n i誶t V S=S E?thPmnhmn3DžEPjDžPjDžPSDžDžmDžDžDžDžDžwt t{hmh8m3EtPj P EtWPDžEƋMd Y_^[M3N]91EDžE\[Ȋ:utY:Zuu3Ƀu PQQPʾP>'uhl3Iۯ~ h -lQPlj\P^R؃ujjjPr6EWPhxJEJ1ShkjG;<3E!E1UjhdPVW {3PEdEu[(L,ztWh49kh4/k t W5S uE萯thPmjhmj3EEEEEEEEȍEE؍EPjEE<PjEEPu EEEĸoEEEEltt}tQhD8j3EMWEt VPEE6NjMd Y_^]`uh@phcuEEPp t hlvEuhiE\PE܉}uuPhfih \i\8uh  3\9EPuL&u+hDiun3E\unuhdh 3E\UjhdPQVW {3PEdEu=,tWh4Nhh4Dh h tWU5S uE諬uŽt hg3Et VP}ENjMd Y_^]UjhdPQVW {3PEdEu-,tWh4>gh44g htWU5S uE蛫u貍t hHf3Et VP}ENjMd Y_^]UjhdP {3ʼnESVWPEdeEEPu=u2,jt+Vh4)fh4f E@ԭtVE5S EatBhPmehmeEtVPDžE3m`Qu$h@pceE5VP E5\5\0P4E;tLhP0St 0l2ۈPd0h릍Put hpdE0^EE3QPPh$#IdpEtPQDžEC@Md Y_^[M3^E]UjhdPZPh-ZPhZPh ZPhYPhYPh YPhYDPhY3 hYEtVPDžENjMd Y_^[M3:]UjhdPQVW {3PEdEu<,tWh4Xh4X W蚠tWD5S uEuuuu ?qEt VQEENjMd Y_^]UjhdPp {3ʼnESVWPEdEu6XI,tWh4Wh4W 葟t W5S uEj`EjP< A]e;U E}u9}t{S }WuRP}x^hujSjj$ ] juuuuS谄Ѕ~,tEt jjP9RPQW x3@Et VPEEǍtMd Y_^[M37]UjhHdPVW {3PEdEuj,MtWh4 Vh4V ŝt W5S uEȾ} jW-uWpWMiEM}ȍQffuj+juuAPMKPjjx @EMEt VPEEQNjMd Y_^]UjhdPVW {3PEdEu{,tWh4Th4T `HtWJPh-JlS jVhjdPQXtjdhI W8JjHVWHtI HPW~ƅuhIh hPJ؏jRjP؋lKhLFIhxE0@Md Y_^[] ;u9AA;tKD@DE8@Md Y_^[] uM=jj'UjhdPQ {3PEdUUEtM ABABA B ABEMd Y]UVWu 8wWйH$ F+ȃr7@FWBPHQEPU_^ HˆJ]hH UjhdP SVW {3PEdى]jj]CڰECC CE[Ss E;u;t;t;t;uS EPjsEPKCCEËMd Y_^[]UEVu79d w*؏URPxEt3>td ^]UjhdPQV {3PEduh`hphjV-EdždžEƋMd Y^]Wt+Vh`ppjP-Vj P ^_1j P  ̃9t d ̋t#S VW= p PjP׋ƅu_^[UVt QPE^]UVW}EWPE;u/ΉEGEGEG EEPEEP_^]UMU V ;us33^]:u'A:BuA:BuA:Bu33^]3^]D$0D$<UEE]%( UEE]%( US]3Vu W}~ $99t@;|;<}9ȉE t1ut$h8_^,[]E 3ɺ Qj P ȉM tP3Q" 3j P E _^[]Ujh&dP {3ʼnESVWPEd}w wh7W O$ tQRh7 h7G,3ɋ5  QjP ؉E S jSw,w7QR<v39w, =,؏PQ 2=,LjjQPP,EtxuQhLEh,jP S , RQP4uFP,P.7ft\ uKPh'>6F;w,5 EtSjP DžMd Y_^[M3Z]h5,h\5UjhqdP( {3ʼnEVWPEduMԋ}EuEEEE E}u5h\K5EFFF P" p=d uv-j EPuu OEPP4uu5uuuu OEPFFF  EEMƋMd Y_^M3]UjhdPSVW {3PEdEMEEEE E}u;h\4uEPFFF  3]3tӸGuE Q$Au+ʋU rffu+֋uFEffu+uwM;vKM7Vj P EtΉME!M h\E 39E=d URvUSu 4QP3h0WQPs3uEPFFF  EEMƋMd Y_^[]UjhdP< {3ʼnESVWPEdu]E} uh4jP]E3(EVPuWSEEËMd Y_^[M3M]UjhAdP4 {3ʼnESWPEd}Mȋ]E}EEEEE}u8h\[1EGGG P2=d u vEj EPuuKu Ej Puu KEPPEP4uu1uuuu{KEPGGG EEMNjMd Y_[M3]UjhdPSVW {3PEd][} P}G3ɺ Qj P uEuh\/EEP?PVSSu:EVj P EMd Y_^[] EPVٰVh0W~/EMMd Y_^[] Pj P uEuh\./WEEPWVS蓛 lt 3jQh h PP DžEQhVhVЋ@uFVjjS EPQDžsy*EZPQDžEDžEPEQ̉[yHEtPQDžEPQDžSVP$y-t$DžQQVPyEVPqhP$. @}EVP:PSryEVP WVjjS tPL =tt NjMd Y_^[M3 ]̸@ UMVudS URju uPQlu*S URURPQpuS uPQtt#x@^]t^]QPuEVjju uPQ0u&t'tu,EPQ@^]Vu6KuuuuQMQR^]UVW} 3t S]tP3F;r[_^]UVW}tMGFG F Gt F_^]jj P t3GFuF_^]V3FFhd t@|ƀhd  ld F~u(hj P uF^UjhFdP {3ʼnESVWPEd}u E]DPu @8ptxjp|EjP E ȃ\t2WQPVS-pPht]Eȃ \S `Dž`RP$xPhhP`cWt5PhhP!* uWhPVSpPhP\E@\ DždEdRhP5 3DžHI"DžL="TIXDžXQjjdHBX3 QjP `EuETjXVdHt%EV5 jP Dž`\PhV9 IPhhPhhhP(u:PhhPs( uWhPDS\Phj89 yE`:5 T@T~pPhZEdtPQDždTMd Y_^[M3]E`EdtPQDžd3UjhdP SVW {3PEd= d 3 j WP }utEPEPE3Ejj= d P ȉMEt,A3EЏ= d A Џ]ESP^E;tpƅujVu th PP uTMd Y_^[]EEMQhXSЋx)uEu jPQ x d S30 tVL EMt QRENjMd Y_^[]USVW}23;=Hd u+j V P hjV  _^[];=(d u E tS URjjjuWPE3Ƀ Qj P  S jVujWQyVj P 3_^[]t#E[fLF]Ef F3ɋEfLF_^[]U=d wLd P=d v!=d u؏U RujjPQD]á؏U RujPQ<]UQt u؏URht Pt ]U  {3ʼnEUSVu W}S SVDžDžRP‹ SSjVRPQu2Pufubjj jWv EvPEtxuQEM)Md Y_^] 3ɄMEMQ htjRPW4QP?$?E}Pt hhxYE߃}uthuuh Md Y_^] }tEPhEPh}EPth}uthuuh& Md Y_^] }ju$h Md Y_^] E$h|Y Md Y_^] EՃ}EPt hh}jj jWv EvPEIPEM>Md Y_^] EtSjjjPEPdEtxuQEMMd Y_^] jjh Md Y_^] hH"hMd Y_^] .==<<R=<g==z===>=u> UjhdP {3ʼnESVWPEd}E]tMd P袏huhx;h(h0hh4h<h&hD$t C8s{ jH(jPS ( RWVPthhb3S RssPth |u juP(Pss3j@VH@ |P#hVPS Rs sPQ4PBPhPV$PhP Ph|| ~tt lulPh@9Fh09hhP jhh0WP8h0h ؏RtRPu9؏RPu=S th\hjPS  Rs sPQ4&|PS h ^j0@jPS @Rs sPth"|t hu`39suPhEjjvvP9EtxuQhVEM3UEEES Rv$v PQdx:}u}t}u Ph0iuu VMd Y_^]u%h| h0W4Md Y_^]jjv4Ev0PKEtxuv8QhDe EMMd Y_^]UjhdPV {3PEduv6h EjjvvPEtxuQhEM-FHtHtHtT H(Ph$# Md Y^]U( SVP,P URURP4]39uvHWEUR<WPQx URuPQx SuWF;ur_ESu P^[] UP {3ʼnES];] +VW=,؏PQ =,5hEt#;r;w +4uidžU;s EPh9VRPQW u EEdž+04uxZuShEj@PEuVPP;] _^[M3] h,_^M3[e] UjhHdPpSVW {3PEdu `jV(xaj`EjP S  ƙ؋URWSQ-9EPViHd ;EjjjVEPEtxuQuh EMS jh0hWSPh0h0WVbIthj(jV7pYV?GtOS jh0huuPu+h}h0hn h_hRMd Y_^[] UEu ]u ]u ]t]UEHwX$P[]]]]]]]] ]"s u]ZZZ[ [[6[6[6[6[6[6[[6[$[-[U؏U RujPQ<]U=d w"d Ps؏U RujPQ<]U=d w؏U RujPQ<]U`VWhjP} 3f` S PE1RPQV4x W`P _^]U3SVu WfExX u_^@[]S URSEEWPȅx7S jVhSWPȅxf>uU Et VR5Bȋ_^[]U Vu u F^]W}jjW Fu.0 ~ PWhT _^]3EMMMj QP| Pru70 ~ PWh vL _^]ESH<ȋAPYE ;Fu;uWh3[_^]WhPu vhS6h vL [_^]UU 3t#Vu 0 |~~0.@;r^]E]U {3ʼnE\RDžtpDžxRPQ0y3M3H]ESVڋtRlhRjSVPQ<t xl;p Ejj@P1™RPQV u_5WPh>|PtERPVW _u4dt* PjHt1Pt™RPQV u9Eu^3[M3]]hS `RSVPQTu`M^3["]UEW}j8jPGS Uȃ RPQ "Eȅt*3ɺ Qj P S]Vu  $I=,؏PQ =,jh`jPSS ` RSVPQDuyp tt9W3~91t@;|;uJO4xD uƋ] O^[_]h\,^[_]UjhdPSVW {3PEd33j`PEPoS } Ru WP3jHPP9S  RPhPPS  RPQ4j@P4PS 4 RSSPQ(EԍUԉE؉E܉EEES RPQZDH;E;uWMO]EPM]&e }EU3ɋE3 3ɋº QS P ЉU ES SRuPQu|39u~RIjHtjPS t RU t4PQu=9}tF;u| U DEEM 'uEMeREM EMER33ҋMd Y_^[]847؋ˉu uutUuMjHQtPS t RVPO]uEMQEMQ؋Ë֋Md Y_^[]U@`jHjP7S ` Ru uPt 33ҋ]hjPS  RlhPQ4uj@PEPS U RjjPQ(uEUEEEEES RPQcEU;Eu;Uu uu-6]Ux {3ʼnEE MS]V3EW}M]E9uvIX$=,؏PQ =,F;urċ]t?=,؏PQ tj=,uxPt}PI=,uF؏PQ t =,u.GGPuxh,_^3[M3 ]E'uz-GtqE: ,t*u؏PQ t ,uFF<'u~>'tyWh$*3_^[M3]PuF>t?=,=؏PQ =,FFP{t<-tot?=,M؏PQ #=,-FFPtEPEpVW(uWȈ]MMEP@t HEw!  H@tHwE;]}t~?_^[M3]Wh<$3_^[M3z]EPh3_^[M3T]EPh|3_^[M3.]EPh3_^[M3]Whh3_^[M3]WhTlM33_^[]U( {3ʼnES]VuWt FMQSt3H#_^[M3d] MQMQSuqE t;Eu:URUERjuEuEPQtP>F;rE_^[]Ujh`dP(SVW {3PEd} wmttucS U]RWjEESPQ`wWShMt+EMd Y_^[] th;jWh<& t5t  MU jjRQEPEPh,vEEM裵jHdjPS d RuuPuFjjxEtP設EPh@vEM-&h|1h"hjhh0WSRh0hvMd Y_^[] jhh0WSh0hPMd Y_^[] MU t]jjRQEP輬EPhdEMAS jh0huuPQXt" hx$jhh0WS^h0hvE EePuu5S ~[9tXjjEPE Ph EMjMd Y_^[] =d v+MEQPQPhɿMd Y_^[] uuh " Md Y_^[] h@ hhh$Md Y_^[] UjhdPSVW {3PEd}W؉]Eu ֍JIBu+3If1fMt A;vEEUS RjWPQ0EURjht PQLE U E3RURPQPuTIt hE UjRPQ uPuWE PQEU RURPQPtEuu܋PQTEt j+W uj/Wt 3MQfuWSP$~뾋MQuWSP$j.W,f~.u3MQfuWSP$xtME QjMQVuM QSPDx }uh.ME QjMQVuM QSPTx!}uhEjuPEEt PQEEt SPEMd Y_^[]U  {3ʼnEE S]VWQQWSP8$;;ul3ɋº  Qj P t, VPWSQ8t_^[M3]_^[M3ھ]Vj P _^[M3貾]3t΋tt t;v Ju㍅;tVj P 83M_^3[V]UjhdPx {3ʼnESVWPEdEEEEDž|EEEEEURhPEPEPEPju uEURuuuPEURURPu3u@}I|RjuuuWVPQ(xLE8u"KuEEtKPQ]@EEt PQE3@EEt PQEu} |RjuuuWVPQ(Md Y_^[M3葼]UQM u @]S]W=hEt;r;w+uLJU;s EVP1hWRPQV ^tx8E _[ ]EM ELJ+83ɋE _[]̡$d u!S hTd PuTd $d @ 3UU %=t3]S VuEVRjuEPQ`^xϋEu9Eu ]P}#E]USVu]EJBu+3If1fM0A;vu MWQ3Wh0VPLMQM}QVPPuEGPQMQMQVPPtuuVPT3ɋǺ Qj P uh\_^[]EMQjh08VPLu|MEQMQVPPu[3$EUjRPQ t uu) <t5EPQMQMQVPPtuuVPT_^3[]E_^[@]^@[]UEURu PQuWVuW}VjWHu FtM3QR_^] VjW!u  Fu@MQR_^] UjhdPSVW {3PEdى]}}}U}RWPQxREEUERPQxu uuuWu utEMt QREEEt PQEƋMd Y_^[]MjQjWEP$}E3ɺ Qj P ؉]EESPuWQ$v39uv-EURPQx }9}F;ur֋}MjQjWEP#E3ɺ Qj P }EUEWRuPQQE3t/u Muuuuu 4 EF;r3tPQF;urE5 W= jPEEUuVRuPQ yWh0uVE u VuPQ8xX>tS39uvPQF;ur3= EtSjP EƋMd Y_^[]39uvPQF;ur@39uvPQF;ur3EtW= jP Ek= EtSjPE@Md Y_^[]Ujh@dPSVW {3PEdM]3ɋEMfMM}Qh8 WEEMQWPEEEEUERPQxBEURPQ x/EURPQxMSuuu uujEEt PQEEEt PQEEEt PQEEEt PQEƋMd Y_^[]UjhhdPSVW {3PEdj`jP腷jHTjPu3j@PE܉EEEEEEPUhTjPBE] 0!t S RSuPtMd Y_^[]S Tu}RVWPuȋlp tjuRQSu0S URVWPuS TR`\PQ4`u䍅T}P؉]EM9 t S URWVP9EumuPEhh0S PM0$ff;uftfQf;Pufu3t) t A t  t E܋uԋ};Z3Et SQEƋMd Y_^[]UQEEPuy ]uEuRPu ue]UVuW} VWu t-;t)j\WztHw;s3_f^] _3^] U =LuE 3]=duE 3]=uE 3]@]UjhdP  {3ʼnESVWPEdEhP54 DžPP輠5 WjP ؉ESWjPtlDžPDžPhSTt; ESj P Dž#EtSjP Dž3Md Y_^[M3]UE w|$,]8]L]T]\]p]x]]]]]]]]2;DMV_hqzUEVWt tU r(U r }Mp(y<th_^]S]t2y8t,I0BIjMjQ hPu2xE7[_^]UURPQxbURu PQHxLuPQx:VuujVPE uVPQ uQR^]US]Wt=} t6j8EjPS Uȃ RPQ thtT_@[]E3ɺ Qj P uh\_[]]Vu tpd$=,؏PQ tx=,jh`jP'S ` RSVPQDu#E4u] u^_3[]SVh om @^_[]hR,^_[]UQMSVt tE X(E X Y(uMy<th^[]}WI0=h@IEMt,;r"H;w+M_^[]LJU ;s EPh1WRPQV u0EuMELJ+8}_^[]x MEu_^[]UEVWuHu +uFPj P u_3^]VuFPWfE8_^]Eujj Pu©M E;E u_^]U  {3ʼnEVuRDžDžVPQ VhP,hTP藤~f::hTPytf::hTP]uRDžDžRPQ xt^M3ܨ]hXPtEf__hXPt $If__hXP轣u[M33^l]Uȅ u(W? Ȅ ȅ fDž _+UDŽ ]U8ESVWj8jP} Eȋ] PE S RP1QVhuME؉EЉEȉ_^[]U=d w-=d v$d P9؏U RujjPQD]UUVQP2hRV^]UjhdPSVW {3PEdً}EjjPE7RPWEV t2Md Y_^[] EU jjRE RPWQ uu tu$jj P EEt 0@@@H 3EjEjPERPWQ Out+;u uPjEPERPWQ (E>Md Y_^[] UjhdP(VW {3PEdEE=S EEUS RhPx.EjPQxEEt PQE3c S tQP$S PQS EEt PQE:tVh4h4 d t VX`V5VEVjEVjE P }Et$EwG EGEGG3EMQh(VWyWj P \URURPQ0xC39}v7$URWPQ4xuuuLy G;}rо@EMt QREƋMd Y_^]UjhndP4 {3ʼnESVWPEdE= jjE׋ PӋuEtF3EuEVPjjPӋ}EtG3E}EWP3EfEEfE3fE؉EډEމEEUMRURURhURWVu uQP ؅x(EԍUREhP؅x E3ۣS EEԅt PQEEWQEEVQEËMd Y_^[M3?] ̃=$d u$S hTd Pt3$d Td 3;d U xu&؏URURP}A x3]US]j,SqtI;,VWt-u +ހ>t/3PQ;uF<3,u_^[]_^3[]3[]UjhdP|SVW {3PEd3UE3EĉEȉẺEЉEԡS RP}Qt%hDb33ҋMd Y_^[]U3ɋE3 t%h\&33ҋMd Y_^[]3ɋº Qj P uEuh\Ͼ33S jVuЋPQthd褾333ۉ]9]$=,~؏PQ T=,^jHxjP賣S x Rt4PQu3ҋ3 ʉE#ƺ Qj P ؉]E S jSu|xQR$u]39u~6u_E;uE ;Du }uI|xEF;u|EMr]C];]}euhh\;EM|r33:t4h 33 h,33]EEtPj P ENjӋMd Y_^[]USVWt/}X09] rw;rP39M rw;r@ u_^2[]_^[]UE3;Hd u; Ld u ]3]UVhhjPs S 3 EȉẺEЉEPPPE؉E܉EEEEEEh1PEjjRPQVP^@]UHEVjHjP S E 1PERPQ^@]U؏URURP}u!؏URPEu S ]3]U؏URURP}u!؏URPEu ]3]U`VhjP S ` 1PERPQV4^@]UQEEPu9x (d 3;M]3]U\ {3ʼnE EVW}1jj@PǙRPQV t_3^M3U] jhPE܋1ǙRPQV uƋPt3STt2 UjjR1ǙRPQV u} t";r[_3^M3ɚ]M[_3^豚]US]VWQAuu +ʋ֍zBu+;s _^3[]ˍQd$Au+Kً΍QAu+ʍ~;r"PbQW;uOK;} s;]r <\t<:u_^[]$d u!S hTd Pu Td $d 3UQEEPu9x 0d 3;M]3]UjEEPj&ȏt&MhS  S hQyS @]3]U  {3ʼnES]Vu W?t_^3[M3]QVDžDžP@QVPLt%h@G@_^[M3蚘]QVDžDžPxHQDžQhVPx!PSM_^3[]UjhdPSVW {3PEdك;t3Md Y_^[]j EEEPQEahhhXayWhh( EEURhPyWhõKEURjEjP0yWh菵E3ɋ5  QjP EEEMjuPQ0tWh(5EEj jP Ѓ}EtEt2M H@EtM H@3EMPRzuESVjuuuPQy t QPEt VPEEMiEEt PQEEEt PQENjMd Y_^[]UjhdP {3ʼnESVWPEdE}hDž jtP EhjGGP 3ɉG@fS Ruu PDžQTyh<.SnhjP蛘3 <@Djh0HLPTX\`dhS hPQXxRh0ڿȃG@;GrPϟOG+h0PHP GS jjjRjjPQPDh3EuEE؍UVRVPQ ؅E3ɺ QV P ]E؉uUVSRPUQ ؅M̋EȍQ;u)uV t^EV5 jsv`+DN N\t/tEMBJ]uAP轤tEM!J0   ̋ S tQP$S PQS UEVuPEPEPh4Vu'E3^ E E]EPEPhHVڂuU3^ U3]EPh(0V諂 uU3^]33^]UVu~Mփ?~؏hRhxjPQ8~"NFI؏hjPQ8 Nu^]U졐juuuu PQ]UjhdP SVW {3PEdejj P uuY}uuu EEPVME PFPM EƋMd Y_^[]uj P jjuUSVCCsCyH]EuEyH]u]EAubs sUWRKE6RPAEP;FCs9?t3ˋ6VFPEP8K;u_^[]UEVqP 3P3P3#9Qw+^]^]US] VWs 3s3s33W#9ww +W6@ tu7u E9uu;Q ;us3%:uB:FuB:Fu B:Fu3u u E뗍Q ;us3%:uC:BuC:Bu C:Bu3uE M E E _^[]EM M _^[]E_0^[]Ux {3ʼnEVj4EjP"n 3VVVh8.PQ8x Ejj4Pvh4ŤS 4ŠS jQ@=t uhxt Tt E;t u E;t tahxhMPQMPQht Pt Pt Pt Ph8辇0S  S hS jjh8.PQ8 S 5S  S URjhS jPQDEu.hTPURjhS jPQDEt tS  S E5S  S S S  t!uh`І5S  S  u@^M3h]ËM33^h]U {3ʼnEESVu WlN u33 F3ύEPj QPjEPjv Pj E PjWPjEPF jPPjp PjSPjlhM03_^[thQV讈M wQV螈M E @E rtU>thQVt ΍QAu+ʋU+9Mshy莃_^[] ShR1P_^[] S܃Ukl$ {3ʼnEVWhh<h,h4hDjhLjhTj33h\LH,=,؏PQ o=,y܏PRWVPQp]x=w"tt=u3,%=tPhEj PE$PEjPkp =t5= t'=tPhEj P轂E& PEjP EPEPj EPtPj EP`P׋hlP3VƃQPRTWh荁L,hHlLHqhW,M_3^b][S܃Ukl$ {3ʼnEVWj@xjPhfj@DžxjPDžDžDž0fj@8DžjPDžDžDž(ej@xDžHjDžXP8Džhej@DžxjPEEEej@8DžjPDžDžDžZe܏UHDž8DžHDžXRjjPDžhEEQpME؋t> t!PxPEPPED@;t7G47POW@+W W GE ut Whp! _^[] Vq tS W= VvjPׅu_[^UMA#؃t@u]UE VWH ֋3 3ǃ E  _^]USVuW]׋N F#AF u FF tj ǃN VA#:F u BF FtjjΉEEǃE3ۅjKN ЋFUY8 | F~ +3E^ x@r@;v}Y ]CE΅tAjN EFQ8 | F~ +3V UjUBЉUEx MEu}@FN 8Q | F~ +3V jΉ}uN EEFQ8 | F~ +3M[V UUTU|@r@C;C+ӍCUڍ]؉EFN EQE |%M N~E+ʋ@1EEV E΅tJjVN E:QE | F F~ +3EV jMȉMMCK; M=]M@FN 8Q | F~ +3V jΉ}N EEFQ8 | F~ +3M[V UUT|@r@C;C+ӍCUڍ]؉EFN EQE |%M N~E+ʋ@1EEV E΅tJjVN E:QE | F F~ +3EV jbMȉMMCK; M=]M;g FFF  x;sXd$΅t;jFN 8Q | F~ +3V jMC;rU;uWF  |F jΉF FN 8Q | F~ +3MV CU;sr+ىM]ًF  |F F ΅t;j8FN 8Q | F~ +3V jKu]UE;uQF  |F jΉF FN 8Q | F~ +3V CE;siF  |F F ΅t;jZFN 8Q | F~ +3V jEC;r_^[]UESEVW3U@JEMISK 2 | S~ M+3MC EIJ#֋u# uUt}E릹 ++M_^[]UESEVW3U@JEMISK 2 | S~ M+3MC EIJ##M ȉMUt}E_^[]U}t h% ^EMUju EEEEE0]UjhdPSVW {3PEdjhWMa}u }u}uh4uhDЃ hHЋEuh}Ѓ+y-PPh\Ѓ hlЋEuh}Ѓ*+y-PPh\uuhxЃhЋEuh}Ѓ+y-PPh\Ѓ hЋEuh}Ѓ+y-PPh\Ѓ hЋEuh}Ѓ+y-PPh\Ѓ hЋEuh}:+y-PPhЃ }th}thh8EPhXЋEău|*=vPhjjh [ PhhEPh|u؋huhЃ hDžtEEhEĉEEEPh !h!hPhEEE }t hуw~$hЃ3EEtt=  VvjPׅuEMd Y_^[]hhhhLhh뎋hxЃuE낐W^elsU SEE{HVWE3d$SK q | S~ +3ƒs ЋσM ʉMt봋uju @ƉEP6PUuE@E;CHr_^[]Ut {3ʼnEEEEV񉅨Eȃ~t@ FDS^WDžDž;F@39~HvjjG;~Hr3V]+]4 3ɉ9N@N F#AF u FF j~H~HDžDžDžj7j΋,@ϋ;r%;ڋs!B)@;FHr`3ɃFD;F@ N+ʋ~ +~~ ǃύF~ F艅 |. N~+ϋ@1~ J⋍J#ЃF@ЋVʃV ʉF#8BF u FF =N VA#F u BF Fƅ3EP_ۉ;3ɋEP*HtP;sA؍$uu WPG;rԋـ;VV+V V F3N F#AF u FF t'uu WPG;ruVF@+jV ƒV ΉFG?ЉJ~+>H+~~ Nω>N эF8 | F~+3V #u,I+ʉu_DžHFǃ~ FϸV#GF u BF FN ^A#F u CF Fƅ3EPۉˆ;3Ʉ MQ@t„Ɉ;r6t8N VA#N u 3ɉVN tKuًVF 3+щƒωFGV # u323uVϸG# u33$tGϸG# u3u`C빅tHJɍt jj jj@؉@ |# ~ +ȋ3؋9u?N ~A#F u GF Ft?FN y | F~ +3Ѓ?~ ;v떋ۋt'uu SPC1}t(Eu!PP_[M3^|0]S܃Ukl$ {3ʼnEVWCCKjC j7GCOGG~hGjP3Džx 0 $@HJuI@HJu\`BABABA B A $B$A$(B(A(,B,A,0B0A04Bt#~t FhЃFWh Ѓ>E Í]+=vPhjjh oA PPFhЋ] ~t h׃t h׃t h׃F_^3[]USVuWS ]t3]I΅tA;Bu ;uY Z IuRu؋]E9F F3ɉMtMtM} 3ɋUMZE3u@  ;Bu upuuq  zU u {9 u O {;uz U;9;r;s tMM9qt>M} U@AuM_^B[] 39E]+sjRPuCu tq;tm]sCjuVuЅu_9CuZuEvuRs t*} E9F tVWjP>u$9CuEvu_^3[] MA_^[] UE3ɉUM@tMtMSZ3VW}ME3u@  ;Bu upuuq  zU u {9 u O {;uz U;9;r;s tMM9qt>M}U@AuM_^B[]39M]39E +sPCRQuu_^[] t.;t*M39E qPuAVu_^[]M_^[A]UMEu PuU] uu PuU]uu @ PuU]u DPuU]UQSVuW} MW؋;s/}uHw`u MuuusPF_^[]}K}uuWQPNL;rKsWQPPu U_^[]UQS]VM+;spW} V;s:P R7 u R)u@ RDRpMWp0CPuUF;r_^[]UVW} t GhЃuGVhЃ7G3G_^]UMA;Er;E s A] 2] US]Vu~t W}9>t=~t FhЃu~uFhЃFWh Ѓ>}EE+]+yE-u 3 utCHt9Ht;F =v*Phjjh 9  EWPQPFh(Ћ] ~t h׃t h׃t h׃F_^3[]U4 {3ʼnEES]VW}ƅDž;] =,؏PQ p=,z} uJhPPRPL[x%;tPPh48 tO+u<9w(GP7h7wl tЋt+]jS`3Euh@w7hPPfIPf} jhb t}jhI tdjh0 tKjh t2jh tjh uvh+uuPPH+ShT]6Pe76h\-6P6Pejh; jhh jh uG8t?j#@tWQPa Pƅ]j=@tQPaWƅ(j#@tQPmaƅh 5E 9s%]ph4,M_^3[4]UE3Ʌtw POFYȅu ]UVufFYPu^]UVuI^]UVuI^]UVuuI ^]UVuZI$^]eI`IUUA;Bu ;u3@3]UEV0tVEY^]UVIEtVEY^]UVHEtViEY^]j Iu}v}*3ENj^u;vjX+;w<j_3ۍGSP]QYYȉE/EeE@jPE2YE(YËM3ۋu}ME t~rօt PRQ@ SjtEE ~Fr6HM3SjSScUVuwM9qs qV0} tsA;sPjgu!qyr 3;^]hHUUt+yr;ryVr1A^;v2]U}VW} t ~rSt WSV6 SCY[~F7_^]UjEEPMFh8EEPOU EMEEPWFh9EEP!U EMEEP)FhT9EE$PUE S]VW{;ru+9}s};uP_E PjGjWNt;{r~r΅tE WPQ ~~r8_^[] hH>US]VSOt~ru +؋SV=CW} jWt.~rƅt WSP ~~r8_^[]UVu VEY0t @{@{^]UEU H]UE;Hu ;E u3@3]UQQu UuRP ]UE9AryAr]hHUVMW~;rfU +;w~Nr>t:~r+S+tPPS)( ~~[r8_^]hHUE8u3]Pz9Y]UQu eYulMPE]UQe} uMh u uE]UQu eXYulMPE]døøU=<8tM9t xu3]Ë@]U=tM9t xu3]Ë@]%h %l %p %x %` jh9YE uzWMu3F!HuSM$Y  *T :MydH,Px RRxjJYu  OɅue ~H e=p uRJ!IuuyOGLEuu=@{tGpu^5@{6TYu[hjWYYV5@{,TYYtjVYFYY NVKRYujtEY3@X U} uWRuu u ] j h9 X3@u u 95 etu5 ht uVuщEuVuE]SVu}u(u$SPuSWuhtSWuЅtu*SVu#}tht SVuЋ}E&MQ0uu uËeE3MWU} u ujuGuuBYY]U j< &Wu;U=< YYuj WYh  UY]U$jktjY)     5 = f8 f , f f f% f- 0 E$ E( E4 p ( ,   $ 0 jXkǀ4 jXk {LjX ${Lhl]Uj]UjjtM)     5 = f8 f , f f f% f- 0 E$ E( E4 ( ,   $ 0 jXkM4 hl]UVMF ufBЉVJlJhN; tBpuuWF;tNApuZFNApuApF  AF^]Uu MgMyt~EPhu^ E A}tE`p]Uu MMyt~EPjuz^ E A}tE`p]Uu MMyt~EPju(^ E A}tE`p]Uu MkMyt~EPju] E A}tE`p]Uu MMyt~EPhu] E A}tE`p]U= uMH%]ju1YY]U= uMH]ju^YY]U= uMH]juYY]U= uMH]juYY]U= uMH%]juYY]SVL$ T$\$tQ+t :uHDBv4u %=wً ;u҃v#Ʃt3^[Íd$^[UUMVu u 9M u!3.tE tuuu\j^0{^]SWu+ފ3FtOu+CtOtJuu_[uu E jPDX\j"UW= }wwU  fnp۹#σ+3offtftf#uf#DžEЃSf#3+#I#[DžD_U t93t;DDžt Gufnƒf:cG@LBu_ø#fft#Ϻf#ufft@ft뽋}3كE 8t3_̋L$D$WSV=  fnpftufoftfڅuf~ڻ#؁w'offtftffكtۃtj:uЍNu9#ځw/o foftftftffڅut:bH^[_3^[_À9t#فwo"1f: fsKt tf~»#؁vt:tf:c@ ws׋#ށw)#ځwo f:cN qyLA:x뭊toqtUL$:tt :t u^[_3Ê:u~at(:uAtf:t3^[_,G^[_Ë^[_Ë {39 @ U$Mu EtM E SVWt}t|$~X}܍p3ۉ]t~EPjP-W}܃ HtFʋE]-u FM+tM}]EC:$1u0tj _0s ^]UQSE H3M E@ftE @$3@ljjE pE pE p juE pur E x$u uu jjjjjEPh#E] ck 3@[]U {Me3MEE EE@E'=MEdEEduQu*eȋEd]XY$U8S}#u?M 3@eEX= {M3EЋEEԋE E؋EE܋E EeeeemdEȍEdEEEEE*6EEPE0UYYe}td]ȉd EdE[]UQQES] Vp HMuWx3Uu ZdMUNk9T};T~u}KuyЋEF0E8E;x w;vdMk_^[]UQSE EddE] mc[]UQQSVWd5uE@ju uu E @M Ad=];d_^[]UM Vu4N4^]UV4u;u4N^]4 A;tȃyu^]cFAUZ4tM9t @u3@]3]USVWE3PPPuuuu uo E_^[E]̋T$ L$tD$% s L$ W|$]T$ |%XlpWr1كt +шuʃtt uD$_ËD$UV3= }-MffufE ;tf9uf9uk3gUfM f;uftMBu3f;ufnof:cuJfno f:cAs4Jt^]US] VWE{s3= {Et O3 0GO 3 0qE@fEEEECC E@@LEt{qM~~hE8csmu(=TthTotjuTUM qE U9P th {VqE X tufM]Ã^tG!E{ t6h {V˺qt O3 0iWO 3 2YE_^[]ËO3 0BGO 3 02M֋IqVjj >BYYVȰ   ujX^Ã&3^j h9C6eu#YuE CËu5UQSV5̰ W5 5 E֋؋E;+OrvPpGY;sG;sƋ];r PSBYYuF;r>PSAYYt1PȰ  uȰ KQȰ  E3_^[]UuYH]UVutU t Mu3fHNj^0^]W+fIftJu3_ufNj"UE} ]UE VtW}jYM_^t t@@MEt tE@EPuuuа ]QL$+ȃ Yj QL$+ȃ YT WVt$L$|$ ;v;h% s3Ʃu%X% s vs~vftcfoNvfo^0foF fon0v00fof: ffof: fGfof: fo 0}v foNvIfo^0foF fon0v00fof:ffof:fGfof:fo 0}vVfoNvfo^0foF fon0v00fof:ffof:fGfof:fo 0}v|ovfs vs~vfhIur*$hIǺr $|H$xI$HHHH#ъFGFGr$hII#ъFGr$hI#ъr$hII_ILIDIoffufuffu4f;t fu3f9H#"f;tftE3][UUMSVWu u 9M u3,tE t}tu3f{Cj^0_^[]Ëf>tKutуu+f>ft)Ku$t+7fftKtJuu3fpuE 3jPfTAX3fBj"qUEu]ËM UVHt2ft f;1u +^]UUMVu u 9M u&33tE tu3fuu3frBj^0^]SWu+f3vft%Ou +f[ftOtJuu3f_[{uE 3jPfTAX3fAj"UEPjuuu uo]UEPjuu uq]UEPju uh]U e3Vu W}jYu{AA9EtVEIuuY=?v EEuEuuPU_^]QL$+#ȋ%;r Y$-5̋ ̰ tjjaYYyU( {3ʼnE}Wt u5YjLjP 0ffffffEEDž0@E EE P[2Yuu}t u'4YM3_*]UEH ]U5H ̰ t]uuuu u3PPPPPjGtjY)VjVjsV1^UV5H ̰ uȰ H ^]Q薅YUA PE PYY@]UVEtVY^]WVt$L$|$ ;v;h% s3Ʃu%X% s vs~vftcfoNvfo^0foF fon0v00fof: ffof: fGfof: fo 0}v foNvIfo^0foF fon0v00fof:ffof:fGfof:fo 0}vVfoNvfo^0foF fon0v00fof:ffof:fGfof:fo 0}v|ovfs vs~vfXur*$XǺr $,W$(X$WcYYt3D79E[^_]Uujuuu u]UQ}u36SVuW}uu9u 3] 5uuu;v,GPVhuL58"uk5bSVhEsDuu58"u5|5M)y(ud5" W5_^[]U}u45]Vut9} v3uuuu Vhyu 4" 4b^]Uujuu uu]UVW}tM t Uu3f4j^0_^]Ëf>tIut+fRftIu3ufJ4j"U} Eu yjj juuu P]UM Vu 4j^0}SWw 3j^U3f@9Ew 3j"ދEj"^;w3҉EUtj-Xfy3@ډEMߋ3uUЋE vW0fAt;Mr;MM r3f\30 3ffff ;r3_[^]UVW}tM t uu3j^0_^]Ë׀:tBIut+֊2FtIuu 2j"3UVutU t Mu2j^0,^]W+AtJu_u z2j"3UVuWu^2 EF t9VV蕆V7yP%y~t v fYf _^]j hp:&}3uu1e)&F @tf V3YeV?Y}ENju}V/4Yj h:%e3}ul13~3] t38t`uu 11ȃe?u 1jEPh {ZQ VuSW/}E4%Ëu}Vk3YUVuu0j^0@$huu  t30^]Uuju uhw]j h:r$3ۉ]3} uE039Et܉} WL2Y]G @uqWwYЃtt H{@$u)tt H{B$t/7]u$W2uuuWU؉]WV2E#Ë]} W1Ỹ= t-U$,$Ã= t<$XfftU T$|$l$T$D$t YEWj WYE~lt#WkY;=t t ?uWYEV Y0uj fYËuj ZYU@{t'VuuPH@{YjPWYYV^]VujY^VW0 5@{YuGhjYYt3V5@{ YYtjV%YY N V Y3Wذ _^jh:uF\f3G~~pjCXffFh}j Yevh( E>j ˎY}E FluFlvlYE3Guj Yj Yj觏uc3hs @{YtVhjYYt-V5@{ YYtjVYY N3@^3^á@{tPN @{Y#UQS3V9]uj^0+u tr u  u3C3PPjuPS$ Eu0 P1Y3AP.YtuPjujS$ u0 P6 &Y3@^[]UQEPhj th`uP tuЋ]UuYuܰ VW5 ̰ 5\ t>t 6 Yu5\ SV 5X 3ۉ\ Yt9t 6o Yu5X V] 5T X L 5P A T P t9 tW YjȰ   t P Y ċ t PYċ 5, [u};t PY5_^UVu諍Yhjjj1 U=th9Yt uYFh<h(YYuPVWhY$ tЃ;r= _^th Z9Yt jjj 3]Ujju ]VjȰ V7wVV_V蒎VS*V菐^ UVu tЃ;u r^]UVu3utу;u r^]j薊YjYjh ;] jxYe=| p El } 5 5̰ ֋؉]ԅtt5 ֋]}}܃};rWjȰ 9t;rG7֋jȰ 5 5̰ ։E5 ֋M9Mu9EtMى]ԉEhPh@YYhXhTYYE }u)| jYuh}tjʊY  3ɣ Ã% jdh@; j ,Y3ۉ]j@j _W YYȉM܅ujEPh {8 W = ;s1fA Ya$A$$A$fA% Y8Y4@Mܡ ƍEP f}-E"MEE;|ȉM3Fu9 } j@W YYȉM܅ M}j[E؋U;2tY;tUtOuV Ut:4 u܋E؊FjhF P FUMG}ԋE@E؃U녉 =  ;s$fA Ya$fA% Y8Y4@MFuЋMj[3}ԃ5 u܃>t9tF FFujX GP EtJtFP t;M%uF @ u F FjhF P FF @F tXG?]3 j YVW >t7;s" tW @G;r6"&Y |_^UQQ= u SVWh 3WS  5 =` t8uEPEPSSV]]?sEMs=;r6RvYt)EPEPPWV EH=P L 3_^[]UES]VuW#}E t8E 3ɉM>"u3FȰ"M5tGFEP=Yt tGFEtMu< t< utGNe>< t< uF>U t:U E3B3FA>\t>"u3u}t F8"u 339EE It\GutA9Mu< t8< t4t*PjYttGFGtFFotG-U _^[t"E]Ã= u V5 W3u<=tGV}FYuGjP4=X YYtʋ5 S>t>VH>=YXt"jSYYt@VSP uH>uȋ5 V?% '3 Y[_^5X %X 3PPPPPU}t-uj5  uV0 PY^]Uee {VWN@;t t У${fEP E3EE 1E 1EEP ME3M3M3;uO@u G ȉ {щ ${_^]UQW 3tuVf9tf9uf9uSPPP+PFVWPPx Et7PYt*3PPuSVWPPx u SY3W  W 3[^_]U 3 {tu]]%$ U$ 3 {ut]0 ]U( 3 {ut]( ]U, 3 {u ut], ]UQV5{y% 33 {ut VMQЃzuF5{3^]VWhp4 5P hW3 {hW 3 {hW$ 3 {hW( 3 {hW, 3 {hW0 3 {hW4 3 {hW8 3 {hW< 3 {h,W@ 3 {hLWD 3 {hdWH 3 {h|WL 3 {hWP 3 {hWT 3 {X hW3 {hW\ 3 {hW` 3 {hWd 3 {h0Wh 3 {hLWl 3 {h`Wt 3 {hpWp 3 {hWx 3 {hW| 3 {hW 3 {hW 3 {hW 3 {hW 3 {_ ^Uu ]Uu| P ]Uj u ]UVW3ju u u%9 vVY;5 vuŋ_^]USVW= 3uiYu#tVX= Y;vu_^[]UVW3u uYYu*9E t%9 vV Y;5 vuË_^]UVW3uu uЃ u*9Et%9 vVY;5 vu_^]VW|_|_ tЃ;r_^VW__ tЃ;r_^h`Bd5D$l$l$+SVW {1E3PeuEEEEdËMd Y__^[]QÃ% USV5( W}Wփxtwx֋tPփ|tw|֋tPjX_E{t ;t3֋E{t{ts֋EHEu΋P_^[]USVu3Wtf=Ht_FxtX9uTt9uPYYF|t9uPԃYYvxYYtD9u@-Pj+PW+PI>=t9uP軃YYjXE~tt8uP3YYEtGt 8uPYEHEuVY_^[]UVuSW=, V׃~xtvx׋tP׃~|tv|׋tPjX^E{t ;t3׋E{t{ts׋EHEu΋Q_[^]j h`;o Npt"~ltWpluj "Y j yYe5FlP!YYuE뼋uj ({YUW} t;Et4V0;t(W8YtV>Yu tVOY^3_]Ã= ujTY 3UE-t&t tHt3]á]á]á]á]UMj% Eu @ ,u < uE @}tMap]US]VWh3sWV3{ȃ {{  }+7FIu9AJu_^[]U  {3ʼnESVuWPvD 3ۿÈ@;rƅ Q ;s Ƅ @;vuSvPWPjS艄SvWPWPWSa@SvWPWPhSa$MtL tL A;rWjX+‰‰ w LA w L AA;rM_^3[]j h; Optltwhuj Yj tvYewhu;5t6tV, u}tVYGh5uV( E뎋uj ywYjh;A؉]=shuYE;Fnh Y؅[Eph33SuGYY} Eph, EuHh}t QJYEXhS( E@pj HuYuC C  ΉM}fDK fM AΉM} D{Au}|F5, u=}tPYS( E1}j uY#u}tSNY>3U {3ʼnESVuu )YuVY3W3ϋljM9A0M=rP8 EPSD hFWP^ 3ۉC9]vO}Et!HtLA;v8uߍF@Iuv^~3~ ȋ 9= t VhFWPh kE0EE8t5At+sDBA;v9u΋EGErS^FXEN j_fRfIOuVItEht8ltw,8lu @ <6u4uǃ<3u2uǃ-(FDžjsHHkj'DžX|Qƅ0Dž^3 t@tGG@t GȋO@t;|;s߁uy3B;~Ћ uuJ t=RPWQ09~N밋E+Ft6t>0t-N0!u5I8t@u+Ɖ@t5t ƅ-t ƅ+ tƅ Dž++ uPWj 0EQPPtuPWj0Dt}~yHPjE􉍜PPu?9t7PEPu(#QPVx#tPWj DtP<3Y_^[t apM3b]`<ݙ4vUVuW}EG @tu ME N&S] ~@EPEKWPBE E8u>*uPWj?BE ˃>uE[_^]USQE EEUuMmiVW_^]MUuQG]Y[ jh<5ȋ ̰ te3@ËeEjh;@xte3@ËeE5@|thȰ ȋ jh<XEtr8csmujxudx tx!t x"uIHtBQt'eRp贙E%38E Ëe7t@tQPUVu\^]\UV\EtVY^]j0hH<EE3ۉ]ȋ} GE؋uvEPYYEEEM]3@EEu uuuWNE]uYËeM3ۉU} zGGErˉM9J v:k};D7} ~"};D7} kD0@EJE AM;J rPRSW{ ]]uEEË} uE؉GuYMЉM̉>csmuH~uB~ t~!t ~"u'}}u!tvYtuVlYY}jteMjjqU} W} tu uWu},uuWu,芘Vu$6uuWJF@hu(GEp uuWu,^tWP_]UE8csmu9xu3x tx!t x"uxu73A]3]Ucsm~ ~ t~!t ~"9^9jVEE腅YYu>csmu+~u%~ t~!t ~"u 9^u19tl$EuVYYuD}9É]OhLbECE;|EEE>csm~~ t~!t ~"f9_ EPEPuu W臕M;MPEUZ]ԋ] 9B;B:}z}}MF@ P#vPQE[ u*EUHMEUӋEHME'uEu$u uuuWuuSV,UEMAMU;M<3ۀ}t jVYY}uy%=!rktewVYYuVLGB7}$MVu|u zE9_ v8]u3u$u uWuPu Vu 9t_^[]jV YYEEdPMch$=EE\P-u$rjWuu 6w\UQQW}?SVm]tHjȰ R9t1?MOCt)?RCCt!u$u Suuu Wl{ uEPEPuu SMU;syp E;F|c;F^~|tV\U{]u8~Nj}@u(ju$Nu QjPSuuu WU,MEAM;r^[_]UQQSVu Wtn3ۋ9~]ˉ] E@@ PUE~5EpF2PM uEUHEUGM ;>|_^[]UM UVq…x I ^]jhp<NUM ty zeuVRQ]SWHtHu4jFPsYYPvW觐FPssYYPvW荐E3@Ëej h=3ۋEHa8YXHu E} x ]jtBuvYYjWYYNEPQYYuEptNYYjWYYvEpW, ~?FP79^u9KYYtcjW=YYtUvFPEp/YYPWե :YYt*jWYYtv~Ytj[C]rE3@Ëe3UE8RCCt!8MOCt8csmu*Zw~ i3]jh <ExEppu3e;ut_~E;p|MAUE|t'EPhPAt: u)YËeeuuE;utUEpËu~ USVW{M3Ucsm"9u!9t:&t%;r A Bft!9q9uujQuu l9q u%=!rY9qtT9u4zr.9zv)BptE$Pu uQuuu Rփ u uu$Quuu R 3@_^[]UVuWFtGH9t?} W;tBPQ(YYt3$ttEtttt3@_^]Åuffnf`fafpSQكuxڃt0ffAfA fA0fA@fAPfA`fApKuЅt7tIfIKutt f~IJutAKuX[ۃ+RӃtAJut f~IKuZ^UE3SVWH<AYt} p ;r H;r B(;r3_^[]Ujh`=h`BdPSVW {1E3PEdeEh|tTE-PhRt:@$ЃEMd Y_^[]ËE3Ɂ8ËeE3Md Y_^[]UEMZf9t3]ËH<39PEu f9Q]SVWT$D$L$URPQQhd5 {3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhCyCyd_^[ËL$At3D$H3xUhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]Ëjx33333USVWjRh&Q _^[]Ul$RQt$ ]U}uKϞ]uj5 P ]Ujuuuuu u]UEet_EtZfuu uuu u]ÃatAtu uuuu u}0u uuuu uu uuuu u]U,SVWj0XuEM3ۍM|}yu tMu @jG ;w.j"_8賝UZE%=uy3;uu;tAjWP^SRt;-u-F}j0X$xFFjePYYtɀp@3O3 t-F}]j0X$xۈFJۃ'3 ]u'j0XFB % u3EEF1FMuEԋB%Ew :eEM ~SR#E#ыM[zj0Yf9vËM UFEEEOM EfyfxWR#E#ыMzfv6j0F[ftFuH];Et9u: @~Wj0XPV蘈 E8u}4U$pRyȋ3#+Mx;r F+ F-0;|A;rPRSQ]x0UF3;u ;|drPjdSQ:x0UF3;u ;| rPj SQx0UF]30F}tM܃ap_^[]Ujuuuu uV]UMSWu ;y]t} w jU3…ǃ 9E wj"_8I}t M3P39-PUYYEV8-u-s~FFE38E9E t+E htPVw uvN9}tEUB 80t-RJyF-jd[;|™Fj [;|™FV ^t90ujAPQ }tMap_[]WWWWWVU, {3ʼnEEMS]VW} j^VQMQp0uux0tuu aj^;t3΃}-+3+ȍEPCPQ3Ƀ}-3PrtuEjPuSVWM_^3[i]UEMSVu@HEwut} wj[>3W}8]tM;uU3:-f00E8-u-F@jVY0FY~JjVEYYFE@y&8]t;|WVlWj0V蚄_}tMap^[]U, {3ʼnEEMSW} j[SQMQp0suJlVuu2S;t 3΃}-+ȋ]EPEP3}-QPqtuEjPSVWg^M_3[]U0 {3ʼnEEMSW} j[SQMQp0VP֔^_]Vhh3V;r u^VVVVVV3Ȱ (r^UVu WV8YN u& N @t "S3t^t}FN F ^F u* ;t @;u WljYuVO|YF tzV+ʉM BFHF~QRWq G N httNj H{A tjSSWpz#ƒt%NE3@PE EPW=q ;] t N E[_^]UQ}ujSVuW}uu9u 3] uuu;v,GPVh=uNo8"uoefSVh=E_3ɃfL^uu78"u7-M+y*3fu" 芑_^[]U e3W}jY9EuV}Vu tu/EBuu?v E?ESuEuuPU؅t]xIMxEE@EEPjYYt#EMxEPjYYt39EfD~[^_]U}ul]Vut;} v5uuuu Vh=y3fu " ^]UVu W9EuL}jP;Mu.YYu31EPu7ρ Q t҉&3@_^]USVuuPpYu ރ߃^f[]Uf;Et]]UVW}u WYf;tjV?YYu_f^]UP {3ʼnEUE MS3ۉ@$ Dž^V8u6躎tWuWm$ˈ>0f;jP>YYtYOPPPYYP$YYjPa>YYu싽$0$j%Zf;yf;Q\É$Ӷˉ,7#?+u9PinYtk {+7Ntk*Ft]ItLƈ+EF6u'f~4u A3umf~2uf?+7)$,0@jdYf;tjiYf;tjoYf;tjxYf;yjXYf;u#l7ehtFjlX;twt'ˆAjlF[f9u ƈ+?È? ?Έ+ュ2u$St Ct$j X jnX;-ct&{t!PY0G03Yȸ8f;t ,&7uTct st{uE@@oe c jdX; og~Bit0jnX;Z7 88)83j-Yf;u Ffj+Xf;u",G0Y8,PjYt},I,tj ffqP@FP PPVkG0`Y8u@08;ȋ,I,0؋ 8f j+Xf;,I,ug!,uPgYtw,I,td fpP@FP PPVGY8t0OS0YY7 3f p$>$V u,Dž~ƅ#08HS0YYctt,I,0@0}ظ8Yf;ctOsu r ij Xf;u4{X3ҋB⋍ 3ȅ-7#fIƒpHHH>t;$8f9\>ɀ7I8~ƅ#$j^Xf;u ƅu%h YDžh jW^p j]Zf;uj XڈG ȃj-Xf;uzftuf;tm$f;s؉f;s/+ߋ֋:FKu닽$ϰ:3ы:j]Zf;X3f9$'j-Xf;u ƅj+Xf;u=,u t(0@06{Yȉ8j0Xf;0@0{YjxX8f;jXZf;Dž;tt ,ujoZ0OQ0YYj0Xȉ8jxXP:0;pPJbYjoX;8j8Xf;0G0yYȉ8t,,}jxXЉSQPY"B)1)0HS0YY;7hcY#0t 3fF>ƅ+j-Xf;u ƅ j+Xf;7,utG0xYjj QQ~8_P`Y8VcYȉ8j0Y+ʃt,tYCV0wYjx8X58KVQ0YYbj[ˉىD8멋뽄0;tLptGP_Y8joX;uj8Xf;Jk EPB_Ytz8VYȉ8t,t_C0KvYjx8X8KQ0YYt3ۃF#A70}tHR+8>t0f0f;uAf;u$GV0OuY$؉8f$f;f;u)$8j%Yf9 jnXf9C33ۋ8$fiQMYYP~ 33f3ۈ 8+S Y3YC# t 3f3ۈVS댃uD{_t apM^3[d]3PPPPP{UU ҋM##M щ]/tj:/Yt!jtjY)jh@jOy j#UE̋ ]̋T$L$u@:u2t&:au)t:Aut:auuҋ3Ët:uttf:u΄t:auńtj h=xj*YeuFt0 ԋ Ћ Mt9u,ABQ5Yv,YfE fËj+YUEusy]Ë@]U {3ʼnEM 3SVuWu}Wh F @uhVPYȾH{;tt B$= ;tt A$  3ҋ‰ A Bk ƒIt?ht2ltw 39lu A" <6uy4u<3uy2u-(FDžjsHHkj'DžX|Qƅ0Dž^3 t@tGG@t GȋO@t;|;s߁uy3B;~Ћ uuJ t=RPWQ艋09~N밋E+Ft6t>0t-N0!u5I8t@u+Ɖ@t5t ƅ-t ƅ+ tƅ Dž++ uPWj QPPmtuPWj0t}~yHPjE􉍜PPGu?9t7PEPܽu(#QPV袽xtPWj tP3YAttӭWn_^[t apM3"W]ÍI$]#0tUU B @tzt/JxMERPYYuE]ËE]UVu ~W}WuNu ?t_^]jh=uu转 xy;5 sq D8tSVlYe D8t VUY苬 }E )u}VJpY( T l蛠UVW}W0oYtP u u u@DtjojnYY;tWnYP u 0 3WLnYσ D9t V葫Y3_^]UVuF t F tv蕙f 3YFF^]UVuu VY/V,YtF @tVEPJoYY3^]USVu3ۋF $<uBF t9W>+~~.WvVYP#J ;uF yF N _NÃf^[]jYjh=̞3}!}jY!}3]u;5  t]@ tWPVYYE @ t0uPYtG}u@ tPYu E܃e F녋]}u 4VYYEtEIË]}j~Yjh=3ۋujY]};=  tV@ uF@ u=GwGPCYt 4W߫YY @ t PW2YYG떋uNj80Yȡ  t8Sh  P   PH  4u^ tf ^^^NE -ËujeYUQQS3!U3Vu W=ē EF> t tjVhNm j XF8t>=rF8tjhVJn u CjhV+n u $jhV n F> t>huE SuPlE 3ɉHHHM x H_^[]UQQ {3ʼnESVuW~!EI8t@u+H;ƍp|M$3u E@ȉE$39E(jjVuPQ$ ȉMu3X~Kj3Xr? MwX܅tQIYt M3ۅtQSVuju$$ ujjVSuu ;Mt,M ;QuVSuu t;~Bj3Xr6};wOWtfPYtQ3t@WVuSuu ;t!3PP9E uPPu uWVPu$x VdYS]YǍe_^[M3M]UuMCu(Eu$u uuuuu P$}tMap]UEt8uP Y]Uf9EVu M#Cu싆uMAfwf jf9Us(uYEYu*ȋMQjMQRPlu EE}^tMap]UVuwoSW uj8hM YYt3AQjP u&j [9܋ t V2Yu٢_[VYŢ 3^]U5؋ ̰ tuYt3@]3]UE؋ ]UVu W9EuI}jP;Mu+YYu3.E6u7T Q贕 tՉ&3@_^]US]PCYu߃[]UMIx @ QCkYЋ]U {3ʼnEME|SP3W} ىpDž ^ ,du耡bt@ @VurP^YȾH{tt B$u&tt A$tau)@3yȉl`0G H<PfBYtJN``pVP-YYt VPjYYGP-BYu`lj%Y:X8OE3ɷ4Oى@8([Zzj{$GTPyAYtmT8k qz{tĈkdtlDQTTNt*t|FtItLwG<6u#O94u$<HM<3uO92u:YttjItt]P@,P|FPPP PV{ pG2Pd=Y닋[:ItpGP؊[d,P|FPPP PV) P>=ntItt`P@,P|FPPP PV pG7PdPe,P|FPPP PVA pG؉dY-u9P,P|FPPP PV +u0tItu!tpG7YdP;ntItt`P@,P|FPPP PV^ pGPd_;YYuOl`tpSdYY@ zu9P0QTPkQHP5 ̰ ЃDylyGuBDž8t{~ƅjlTIl`tpSPcYYl\ct(8ttJtpAl`؉dYctFsu |  u.{3ҋ˃BL[3ȅ_zF(jPtYt%lp@l`YDž?PptPP"PTff(TpNHHGt1;yȀz{~ƅjG?^uGƅ[j EjPsD ?]u ]E GO]G-u^tZ<]tTGD:s:s&*֋DFOuꋽD̰уD2OɋуD܊O]rd?eD"+uJt8t~ƅxp0FWl`؉dYxX\Dž@xtL8ttuxjoY\pFWl`kYdhNl`tWS_YY\j0[d2FWl`8Ydttt}xjxXTAHT(Fl lHl`tpS_YYT;zB0c3jDt 3f ƅk-u ƅZ+u=Jtu 8t-pFl` Yd\x$|=xtgptbPw5\You$8H<HmHjj Q\Nl`tpS[YY\4Zt؉4F#@z04D$tT<HHkɋTtf:u8OuGpFl`GdY;PlYt$pYG;l`u?%n{T~3f@ ntpSZYYDž Oj t3f4/pt VP_ZYYtV tpSDZYY,u P}Y;u0u18yt+' u茏P00t ap^M_3[8]USVuu 4YtQ0Yu^[]UQfEf;u3<f;sȡHEPjEPjT #EM #]UVu< uVqYujsY4 H ^]VW SttS S||'Y@|[>t~u6 @|_^jh>J= uj/hDrYY}39 uZjYu 3@j Y]9 uShV 4 V{YE 3@j 9YVW  ~uj>h6 @|3_@^UE4 L ]j YYtjXYu=0 uh1h'YYUM3; t @r3]Ë]U {3ʼnEVuWVYySjXYjsXYu =0 Ah#hh8 > 3ۅ1hhj Sfr  uh#Vhj = hj ma@Y3ۉ]3}؋u PtjY+t"+t+t^+uHdl}؅ubE` ` ^w\VQYYEVƃt6t#Ht艊 KEh h Ed d  El l 3C]P̰ E܃uj@ptj\Yet tuG`EЃg`u?GdEGdu- XщUԡ\;}$k G\dBUԋ XjȰ MEu wdVUYu]}؅tj$YVUYt tuEЉG`uẺGd3}UU PVu9rt k E ;rk M ;s 9ru3^]UEt ]UVuMF(E MEL0u39UtEp#E…t3B}^tMap‹]Ujjuj]UVu W3tj3X;Es肈 3<uS]t S YVSaYYt;s+VjP5 [_^]UVutj3X;E s 3Qu uF3ɃwVj5  ȅu*=܋ tV$YuЋEt봋Et ^]UVuF ;TtPuYF;XtPuYF;\tPuYF;`tPruYF;dtP`uYF ;htPNuYF$;ltPtv6tv.tv&t6tv tv$tv(tv,sv0sv4svsv8svU HuW ;+t3Ʌ M~B+t3Ʌ My~B+t3Ʌ MWNB+t3 E3Ʌ1F;BtB+t M ~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BtB+t My~ B +t3Ʌ MW~ B +t3Ʌ M5N B +t3 E3ɅF ;B tB +t M~ B +t3Ʌ M~B+t3Ʌ MNB+t3 E3Ʌ~F;BB~+t MR~B+t3Ʌ M0~B+t3Ʌ MNB+t3 E3ɅF;BtB+t M~B+t3Ʌ M~B+t3Ʌ M}NB+t3 E3ɅWF;BtB+t M0~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BtB+t M~B+t3Ʌ M}~B+t3Ʌ M[NB+t3 E3Ʌ5j Y+;_Ӄ$(F;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅyF;BB+t3Ʌ ML~B+t3Ʌ M*~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MqNB+t3 E3ɅKF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BB~+t3Ʌ M~B+t3Ʌ Md~B+t3Ʌ MBNB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BtuB+t3Ʌ Mu`~B+t3Ʌ MuB~B+t3Ʌ Mu$NB+t3 E3Ʌu3ɋ_ F;BtuB+t3Ʌ Mu~B+t3Ʌ Mu~B+t3Ʌ MuNB+t3 E3ɅqF;BB+t3Ʌ MD~B+t3Ʌ M"~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MiNB+t3 E3ɅCF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M]~B+t3Ʌ M;NB+t3 E3ɅF;BB~+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3Ʌ}F;BB+t3Ʌ MP~B+t3Ʌ M.~B+t3Ʌ M NB+t3 E3ɅBN+3 EF;BB+t3Ʌ M~B+t3Ʌ Mt~B+t3Ʌ MRNB+t3 E3Ʌ,F;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ Mh~B+t3Ʌ MF~B+t3Ʌ M$NB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅgF;BB+t3Ʌ M:~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BB~+t3Ʌ MB~+t3Ʌ MB~+t3Ʌ M^BN+t3 E3Ʌ8F;BB+t3Ʌ M ~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅfFf;BEF;BB~+t3Ʌ M`~B+t3Ʌ M>~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3Ʌ_F;BB+t3Ʌ M2~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ My~B+t3Ʌ MWNB+t3 E3Ʌ1F;BB~+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ Ml~B+t3Ʌ MJ~B+t3Ʌ M(NB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3Ʌk~B+t3Ʌ MIB~+S3Ʌ M8M1+t3EqB+t3EqB+t3EIB+t3 EUu  +t3EujJF+t3EuLJF띋Uu  +t3Eu JFnEE ]3^[]Ë Q#'mu"&""Y&>F!% *%] $y#/d#U3ҋ9E vMf9t @;E r]USVW3;+‹jU43u ty^~;~Ѓ3_^[]U}tuYx=s x,]3]U졌 3 {t3QQQuuuuu u]uuuuu uYP ]UVu3t^M SW}jA[jZZ+UjZZf;r f;w f;r f;Ew Nt ftf;t_+[^]jhH>\3}jY!}j^u;5 }S tD@ tP6YtG}|)  P  4~VY $FE \Ë}jYUMu 7h 8x$; s D@]h (3]US] W}utEt 3EtVvgj^0<(XuME39ubfEf;v;tt WVS mg*bg0}tMap^_[]Ått_EtэM u QVWSjMQVpx ȅt9u uEt0 zutt WVSk fj"^0c'oUjuuu u]USVWUjjh-u*o]_^[]ËL$At2D$H3UhP(RP$R]D$T$SVWD$UPjh-d5 {3PD$dD$(Xp t:|$,t;t$,v-4v L$ H |uhDID_뷋L$d _^[3d y-uQ R 9QuSQ SQL$ KCk UQPXY]Y[UE]UUVuWz uNej^0%} vM~3@9E w ej"0S^Å~tGj0Z@IUx?5| 0H89t>1uBS7@PSV&3[_^]U( {3ʼnESVu MWu}E3PSSSSVEPEPE=EEWPT2ȃ(Eutuj utj[}tMapM_^3[ ]U( {3ʼnESVu MWu}JE3PSSSSVEPEP<EEWP87ȃ(Eutuj utj[}tMapM_^3[ ]UQQE SVWxPϋ}Ett<%!uuE!P!fxX<3M E ]s x&ʁ y} }E s f{_^[]U0 {3ʼnEES]VE܍EWPEPYYEPjj uЋfCu܉CEECEPuV/$uM_s 3^[ ]3PPPPP"WVU33D$ }GET$ڃD$T$D$ }GT$ڃD$T$ u(L$D$3؋D$d$ȋd$G؋L$T$D$ ud$ȋD$r;T$wr;D$v N+D$T$3+D$T$My؃ʋӋًȋOu؃]^_̀@s sË3Ҁ33UME #Vut$t jjLYY aj^0!Qu t KKYY3^]j,FYjhh>Tuu` ` ;5  D8tcV Ye D8tuu V_ G` ` }E )u}V#Y_ ` OTU {3ʼnEE3ҋM W@D,<9Uu3uq_!8_" SVȋ0 \$tu+EШu_!8B_L@D t jRRPO@Y0 Db@3ɋ@l9P0@ 4 9@t D!$49}~3Dž 8 3 @0 |8tD4EEjMd8PZP;:YtDD4+EjR1@f;uj Yf @f3rH+؉,j(PSHP0 4D 8<(D<9(@+;E ]$Dž H$+ʋ;s;>$f;uj ^f0$f8r3VVhU QH++PPVhx 8<43ɉ@j+(RPP0 4D t@(4@;0 @48;Q$D+<;7j(QuD4D t (30 Duct$j[;u4X W?VWY60 D@t :u3 WW +,^[M3_I]jh>Ku؉u܋}urW W ;= E߃ DtpWYeE Dtuuu Wg%W V މu؉]E +}]܋uWYV V e֋'KUQQVuWVY;uV NjDuMQuu P u0 P^VYӋƃ d0EU_^]U VV-IYMAt I qI AAAAa^]U {3ʼnEESVu Wu}3؉U9u*U8t `p t3ҋ‰ʉf DžXDždDžiDžo jXB_f;w`3k 8lj  $I3؉ j Z+tFt9t/HHt   ˀj*Xf;u/Z ؉D k ƒ$ 3 j*Xf;u+k ƒƒItWhtHjlZ;twf9uj X 6u#f4uǃ3u#f2uǃrf; f;f;uxf;3DžPRi ƒd)S%t}AtHHtXHHtHHj XDž@Dž0j X ؉0u j X ؉tv u53ɋƉQP-YYt@@A;|XHHHHjDž tD3PptPP yDžf3ɍAt6pt/t+Dž3ɉ5V"YpegjiZ;tfnt'joZ;_Džy[MT tfDž@Dž u ujgXf;uVDžJ;~=~7]WAYt DžxG|PPxVP5̰ Ћt!uPV5̰ YYjgXf9uuPV5̰ YY>-F Džjs{HHj'DžXxj0YQffDžU t@tGG@t Gȋ3O3@t;|;s߁uy3B~ uJ t=RPWQT(09~N밋+FtEt>0t*uPWj?>E ʃ>uE[_^]U {3ʼnESVW} G @6W܏H{Yt.WˏYt"W迏W贏Y YÊ@$$<W莏Yt.W肏Yt"WvWkY YÊ@$$<WEYt.W9Yt"W-W"؃Y YCt_uEjPEP(t^39u~2OxD5@D5WP{tYYȃtF;u|fEGEx f WPZ6YYM_^3[]USVu t]t>uEt3f3^[]WuMEuMtf3GEPP"YYt@}t~';_t|%39EPuwtVj w$ }u ;_tr.~t(t139E3PuEGWVj p$ uF*}tMap_4Ujuu u]UQSVW}H{G @xWPYt.WDYt"W8W-Y Y@$tSOx @ WTYȃu (OMx @ W*YȃtֈM fEG @W豌Yt.W襌Yt"W虌W莌؃Y YC3FOx @ WYȃXPMe!Yt6Ox @ W~YȃuEWPlYHjM^VEPEPs $D*Gx W4Y_^[]U {3ʼnES]VW} f;aG uG QG GuWYG @W`Yt3WTYt'WHW= YYH{@WYt.WYt"WWY YH{@$tjY]}M!SjEPEPttMG9s u;OQxDJyMOO O f0G9surG @tf9tfƋM_^3[]fG GG U, {3ʼnEES]V3EuW} }t u3 uBPuMMEԅ9u4f9T1ffvF;rlxtuat"Njf90tJut f90u+CEԍURVSQSWVpx }E|0 NURVSQjWVpx t9uw9u0 zEMQMԍUVqtRjPVqx Ѕ9u:;ƉE~MD9E@GE;|EE;rj)A*&9u"ftf;w2Ffu0MQVVVjWVpx t 9uux@*}tM܃apNjM_^3[%]UQVu 3EW}t.t.tS]t9}wE=v e@jYtX@j^0kuPuV2ut)@E@t5;v'}t;w @j"^0jPYMD0Mt[_^]Ujuuuu u]jh>3}4 39^u/j Y]9^uShF P FE*  PH 3@3Ë}j αYjh>83uej ѰYu lj 6Ye3ۉ]؃@D< } ;GuYu2j YEujhG P Ge/E܅uG PH Gt!G PL @녋u]؋}j YËE܅uG+4 uuC)j@j 0YYȉMte    ;sfA a@Mۋu΃ DVYuuE 1Ëuj 'YUEVWx`; sX Dt=<t7=0 u3+tHtHuQjQjQj   3= < _^]UMu< < Bx&; s Dt]< < /]UMSWx\; sTً <u:=0 Vu utItIuVjVjVj  43^.< ; _[]UM  PL ]jh>/}u; ;= E߃ DttWY3uE Dt(WuYP u0 ut#;0P; uE !}uWY!; h/jh?/e3uu:j^0o^39Etރ}tE%@tɃeuuuu uVEPU}Et.Ëu}}t%t d6/YUQeEPuzYYu+Vu uuuuu u+u ( ^]Ujuuuuu ]Ujuu u]UVuu3SWuME39PuVu u ]t} um9 NUCj]DZt4uʋ]DumIuf Cɉ]GUjDZtuNtf Gf;uft]q҃J}_[tMap^]Ujuu u]UMSWu}3҅M9QuWu u1 hEEt] u?8=V0OEuEDtiuUDfEuURf EfEf;q r f;qwfq/f;qr)f;qw#fqfuDtEfuCEEDtIuUbOtef ECEEf;A r f;AwfA8f;Ar2f;Aw,fA&fEjUD ZtEEfEf;uftE҃J^}_[tMap‹]UE~ PuYYuuPuu u]UW}u6G @t G G u WYGwwWB}YP0 GG uQW}Yt0W }Yt$VW|W|Y Y^H{@$u}A<5|E 99u0I;s;sAfE*ȀHɈ\3@M_^3[]À90uI;s;s̋M3ff9E$  A3@A03SSSSSXUM3tSVWt t t t t Ƌѻ#t;t;t ;u ` @ _#^[tt ;u ]Ã@] @]U }fE3ɨtjYttt ttSV W#t&tt ;u t ;ut} E## ;V?YEm}E3tj^ttt ttЋ#t*tt ;utut= ]E3ɄyjYtttttл`#t* t@t ;uj@%@[+t-t +u#}# ;P$PE YY] E 3ɄyjYtttttп`#t* t@t ;u%@+t-t +u 3Ʃt_^[]UM3t@tttt tVѾW#t#t;t ;u  сt u  _^t ]UQȌu ȌujMQjMQP tfE]UQVu WV&XYN u N )@t "S3t^tFN F ^F u* ;t @;u WXYuV;YF t}V+ʉM BFF~QRW萯 G N uttNj H{A tjSSWZ#ƒt2FMf"EfEEjPWE M ;] t N [_^]UW}uEG @t G G u W#YGwwWjVYP GG uQW7VYt0W+VYt$VWVWVY Y^H{@$ SSS7)#ƒjEP7B MjZ;tu Eu7U\Yj[uJSSR7觱#ƒEjY;v6"QSS7n tSSS7]#ƒuQjYEHt Hu=E jYEM؋+PEP7 M;ً D$2E$0D$7ƋM D2$$ ȈL2$M8]u!t L Mu#;u}txu uEȁujPuVu}u20 P d7cY  SSSSS\U= VuH}u(>} t9uv}^]juu u^]U}SVWuMz}t] tM;vMEuQSW( 2+MQP8k O0; $ȋM]܋ Dv89} u !8ҊD$EHtHu ШtۃE EdШtsj^VEYu ^vjjju譬M D (ET ,M MEDHT t|tx3PG N}UD tZ D%< tKtGB N}jU_D% u+ D&< ttjB N_j YUL&urEYtq D tcEP4  EtL}uFjEPEVu 4 u0 P9YEE M8E MjQVu4 M;U4 D3W}mt M9 u $D3EE 8M;j Y<:t FGEH;sG8 u j XFxjEGPjEP 4 u 0 u|}tvU DHt#j Xj 8EuF& F ED ;uuj X8EuFj Y;}DKjjju Uj X8Etj YFыUj YFƋ D @u D FE+}NxF3Bu];rNBt]uJ*@;u\E D Ht7FD E| FD %Eu FD &+ڋjRPuE؋}+Pu VWjh$ ME3; L0E];E tPYtn}tyuǙ+‹G;sUj E_f;Et3f;t fB;sj Xf9tj XP_f;rE LE+dtMj Zf9Uu $D3EE؍ 8M;_j YEf;E&f;tf'E;s(j Zf9WUuj XffjEPjEP 4 u0 }U DHtRj Xj f9Euf3Xf Ej D  ED % YL&j Y;}l;uuj Xf9EufjjjuUj Xf9Etj Yf뷋Uj Yf멋 D @u D  ffE+0 j^;uN 0m338 蠽_^[]US]3ҸN@VWESS9U <ʉUMUU}ҥu΋}   E s‰{3ɉE;r;Es3At3ɍp;rs3AstG{U3 M;r;s3@KtG{U‹u}e E s{u}E M;r;s3@E t$3ҍpu;rs3BstG}{E HsE{E N@39Su.S  E EtۉSsSu4;sNj E Etى;sS_^fC []jhp?0= |[E@tJ=ČtAeU.E8t 8t33@Ëe%ČeUE ࿉EU áȌt tP 3PPjPjh@hT ȌUSVW}3jVVWމu蒣ʉE#MtYjVVWvȃ#ƒtCu E+‰Ehj P Eu _^[]hW?YEEY|rPuW轙 t+E‰Ex#ȅt[8u ]uWYYuj P fn|shjuu Wv#ƒAW,YPX H؋‹ˉE#ȃu& 0 #]juuW#ƒ3UMu:jX]á 3]USVuW< L7%ED7$ЋE =@tY=tI=t*=t#=uPɀL7 D1$$ D1$4ɀL7 D1$$ L7ɀL7 d0$}_^[u]ҁ@]UWVSM tMu} AZ I& t' t#:r:w:r:w:u u3:t rً[^_% %İ ̍饄隄鏄鄄yncXMT$|x3^J3Q ̍t:T$3 J3鹣̋T$B J3ן(钣̋T$B J3跟r̋MXMMtMuT$B J3tx/̋MMMMmuT$B J34\̋M؂M`M5tM齂MEM tMMwM M4dM MTQM Mt>MFMMT$B J3q ,̋EPYËT$B J3<̋MHsM=tT$B J3鿡̋MXM tM%M鍁T$B J3ĝ̋MhT$B J3蟝Z̋M MrMsT$B J3\̋M T$B J3/X̋MX MT$B J3鲠̋MrM qM_ M4T MTI Mt> M MM* M MqMrM MqMtrMl MdqMYrMQ MIqM>rT$B J3̹xoT$B J3ݛ队̋EPGYËEPJ34̋E eM(XËT$B J3T鹇̋E eMWËT$B J3较(y̋EP'YËT$B J3范G̋EPYËT$B J3\x̍WzWT$B 3J3%φ̋Ee|WÍMVMVMVMVMVT$B x3谂J3覂a̍~J34~ ̋E eM(RËT$B J3}鹁̍M(RM RMRM RMRT$B J3},%j̍MQMQT$B J3w}%2̍MUM@QT$B 3D}J3:}*̋EP觭YÍMPEP蔭YËT$B J3|"鴀̍MPT$B J3| 銀̍PPPPT$B 3x|J3n|$)̍MM `T$B J37|̍ePZPT$B 3{J3{̍M_T$B J3{̍MOT$B J3{J3{P̍M OT$B J3o{*̍MOMOT$B J37{T)~̍M^M^M^M^M^T$B \3zJ3z ~O ONNNNNT$B 3wzJ3mz%(~̍MXT$B J3?zl}̋T$B J3z$}̍M8M]M]M]M]T$B 3y }̍MMo]MMMM8]MT$B 3AyJ37y&|̍5M*MMT$B 3xJ3x(|̍MM\T$B J3x| r|̍Mx\Mp\Mh\T$B J3x:|̍MXQMpLT$B D3Dx|{̍MxLMLT$B J3xJ3 x&{̍5L*LLL[[KT$B 3wJ3w<&H{̍MKMPKMHKMPPMhKM`KT$B \34w(z̍MPM0KM(KM KMKX KKJ(JMJ4J@JJMJT$B 3v<Jz̍MHZM@ZT$B J3WvH z̍MJM JMxJM$pJT$B J3v&y̍EJ:J/J$JJJJI}YII\YT$B 3puJ3fuH'!y̍M8IT$B J3?ulx̍M hIM`IT$B J3ux̍5IHIT$B 3tJ3t@tx̍MX}T$B 3tD>T$B <3jJ3jnn̍E"M>MuNT$B 3yjJ3oj *n̍M!M>T$B J37jJ3-jm̍!MM>MMMMT$B 3idm̍e!0=8M<$BT$B 3iJ3~i9m̍W!M=M5MMMT$B P31il̍# 9#IT$B 37eJ3-eD h̍MM9MMHMT$B 3d#h̍UM8T$B 3d Ah̍t8M"M:HT$B 3>dJ34d| g̍;dZ8T$B 43cJ3cg̍MM 8T$B J3cJ3cxg̍_E7,OT$B X3scJ3icT*$g̍(7Dahd̍/Z50T$B (3`J3`d̍KuM 5T$B D3`J3`*bd̍54T$B 3n`J3d`Ld̍MM4T$B J37`c̍MM`4T$B J3`J3_0c̍MM 4MT$B J3_zc̍MHM3T$B J3_Bc̍o\*XP43H)3h~3Ls3T$B D3ZJ3Z.^̍M.M>M>M>M>T$B 3Z5W^̍Mh.MP>T$B J3gZh/"^̍M(>M >M>M>M>T$B J3Zt6]̍M=T$B J3YP6]̍M=T$B J3Y$6z]̍MM -T$B 3Y0?]̋E eMx-ÍMo-Mg-M_-MW-M-M w-T$B J3Y 3\̍MH-M @-T$B J3X2\̍MS\8VT$B J3#S<VUjh*dP {3PEdExtPj P xMd Y]V5XXt4Ft PXF t PXVj P ^UjhʤdP {3PEd 2E1Md Y]UjhdP {3PEd1E1Md Y]̡Ht.S VW=  PjP׋ƅu_^[H̹<{0{0{0"" (@KValw$ms0"`"""(P["\"Т"""@"Ht""#"ȝ"< (3;"n"(П"P`"|"G" px"X"""0 &.9A L T _ g r z"0;FQ\gr  ̠ԠܠȡСء" "S"٦L"\lP"`n"""0 ."\"" (Ќ"DPX`"x ""0"$@"P"|""ȨШب "Pp{"""" Ъ"T"""0""0`"\""@HP"" "`P"" L"" p׭̭`hpx"LZ["xP P@"G " $"4DL|" "l ,"<L""ɧѧ"\dеd "0"" 0"h"@HP"""0`"\ +"а۰""P"$"P "|Ȳ""`" 4"DT"б۱"p"  "h0еd0""0" "L"x"",4<DLs$"4Dpx"|"08@"" PX"T"0;C"p{" "h " " @KSc[@K" "L "  !,7B" &1<"8 @H"l "  (0" "8 " 0" " "0 "\ " "@KS[cny"d"&1<""Hpx"""(p{"|@KV^fpx""0""T BM!,7"'2=HS^it"L"˽ֽ"жض"0"d"""@`hp"t" LE"< Qd"t"" "<"&1""@ +3;FQ08"pP[fq"0"p{"" |@KS["""`#.9D L W bm0""`"@"l"""<"pp"P"" +6"("d"`""" H""08" "Dp{""" +6AL"D""" 0;FQ\g"h `ks" " &1" !"! !,7"!"!&"(""d""""""" p$#"l#4#"#"# #.p{",$Ȼлػ"p$`kv"$й۹"$"P%08@HP"x%"%@KValw"&"`& +6ALWb"&" '`kv" l'&1<GR]hs ~ "'ºͺغ     %0;F"("(")"D)"x) (")" *p{p{"<*"x* z3z@K"*px"+R4+"D+T++"++l+"+,<,"L,\,,",,O,", -D-"T-d-@"-( "-XP"-"0."d. ".`".".",/"X/"/"/"/PX@H"00px"t0px"0@"0"1"41"1 (08"1"2"T2" 2;0]hs~"2"D3"|3"30;"3"4p{"D40;FQ"4"4w5"5(5"`5"5@HPX`"5@"6"H6"6"6"7@KS^f@7"P7`7\7"77"7@(@!)"<88,88'888L @'h p v''(98988 [''d9t988č '.}00ZDLNNN#O(\ab5dtt8vGva{|:~6^s8Bc׭ۭ@<"<<UY4=@=8 פy,w H+x3<V9U`TgX#YQ_Ԏ.RF?pB(E"0(%0(p-0@380>CEJ0MN`Vp[^ceg`ikm@3J^cowz|| @0ЖФPЖPpЖpp000и@ ``0""0(%p-p[kp-0@380>CEJ0M`VNp[^ceg`ikmowz| @ 0ЖФPЖpp000и@ FFFFFFFFFGGG'G2G;GBGJGQGXGcGkGsGGGGGGGGGGGGGGH HH&H0H>HLHZHdHoHvH}HHHHHHHHHHHHHHH II%I-I5ILFLRL[LeLiLoL{LLLLLLLLLLLLLLLL MMM'M*M7M9MDMNMQMWM^M  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~1.dllAnalyzeOOMBPMDCLRStackCOMStateClrStackDebugExtensionInitializeDebugExtensionNotifyDebugExtensionUninitializeDumpArrayDumpAssemblyDumpCCWDumpClassDumpDomainDumpHeapDumpILDumpLogDumpMDDumpMTDumpModuleDumpObjDumpRCWDumpRuntimeTypesDumpSigDumpSigElemDumpStackDumpStackObjectsDumpVCDumpccwDumplogDumprcwDumpruntimetypesEEHeapEEStackEEVersionEHInfoEhinfoFinalizeQueueFindAppDomainFindRootsFindappdomainGCHandleLeaksGCHandleleaksGCHandlesGCHeapStatGCInfoGCRootGCWhereGcHeapStatGcWhereGchandleleaksHandleCLRNHeapStatHelpHistClearHistInitHistObjHistObjFindHistRootHistStatsIP2MDListNearObjMinidumpModeMinidumpmodeName2EEObjSizePathToPrintExceptionPrintexceptionProcInfoRCWCleanupListRcwcleanuplistSOSFlushSaveModuleStopOnExceptionStoponexceptionSyncBlkThreadPoolThreadStateThreadsToken2EETraverseHeapTraverseheapUVMMapVMStatVerifyHeapVerifyObjVerifyStackTraceVerifyheapWatsonBuckets_EFN_GetManagedExcepStack_EFN_GetManagedObjectFieldInfo_EFN_GetManagedObjectName_EFN_StackTraceanalyzeoomaobpmdclrstackcomstatedadodsodumparraydumpassemblydumpccwdumpclassdumpdomaindumpheapdumpildumplogdumpmddumpmoduledumpmtdumpobjdumprcwdumpruntimetypesdumpsigdumpsigelemdumpstackdumpstackobjectsdumpvceeheapeestackeeversionehinfofinalizequeuefindappdomainfindrootsfqgchandleleaksgchandlesgcheapstatgcinfogcrootgcwhereheapstathelphistclearhistinithistobjhistobjfindhistroothiststatshofip2mdlistnearobjlnominidumpmodename2eeobjsizepathtopeprintexceptionprocinforcwcleanuplistsavemodulesoesosflushstoponexceptionsyncblktthreadpoolthreadsthreadstatetoken2eetptraverseheapuverifyheapverifyobjvhvmmapvmstatvo $H`dhlptx|HHHHIIII I(I0I8I@IHIPI`IhItIIIIIIIJJJ JJ(J8JTJhJ|JJJJJJJKK,KDKNNNNNNNNO O O O O (O 0O8ODOLOTO`OhOpO|OOOOOOOOOO O !O!"P"# P#$P$%P%& P&'@#'($P(),P )*<#*+4P+,P>?P?@P@APABPBCPCDQDEQ EFQFGQGH(QHI4QIJ@QJKLQKLXQLMdQMNlQNOxQOPQPQQQRQRSQSTQTUQUVQVWQWXQXYQYZQZ[Q[\Q\]Q]^R^_R_` R`aRabRbcRcdRde$Ref(Rfg,Rgh4Rhic{#Tw=:zc%C1 COMMAND: \\ The first command is "contents" which is the general help screen. The rest correspond to SOS command names. This file is embedded as a resource in the SOS binary. Be sure to list any new commands here. ------------------------------------------------------------------------------- COMMAND: contents. SOS is a debugger extension DLL designed to aid in the debugging of managed programs. Functions are listed by category, then roughly in order of importance. Shortcut names for popular functions are listed in parenthesis. Type "!help " for detailed info on that function. Object Inspection Examining code and stacks ----------------------------- ----------------------------- DumpObj (do) Threads DumpArray (da) ThreadState DumpStackObjects (dso) IP2MD DumpHeap U DumpVC DumpStack GCRoot EEStack ObjSize CLRStack FinalizeQueue GCInfo PrintException (pe) EHInfo TraverseHeap BPMD COMState Examining CLR data structures Diagnostic Utilities ----------------------------- ----------------------------- DumpDomain VerifyHeap EEHeap VerifyObj Name2EE FindRoots SyncBlk HeapStat DumpMT GCWhere DumpClass ListNearObj (lno) DumpMD GCHandles Token2EE GCHandleLeaks EEVersion FinalizeQueue (fq) DumpModule FindAppDomain ThreadPool SaveModule DumpAssembly ProcInfo DumpSigElem StopOnException (soe) DumpRuntimeTypes DumpLog DumpSig VMMap RCWCleanupList VMStat DumpIL MinidumpMode DumpRCW AnalyzeOOM (ao) DumpCCW Examining the GC history Other ----------------------------- ----------------------------- HistInit FAQ HistRoot HistObj HistObjFind HistClear \\ COMMAND: faq. >> Where can I get the right version of SOS for my build? If you are running version 1.1 or 2.0 of the CLR, SOS.DLL is installed in the same directory as the main CLR dll (CLR.DLL). Newer versions of the Windows Debugger provide a command to make it easy to load the right copy of SOS.DLL: ".loadby sos clr" That will load the SOS extension DLL from the same place that CLR.DLL is loaded in the process. You shouldn't attempt to use a version of SOS.DLL that doesn't match the version of CLR.DLL. You can find the version of CLR.DLL by running "lmvm clr" in the debugger. Note that if you are running CoreCLR (e.g. Silverlight) then you should replace "clr" with "coreclr". If you are using a dump file created on another machine, it is a little bit more complex. You need to make sure the mscordacwks.dll file that came with that install is on your symbol path, and you need to load the corresponding version of sos.dll (typing .load rather than using the .loadby shortcut). Within the Microsoft corpnet, we keep tagged versions of mscordacwks.dll, with names like mscordacwks__.dll that the Windows Debugger can load. If you have the correct symbol path to the binaries for that version of the Runtime, the Windows Debugger will load the correct mscordacwks.dll file. >> I have a chicken and egg problem. I want to use SOS commands, but the CLR isn't loaded yet. What can I do? In the debugger at startup you can type: "sxe clrn" Let the program run, and it will stop with the notice "CLR notification: module 'mscorlib' loaded" At this time you can use SOS commands. To turn off spurious notifications, type: "sxd clrn" >> I got the following error message. Now what? 0:000> .loadby sos clr 0:000> !DumpStackObjects Failed to find runtime DLL (clr.dll), 0x80004005 Extension commands need clr.dll in order to have something to do. 0:000> This means that the CLR is not loaded yet, or has been unloaded. You need to wait until your managed program is running in order to use these commands. If you have just started the program a good way to do this is to type bp clr!EEStartup "g @$ra" in the debugger, and let it run. After the function EEStartup is finished, there will be a minimal managed environment for executing SOS commands. >> I have a partial memory minidump, and !DumpObj doesn't work. Why? In order to run SOS commands, many CLR data structures need to be traversed. When creating a minidump without full memory, special functions are called at dump creation time to bring those structures into the minidump, and allow a minimum set of SOS debugging commands to work. At this time, those commands that can provide full or partial output are: CLRStack Threads Help PrintException EEVersion For a minidump created with this minimal set of functionality in mind, you will get an error message when running any other commands. A full memory dump (obtained with ".dump /ma " in the Windows Debugger) is often the best way to debug a managed program at this level. >> What other tools can I use to find my bug? Turn on Managed Debugging Assistants. These enable additional runtime diagnostics, particularly in the area of PInvoke/Interop. Adam Nathan has written some great information about that: http://blogs.msdn.com/adam_nathan/ >> Does SOS support DML? Yes. SOS respects the .prefer_dml option in the debugger. If this setting is turned on, then SOS will output DML by default. Alternatively, you may leave it off and add /D to the beginning of a command to get DML based output for it. Not all SOS commands support DML output. \\ COMMAND: stoponexception. !StopOnException [-derived] [-create | -create2] [] !StopOnException helps when you want the Windows Debugger to stop on a particular managed exception, say a System.OutOfMemoryException, but continue running if other exceptions are thrown. The command can be used in two ways: 1) When you just want to stop on one particular CLR exception At the debugger prompt, anytime after loading SOS, type: !StopOnException -create System.OutOfMemoryException 1 The pseudo-register number (1) indicates that SOS can use register $t1 for maintaining the breakpoint. The -create parameter allows SOS to go ahead and set up the breakpoint as a first-chance exception. -create2 would set it up as a 2nd-chance exception. 2) When you need more complex logic for stopping on a CLR exception !StopOnException can be used purely as a predicate in a larger expression. If you type: !StopOnException System.OutOfMemoryException 3 then register $t3 will be set to 1 if the last thrown exception on the current thread is a System.OutOfMemoryException. Otherwise, $t3 will be set to 0. Using the Windows Debugger scripting language, you could chain such calls together to stop on various exception types. You'll have to manually create such predicates, for example: sxe -c "!soe System.OutOfMemoryException 3; !soe -derived System.IOException 4; .if(@$t3==1 || @$t4==1) { .echo 'stop' } .else {g}" The -derived option will cause StopOnException to set the pseudo-register to 1 even if the thrown exception type doesn't exactly match the exception type given, but merely derives from it. So, "-derived System.Exception" would catch every exception in the System.Exception heirarchy. The pseudo-register number is optional. If you don't pass a number, SOS will use pseudo-register $t1. Note that !PrintException with no parameters will print out the last thrown exception on the current thread (if any). You can use !soe as a shortcut for !StopOnException. \\ COMMAND: minidumpmode. !MinidumpMode <0 or 1> Minidumps created with ".dump /m" or ".dump" have a very small set of CLR-specific data, just enough to run a subset of SOS commands correctly. You are able to run other SOS commands, but they may fail with unexpected errors because required areas of memory are not mapped in or only partially mapped in. At this time, SOS cannot reliably detect if a dump file is of this type (for one thing, custom dump commands can map in additional memory, but there is no facility to read meta-information about this memory). You can turn this option on to protect against running unsafe commands against small minidumps. By default, MinidumpMode is 0, so there is no restriction on commands that will run against a minidump. \\ COMMAND: dumpobj. !DumpObj [-nofields] This command allows you to examine the fields of an object, as well as learn important properties of the object such as the EEClass, the MethodTable, and the size. You might find an object pointer by running !DumpStackObjects and choosing from the resultant list. Here is a simple object: 0:000> !DumpObj a79d40 Name: Customer MethodTable: 009038ec EEClass: 03ee1b84 Size: 20(0x14) bytes (C:\pub\unittest.exe) Fields: MT Field Offset Type VT Attr Value Name 009038ec 4000008 4 Customer 0 instance 00a79ce4 name 009038ec 4000009 8 Bank 0 instance 00a79d2c bank Note that fields of type Customer and Bank are themselves objects, and you can run !DumpObj on them too. You could look at the field directly in memory using the offset given. "dd a79d40+8 l1" would allow you to look at the bank field directly. Be careful about using this to set memory breakpoints, since objects can move around in the garbage collected heap. What else can you do with an object? You might run !GCRoot, to determine what roots are keeping it alive. Or you can find all objects of that type with "!DumpHeap -type Customer". The column VT contains the value 1 if the field is a valuetype structure, and 0 if the field contains a pointer to another object. For valuetypes, you can take the MethodTable pointer in the MT column, and the Value and pass them to the command !DumpVC. The abbreviation !do can be used for brevity. The arguments in detail: -nofields: do not print fields of the object, useful for objects like String \\ COMMAND: dumparray. !DumpArray [-start ] [-length ] [-details] [-nofields] This command allows you to examine elements of an array object. The arguments in detail: -start : optional, only supported for single dimension array. Specify from which index the command shows the elements. -length : optional, only supported for single dimension array. Specify how many elements to show. -details: optional. Ask the command to print out details of the element using !DumpObj and !DumpVC format. -nofields: optional, only takes effect when -details is used. Do not print fields of the elements. Useful for arrays of objects like String Example output: 0:000> !dumparray -start 2 -length 3 -details 00ad28d0 Name: Value[] MethodTable: 03e41044 EEClass: 03e40fc0 Size: 132(0x84) bytes Array: Rank 1, Number of elements 10, Type VALUETYPE Element Type: Value [2] 00ad28f0 Name: Value MethodTable 03e40f4c EEClass: 03ef1698 Size: 20(0x14) bytes (C:\bugs\225271\arraytest.exe) Fields: MT Field Offset Type Attr Value Name 5b9a628c 4000001 0 System.Int32 instance 2 x 5b9a628c 4000002 4 System.Int32 instance 4 y 5b9a628c 4000003 8 System.Int32 instance 6 z [3] 00ad28fc Name: Value MethodTable 03e40f4c EEClass: 03ef1698 Size: 20(0x14) bytes (C:\bugs\225271\arraytest.exe) Fields: MT Field Offset Type Attr Value Name 5b9a628c 4000001 0 System.Int32 instance 3 x 5b9a628c 4000002 4 System.Int32 instance 6 y 5b9a628c 4000003 8 System.Int32 instance 9 z [4] 00ad2908 Name: Value MethodTable 03e40f4c EEClass: 03ef1698 Size: 20(0x14) bytes (C:\bugs\225271\arraytest.exe) Fields: MT Field Offset Type Attr Value Name 5b9a628c 4000001 0 System.Int32 instance 4 x 5b9a628c 4000002 4 System.Int32 instance 8 y 5b9a628c 4000003 8 System.Int32 instance 12 z \\ COMMAND: dumpstackobjects. !DumpStackObjects [-verify] [top stack [bottom stack]] This command will display any managed objects it finds within the bounds of the current stack. Combined with the stack tracing commands like K and !CLRStack, it is a good aid to determining the values of locals and parameters. If you use the -verify option, each non-static CLASS field of an object candidate is validated. This helps to eliminate false positives. It is not on by default because very often in a debugging scenario, you are interested in objects with invalid fields. The abbreviation !dso can be used for brevity. \\ COMMAND: dumpheap. !DumpHeap [-stat] [-strings] [-short] [-min ] [-max ] [-live] [-dead] [-thinlock] [-startAtLowerBound] [-mt ] [-type ] [start [end]] !DumpHeap is a powerful command that traverses the garbage collected heap, collection statistics about objects. With it's various options, it can look for particular types, restrict to a range, or look for ThinLocks (see !SyncBlk documentation). Finally, it will provide a warning if it detects excessive fragmentation in the GC heap. When called without options, the output is first a list of objects in the heap, followed by a report listing all the types found, their size and number: 0:000> !dumpheap Address MT Size 00a71000 0015cde8 12 Free 00a7100c 0015cde8 12 Free 00a71018 0015cde8 12 Free 00a71024 5ba58328 68 00a71068 5ba58380 68 00a710ac 5ba58430 68 00a710f0 5ba5dba4 68 ... total 619 objects Statistics: MT Count TotalSize Class Name 5ba7607c 1 12 System.Security.Permissions.HostProtectionResource 5ba75d54 1 12 System.Security.Permissions.SecurityPermissionFlag 5ba61f18 1 12 System.Collections.CaseInsensitiveComparer ... 0015cde8 6 10260 Free 5ba57bf8 318 18136 System.String ... "Free" objects are simply regions of space the garbage collector can use later. If 30% or more of the heap contains "Free" objects, the process may suffer from heap fragmentation. This is usually caused by pinning objects for a long time combined with a high rate of allocation. Here is example output where !DumpHeap provides a warning about fragmentation: Fragmented blocks larger than 1MB: Addr Size Followed by 00a780c0 1.5MB 00bec800 System.Byte[] 00da4e38 1.2MB 00ed2c00 System.Byte[] 00f16df0 1.2MB 01044338 System.Byte[] The arguments in detail: -stat Restrict the output to the statistical type summary -strings Restrict the output to a statistical string value summary -short Limits output to just the address of each object. This allows you to easily pipe output from the command to another debugger command for automation. -min Ignore objects less than the size given in bytes -max Ignore objects larger than the size given in bytes -live Only print live objects -dead Only print dead objects (objects which will be collected in the next full GC) -thinlock Report on any ThinLocks (an efficient locking scheme, see !SyncBlk documentation for more info) -startAtLowerBound Force heap walk to begin at lower bound of a supplied address range. (During plan phase, the heap is often not walkable because objects are being moved. In this case, DumpHeap may report spurious errors, in particular bad objects. It may be possible to traverse more of the heap after the reported bad object. Even if you specify an address range, !DumpHeap will start its walk from the beginning of the heap by default. If it finds a bad object before the specified range, it will stop before displaying the part of the heap in which you are interested. This switch will force !DumpHeap to begin its walk at the specified lower bound. You must supply the address of a good object as the lower bound for this to work. Display memory at the address of the bad object to manually find the next method table (use !dumpmt to verify). If the GC is currently in a call to memcopy, You may also be able to find the next object's address by adding the size to the start address given as parameters.) -mt List only those objects with the MethodTable given -type List only those objects whose type name is a substring match of the string provided. start Begin listing from this address end Stop listing at this address A special note about -type: Often, you'd like to find not only Strings, but System.Object arrays that are constrained to contain Strings. ("new String[100]" actually creates a System.Object array, but it can only hold System.String object pointers). You can use -type in a special way to find these arrays. Just pass "-type System.String[]" and those Object arrays will be returned. More generally, "-type []". The start/end parameters can be obtained from the output of !EEHeap -gc. For example, if you only want to list objects in the large heap segment: 0:000> !eeheap -gc Number of GC Heaps: 1 generation 0 starts at 0x00c32754 generation 1 starts at 0x00c32748 generation 2 starts at 0x00a71000 segment begin allocated size 00a70000 00a71000 010443a8 005d33a8(6108072) Large object heap starts at 0x01a71000 segment begin allocated size 01a70000 01a71000 01a75000 0x00004000(16384) Total Size 0x5d73a8(6124456) ------------------------------ GC Heap Size 0x5d73a8(6124456) 0:000> !dumpheap 1a71000 1a75000 Address MT Size 01a71000 5ba88bd8 2064 01a71810 0019fe48 2032 Free 01a72000 5ba88bd8 4096 01a73000 0019fe48 4096 Free 01a74000 5ba88bd8 4096 total 5 objects Statistics: MT Count TotalSize Class Name 0019fe48 2 6128 Free 5ba88bd8 3 10256 System.Object[] Total 5 objects Finally, if GC heap corruption is present, you may see an error like this: 0:000> !dumpheap -stat object 00a73d24: does not have valid MT curr_object : 00a73d24 Last good object: 00a73d14 ---------------- That indicates a serious problem. See the help for !VerifyHeap for more information on diagnosing the cause. \\ COMMAND: dumpvc. !DumpVC
!DumpVC allows you to examine the fields of a value class. In C#, this is a struct, and lives on the stack or within an Object on the GC heap. You need to know the MethodTable address to tell SOS how to interpret the fields, as a value class is not a first-class object with it's own MethodTable as the first field. For example: 0:000> !DumpObj a79d98 Name: Mainy MethodTable: 009032d8 EEClass: 03ee1424 Size: 28(0x1c) bytes (C:\pub\unittest.exe) Fields: MT Field Offset Type Attr Value Name 0090320c 4000010 4 VALUETYPE instance 00a79d9c m_valuetype 009032d8 400000f 4 CLASS static 00a79d54 m_sExcep m_valuetype is a value type. The value in the MT column (0090320c) is the MethodTable for it, and the Value column provides the start address: 0:000> !DumpVC 0090320c 00a79d9c Name: Funny MethodTable 0090320c EEClass: 03ee14b8 Size: 28(0x1c) bytes (C:\pub\unittest.exe) Fields: MT Field Offset Type Attr Value Name 0090320c 4000001 0 CLASS instance 00a743d8 signature 0090320c 4000002 8 System.Int32 instance 2345 m1 0090320c 4000003 10 System.Boolean instance 1 b1 0090320c 4000004 c System.Int32 instance 1234 m2 0090320c 4000005 4 CLASS instance 00a79d98 backpointer !DumpVC is quite a specialized function. Some managed programs make heavy use of value classes, while others do not. \\ COMMAND: gcroot. !GCRoot [-nostacks] !GCRoot looks for references (or roots) to an object. These can exist in four places: 1. On the stack 2. Within a GC Handle 3. In an object ready for finalization 4. As a member of an object found in 1, 2 or 3 above. First, all stacks will be searched for roots, then handle tables, and finally the freachable queue of the finalizer. Some caution about the stack roots: !GCRoot doesn't attempt to determine if a stack root it encountered is valid or is old (discarded) data. You would have to use !CLRStack and !U to disassemble the frame that the local or argument value belongs to in order to determine if it is still in use. Because people often want to restrict the search to gc handles and freachable objects, there is a -nostacks option. \\ COMMAND: objsize. !ObjSize [] With no parameters, !ObjSize lists the size of all objects found on managed threads. It also enumerates all GCHandles in the process, and totals the size of any objects pointed to by those handles. In calculating object size, !ObjSize includes the size of all child objects in addition to the parent. For example, !DumpObj lists a size of 20 bytes for this Customer object: 0:000> !do a79d40 Name: Customer MethodTable: 009038ec EEClass: 03ee1b84 Size: 20(0x14) bytes (C:\pub\unittest.exe) Fields: MT Field Offset Type Attr Value Name 009038ec 4000008 4 CLASS instance 00a79ce4 name 009038ec 4000009 8 CLASS instance 00a79d2c bank 009038ec 400000a c System.Boolean instance 1 valid but !ObjSize lists 152 bytes: 0:000> !ObjSize a79d40 sizeof(00a79d40) = 152 ( 0x98) bytes (Customer) This is because a Customer points to a Bank, has a name, and the Bank points to an Address string. You can use !ObjSize to identify any particularly large objects, such as a managed cache in a web server. While running ObjSize with no arguments may point to specific roots that hold onto large amounts of memory it does not provide information regarding the amount of managed memory that is still alive. This is due to the fact that a number of roots can share a common subgraph, and that part will be reported in the size of all the roots that reference the subgraph. Please note the -aggregate parameter to !ObjSize has been removed. Please see '!DumpHeap -live' and '!DumpHeap -dead' for that functionality. \\ COMMAND: finalizequeue. !FinalizeQueue [-detail] | [-allReady] [-short] This command lists the objects registered for finalization. Here is output from a simple program: 0:000> !finalizequeue SyncBlocks to be cleaned up: 0 MTA Interfaces to be released: 0 STA Interfaces to be released: 1 generation 0 has 4 finalizable objects (0015bc90->0015bca0) generation 1 has 0 finalizable objects (0015bc90->0015bc90) generation 2 has 0 finalizable objects (0015bc90->0015bc90) Ready for finalization 0 objects (0015bca0->0015bca0) Statistics: MT Count TotalSize Class Name 5ba6cf78 1 24 Microsoft.Win32.SafeHandles.SafeFileHandle 5ba5db04 1 68 System.Threading.Thread 5ba73e28 2 112 System.IO.StreamWriter Total 4 objects The GC heap is divided into generations, and objects are listed accordingly. We see that only generation 0 (the youngest generation) has any objects registered for finalization. The notation "(0015bc90->0015bca0)" means that if you look at memory in that range, you'll see the object pointers that are registered: 0:000> dd 15bc90 15bca0-4 0015bc90 00a743f4 00a79f00 00a7b3d8 00a7b47c You could run !DumpObj on any of those pointers to learn more. In this example, there are no objects ready for finalization, presumably because they still have roots (You can use !GCRoot to find out). The statistics section provides a higher-level summary of the objects registered for finalization. Note that objects ready for finalization are also included in the statistics (if any). Specifying -short will inhibit any display related to SyncBlocks or RCWs. The arguments in detail: -allReady Specifying this argument will allow for the display of all objects that are ready for finalization, whether they are already marked by the GC as such, or whether the next GC will. The objects that are not in the "Ready for finalization" list are finalizable objects that are no longer rooted. This option can be very expensive, as it verifies whether all the objects in the finalizable queues are still rooted or not. -short Limits the output to just the address of each object. If used in conjunction with -allReady it enumerates all objects that have a finalizer that are no longer rooted. If used independently it lists all objects in the finalizable and "ready for finalization" queues. -detail Will display extra information on any SyncBlocks that need to be cleaned up, and on any RuntimeCallableWrappers (RCWs) that await cleanup. Both of these data structures are cached and cleaned up by the finalizer thread when it gets a chance to run. \\ COMMAND: printexception. !PrintException [-nested] [-lines] [] This will format fields of any object derived from System.Exception. One of the more useful aspects is that it will format the _stackTrace field, which is a binary array. If _stackTraceString field is not filled in, that can be helpful for debugging. You can of course use !DumpObj on the same exception object to explore more fields. If called with no parameters, PrintException will look for the last outstanding exception on the current thread and print it. This will be the same exception that shows up in a run of !Threads. !PrintException will notify you if there are any nested exceptions on the current managed thread. (A nested exception occurs when you throw another exception within a catch handler already being called for another exception). If there are nested exceptions, you can re-run !PrintException with the "-nested" option to get full details on the nested exception objects. The !Threads command will also tell you which threads have nested exceptions. !PrintException can display source information if available, by specifying the -lines command line argument. The abbreviation !pe can be used for brevity. \\ COMMAND: traverseheap. !TraverseHeap [-xml] [-verify] !TraverseHeap writes out a file in a format understood by the CLR Profiler. You can download the CLR Profiler from this link: http://www.microsoft.com/downloads/details.aspx?FamilyId=86CE6052-D7F4-4AEB- 9B7A-94635BEEBDDA&displaylang=en It creates a graphical display of the GC heap to help you analyze the state of your application. If you pass the -verify option it will do more sanity checking of the heap as it dumps it. Use this option if heap corruption is suspected. If you pass the "-xml" flag, the file is instead written out in an easy to understand xml format: ... ... ... ... You can break into your process, load SOS, take a snapshot of your heap with this function, then continue. \\ COMMAND: threadstate. !ThreadState value The !Threads command outputs, among other things, the state of the thread. This is a bit field which corresponds to various states the thread is in. To check the state of the thread, simply pass that bit field from the output of !Threads into !ThreadState. Example: 0:003> !Threads ThreadCount: 2 UnstartedThread: 0 BackgroundThread: 1 PendingThread: 0 DeadThread: 0 Hosted Runtime: no PreEmptive GC Alloc Lock ID OSID ThreadOBJ State GC Context Domain Count APT Exception 0 1 250 0019b068 a020 Disabled 02349668:02349fe8 0015def0 0 MTA 2 2 944 001a6020 b220 Enabled 00000000:00000000 0015def0 0 MTA (Finalizer) 0:003> !ThreadState b220 Legal to Join Background CLR Owns CoInitialized In Multi Threaded Apartment Possible thread states: Thread Abort Requested GC Suspend Pending User Suspend Pending Debug Suspend Pending GC On Transitions Legal to Join Yield Requested Hijacked by the GC Blocking GC for Stack Overflow Background Unstarted Dead CLR Owns CoInitialized In Single Threaded Apartment In Multi Threaded Apartment Reported Dead Fully initialized Task Reset Sync Suspended Debug Will Sync Stack Crawl Needed Suspend Unstarted Aborted Thread Pool Worker Thread Interruptible Interrupted Completion Port Thread Abort Initiated Finalized Failed to Start Detached \\ COMMAND: threads. !Threads [-live] [-special] !Threads lists all the mananaged threads in the process. -live: optional. Only print threads associated with a live thread. -special: optional. With this switch, the command will display all the special threads created by CLR. Those threads might not be managed threads so they might not be shown in the first part of the command's output. Example of special threads include: GC threads (in concurrent GC and server GC), Debugger helper threads, Finalizer threads, AppDomain Unload threads, and Threadpool timer threads. Each thread has many attributes, many of which can be ignored. The important ones are discussed below: There are three ID columns: 1) The debugger shorthand ID (When the runtime is hosted this column might display the special string "<<<<" when this internal thread object is not associated with any physical thread - this may happen when the host reuses the runtime internal thread object) 2) The CLR Thread ID 3) The OS thread ID. If PreEmptiveGC is enabled for a thread, then a garbage collection can occur while that thread is running. For example, if you break in while a managed thread is making a PInvoke call to a Win32 function, that thread will be in PreEmptive GC mode. The Domain column indicates what AppDomain the thread is currently executing in. You can pass this value to !DumpDomain to find out more. The APT column gives the COM apartment mode. Exception will list the last thrown exception (if any) for the thread. More details can be obtained by passing the pointer value to !PrintException. If you get the notation "(nested exceptions)", you can get details on those exceptions by switching to the thread in question, and running "!PrintException -nested". \\ COMMAND: clrstack. !CLRStack [-a] [-l] [-p] [-n] !CLRStack [-a] [-l] [-p] [-i] [variable name] [frame] CLRStack attempts to provide a true stack trace for managed code only. It is handy for clean, simple traces when debugging straightforward managed programs. The -p parameter will show arguments to the managed function. The -l parameter can be used to show information on local variables in a frame. SOS can't retrieve local names at this time, so the output for locals is in the format = . The -a (all) parameter is a short-cut for -l and -p combined. If the debugger has the option SYMOPT_LOAD_LINES specified (either by the .lines or .symopt commands), SOS will look up the symbols for every managed frame and if successful will display the corresponding source file name and line number. The -n (No line numbers) parameter can be specified to disable this behavior. When you see methods with the name "[Frame:...", that indicates a transition between managed and unmanaged code. You could run !IP2MD on the return addresses in the call stack to get more information on each managed method. On x64 platforms, Transition Frames are not displayed at this time. To avoid heavy optimization of parameters and locals one can request the JIT compiler to not optimize functions in the managed app by creating a file myapp.ini (if your program is myapp.exe) in the same directory. Put the following lines in myapp.ini and re-run: [.NET Framework Debugging Control] GenerateTrackingInfo=1 AllowOptimize=0 The -i option is a new EXPERIMENTAL addition to CLRStack and will use the ICorDebug interfaces to display the managed stack and variables. With this option you can also view and expand arrays and fields for managed variables. If a stack frame number is specified in the command line, CLRStack will show you the parameters and/or locals only for that frame (provided you specify -l or -p or -a of course). If a variable name and a stack frame number are specified in the command line, CLRStack will show you the parameters and/or locals for that frame, and will also show you the fields for that variable name you specified. Here are some examples: !CLRStack -i -a : This will show you all parameters and locals for all frames !CLRStack -i -a 3 : This will show you all parameters and locals, for frame 3 !CLRStack -i var1 0 : This will show you the fields of 'var1' for frame 0 !CLRStack -i var1.abc 2 : This will show you the fields of 'var1', and expand 'var1.abc' to show you the fields of the 'abc' field, for frame 2. !CLRStack -i var1.[basetype] 0 : This will show you the fields of 'var1', and expand the base type of 'var1' to show you its fields. !CLRStack -i var1.[6] 0 : If 'var1' is an array, this will show you the element at index 6 in the array, along with its fields The -i options uses DML output for a better debugging experience, so typically you should only need to execute "!CLRStack -i", and from there, click on the DML hyperlinks to inspect the different managed stack frames and managed variables. \\ COMMAND: ip2md. !IP2MD Given an address in managed JITTED code, IP2MD attempts to find the MethodDesc associated with it. For example, this output from K: 0:000> K ChildEBP RetAddr 00a79c78 03ef02ab image00400000!Mainy.Top()+0xb 00a79c78 03ef01a6 image00400000!Mainy.Level(Int32)+0xb 00a79c78 5d3725a1 image00400000!Mainy.Main()+0xee 0012ea04 5d512f59 clr!CallDescrWorkerInternal+0x30 0012ee34 5d7946aa clr!CallDescrWorker+0x109 0:000> !IP2MD 03ef01a6 MethodDesc: 00902f40 Method Name: Mainy.Main() Class: 03ee1424 MethodTable: 009032d8 mdToken: 0600000d Module: 001caa38 IsJitted: yes CodeAddr: 03ef00b8 Transparency: Critical Source file: c:\Code\prj.mini\exc.cs @ 39 We have taken a return address into Mainy.Main, and discovered information about that method. You could run !U, !DumpMT, !DumpClass, !DumpMD, or !DumpModule on the fields listed to learn more. The "Source line" output will only be present if the debugger can find the symbols for the managed module containing the given , and if the debugger is configured to load line number information. \\ COMMAND: u. !U [-gcinfo] [-ehinfo] [-n] | Presents an annotated disassembly of a managed method when given a MethodDesc pointer for the method, or a code address within the method body. Unlike the debugger "U" function, the entire method from start to finish is printed, with annotations that convert metadata tokens to names. ... 03ef015d b901000000 mov ecx,0x1 03ef0162 ff156477a25b call dword ptr [mscorlib_dll+0x3c7764 (5ba27764)] (System.Console.InitializeStdOutError(Boolean), mdToken: 06000713) 03ef0168 a17c20a701 mov eax,[01a7207c] (Object: SyncTextWriter) 03ef016d 89442414 mov [esp+0x14],eax If you pass the -gcinfo flag, you'll get inline display of the GCInfo for the method. You can also obtain this information with the !GCInfo command. If you pass the -ehinfo flag, you'll get inline display of exception info for the method. (Beginning and end of try/finally/catch handlers, etc.). You can also obtain this information with the !EHInfo command. If the debugger has the option SYMOPT_LOAD_LINES specified (either by the .lines or .symopt commands), and if symbols are available for the managed module containing the method being examined, the output of the command will include the source file name and line number corresponding to the disassembly. The -n (No line numbers) flag can be specified to disable this behavior. ... c:\Code\prj.mini\exc.cs @ 38: 001b00b0 8b0d3020ab03 mov ecx,dword ptr ds:[3AB2030h] ("Break in debugger. When done type to continue: ") 001b00b6 e8d5355951 call mscorlib_ni+0x8b3690 (51743690) (System.Console.Write(System.String), mdToken: 0600091b) 001b00bb 90 nop c:\Code\prj.mini\exc.cs @ 39: 001b00bc e863cdc651 call mscorlib_ni+0xf8ce24 (51e1ce24) (System.Console.ReadLine(), mdToken: 060008f6) >>> 001b00c1 90 nop ... \\ COMMAND: dumpstack. !DumpStack [-EE] [-n] [top stack [bottom stack]] [x86 and x64 documentation] This command provides a verbose stack trace obtained by "scraping." Therefore the output is very noisy and potentially confusing. The command is good for viewing the complete call stack when "kb" gets confused. For best results, make sure you have valid symbols. -EE will only show managed functions. If the debugger has the option SYMOPT_LOAD_LINES specified (either by the .lines or .symopt commands), SOS will look up the symbols for every managed frame and if successful will display the corresponding source file name and line number. The -n (No line numbers) parameter can be specified to disable this behavior. You can also pass a stack range to limit the output. Use the debugger extension !teb to get the top and bottom stack values. \\ COMMAND: eestack. !EEStack [-short] [-EE] This command runs !DumpStack on all threads in the process. The -EE option is passed directly to !DumpStack. The -short option tries to narrow down the output to "interesting" threads only, which is defined by 1) The thread has taken a lock. 2) The thread has been "hijacked" in order to allow a garbage collection. 3) The thread is currently in managed code. See the documentation for !DumpStack for more info. \\ COMMAND: ehinfo. !EHInfo ( | ) !EHInfo shows the exception handling blocks in a jitted method. For each handler, it shows the type, including code addresses and offsets for the clause block and the handler block. For a TYPED handler, this would be the "try" and "catch" blocks respectively. Sample output: 0:000> !ehinfo 33bbd3a MethodDesc: 03310f68 Method Name: MainClass.Main() Class: 03571358 MethodTable: 0331121c mdToken: 0600000b Module: 001e2fd8 IsJitted: yes CodeAddr: 033bbca0 Transparency: Critical EHHandler 0: TYPED catch(System.IO.FileNotFoundException) Clause: [033bbd2b, 033bbd3c] [8b, 9c] Handler: [033bbd3c, 033bbd50] [9c, b0] EHHandler 1: FINALLY Clause: [033bbd83, 033bbda3] [e3, 103] Handler: [033bbda3, 033bbdc5] [103, 125] EHHandler 2: TYPED catch(System.Exception) Clause: [033bbd7a, 033bbdc5] [da, 125] Handler: [033bbdc5, 033bbdd6] [125, 136] \\ COMMAND: gcinfo. !GCInfo ( | ) !GCInfo is especially useful for CLR Devs who are trying to determine if there is a bug in the JIT Compiler. It parses the GCEncoding for a method, which is a compressed stream of data indicating when registers or stack locations contain managed objects. It is important to keep track of this information, because if a garbage collection occurs, the collector needs to know where roots are so it can update them with new object pointer values. Here is sample output where you can see the change in register state. Normally you would print this output out and read it alongside a disassembly of the method. For example, the notation "reg EDI becoming live" at offset 0x11 of the method might correspond to a "mov edi,ecx" statement. 0:000> !gcinfo 5b68dbb8 (5b68dbb8 is the start of a JITTED method) entry point 5b68dbb8 preJIT generated code GC info 5b9f2f09 Method info block: method size = 0036 prolog size = 19 epilog size = 8 epilog count = 1 epilog end = yes saved reg. mask = 000B ebp frame = yes fully interruptible=yes double align = no security check = no exception handlers = no local alloc = no edit & continue = no varargs = no argument count = 4 stack frame size = 1 untracked count = 5 var ptr tab count = 0 epilog at 002E 36 D4 8C C7 AA | 93 F3 40 05 | Pointer table: 14 | [EBP+14H] an untracked local 10 | [EBP+10H] an untracked local 0C | [EBP+0CH] an untracked local 08 | [EBP+08H] an untracked local 44 | [EBP-04H] an untracked local F1 79 | 0011 reg EDI becoming live 72 | 0013 reg ESI becoming live 83 | 0016 push ptr 0 8B | 0019 push ptr 1 93 | 001C push ptr 2 9B | 001F push ptr 3 56 | 0025 reg EDX becoming live 4A | 0027 reg ECX becoming live 0E | 002D reg ECX becoming dead 10 | 002D reg EDX becoming dead E0 | 002D pop 4 ptrs F0 31 | 0036 reg ESI becoming dead 38 | 0036 reg EDI becoming dead FF | This function is important for CLR Devs, but very difficult for anyone else to make sense of it. You would usually come to use it if you suspect a gc heap corruption bug caused by invalid GCEncoding for a particular method. \\ COMMAND: comstate. !COMState !COMState lists the com apartment model for each thread, as well as a Context pointer if provided. \\ COMMAND: bpmd. !BPMD [-nofuturemodule] [] !BPMD : !BPMD -md !BPMD -list !BPMD -clear !BPMD -clearall !BPMD provides managed breakpoint support. If it can resolve the method name to a loaded, jitted or ngen'd function it will create a breakpoint with "bp". If not then either the module that contains the method hasn't been loaded yet or the module is loaded, but the function is not jitted yet. In these cases, !bpmd asks the Windows Debugger to receive CLR Notifications, and waits to receive news of module loads and JITs, at which time it will try to resolve the function to a breakpoint. -nofuturemodule can be used to suppress creating a breakpoint against a module that has not yet been loaded. Management of the list of pending breakpoints can be done via !BPMD -list, !BPMD -clear, and !BPMD -clearall commands. !BPMD -list generates a list of all of the pending breakpoints. If the pending breakpoint has a non-zero module id, then that pending breakpoint is specific to function in that particular loaded module. If the pending breakpoint has a zero module id, then the breakpoint applies to modules that have not yet been loaded. Use !BPMD -clear or !BPMD -clearall to remove pending breakpoints from the list. This brings up a good question: "I want to set a breakpoint on the main method of my application. How can I do this?" 1) If you know the full path to SOS, use this command and skip to step 6 .load 2) If you don't know the full path to sos, its usually next to clr.dll You can wait for clr to load and then find it. Start the debugger and type: sxe -c "" clrn 3) g 4) You'll get the following notification from the debugger: "CLR notification: module 'mscorlib' loaded" 5) Now you can load SOS. Type .loadby sos clr 6) Add the breakpoint with command such as: !bpmd myapp.exe MyApp.Main 7) g 8) You will stop at the start of MyApp.Main. If you type "bl" you will see the breakpoint listed. You can specify breakpoints by file and line number if: a) You have some version of .Net Framework installed on your machine. Any OS from Vista onwards should have .Net Framework installed by default. b) You have PDBs for the managed modules that need breakpoints, and your symbol path points to those PDBs. This is often easier than module and method name syntax. For example: !bpmd Demo.cs:15 To correctly specify explicitly implemented methods make sure to retrieve the method name from the metadata, or from the output of the "!dumpmt -md" command. For example: public interface I1 { void M1(); } public class ExplicitItfImpl : I1 { ... void I1.M1() // this method's name is 'I1.M1' { ... } } !bpmd myapp.exe ExplicitItfImpl.I1.M1 !BPMD works equally well with generic types. Adding a breakpoint on a generic type sets breakpoints on all already JIT-ted generic methods and sets a pending breakpoint for any instantiation that will be JIT-ted in the future. Example for generics: Given the following two classes: class G3 { ... public void F(T1 p1, T2 p2, T3 p3) { ... } } public class G1 { // static method static public void G(W w) { ... } } One would issue the following commands to set breapoints on G3.F() and G1.G(): !bpmd myapp.exe G3`3.F !bpmd myapp.exe G1`1.G And for explicitly implemented methods on generic interfaces: public interface IT1 { void M1(T t); } public class ExplicitItfImpl : IT1 { ... void IT1.M1(U u) // this method's name is 'IT1.M1' { ... } } !bpmd bpmd.exe ExplicitItfImpl`1.IT1.M1 Additional examples: If IT1 and ExplicitItfImpl are types declared inside another class, Outer, the bpmd command would become: !bpmd bpmd.exe Outer+ExplicitItfImpl`1.Outer.IT1.M1 (note that the fully qualified type name for ExplicitItfImpl became Outer+ExplicitItfImpl, using the '+' separator, while the method name is Outer.IT1.M1, using a '.' as the separator) Furthermore, if the Outer class resides in a namespace, NS, the bpmd command to use becomes: !bpmd bpmd.exe NS.Outer+ExplicitItfImpl`1.NS.Outer.IT1.M1 !BPMD does not accept offsets nor parameters in the method name. You can add an IL offset as an optional parameter seperate from the name. If there are overloaded methods, !bpmd will set a breakpoint for all of them. In the case of hosted environments such as SQL, the module name may be complex, like 'price, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. For this case, just be sure to surround the module name with single quotes, like: !bpmd 'price, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' Price.M2 \\ COMMAND: dumpdomain. !DumpDomain [] When called with no parameters, !DumpDomain will list all the AppDomains in the process. It enumerates each Assembly loaded into those AppDomains as well. In addition to your application domain, and any domains it might create, there are two special domains: the Shared Domain and the System Domain. Any Assembly pointer in the output can be passed to !DumpAssembly. Any Module pointer in the output can be passed to !DumpModule. Any AppDomain pointer can be passed to !DumpDomain to limit output only to that AppDomain. Other functions provide an AppDomain pointer as well, such as !Threads where it lists the current AppDomain for each thread. \\ COMMAND: eeheap. !EEHeap [-gc] [-loader] !EEHeap enumerates process memory consumed by internal CLR data structures. You can limit the output by passing "-gc" or "-loader". All information will be displayed otherwise. The information for the Garbage Collector lists the ranges of each Segment in the managed heap. This can be useful if you believe you have an object pointer. If the pointer falls within a segment range given by "!EEHeap -gc", then you do have an object pointer, and can attempt to run "!DumpObj" on it. Here is output for a simple program: 0:000> !eeheap -gc Number of GC Heaps: 1 generation 0 starts at 0x00a71018 generation 1 starts at 0x00a7100c generation 2 starts at 0x00a71000 segment begin allocated size 00a70000 00a71000 00a7e01c 0000d01c(53276) Large object heap starts at 0x01a71000 segment begin allocated size 01a70000 01a71000 01a76000 0x00005000(20480) Total Size 0x1201c(73756) ------------------------------ GC Heap Size 0x1201c(73756) So the total size of the GC Heap is only 72K. On a large web server, with multiple processors, you can expect to see a GC Heap of 400MB or more. The Garbage Collector attempts to collect and reclaim memory only when required to by memory pressure for better performance. You can also see the notion of "generations," wherein the youngest objects live in generation 0, and long-lived objects eventually get "promoted" to generation 2. The loader output lists various private heaps associated with AppDomains. It also lists heaps associated with the JIT compiler, and heaps associated with Modules. For example: 0:000> !EEHeap -loader Loader Heap: -------------------------------------- System Domain: 5e0662a0 LowFrequencyHeap:008f0000(00002000:00001000) Size: 0x00001000 bytes. HighFrequencyHeap:008f2000(00008000:00001000) Size: 0x00001000 bytes. StubHeap:008fa000(00002000:00001000) Size: 0x00001000 bytes. Total size: 0x3000(12288)bytes -------------------------------------- Shared Domain: 5e066970 LowFrequencyHeap:00920000(00002000:00001000) 03e30000(00010000:00003000) Size: 0x00004000 bytes. Wasted: 0x00001000 bytes. HighFrequencyHeap:00922000(00008000:00001000) Size: 0x00001000 bytes. StubHeap:0092a000(00002000:00001000) Size: 0x00001000 bytes. Total size: 0x6000(24576)bytes -------------------------------------- Domain 1: 14f000 LowFrequencyHeap:00900000(00002000:00001000) 03ee0000(00010000:00003000) Size: 0x00004000 bytes. Wasted: 0x00001000 bytes. HighFrequencyHeap:00902000(00008000:00003000) Size: 0x00003000 bytes. StubHeap:0090a000(00002000:00001000) Size: 0x00001000 bytes. Total size: 0x8000(32768)bytes -------------------------------------- Jit code heap: Normal JIT:03ef0000(00010000:00002000) Size: 0x00002000 bytes. Total size: 0x2000(8192)bytes -------------------------------------- Module Thunk heaps: Module 5ba22410: Size: 0x00000000 bytes. Module 001c1320: Size: 0x00000000 bytes. Module 001c03f0: Size: 0x00000000 bytes. Module 001caa38: Size: 0x00000000 bytes. Total size: 0x0(0)bytes -------------------------------------- Module Lookup Table heaps: Module 5ba22410:Size: 0x00000000 bytes. Module 001c1320:Size: 0x00000000 bytes. Module 001c03f0:Size: 0x00000000 bytes. Module 001caa38:03ec0000(00010000:00002000) Size: 0x00002000 bytes. Total size: 0x2000(8192)bytes -------------------------------------- Total LoaderHeap size: 0x15000(86016)bytes ======================================= By using !EEHeap to keep track of the growth of these private heaps, we are able to rule out or include them as a source of a memory leak. \\ COMMAND: name2ee. !Name2EE !Name2EE ! This function allows you to turn a class name into a MethodTable and EEClass. It turns a method name into a MethodDesc. Here is an example for a method: 0:000> !name2ee unittest.exe MainClass.Main Module: 001caa38 Token: 0x0600000d MethodDesc: 00902f40 Name: MainClass.Main() JITTED Code Address: 03ef00b8 and for a class: 0:000> !name2ee unittest!MainClass Module: 001caa38 Token: 0x02000005 MethodTable: 009032d8 EEClass: 03ee1424 Name: MainClass The module you are "browsing" with Name2EE needs to be loaded in the process. To get a type name exactly right, first browse the module with ILDASM. You can also pass * as the to search all loaded managed modules. can also be the debugger's name for a module, such as mscorlib or image00400000. The Windows Debugger syntax of ! is also supported. You can use an asterisk on the left of the !, but the type on the right side needs to be fully qualified. If you are looking for a way to display a static field of a class (and you don't have an instance of the class, so !dumpobj won't help you), note that once you have the EEClass, you can run !DumpClass, which will display the value of all static fields. There is yet one more way to specify a module name. In the case of modules loaded from an assembly store (such as a SQL db) rather than disk, the module name will look like this: price, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null For this kind of module, simply use price as the module name: 0:044> !name2ee price Price Module: 10f028b0 (price, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null) Token: 0x02000002 MethodTable: 11a47ae0 EEClass: 11a538c8 Name: Price Where are we getting these module names from? Run !DumpDomain to see a list of all loaded modules in all domains. And remember that you can browse all the types in a module with !DumpModule -mt . \\ COMMAND: syncblk. !SyncBlk [-all | ] A SyncBlock is a holder for extra information that doesn't need to be created for every object. It can hold COM Interop data, HashCodes, and locking information for thread-safe operations. When called without arguments, !SyncBlk will print the list of SyncBlocks corresponding to objects that are owned by a thread. For example, a lock(MyObject) { .... } statement will set MyObject to be owned by the current thread. A SyncBlock will be created for MyObject, and the thread ownership information stored there (this is an oversimplification, see NOTE below). If another thread tries to execute the same code, they won't be able to enter the block until the first thread exits. This makes !SyncBlk useful for detecting managed deadlocks. Consider that the following code is executed by Threads A & B: Resource r1 = new Resource(); Resource r2 = new Resource(); ... lock(r1) lock(r2) { { lock(r2) lock(r1) { { ... ... } } } } This is a deadlock situation, as Thread A could take r1, and Thread B r2, leaving both threads with no option but to wait forever in the second lock statement. !SyncBlk will detect this with the following output: 0:003> !syncblk Index SyncBlock MonitorHeld Recursion Owning Thread Info SyncBlock Owner 238 001e40ec 3 1 001e4e60 e04 3 00a7a194 Resource 239 001e4124 3 1 001e5980 ab8 4 00a7a1a4 Resource It means that Thread e04 owns object 00a7a194, and Thread ab8 owns object 00a7a1a4. Combine that information with the call stacks of the deadlock: (threads 3 and 4 have similar output) 0:003> k ChildEBP RetAddr 0404ea04 77f5c524 SharedUserData!SystemCallStub+0x4 0404ea08 77e75ee0 ntdll!NtWaitForMultipleObjects+0xc 0404eaa4 5d9de9d6 KERNEL32!WaitForMultipleObjectsEx+0x12c 0404eb38 5d9def80 clr!Thread::DoAppropriateAptStateWait+0x156 0404ecc4 5d9dd8bb clr!Thread::DoAppropriateWaitWorker+0x360 0404ed20 5da628dd clr!Thread::DoAppropriateWait+0xbb 0404ede4 5da4e2e2 clr!CLREvent::Wait+0x29d 0404ee70 5da4dd41 clr!AwareLock::EnterEpilog+0x132 0404ef34 5da4efa3 clr!AwareLock::Enter+0x2c1 0404f09c 5d767880 clr!AwareLock::Contention+0x483 0404f1c4 03f00229 clr!JITutil_MonContention+0x2c0 0404f1f4 5b6ef077 image00400000!Worker.Work()+0x79 ... By looking at the code corresponding to Worker.Work()+0x79 (run "!u 03f00229"), you can see that thread 3 is attempting to acquire the Resource 00a7a1a4, which is owned by thread 4. NOTE: It is not always the case that a SyncBlock will be created for every object that is locked by a thread. In version 2.0 of the CLR and above, a mechanism called a ThinLock will be used if there is not already a SyncBlock for the object in question. ThinLocks will not be reported by the !SyncBlk command. You can use "!DumpHeap -thinlock" to list objects locked in this way. \\ COMMAND: dumpmt. !DumpMT [-MD] Examine a MethodTable. Each managed object has a MethodTable pointer at the start. If you pass the "-MD" flag, you'll also see a list of all the methods defined on the object. \\ COMMAND: dumpclass. !DumpClass The EEClass is a data structure associated with an object type. !DumpClass will show attributes, as well as list the fields of the type. The output is similar to !DumpObj. Although static field values will be displayed, non-static values won't because you need an instance of an object for that. You can get an EEClass to look at from !DumpMT, !DumpObj, !Name2EE, and !Token2EE among others. \\ COMMAND: dumpmd. !DumpMD This command lists information about a MethodDesc. You can use !IP2MD to turn a code address in a managed function into a MethodDesc: 0:000> !dumpmd 902f40 Method Name: Mainy.Main() Class: 03ee1424 MethodTable: 009032d8 mdToken: 0600000d Module: 001caa78 IsJitted: yes CodeAddr: 03ef00b8 If IsJitted is "yes," you can run !U on the CodeAddr pointer to see a disassembly of the JITTED code. You can also call !DumpClass, !DumpMT, !DumpModule on the Class, MethodTable and Module fields above. \\ COMMAND: token2ee. !Token2EE This function allows you to turn a metadata token into a MethodTable or MethodDesc. Here is an example showing class tokens being resolved: 0:000> !token2ee unittest.exe 02000003 Module: 001caa38 Token: 0x02000003 MethodTable: 0090375c EEClass: 03ee1ae0 Name: Bank 0:000> !token2ee image00400000 02000004 Module: 001caa38 Token: 0x02000004 MethodTable: 009038ec EEClass: 03ee1b84 Name: Customer The module you are "browsing" with Token2EE needs to be loaded in the process. This function doesn't see much use, especially since a tool like ILDASM can show the mapping between metadata tokens and types/methods in a friendlier way. But it could be handy sometimes. You can pass "*" for to find what that token maps to in every loaded managed module. can also be the debugger's name for a module, such as mscorlib or image00400000. \\ COMMAND: eeversion. !EEVersion This prints the Common Language Runtime version. It also tells you if the code is running in "Workstation" or "Server" mode, a distinction which affects the garbage collector. The most apparent difference in the debugger is that in "Server" mode there is one dedicated garbage collector thread per CPU. A handy supplement to this function is to also run "lm v m clr". That will provide more details about the CLR, including where clr.dll is loaded from. \\ COMMAND: dumpmodule. !DumpModule [-mt] You can get a Module address from !DumpDomain, !DumpAssembly and other functions. Here is sample output: 0:000> !DumpModule 1caa50 Name: C:\pub\unittest.exe Attributes: PEFile Assembly: 001ca248 LoaderHeap: 001cab3c TypeDefToMethodTableMap: 03ec0010 TypeRefToMethodTableMap: 03ec0024 MethodDefToDescMap: 03ec0064 FieldDefToDescMap: 03ec00a4 MemberRefToDescMap: 03ec00e8 FileReferencesMap: 03ec0128 AssemblyReferencesMap: 03ec012c MetaData start address: 00402230 (1888 bytes) The Maps listed map metadata tokens to CLR data structures. Without going into too much detail, you can examine memory at those addresses to find the appropriate structures. For example, the TypeDefToMethodTableMap above can be examined: 0:000> dd 3ec0010 03ec0010 00000000 00000000 0090320c 0090375c 03ec0020 009038ec ... This means TypeDef token 2 maps to a MethodTable with the value 0090320c. You can run !DumpMT to verify that. The MethodDefToDescMap takes a MethodDef token and maps it to a MethodDesc, which can be passed to !DumpMD. There is a new option "-mt", which will display the types defined in a module, and the types referenced by the module. For example: 0:000> !dumpmodule -mt 1aa580 Name: C:\pub\unittest.exe ...... MetaData start address: 0040220c (1696 bytes) Types defined in this module MT TypeDef Name -------------------------------------------------------------------------- 030d115c 0x02000002 Funny 030d1228 0x02000003 Mainy Types referenced in this module MT TypeRef Name -------------------------------------------------------------------------- 030b6420 0x01000001 System.ValueType 030b5cb0 0x01000002 System.Object 030fceb4 0x01000003 System.Exception 0334e374 0x0100000c System.Console 03167a50 0x0100000e System.Runtime.InteropServices.GCHandle 0336a048 0x0100000f System.GC \\ COMMAND: threadpool. !ThreadPool This command lists basic information about the ThreadPool, including the number of work requests in the queue, number of completion port threads, and number of timers. \\ COMMAND: dumpassembly. !DumpAssembly Example output: 0:000> !dumpassembly 1ca248 Parent Domain: 0014f000 Name: C:\pub\unittest.exe ClassLoader: 001ca060 Module Name 001caa50 C:\pub\unittest.exe An assembly can consist of multiple modules, and those will be listed. You can get an Assembly address from the output of !DumpDomain. \\ COMMAND: dumpruntimetypes. !DumpRuntimeTypes !DumpRuntimeTypes finds all System.RuntimeType objects in the gc heap and prints the type name and MethodTable they refer too. Sample output: Address Domain MT Type Name ------------------------------------------------------------------------------ a515f4 14a740 5baf8d28 System.TypedReference a51608 14a740 5bb05764 System.Globalization.BaseInfoTable a51958 14a740 5bb05b24 System.Globalization.CultureInfo a51a44 14a740 5bb06298 System.Globalization.GlobalizationAssembly a51de0 14a740 5bb069c8 System.Globalization.TextInfo a56b98 14a740 5bb12d28 System.Security.Permissions.HostProtectionResource a56bbc 14a740 5baf7248 System.Int32 a56bd0 14a740 5baf3fdc System.String a56cfc 14a740 5baf36a4 System.ValueType ... This command will print a "?" in the domain column if the type is loaded into multiple AppDomains. For example: 0:000> !DumpRuntimeTypes Address Domain MT Type Name ------------------------------------------------------------------------------ 28435a0 ? 3f6a8c System.TypedReference 28435b4 ? 214d6c System.ValueType 28435c8 ? 216314 System.Enum 28435dc ? 2147cc System.Object 284365c ? 3cd57c System.IntPtr 2843670 ? 3feaac System.Byte 2843684 ? 23a544c System.IEquatable`1[[System.IntPtr, mscorlib]] 2843784 ? 3c999c System.Int32 2843798 ? 3caa04 System.IEquatable`1[[System.Int32, mscorlib]] \\ COMMAND: dumpsig. !DumpSig This command dumps the signature of a method or field given by . This is useful when you are debugging parts of the runtime which returns a raw PCCOR_SIGNATURE structure and need to know what its contents are. Sample output for a method: 0:000> !dumpsig 0x000007fe`ec20879d 0x000007fe`eabd1000 [DEFAULT] [hasThis] Void (Boolean,String,String) The first section of the output is the calling convention. This includes, but is not limited to, "[DEFAULT]", "[C]", "[STDCALL]", "[THISCALL]", and so on. The second portion of the output is either "[hasThis]" or "[explicit]" for whether the method is an instance method or a static method respectively. The third portion of the output is the return value (in this case a "void"). Finally, the method's arguments are printed as the final portion of the output. Sample output for a field: 0:000> !dumpsig 0x000007fe`eb7fd8cd 0x000007fe`eabd1000 [FIELD] ValueClass System.RuntimeTypeHandle !DumpSig will also work with generics. Here is the output for the following function: public A Test(IEnumerable n) 0:000> !dumpsig 00000000`00bc2437 000007ff00043178 [DEFAULT] [hasThis] __Canon (Class System.Collections.Generic.IEnumerable`1<__Canon>) \\ COMMAND: dumpsigelem. !DumpSigElem This command dumps a single element of a signature object. For most circumstances, you should use !DumpSig to look at individual signature objects, but if you find a signature that has been corrupted in some manner you can use !DumpSigElem to read out the valid portions of it. If we look at a valid signature object for a method we see the following: 0:000> !dumpsig 0x000007fe`ec20879d 0x000007fe`eabd1000 [DEFAULT] [hasThis] Void (Boolean,String,String) We can look at the individual elements of this object by adding the offsets into the object which correspond to the return value and parameters: 0:000> !dumpsigelem 0x000007fe`ec20879d+2 0x000007fe`eabd1000 Void 0:000> !dumpsigelem 0x000007fe`ec20879d+3 0x000007fe`eabd1000 Boolean 0:000> !dumpsigelem 0x000007fe`ec20879d+4 0x000007fe`eabd1000 String 0:000> !dumpsigelem 0x000007fe`ec20879d+5 0x000007fe`eabd1000 String We can do something similar for fields. Here is the full signature of a field: 0:000> !dumpsig 0x000007fe`eb7fd8cd 0x000007fe`eabd1000 [FIELD] ValueClass System.RuntimeTypeHandle Using !DumpSigElem we can find the type of the field by adding the offset of it (1) to the address of the signature: 0:000> !dumpsigelem 0x000007fe`eb7fd8cd+1 0x000007fe`eabd1000 ValueClass System.RuntimeTypeHandle !DumpSigElem will also work with generics. Let a function be defined as follows: public A Test(IEnumerable n) The elements of this signature can be obtained by adding offsets into the signature when calling !DumpSigElem: 0:000> !dumpsigelem 00000000`00bc2437+2 000007ff00043178 __Canon 0:000> !dumpsigelem 00000000`00bc2437+4 000007ff00043178 Class System.Collections.Generic.IEnumerable`1<__Canon> The actual offsets that you should add are determined by the contents of the signature itself. By trial and error you should be able to find various elements of the signature. \\ COMMAND: rcwcleanuplist. !RCWCleanupList [address] A RuntimeCallableWrapper is an internal CLR structure used to host COM objects which are exposed to managed code. This is exposed to managed code through the System.__ComObject class, and when objects of this type are collected, and a reference to the underlying COM object is no longer needed, the corresponding RCW is cleaned up. If you are trying to debug an issue related to one of these RCWs, then you can use the !RCWCleanupList function to display which COM objects will be released the next time a cleanup occurs. If given an address, this function will display the RCWCleanupList at that address. If no address is specified, it displays the default cleanup list, printing the wrapper, the context, and the thread of the object. Example: 0:002> !rcwcleanuplist 001c04d0 RuntimeCallableWrappers (RCW) to be cleaned: RCW CONTEXT THREAD Apartment 1d54e0 192008 181180 STA 1d4140 192178 0 MTA 1dff50 192178 0 MTA MTA Interfaces to be released: 2 STA Interfaces to be released: 1 Note that CLR keeps track of which RCWs are bound to which managed objects through the SyncBlock of the object. As such, you can see more information about RCW objects through the !SyncBlk command. You can find more information about RCW cleanup through the !FinalizeQueue command. \\ COMMAND: dumpil. !DumpIL | | | /i !DumpIL prints the IL code associated with a managed method. We added this function specifically to debug DynamicMethod code which was constructed on the fly. Happily it works for non-dynamic code as well. You can use it in four ways: 1) If you have a System.Reflection.Emit.DynamicMethod object, just pass the pointer as the first argument. 2) If you have a DynamicMethodDesc pointer you can use that to print the IL associated with the dynamic method. 3) If you have an ordinary MethodDesc, you can see the IL for that as well, just pass it as the first argument. 4) If you have a pointer directly to the IL, specify /i followed by the the IL address. This is useful for writers of profilers that instrument IL. Note that dynamic IL is constructed a bit differently. Rather than referring to metadata tokens, the IL points to objects in a managed object array. Here is a simple example of the output for a dynamic method: 0:000> !dumpil b741dc This is dynamic IL. Exception info is not reported at this time. If a token is unresolved, run "!do " on the addr given in parenthesis. You can also look at the token table yourself, by running "!DumpArray 00b77388". IL_0000: ldstr 70000002 "Inside invoked method " IL_0005: call 6000003 System.Console.WriteLine(System.String) IL_000a: ldc.i4.1 IL_000b: newarr 2000004 "System.Int32" IL_0010: stloc.0 IL_0011: ldloc.0 IL_0012: ret \\ COMMAND: verifyheap. !VerifyHeap !VerifyHeap is a diagnostic tool that checks the garbage collected heap for signs of corruption. It walks objects one by one in a pattern like this: o = firstobject; while(o != endobject) { o.ValidateAllFields(); o = (Object *) o + o.Size(); } If an error is found, !VerifyHeap will report it. I'll take a perfectly good object and corrupt it: 0:000> !DumpObj a79d40 Name: Customer MethodTable: 009038ec EEClass: 03ee1b84 Size: 20(0x14) bytes (C:\pub\unittest.exe) Fields: MT Field Offset Type Attr Value Name 009038ec 4000008 4 CLASS instance 00a79ce4 name 009038ec 4000009 8 CLASS instance 00a79d2c bank 009038ec 400000a c System.Boolean instance 1 valid 0:000> ed a79d40+4 01 (change the name field to the bogus pointer value 1) 0:000> !VerifyHeap object 01ee60dc: bad member 00000003 at 01EE6168 Last good object: 01EE60C4. If this gc heap corruption exists, there is a serious bug in your own code or in the CLR. In user code, an error in constructing PInvoke calls can cause this problem, and running with Managed Debugging Assistants is advised. If that possibility is eliminated, consider contacting Microsoft Product Support for help. \\ COMMAND: verifyobj. !VerifyObj !VerifyObj is a diagnostic tool that checks the object that is passed as an argument for signs of corruption. 0:002> !verifyobj 028000ec object 0x28000ec does not have valid method table 0:002> !verifyobj 0680017c object 0x680017c: bad member 00000001 at 06800184 \\ COMMAND: findroots. !FindRoots -gen | -gen any | The "-gen" form causes the debugger to break in the debuggee on the next collection of the specified generation. The effect is reset as soon as the break occurs, in other words, if you need to break on the next collection you would need to reissue the command. The last form of this command is meant to be used after the break caused by the other forms has occurred. Now the debuggee is in the right state for !FindRoots to be able to identify roots for objects from the current condemned generations. !FindRoots is a diagnostic command that is meant to answer the following question: "I see that GCs are happening, however my objects have still not been collected. Why? Who is holding onto them?" The process of answering the question would go something like this: 1. Find out the generation of the object of interest using the !GCWhere command, say it is gen 1: !GCWhere 2. Instruct the runtime to stop the next time it collects that generation using the !FindRoots command: !FindRoots -gen 1 g 3. When the next GC starts, and has proceeded past the mark phase a CLR notification will cause a break in the debugger: (fd0.ec4): CLR notification exception - code e0444143 (first chance) CLR notification: GC - end of mark phase. Condemned generation: 1. 4. Now we can use the !FindRoots to find out the cross generational references to the object of interest. In other words, even if the object is not referenced by any "proper" root it may still be referenced by an older object (from an older generation), from a generation that has not yet been scheduled for collection. At this point !FindRoots will search those older generations too, and report those roots. 0:002> !findroots 06808094 older generations::Root: 068012f8(AAA.Test+a)-> 06808094(AAA.Test+b) \\ COMMAND: heapstat. !HeapStat [-inclUnrooted | -iu] This command shows the generation sizes for each heap and the total, how much free space there is in each generation on each heap. If the -inclUnrooted option is specified the report will include information about the managed objects from the GC heap that are not rooted anymore. Sample output: 0:002> !heapstat Heap Gen0 Gen1 Gen2 LOH Heap0 177904 12 306956 8784 Heap1 159652 12 12 16 Total 337556 24 306968 8800 Free space: Percentage Heap0 28 12 12 64 SOH: 0% LOH: 0% Heap1 104 12 12 16 SOH: 0% LOH:100% Total 132 24 24 80 0:002> !heapstat -inclUnrooted Heap Gen0 Gen1 Gen2 LOH Heap0 177904 12 306956 8784 Heap1 159652 12 12 16 Total 337556 24 306968 8800 Free space: Percentage Heap0 28 12 12 64 SOH: 0% LOH: 0% Heap1 104 12 12 16 SOH: 0% LOH:100% Total 132 24 24 80 Unrooted objects: Percentage Heap0 152212 0 306196 0 SOH: 94% LOH: 0% Heap1 155704 0 0 0 SOH: 97% LOH: 0% Total 307916 0 306196 0 The percentage column contains a breakout of free or unrooted bytes to total bytes. \\ COMMAND: analyzeoom. !AnalyzeOOM !AnalyzeOOM displays the info of the last OOM occured on an allocation request to the GC heap (in Server GC it displays OOM, if any, on each GC heap). To see the managed exception(s) use the !Threads command which will show you managed exception(s), if any, on each managed thread. If you do see an OutOfMemoryException exception you can use the !PrintException command on it. To get the full callstack use the "kb" command in the debugger for that thread. For example, to display thread 3's stack use ~3kb. OOM exceptions could be because of the following reasons: 1) allocation request to GC heap in which case you will see JIT_New* on the call stack because managed code called new. 2) other runtime allocation failure for example, failure to expand the finalize queue when GC.ReRegisterForFinalize is called. 3) some other code you use throws a managed OOM exception for example, some .NET framework code converts a native OOM exception to managed and throws it. The !AnalyzeOOM command aims to help you with investigating 1) which is the most difficult because it requires some internal info from GC. The only exception is we don't support allocating objects larger than 2GB on CLR v2.0 or prior. And this command will not display any managed OOM because we will throw OOM right away instead of even trying to allocate it on the GC heap. There are 2 legitimate scenarios where GC would return OOM to allocation requests - one is if the process is running out of VM space to reserve a segment; the other is if the system is running out physical memory (+ page file if you have one) so GC can not commit memory it needs. You can look at these scenarios by using performance counters or debugger commands. For example for the former scenario the "!address -summary" debugger command will show you the largest free region in the VM. For the latter scenario you can look at the "Memory\% Committed Bytes In Use" see if you are running low on commit space. One important thing to keep in mind is when you do this kind of memory analysis it could an aftereffect and doesn't completely agree with what this command tells you, in which case the command should be respected because it truly reflects what happened during GC. The other cases should be fairly obvious from the callstack. Sample output: 0:011> !ao ---------Heap 2 --------- Managed OOM occured after GC #28 (Requested to allocate 1234 bytes) Reason: Didn't have enough memory to commit Detail: SOH: Didn't have enough memory to grow the internal GC datastructures (800000 bytes) - on GC entry available commit space was 500 MB ---------Heap 4 --------- Managed OOM occured after GC #12 (Requested to allocate 100000 bytes) Reason: Didn't have enough memory to allocate an LOH segment Detail: LOH: Failed to reserve memory (16777216 bytes) \\ COMMAND: gcwhere. !GCWhere !GCWhere displays the location in the GC heap of the argument passed in. 0:002> !GCWhere 02800038 Address Gen Heap segment begin allocated size 02800038 2 0 02800000 02800038 0282b740 12 When the argument lies in the managed heap, but is not a valid *object* address the "size" is displayed as 0: 0:002> !GCWhere 0280003c Address Gen Heap segment begin allocated size 0280003c 2 0 02800000 02800038 0282b740 0 \\ COMMAND: listnearobj. !ListNearObj !ListNearObj is a diagnostic tool that displays the object preceeding and succeeding the address passed in: The command looks for the address in the GC heap that looks like a valid beginning of a managed object (based on a valid method table) and the object following the argument address. 0:002> !ListNearObj 028000ec Before: 0x28000a4 72 (0x48 ) System.StackOverflowException After: 0x2800134 72 (0x48 ) System.Threading.ThreadAbortException Heap local consistency confirmed. 0:002> !ListNearObj 028000f0 Before: 0x28000ec 72 (0x48 ) System.ExecutionEngineException After: 0x2800134 72 (0x48 ) System.Threading.ThreadAbortException Heap local consistency confirmed. The command considers the heap as "locally consistent" if: prev_obj_addr + prev_obj_size = arg_addr && arg_obj + arg_size = next_obj_addr OR prev_obj_addr + prev_obj_size = next_obj_addr When the condition is not satisfied: 0:002> !lno 028000ec Before: 0x28000a4 72 (0x48 ) System.StackOverflowException After: 0x2800134 72 (0x48 ) System.Threading.ThreadAbortException Heap local consistency not confirmed. \\ COMMAND: dumplog. !DumpLog [-addr ] [] To aid in diagnosing hard-to-reproduce stress failures, the CLR team added an in-memory log capability. The idea was to avoid using locks or I/O which could disturb a fragile repro environment. The !DumpLog function allows you to write that log out to a file. If no Filename is specified, the file "Stresslog.txt" in the current directory is created. The optional argument addr allows one to specify a stress log other then the default one. 0:000> !DumpLog Attempting to dump Stress log to file 'StressLog.txt' ................. SUCCESS: Stress log dumped To turn on the stress log, set the following registry keys under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework: (DWORD) StressLog = 1 (DWORD) LogFacility = 0xffffffbf (this is a bit mask, almost all logging is on. This is also the default value if the key isn't specified) (DWORD) StressLogSize = 65536 (this is the default value if the key isn't specified) (DWORD) LogLevel = 6 (this is the default value if the key isn't specified. The higher the number the more detailed logs are generated. The maximum value is decimal 10) StressLogSize is the size in bytes of the in-memory log allocated for each thread in the process. In the case above, each thread gets a 64K log. You could increase this to get more logging, but more memory will be required for this log in the process. For example, 20 threads with 524288 bytes per thread has a memory demand of 10 Megabytes. The stress log is circular so new entries will replace older ones on threads which have reached their buffer limit. The log facilities are defined as follows: GC 0x00000001 GCINFO 0x00000002 STUBS 0x00000004 JIT 0x00000008 LOADER 0x00000010 METADATA 0x00000020 SYNC 0x00000040 EEMEM 0x00000080 GCALLOC 0x00000100 CORDB 0x00000200 CLASSLOADER 0x00000400 CORPROF 0x00000800 REMOTING 0x00001000 DBGALLOC 0x00002000 EH 0x00004000 ENC 0x00008000 ASSERT 0x00010000 VERIFIER 0x00020000 THREADPOOL 0x00040000 GCROOTS 0x00080000 INTEROP 0x00100000 MARSHALER 0x00200000 IJW 0x00400000 ZAP 0x00800000 STARTUP 0x01000000 APPDOMAIN 0x02000000 CODESHARING 0x04000000 STORE 0x08000000 SECURITY 0x10000000 LOCKS 0x20000000 BCL 0x40000000 Here is some sample output: 3560 9.981137099 : `SYNC` RareEnablePremptiveGC: entering. Thread state = a030 3560 9.981135033 : `GC`GCALLOC`GCROOTS` ========== ENDGC 4194 (gen = 2, collect_classes = 0) ==========={ 3560 9.981125826 : `GC` Segment mem 00C61000 alloc = 00D071F0 used 00D09254 committed 00D17000 3560 9.981125726 : `GC` Generation 0 [00CED07C, 00000000 ] cur = 00000000 3560 9.981125529 : `GC` Generation 1 [00CED070, 00000000 ] cur = 00000000 3560 9.981125103 : `GC` Generation 2 [00C61000, 00000000 ] cur = 00000000 3560 9.981124963 : `GC` GC Heap 00000000 3560 9.980618994 : `GC`GCROOTS` GcScanHandles (Promotion Phase = 0) The first column is the OS thread ID for the thread appending to the log, the second column is the timestamp, the third is the facility category for the log entry, and the fourth contains the log message. The facility field is expressed as `facility1`facility2`facility3`. This facilitates the creation of filters for displaying only specific message categories. To make sense of this log, you would probably want the Shared Source CLI to find out exactly where the log comes from. \\ COMMAND: findappdomain. !FindAppDomain !FindAppDomain will attempt to resolve the AppDomain of an object. For example, using an Object Pointer from the output of !DumpStackObjects: 0:000> !findappdomain 00a79d98 AppDomain: 0014f000 Name: unittest.exe ID: 1 You can find out more about the AppDomain with the !DumpDomain command. Not every object has enough clues about it's origin to determine the AppDomain. Objects with Finalizers are the easiest case, as the CLR needs to be able to call those when an AppDomain shuts down. \\ COMMAND: savemodule. !SaveModule This command allows you to take a image loaded in memory and write it to a file. This is especially useful if you are debugging a full memory dump, and don't have the original DLLs or EXEs. This is most often used to save a managed binary to a file, so you can disassemble the code and browse types with ILDASM. The base address of an image can be found with the "LM" debugger command: 0:000> lm start end module name 00400000 00408000 image00400000 (deferred) 10200000 102ac000 MSVCR80D (deferred) 5a000000 5a0b1000 mscoree (deferred) 5a140000 5a29e000 clrjit (deferred) 5b660000 5c440000 mscorlib_dll (deferred) 5d1d0000 5e13c000 clr (deferred) ... If I wanted to save a copy of clr.dll, I could run: 0:000> !SaveModule 5d1d0000 c:\pub\out.tmp 4 sections in file section 0 - VA=1000, VASize=e82da9, FileAddr=400, FileSize=e82e00 section 1 - VA=e84000, VASize=24d24, FileAddr=e83200, FileSize=ec00 section 2 - VA=ea9000, VASize=5a8, FileAddr=e91e00, FileSize=600 section 3 - VA=eaa000, VASize=c183c, FileAddr=e92400, FileSize=c1a00 The diagnostic output indicates that the operation was successful. If c:\pub\out.tmp already exists, it will be overwritten. \\ COMMAND: gchandles. !GCHandles [-type handletype] [-stat] [-perdomain] !GCHandles provides statistics about GCHandles in the process. Paremeters: stat - Only display the statistics and not the list of handles and what they point to. perdomain - Break down the statistics by the app domain in which the handles reside. type - A type of handle to filter it by. The handle types are: Pinned RefCounted WeakShort WeakLong Strong Variable AsyncPinned SizedRef Sometimes the source of a memory leak is a GCHandle leak. For example, code might keep a 50 Megabyte array alive because a strong GCHandle points to it, and the handle was discarded without freeing it. The most common handles are "Strong Handles," which keep the object they point to alive until the handle is explicitly freed. "Pinned Handles" are used to prevent the garbage collector from moving an object during collection. These should be used sparingly, and for short periods of time. If you don't follow that precept, the gc heap can become very fragmented. Here is sample output from a very simple program. Note that the "RefCount" field only applies to RefCount Handles, and this field will contain the reference count: 0:000> !GCHandles Handle Type Object Size RefCount Type 001611c0 Strong 01d00b58 84 System.IndexOutOfRangeException 001611c4 Strong 01d00b58 84 System.IndexOutOfRangeException 001611c8 Strong 01d1b48c 40 System.Diagnostics.LogSwitch 001611d0 Strong 01cfd2c0 36 System.Security.PermissionSet 001611d4 Strong 01cf7484 56 System.Object[] 001611d8 Strong 01cf1238 32 System.SharedStatics 001611dc Strong 01cf11c8 84 System.Threading.ThreadAbortException 001611e0 Strong 01cf1174 84 System.Threading.ThreadAbortException 001611e4 Strong 01cf1120 84 System.ExecutionEngineException 001611e8 Strong 01cf10cc 84 System.StackOverflowException 001611ec Strong 01cf1078 84 System.OutOfMemoryException 001611f0 Strong 01cf1024 84 System.Exception 001611f8 Strong 01cf2068 48 System.Threading.Thread 001611fc Strong 01cf1328 112 System.AppDomain 001613ec Pinned 02cf3268 8176 System.Object[] 001613f0 Pinned 02cf2258 4096 System.Object[] 001613f4 Pinned 02cf2038 528 System.Object[] 001613f8 Pinned 01cf121c 12 System.Object 001613fc Pinned 02cf1010 4116 System.Object[] Statistics: MT Count TotalSize Class Name 563266dc 1 12 System.Object 56329708 1 32 System.SharedStatics 5632bc38 1 36 System.Security.PermissionSet 5635f934 1 40 System.Diagnostics.LogSwitch 5632759c 1 48 System.Threading.Thread 5632735c 1 84 System.ExecutionEngineException 56327304 1 84 System.StackOverflowException 563272ac 1 84 System.OutOfMemoryException 563270c4 1 84 System.Exception 56328914 1 112 System.AppDomain 56335f78 2 168 System.IndexOutOfRangeException 563273b4 2 168 System.Threading.ThreadAbortException 563208d0 5 16972 System.Object[] Total 19 objects Handles: Strong Handles: 14 Pinned Handles: 5 \\ COMMAND: gchandleleaks. !GCHandleLeaks This command is an aid in tracking down GCHandle leaks. It searches all of memory for any references to the Strong and Pinned GCHandles in the process, and reports what it found. If a handle is found, you'll see the address of the reference. This might be a stack address or a field within an object, for example. If a handle is not found in memory, you'll get notification of that too. The command has diagnostic output which doesn't need to be repeated here. One thing to keep in mind is that anytime you search all of memory for a value, you can get false positives because even though the value was found, it might be garbage in that no code knows about the address. You can also get false negatives because a user is free to pass that GCHandle to unmanaged code that might store the handle in a strange way (shifting bits, for example). For example, a GCHandle valuetype is stored on the stack with the low bit set if it points to a Pinned handle. So !GCHandleLeaks ignores the low bit in it's searches. That said, if a serious leak is going on, you'll get a ever-growing set of handle addresses that couldn't be found. \\ COMMAND: vmmap. !VMMap !VMMap traverses the virtual address space and lists the type of protection applied to each region. Sample output: 0:000> !VMMap Start Stop Length AllocProtect Protect State Type 00000000-0000ffff 00010000 NA Free 00010000-00011fff 00002000 RdWr RdWr Commit Private 00012000-0001ffff 0000e000 NA Free 00020000-00020fff 00001000 RdWr RdWr Commit Private 00021000-0002ffff 0000f000 NA Free 00030000-00030fff 00001000 RdWr Reserve Private ... \\ COMMAND: vmstat. !VMStat Provides a summary view of the virtual address space, ordered by each type of protection applied to that memory (free, reserved, committed, private, mapped, image). The TOTAL column is (AVERAGE * BLK COUNT). Sample output below: 0:000> !VMStat ~~~~ ~~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~~~~~ ~~~~~ TYPE MINIMUM MAXIMUM AVERAGE BLK COUNT TOTAL Free: Small 4,096 65,536 48,393 27 1,306,611 Medium 139,264 528,384 337,920 4 1,351,680 Large 6,303,744 974,778,368 169,089,706 12 2,029,076,472 Summary 4,096 974,778,368 47,249,646 43 2,031,734,778 Reserve: Small 4,096 65,536 43,957 41 1,802,237 Medium 249,856 1,019,904 521,557 6 3,129,342 Large 2,461,696 16,703,488 11,956,224 3 35,868,672 Summary 4,096 16,703,488 816,005 50 40,800,250 \\ COMMAND: procinfo. !ProcInfo [-env] [-time] [-mem] !ProcInfo lists the environment variables for the process, kernel CPU time, as well as memory usage statistics. \\ COMMAND: histinit. !HistInit Before running any of the Hist - family commands you need to initialize the SOS structures from the stress log saved in the debuggee. This is achieved by the HistInit command. Sample output: 0:001> !HistInit Attempting to read Stress log STRESS LOG: facilitiesToLog = 0xffffffff levelToLog = 6 MaxLogSizePerThread = 0x10000 (65536) MaxTotalLogSize = 0x1000000 (16777216) CurrentTotalLogChunk = 9 ThreadsWithLogs = 3 Clock frequency = 3.392 GHz Start time 15:26:31 Last message time 15:26:56 Total elapsed time 25.077 sec ..................................... ---------------------------- 2407 total entries ----------------------------- SUCCESS: GCHist structures initialized \\ COMMAND: histobjfind. !HistObjFind To examine log entries related to an object whose present address is known one would use this command. The output of this command contains all entries that reference the object: 0:003> !HistObjFind 028970d4 GCCount Object Message --------------------------------------------------------- 2296 028970d4 Promotion for root 01e411b8 (MT = 5b6c5cd8) 2296 028970d4 Relocation NEWVALUE for root 00223fc4 2296 028970d4 Relocation NEWVALUE for root 01e411b8 ... 2295 028970d4 Promotion for root 01e411b8 (MT = 5b6c5cd8) 2295 028970d4 Relocation NEWVALUE for root 00223fc4 2295 028970d4 Relocation NEWVALUE for root 01e411b8 ... \\ COMMAND: histroot. !HistRoot The root value obtained from !HistObjFind can be used to track the movement of an object through the GCs. HistRoot provides information related to both promotions and relocations of the root specified as the argument. 0:003> !HistRoot 01e411b8 GCCount Value MT Promoted? Notes --------------------------------------------------------- 2296 028970d4 5b6c5cd8 yes 2295 028970d4 5b6c5cd8 yes 2294 028970d4 5b6c5cd8 yes 2293 028970d4 5b6c5cd8 yes 2292 028970d4 5b6c5cd8 yes 2291 028970d4 5b6c5cd8 yes 2290 028970d4 5b6c5cd8 yes 2289 028970d4 5b6c5cd8 yes 2288 028970d4 5b6c5cd8 yes 2287 028970d4 5b6c5cd8 yes 2286 028970d4 5b6c5cd8 yes 2285 028970d4 5b6c5cd8 yes 322 028970e8 5b6c5cd8 yes Duplicate promote/relocs ... \\ COMMAND: histobj. !HistObj This command examines all stress log relocation records and displays the chain of GC relocations that may have led to the address passed in as an argument. Conceptually the output is: GenN obj_address root1, root2, root3, GenN-1 prev_obj_addr root1, root2, GenN-2 prev_prev_oa root1, root4, ... Sample output: 0:003> !HistObj 028970d4 GCCount Object Roots --------------------------------------------------------- 2296 028970d4 00223fc4, 01e411b8, 2295 028970d4 00223fc4, 01e411b8, 2294 028970d4 00223fc4, 01e411b8, 2293 028970d4 00223fc4, 01e411b8, 2292 028970d4 00223fc4, 01e411b8, 2291 028970d4 00223fc4, 01e411b8, 2290 028970d4 00223fc4, 01e411b8, 2289 028970d4 00223fc4, 01e411b8, 2288 028970d4 00223fc4, 01e411b8, 2287 028970d4 00223fc4, 01e411b8, 2286 028970d4 00223fc4, 01e411b8, 2285 028970d4 00223fc4, 01e411b8, 322 028970d4 01e411b8, 0 028970d4 \\ COMMAND: histclear. !HistClear This command releases any resources used by the Hist-family of commands. Generally there's no need to call this explicitly, as each HistInit will first cleanup the previous resources. 0:003> !HistClear Completed successfully. \\ COMMAND: dumprcw. !DumpRCW This command lists information about a Runtime Callable Wrapper. You can use !DumpObj to obtain the RCW address corresponding to a managed object. The output contains all COM interface pointers that the RCW holds on to, which is useful for investigating lifetime issues of interop-heavy applications. \\ COMMAND: dumpccw. !DumpCCW This command lists information about a COM Callable Wrapper. You can use !DumpObj to obtain the CCW address corresponding to a managed object or pass a COM interface pointer to which the object has been marshaled. The output contains the COM reference count of the CCW, which is useful for investigating lifetime issues of interop-heavy applications. \\ @00 00000 0,0004080D0H0L0<<<<<<<<==== ,===>>> >>>>> >$>(>,>0>4>0l11111111111111111111111111111222 22222 2$2(2,2024282<2@2D2H2d>h>@\============>>> >>>>> >$>(>,>0>4>8><>@>D>H>L>P>T>X>\>`>d>h>l>p>P <<`d6666666667 777$7,747<7D7L7T7\7d7l7t7|777777777777777777777<<3@3D3H3L3P3T3X3\3`3d3h3l3p3t3x3T:X:\:`:d:h:l:p:t:888888888999 990989<9H9d9h9l9p9t9x9|99999999999999999::: ::::: :$:(:,:=============$<<<<>>>>>>>>>8889 99999 9$9(9,9094989<9@9D9H9L9P9T9X9\9`9|999999999999999999: :::$:,:4:<:D:L:T:\:d:l:t:|:::::::::::::::::; ;;;$;,;4;<;D;L;T;\;d;l;t;|;;;;;;;;;;;;;;;;;< <<<$<,<< >>>$>,>4><>D>L>T>\>d>l>t>|>>>>>>Xl1p11111114445T9X9\9`9: :::$:,:4:<:D:L:T:\:d:l:t:|:::::::: |<<<<<<<<<<<<<<<<<= ===$=,=4=<=D=L=T=\=d=l=t=|=================> >>>$>,>4><>D>L>T>\>d>l>t>|>>>>>>>>>>>>>>>>>? ???$?,?4?=Z=a=~=====O>]>i>|>>>??p;0D0T0]0d0k0t0w11111111111W2a2k2{22222=3N3v3}3424>4W4c44441556667T7`777778U8_8h8y888888/9;9s999:K::::::;;;; <2>>>>? ??(?:?L?^?j?t?????????????00)0;0M0_0t0{00000111 2'252S2k2v222222(3G3U33333334!4/4p444445R55555666r6666666,7f7q7777777;88$959E9999999Q:X:q:::::::; ;;;;;;<L>^>m>r>>>?'?Y????0@0c000001%1P112 242H2_2222233C3U3g333 4T4g444444535s555556/6=6G6b6667z7777778*8l888899"9.999 :e:p::::::;%;X;><>>>> >$>(>,>0>4>8><>@>D>H>L>P>T>X>>>>> ??&?:?[?r??0 00C0V0d0v00000000 141I1b1p111111111(2C2Z2h2x222222222233%3*3J3S3Z3_333333333344\4444405C5w555f6v667V7h7F8X869H9v::;;;;FC>>>>>>>??h?u???800001111122 333333444425>5R5^55606H6V6666667,7c7y7777F888881989\9c9999N::>;d;n;;;;7>2>Y>2?M?????????0C0I000000111F1[1112222"3.3B3N33344&48444525]5x555D6K6v66788!888829>9R9^99K:c:q::::::;*;>;I;;;;;!<^(>b>n>>>>>E?g?????E0K00002g222V3h3y3333%4:4O4444455R555555 66*6O6}6666666667777777788 8R8Z8j88888889P9W99:":5:::?:D:S:X:]:b:g::::::;';,;3;=;O;[;`;y;;;;;<(<:L>k>>>>>??Y?c?q?{????????001111112!2(2222222N3U3v33334464H44M5T5u5|566&787l7r77778Y9l999:!:4:;:v::::::: ;;;L;W;^;v;;;;;;;;==!=1=H=h========== >&>2>C>O>\>`>j>n>w>>>>???0?E?T?\?u??????|060L0U0|000000001,1C1v111122.2A2Q2}222222223333&383=3D3R3W3^3l3q3x3333333333344 404:4J4T4d4n4~4444444@5G5555 6h6z666I7[7777777778'8;8Y8b8m88888888888888 99 9*9G9Q9v999999: :&:v::::::;;.;R;c;q;;;;;;1<7H>>>>>>>)???D?I?N?S?_?y?????0 0040W0u0|00011,161_1e11111111112"22222222313O3V33333 44?4E4]4b4g4l4v44444445S5555=667,7O7f7x777777S8Z8v888899s9z999::;f%>??0&060p0w01 1/161V1c1111122B22222344&404445"5y5555566'6N6w6677738=8^888899939H9T9b9w9|99999999::$:;:K:P:g:l::L;;;<<#=7===>(>>>*?/?G?r?y???? 90r0~00011n22I33334o4 55f5x588f8s888O9i9999:: ;;;;;;;;< <<<$<(<,<0<4<8<<<@t>>>>>b?i????0l0r00011191@11111 2222 3%3,383X3d333330474i4455{555666657H7b7l7777778Y8u88888889b9j9z999::x::::::::;6;H;;;;;P>d>?)?4????@0020001 161E1}11111111111 2272z222222223-3G3N3Z3z33333334(444I4f4x44444 5[5u5|5555555y666677B7`78!8r8"9)9F9M9v999: :8::::;x;(>>>%?>>?`H0000.12222f3t3334488;:E:FH>>2?V?[????10v000!141D1P1h111133F3333333 44#4-525B5J5Q5\5e5r55555555555666'6,686>6Q6V6e6m6666666666666777*7C7Q7W7p7u77777777777788'828L8P8T8X8\8`8d8h8l8p8t8x8|8888999999::":(:0:]:::::::::: ;;-;C;a;g;l;y;;;;;;;;;;;;;<<<)>5>F>L>d>z>>>>>>>>>>>(?,?0?4?8?J>&????001111,23282K2_2s2222222222222222222K3\3c33334 4444444]6f666c7l7799&9F9O999V:g:v:u;|;;;;;;;;;;;;;;;;;;;<<< <<<<< <$<(<,<=-=v??????0%090f0u000001*111\11112+2N2e2223&33u4x555555/666_6f6w6~66666,737R7Y7i7p7778/8A8^8 9&949V9a9h9999!:S:q::::;<;[;;5<<<<<<=4=;=L=v====>>f>v>>>> ??^???;00000*1;1g11111232363h3s33334H4O4444B5556 66%6f6x6666T77 8j888N9u9999:::6;H;;;;V<]<<<>>>>>>@?_??j0u0000 1%151E1123K33 4%4N4j4z4444445556^667777748>8E8\8f8s8888888#9.939>9999:=:K:q:;j;;;;;;;;;;;<<#<7|>>>>> ?|?H0&000l134a4h44566&778y88Y99c::A;>8?8v000011s1z111223333376V6h6j78z>x3333445#5566%7,7F8X8999:,:Z:::;";A;];;;;;< R>n>>>>>>!?>?W?w?????0:0V0d0000011L1S1111112#2*2F2V2v222223$3N3U3v33333364D444444 55'5F5T555551686q6x666F7U7778 8888@9G9T99:F:U:::: ;;;;@ >>>>P?W?d? 0011v1163E3v3}3F4U444F5U555F6U666;7f7|7888@9G9P9W9:J::::=;\;t;{;;;; <,u>>>>?.?:?????0 001 1M12;2M2w22233334'414V4l44444(555555566/7=7j7x7}77788{99j;<<<<======>?6?????@4001111111112(2v2{222;34&444444'5-5l55566H637977788889*9:t:::::-;;;;;Jk>>> ??L????PM0001:1r1112%2*2H2O2t22222!3K3Z3i333333N4]4q45 5)555R5a5l5555566"6A6Z66666'797777778#8<8F8[8888889+9S9z9999 : :%:4:R:g::::: ;*;R;];;;;;;;;=E=c=======>,>T>e>~>>>?I?P?l???????`000001b1y1C2223^33333 44Q4}44444 515H55555666F666666'7>7f777778A8X88888 939[9r99999':L:t:::<<<=======> ?!?9?Q?i???????p0)0A0Y0q0000001+131;1g1|1111111111111111111222 22222 2$2(2,2024282<2@2f2v222Z3d3333449445T55546K6a667!787Q7v7777708W8g9n9999::: ;';s;;;;,<3f>w>? ?L???&00w222223!313F3M3g3q33333333334M4d44444525V5h5556n66F7U7k7777899D999999c:o:::::;;:;F;k;{;;<6<<<<#=U=v==>.>W>>> ?6?]????>0g0000111111111'2X2222222!3(3g333444+444\4e444.555w5566+626A6H6t6{666e77778808=8B8a8t8888%9+9L9h9999%:Q:::;A;d;y;;;;5<;&?H?c1j11 2X3\3`3d3h3l3p3333333384G4X44445-5U5}55556E6m666666 7J7U7a7f7l7r7}777777777 828b88888888999F9S9v99999::U::::;;[;a;;;;;%+>7>O>>>??*?0?v??m00S11 2-2d222234455556)6t67,77777'8999:5:;::::::;;';T;;;;;<<+<]1>x>}>>>>>>0???G00011-1A1U1l1111111-2A2v222-3K3R333444455h56[6a668K8i8O9^9s9999:0;;;i2><>o>t>>>>?'?6?H?j????000000!1N1_112#2/2Z2222^3n3s3x3}3333333334424>44444)55P66t7777728J8y8 9E99r::;;;L;`;;;;< >I>>??S?v??h000001#2-2?2E22222263H3m333333344:4X4e4t4z444445'5m555*6g66666)787k7r7x777777777788'8Z8a88888888888888888888888888999,9?:G>I?|000 1131H1s1w22334556P6666 7777B8p8w88888V9]999U::::;;;*>>>>? ??*?4??0w000000000011U1Z111111111!2/2f2u22222 3<3H3\34(4V4]44445:5^55555$6*6I6^6e6s666666666667757E7R7g77778>8[888888H9L9P9T9X9\9`9d99999&;8;`;f;q;;<_X>>>>>? ?0?7?I?P?g?~????????00*11111111111111*2F2P22 3f3x333 4464H4a4h44445&5-55555 666677,838v8}888-999: :a:~::==v>>>>u???? 0 0000U1]1l1z111111232U2b2222222"3(3F3P3c33334444e444455T5Z5o5y55555556>6U6s66666 77>7j77777768H8888888]9d99:9:U:q:::,;6;<6<<<=v======>>p>z>>>?2?N?????0 00e0l00011/191b1h11112?2c2222222F3[3333333,4}44444545V5c5n5w5555555555555666%6/6V6]66666667(7<7c7t7778(8k8q8888888999:C:j::::;;;w;;;#<5K>>>>>>>>???????@ 0H0000001E1f111112 2222222(3g3333333T4^4x4444V5c5556 66)6R6X6v666637\7j77777j8888888899/9;9X9}9999 ::::::;;;.;=;R;\;n;;;<<3>>5?;?P?Z?????P0G00&1`1z1112F2v2|2222*333333333444"5,585Z5o5x5555f6x666667 7*74778S888899$9:9P9]999999:(:A:W:::::::::::; ;;; ;4;A;v;;;;;;<"<@>>>4?:?O?Y????`)0?0N0q0000 11.1;1K1Z1g1y1111111111111112%2K2R22222223D3[33334@4F4[4e444444$5)5.535=5j55566+656^6d666677,7777778.848R8\88888f9u9999999::):3::::;U;k;u;;;<@@>F>[>e>>>>> ?V?s???p;0A0V0`00000121N1112.2\222223f3p333333 4@4J4h4444!5:5_55555636i6667(7k7q7777777?8[8w888819X9r9999:u:::::: ;2;8;X;c;;;;;;;;<<%>>> ?Q?{??????&080{0000000111111I22222222373h3m333333L4g44444435B55566/696b6h6666E7U7777778)808H8M8T8Z8g8x888888888F9X9999999::7:::9;W;q;;;;;;<<0<>>#>->V>\>>>>>>>>>S?`?????080C0\0v00000"1.1B1a1o112!2022223c3333333333344.4L4a4k4444444465H5|555566(626666+717F7P7x7~77778-8l8q8v8{8888899>9l99999:1:R::::::%;W;j;;;;;;lA>S>e>>>>>!?J?l?~?????0r000000 1,121P1Z11Y2y222223-3R3^3q3333&4S4\44444+515F5P5s5y55586T6p66677V7h7777777 8*888899:S::::: ;);L;;-V>p>w>>>>?? ?I?O?p?z??60W0k000:11112!262@2i2o2222/3=3l33346.6K6b6x666667G7777777"8*8/868E8J8Q8l8{888888+919F9P9y9999+:::^;;;;;;>B>H>f>p>>>1?M??$00S0Y0n0x0000011112K2Q2f2p2223*3F3b3334Q4d4n4444@5r5}55556(6n6t66666667 7=7W7z7777777777788%8:8?8D8]8g8w8}888888'969H9j9{9999:::#:*:0:6:;:q:{:::::;j<=A=K=Q=`=g=m=s=x======== >>>#>(>@>X>p>>>>?H?N?c?m?????? 00%0=0J0W0f00011)131V1\1q111$2*2?2I2r2x222+3G3Z3333 4*4V4r445556n6662778d8k888889(9k9q9999999?:g::0;e;q;;;;<_<<<<>=T=========>%>4>>>H>>>??/?9?b?h????0p0000111N1s11111172S2b2i2~223B3\3i3v333334+4d4j44444445C5m5w55555556A6a6666666(7M7x777777 88 8-8:8G8T8a8n8u88889%9:9D9W9g9o9t9999#:):>:H:::::;t;;;F>>>"???000S0Y0n0x000001?1o111112-282A2K2g22223>3D3Y3c333344N4T4i4s44445(5c5i5~55555566D6667^7k77788+858^8d888889F9Z9~99998:>:S:]::::;x;;;;;;<<)1>Z>o>>>>>>>>>>>>>?&?3?G?\?u????00\0b0w000001,1N1X1i1z111111112f2u2222222f3u3333344h44465G5555555L666777%7H7N7778818;8V8A9i9999:::;/;B;;<<<=/==== >>>???W??0001,1B1i1z1111122#292a2k2u2222222&383{333333334445g5 6Y6q6667J7w777777 8,8y8888>9m9}999999:;:A:_:y:::::!;,;X;;;;;;;>>*???? 0$0:0?00000011!1o223$3I3P3t3{3333344-4J4t44444 5\5c5i55555556\666F7X778n8u88888F9U9{999L:::F;U;;;;;;)<]6>M>T>v>>>>>>>> ??"?/?T?Y?w?01/1511112253H3R3j3q3333334S4t44$5*5=5I5S55556C6666v7777777 8 8&8/8Z8e8l8888/9:9A9F9b9t9999995:=:L:U:]:u:::::::3;T;;;<[<<<<<<<=:=I=^=q==== >>>>>>?? ?$?(?,?0?4?8?&>8>R>b>r>>>>>>>>>>??6?K?]?w???????P8"0I0V0`0l000000001L111e22233#3=3G3c3h3333 4434f4l44444445*51585>5n5s555566R6X66666666 77g77777 8Q8888889M9~9999999: :*:4:9:H:U::::::::::; ;;;%;.;>;G;P;T;X;\;`;d;h;l;p;t;x;|;;;;;;;;;;;A<<<3=@=S=======>>->>>>3?P???`(0]0d00000K1Y1v1111&2^22D3K3a33j44)5Z5556626d6p6666666D7Q7a7}777778888B9N9b9999:::::;;;g;;<<=^===Q>^>>>>>>>>>?s????p030<0V0x0000 1T111D2n2u22222a3y33374}44445505~55556686h6o6667t7778X8v888888888D9`9g999999:L:^:::::::I;a;;; <<=z===I>P>>>>>8?>??Q001q1z11111y2223323v44|5566666#7:777788J8f9{999(:s::::;%;a;h;p;"3><>E>N>W>`>i>r>{>>>>>>>>>>>>>>>>>>>(?a??????=0S00000000:1U1c111S222Z3d33333I4c4444444D5u5~55555v6}6&777W7q7w777778.848<8F8Q8X8}888888V9e99999@:i:~::::; ;$;5;B;c;;<2=R=n====e>l>>>>>>j?r??&0W0v00001]111123331363]33333333`45(5Y555555555606J6r66667777808b8888*9L999:<:|::::::; ;>;;;;<1[>u>>>>?L?`???0m0002102\222222 33+323K3R3f3q3x3<4X4q4y4444555>5C5R5q5z5555 66666667.7;7D7N7f7x7c8::C;|;;;;;;;;;;;;;;pC>t>{>>>>>?Q?W??? 0<0{000 1(11111 22w333333344'444A4N4S4a4n4{444444444445<5r55556<66 77>7U7\788K8f8o8t88888S9Z9996:H:v::: ;;;;;%<<>> >r>>>>>+?x?}???????00~0000223!333:3A3[3c3v33333333333334 44!4)474D4O4d4i4w44444444444*555556 666#6*61686?6F6K6777808m8y8~88888888888$9+929A9Y99999:P:^::;=>>.>?>P>a>k>u>z>>>>>>>>>>?!?+?5?:?K?Y?g?x???????????00'080B0001$161G111 2E2Y2e2%3h3333%4-4O4W4g44444:5n5555%6-6a66666667&7+7L7W7\7y7777 8B8k8889.::;;';;;;;>>+??P 080O0r003 44=>>T>`>l>>>>>>>> ?&?2?F?c?o?????????T 00-050>0K0S0a0m0y00000001'1-1X1_1f1m1t1}11111111z2<-?c?{?x081?11111E33334466667-7D7v77777778888U888888 ::|::::::::: ;$<5D>[>f> 21C1111>2O2W2`2m2t2{22222223>3R333304444444D5z5555666P7k777778B889':5:?:c:m:::1;;;U<<=7=l============> >A>F>P>>>>>>?-?H????000^0000%1+11171=1C1J1Q1X1_1f1m1t1|1111111111111,22282>2D2J2Q2X2_2f2m2t2{22222222222 33(3235 5B5M5m5x555557]8::<===>o>>>?@ 041W11x2 33*3H334 44&4k4r4z44445 555S6{6658S8l8s8{88888888999 9999b9h9l9p9t999:: :::5:_:::::::::::;; ;;<<<<<<<<<<<<<<<<<<<)=>k>>R?P1222334 4k4q4|4445+595677#7+7074787a77777777777888 8$8888888889A9H9L9P9T9X9\9`9d999999';;;;;==>`4122$3533333R4n4C67)9;0=6=B=y===p0011b1123,4Q4[444442585a5|5555556g6q66666727?7k7u777777777 88"8>8J8P8[8i8o8z8888888888889'9:9E9J9\9g9l99999J:a:n:z:::::::::;;%;*;I;x;;;;;;;<(>F>f>>>>>>>>1?6?00 11\1h1t111111122"2+282g2o222222 33 3(3.3=3G3M3\3f3l3~333333333333334 4444!4'4/444:4B4G4M4U4Z4`4h4m4s4{44444444444444444444455 5555&5+51595>5D5L5Q5W5_5d5j5r5w5}555555555555555555555 66 6-666[6p66667:7O7f7k77777 88_88q99:Q::::F;_;p;;;;;;;;;;1>k>x>>>>>>??O?e?x????????0 000$0K0v0000111623"3(3<3H3q3333344"4C4N4X4j4t4445+5E5R5a5k5}555555555636@6I6m667 767U77$8+8Q8X8889R>>>? ?D0222222223333<4B4G4O4445%56)9I;W;a;;Y==?(22 3+3?3E3445g5m5R:::w>(.9@9Y99/:P:U::Q;q;;<)?$^0}0000011C2_22D:J:44444 5525H5Q5]5h555556 6#6,6A6G6h66666 771787>7L7R7g7x77777777G8i8o8{8888888"9'90959>9C9P99999K::;;;;<<'<99B9F9J9N9R9V9Z9^9b9999::C:::: ;;;);r;;<<>{?0`0223133.44444Y56E6N666777u8~8p9y9e::::3;G;;;>>@H?2345)5/5Q5W5699999999:::<;;<<9=z=>>i?w???P0r1112233&4G4S4o4445 505^55555!676J6l6s6667$707U7\7777778(8288C9==/>J>o>>u?}????????`x 000%050;0A0I0O0U0]0c0i0q0z00000000000)1A1Z112#3+34e5q5566"6666s788E:::q;y;;; <7K>>E?e?+0@0m0000001$1-171^1q11.272A2U2v22343D3k33333475@5J5f55556=6w888888999994:;:q:::;e;;;4<:<<=B=b===>>?U?z???"01!1<1x111(2j2223J3}33334=4Q4x44444 5!5)5/5J5a5i5o5556:6z6666727R7r77708]889*9j999 :=:m:::$;J;;;;4s>>>>*?j????"0T0001U1112;2j222 3:3b3334J4r44444525c555J6666277778J8889[999:s:G;~;;;w<<=,>u>>>?j???| 0J000%1J111172223M3304b444 555667778`888 9B9j999 :2:R:r::::;\;;+>>>f??t(000"1j111f2228333a444[556[666B7r77K888%9\99 :q:::$;;;0y>>>>>E???$0]00000#1e11152}222*3Z33324u4445R5}555-66677 8{88859j99999::*:7:>:D:c:i:~::::::::::;;$;(;5;9;Q;\;d;;;;;;;;;;;; <,<4<< >,>L>X>>>>>>>>? ?? ?@?H?P?X?d???????? 0080L0T0`0000000 101<1D1\1d1l1t111111111242<2D2L2T2\2d2l2t2|22222222222223333 3(30383@3H3P3X3`3h3p3x3333333334$40484X4|444444445545@5`5h5t5555555666,6H6P6\6|66666666667(747T7`77777777788$8,848<8D8L8T8\8d8p888888889$9,989X9d9999999::4:@:`:l::::::::; ;(;0;8;D;d;p;;;;;;;<<<0<8>0>T>`>h>>>>>>???8?\?h?p??????? 000$000P0X0`0h0|000000000001@1L1T1l1x111111112242@2`2l2222222223(343T3`33333333 4484@4d4p4x444444445$5,5@5L5T5t5|555555555556$606P6\6|6666667777 707T7`7h77777777778$8,888X8`8l8888888888 999(9L9l9t9|9999999999: :::$:0:P:X:`:h:t::::::::::;;$;,;4;<;D;P;p;x;;;;;;;;;<<$<,<4<< >>>$>,>4><>H>h>p>x>>>>>>>>>>>>> ?,?4?L?T?\?d?p?????????0 0,040<0D0L0T0`000000000001181X1`1h1p1x111111111111112 222$202P2X2`2h2p2x222222222233343<3H3h3t3333334$4,4D4L4X4x444444444455 5(5@5H5X5h5p5555555555 66 6@6H6P6X6d6666666667$7D7L7T7\7d7l7t7|7777777778 8(808<8`88888888888888889 9D9d9l9t9|9999999999999::::$:D:P:p:x::::::::;; ;(;@;H;T;t;;;;;;;< <,<4<<>(>H>P>X>`>l>>>>>>>>? ?(?0?8?@?H?P?X?`?l???????? 00 0(00080@0L0l0t0|00000000000001$1,141<1H1l111111111112 2,242<2H2h2t222222223(303D3P3X3p3x333333334444 4(40484@4H4T4t4|44444444445545T5\5d5l5t5|55555555556 66 6D6d6l6t6|66666666667 777$7,747<7D7P7p7x777777777777778 888$8,848<8D8L8T8\8d8l8t8|88888888889 999(9H9P9\9|99999999:: :(:0:8:@:H:P:\:|::::::::; ;;@;d;p;x;;;;;;< <(>>4><>H>h>t>>>>>>>>??0? >@>`>>>>>>?(?H?h???Pp000 00000 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h00000000000000000000000000000111 11111 1$1(1,1014181<1D1T1d1t11111111122$242D2T2d2t22222222233$343D3T3d3t33333333344$444D4T4d4t44444444455$545D5T5d5t55555555566$646D6T6d6t66666666677$747D7T7d7t77777777788$848D8T8d8t88888888899$949D9T9d9t999999999::$:4:D:T:d:t:::::::::;;$;4;D;T;d;t;;;;;;;;;<<$<4>$>4>D>T>d>t>>>>>>>>>??$?4?D?T?d?t?????????`00$040D0T0d0t00000000011$141D1T1d1t11111111122$242D2T2d2t22222222233$343D3T3d3t3333333333333334 444$4,444<4D4L4T4\4d4l4t4|4444488888888888888pT9 999$9,949<9D9L9T9d9t999999999::$:4:D:T:d:t::::::;;;?8000000000000000000111 11111 1$1(1,1014181<1@1D1H1L1P1T1X1\1`1l1p1t1x1|111111111111111111111111111111111222 22222D2T2d2t2222222222`4h4666666777 777@8H8L8P8T8X8\8`8d8h8l8x8|888888888<<< =0=L=h=====>4>`>>>8>0>+ *H >0>1 0 +0L +7>0<0 +70 0!0 +Ne2kg2# 0033'J*30  *H 0w1 0 UUS10U Washington10URedmond10U Microsoft Corporation1!0UMicrosoft Time-Stamp PCA0 130327200823Z 140627200823Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1 0 U MOPR1'0%U nCipher DSE ESN:F528-3777-8A761%0#UMicrosoft Time-Stamp Service0"0  *H 0 V_B2m|8X3kP! ]-Z.LctXʼnT y!"m3%@EN c+7Oj*ZW]=cp>"[2qyW?t{}|WX/و@:"A &%ΌgFMfs~;vtU`Ab8eFfVB]Td/8k.>HIVJi4Jbln \c]Hk!/ 00UX>1=6 ]20U#0#4RFp @v+50TUM0K0IGEChttp://crl.microsoft.com/pki/crl/products/MicrosoftTimeStampPCA.crl0X+L0J0H+08z L3ۿA|$| K  9N!Nl|p x`܋e\|Aa-Cge*ԧY2ō"(ذShGGa-:lOo=)DÒg1IQHx@00Ԡ3 ;0  *H 0y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Code Signing PCA0 130124223339Z 140424223339Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1 0 U MOPR10UMicrosoft Corporation0"0  *H 0 \ (|{v(S?:@}3W?Q4Tϴ?7-P5NMzv,Y\)u'-A6+ @;\uRK37~A\e!7," w"|O N !6G/j5ܔWK8ztdb%.*¯$P\Iyp{(*)ϿqM\#)J'~C Oeq`0\0U% 0 +0UYqZ3Mژr2A0QUJ0HF0D1 0 U MOPR1301U*31595+4faf0b71-ad37-4aa3-a671-76bc052344ad0U#0ҴX7.3L 0VUO0M0KIGEhttp://crl.microsoft.com/pki/crl/products/MicCodSigPCA_08-31-2010.crl0Z+N0L0J+0>http://www.microsoft.com/pki/certs/MicCodSigPCA_08-31-2010.crt0  *H 1n*W3՝:DM^j[yvh M9 ]$:|ۭγl9,E}$T&0 Gf],{tOik$햠sjKb|HMDN;] U?@18u(^Fmzy@Eծ]>ufc`՚$04cBgJK:ﶕ:8%f00 a3&10  *H 0_10 &,dcom10 &,d microsoft1-0+U$Microsoft Root Certificate Authority0 100831221932Z 200831222932Z0y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Code Signing PCA0"0  *H 0 rY\0d` BvSl>ok:t/2BN#r5W ʮ IhMKyKqG%ߝuϪsDׁ6\Eܯ=(hrsV5rv_wE8s[gRi/ t)v/T0Yҍb_F1P'@0r)("7N=2=͡8\NV(*2KOc-bE=F[&SzJF7<8w\V< _^0Z0U00UҴX7.3L 0 U0 +70# +71N&`;1o<-0 +7  SubCA0U#0`@V'%* SY0PUI0G0ECA?http://crl.microsoft.com/pki/crl/products/microsoftrootcert.crl0T+H0F0D+08http://www.microsoft.com/pki/certs/MicrosoftRootCert.crt0  *H Y9>&Fo@2j/nI_uL;-C -1#|P!]=/LVpyIr>A i˥ - PV-JҼp VชKWB4eϡ%0$ *H  1000w1 0 UUS10U Washington10URedmond10U Microsoft Corporation1!0UMicrosoft Time-Stamp PCA33'J*30 +]0 *H  1  *H 0 *H  1 130910102230Z0# *H  164#$ K.k0  *H "(4axNEöHվ| n 63)V+L+/L\/NTNr+U靈S"/a` 6=E/P9L*u*]'_ "^iYDzݔqB&8' I(Mn8J-ϐc{%@λ1 XKHp뺢KÆ.SK[՚Nk_b8^m]P T4/ )ؗ:>Z0# +71#0# *H #0#10  `He0\ +7N0L0 +70 010  `He W^zؠvT<f>Zr5y ?003y %XE0  *H  0~1 0 UUS10U Washington10URedmond10U Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20110 120707001432Z 131007001432Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1 0 U MOPR10UMicrosoft Corporation0"0  *H 0 Qs/ΰ=X?,˹]::HlT~ܸ* m;Y%N`t۴UO?;A|GKaI aDFvͫr9q'ٟCT!cnHzܝP䶃"G*D>8.0+Asp)&9L/*Z6>)P@2'c:Ӝr5Ex(kdtE@o\-,0(0U%0+ +7L0Ua??P.Cqc\BF0U#0HndPӂ77"mu0TUM0K0IGEChttp://www.microsoft.com/pkiops/crl/MicCodSigPCA2011_2011-07-08.crl0a+U0S0Q+0Ehttp://www.microsoft.com/pkiops/certs/MicCodSigPCA2011_2011-07-08.crt0 U00  *H  Ck]dRoP(tqO'CMf`a;W~/=E3]v`yN^|#qzA"L̊WC֮3=f;vdbWC;GujHN2 Lf÷>LH92 x[+07wo\CR,Gasrc3aI_,5O}k>YڞְHa뀱F5i?r~#Cܶ zե:ւMxK[ 4RNq㑹sy 64,I`0 &d]O/Y;-3Xŷ>2ӳ=8~ҝ,NV!5%9ndS#_R!t%_('(8%9J6|#faj(I_%]!K>RĵW?$z[/#p]QFwἬ_UK9#ID|Erzr$߿FWۃMI0[ݰf{KI)(}gbx_/W\w((m(,@7OD LԥC/tnx X,]`>O3ڰޞNFlֈ 00 +70UHndPӂ77"mu0 +7  SubCA0 U0U00U#0r-:1CN1#40ZUS0Q0OMKIhttp://crl.microsoft.com/pki/crl/products/MicRooCerAut2011_2011_03_22.crl0^+R0P0N+0Bhttp://www.microsoft.com/pki/certs/MicRooCerAut2011_2011_03_22.crt0U 00 +7.00?+3http://www.microsoft.com/pkiops/docs/primarycps.htm0@+042 Legal_policy_statement. 0  *H  g򆥘Ty.tg" cB}y e_.,>rm? ;Gic"5]e}FPU |K.)=Եw9dD=xz#}t&F*Š hh.*?*kXIc inZF+;н5n%'(M= 2-[I9 ƭQEX82q'',: iYhnot@*(>?Mf Mo}Ev@*e]Rbc6'ͥ]cA[>wuaaA(e/\֡FY KH)ű?Ew5Ңzz"HG#kKux7yKֳ#hu i;0Lumc=ѝVNOW"x2!zA ?̤]WqVNHEBɛv[ HkymmjRs zP1000~1 0 UUS10U Washington10URedmond10U Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20113y %XE0  `He0 *H  10 *H  1  +70 +7 10  +70/ *H  1" ~~ֲ,dze1(ʃn1:᭲0: +7 1,0*SOS.dllhttp://microsoft.com0  *H /EL22[{`pb)~~_bxu~x@ʳm0,y;)ݝIMB!Pv5x!I3H"%d6vx ol͂F6 b4VungH]¸ t)@j"QE%{dZAsfTd:nڶW I噳`Fys? æșVn&qXcF.-c 5_pB̂ J0F +71602 *H #010  `He0= *H  ,(0$ +Y 010  `He ^fǨ7RG$xReI3!Fєe%ϷRN720130910102231.746Z001 0 UUS10U Washington10URedmond10U Microsoft Corporation1 0 U MOPR1'0%U nCipher DSE ESN:7D2E-3782-B0F71%0#UMicrosoft Time-Stamp Service0q0Y a *0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 100701213655Z 250701214655Z0|1 0 UUS10U Washington10URedmond10U Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100"0  *H 0  w: iktTե |hK,_av>f+[S'1A |a0Y0D`TC M8Bݓs0W&E GͿ$`2X`FXG2tag_TϓLĦ]an(aF'$gr!KdPb]w=WuBM@Q>gfD~Knʱz* 1N5xhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0U 00 +7.00=+1http://www.microsoft.com/PKI/docs/CPS/default.htm0@+042 Legal_Policy_Statement. 0  *H  Q ?q=!o1Wm0fjxǨ%kTW+QDS`v@@A\\^5$VKtBȯ7}Z?yJR8/ye٩kzoK0D$"<Y)p2J'U/3b_W@ΙfjbJ &9Jqc{!mÜ<}jxm8ؔƥ B"8 %d~cY%z.9Wvqa˚Gͧ};q ]t"aڰPo1:eGxHr~akow˧ 9؂r*T9[ Uzs;-3.)/T'!ȬN(ۖBAM*f0ӻt2Kc{/!YDhttp://www.microsoft.com/pki/certs/MicTimStaPCA_2010-07-01.crt0 U00U% 0 +0  *H  =/ TN:?G>T9uGH^3(b9Z9Ǹd)zO|br0Nʣ DGu q.QB䂃_|PDᅐPiu)cXӆb:F!s }BSe}^$T@{#OD1Inds:FiK[QE`T79GE~,R3O?_yV 8 v0^0㡁01 0 UUS10U Washington10URedmond10U Microsoft Corporation1 0 U MOPR1'0%U nCipher DSE ESN:7D2E-3782-B0F71%0#UMicrosoft Time-Stamp Service% 0 +3XV\xd001 0 UUS10U Washington10URedmond10U Microsoft Corporation1 0 U MOPR1'0%U nCipher NTS ESN:B027-C6F8-1D881+0)U"Microsoft Time Source Master Clock0  *H 0"20130910002813Z20130911002813Z0t0: +Y 1,0*0 000 706 +Y 1(0&0  +Y  0` 0 0  *H vuo%\f8sr_F@af)/ydϘ;7n|e|W/ֱTCF$DewVpeK>PMIYcEa@lb,!ORx̭hU_:A*d^t~ޘ3$'`=zB׫ºv͂9*հ Ѥ_dP{׭N32Ie;Nǩ@'T\C>jX:B:tن1000|1 0 UUS10U Washington10URedmond10U Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20103-%_-0  `He20 *H  1  *H  0/ *H  1" L{^+y#ktA^iSj)|0 *H   10003XV\xd00~0|1 0 UUS10U Washington10URedmond10U Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20103-%_-0_(3Rl40  *H  W<i[4Cщ<ٺr;|FsrlHo{w@xJ(fBåq>bU1wwhk] SFߜ6{^dLJ' Yݗ :M:L3I_ﰤ36>B@Zn[uF:까b/kGa7PB^>^r ~C  [C9Xykߋ3K+tr4%grϵcK('Ot